Compare commits

...

15 Commits

254 changed files with 4443 additions and 2160 deletions

4
assets/pages/.directory Normal file
View File

@ -0,0 +1,4 @@
[Dolphin]
Timestamp=2024,10,13,11,44,9.171
Version=4
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,5 +1,25 @@
Changes :
# v12.1.0
## French
- Correction sur les conditions des sorts
- Jet d'armures correctement affichés
- Dégat à 0 possibles sur les armes/capacités
## English
- Corrected spell conditions
- Armor rolls are now correctly displayed
- Weapon/capacity damage can now be set to 0
# v12.1.0
- Gestion des Hordes
- Ajout de la traduction Espagnole
- Nouvelles clés de traduction
- Petites amélioration diverses
# v11.1.2
- Ajout des traductions manquantes en anglais

View File

@ -0,0 +1,33 @@
{
"label": "Armures et Boucliers",
"mapping": {
"description": "system.description"
},
"entries": {
"Armure légère": {
"name": "Armure légère",
"description": "<h1>Amure légère</h1><p>Si votre personnage préfère éviter les combats mais sait quil risque de ne pas y couper, vous souhaiterez peut-être quil bénéficie au moins dune petite protection. La catégorie des armures légères comprend les différentes sortes darmures de cuir et les chemises de mailles. Votre personnage pourrait ainsi porter un robuste gilet et des brassards en cuir, ou un pourpoint doublé, accompagné de bottes et de gants en cuir souple. À moins que vous ne décidiez quil soit vêtu dune légère chemise de mailles et de rien dautre.</p><p>Une armure légère est généralement dissimulable (à moins dêtre inspecté de près ou davoir affaire à lœil exercé dun soldat vétéran) et ne vous désigne pas au premier regard comme un guerrier.</p><h2>Effets des armures légères</h2><ul><li>protection d6-3 (0-3 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure légère offre 1 point de protection ;</li><li>le port dune armure légère handicape un sorcier et augmente de 1 point de pouvoir le coût de ses sorts.</li></ul>"
},
"Armure lourde": {
"name": "Armure lourde",
"description": "<h1>Armure lourde</h1><p>Ce type darmure est porté par des gladiateurs, des chevaliers partant à la guerre, ou par ceux prévoyant de participer à une bataille sanglante dans un proche avenir. Ce n est pas une armure que lon peut porter la journée entière, et encore moins pour voyager ou sadonner aux activités ordinaires du quotidien. Il peut sagir dun haubert de mailles descendant jusquaux genoux ou dune cuirasse en acier, complétée de grèves et de gantelets, ou encore dune brigandine (une veste de cuir cousue de plaques de métal) avec gantelets et hautes bottes.</p><p>Un personnage portant une armure lourde peut généralement ôter certaines parties de celle-ci pour la transformer en armure moyenne sil le souhaite.</p><p>Les personnages ayant moins de 0 en vigueur ne peuvent pas porter darmure lourde (ils ne sont pas assez robustes pour supporter un pareil attirail).</p><h2>Effets des armures lourdes</h2><ul><li>protection d6-1 (0-5 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure lourde offre 3 points de protection ;</li><li>le port dune armure lourde saccompagne dun malus de -2 en agilité du fait de l encombrement ;</li><li>le port dune armure lourde handicape un sorcier et augmente de 3 points de pouvoir le coût de ses sorts.</li></ul>"
},
"Armure moyenne": {
"name": "Armure moyenne",
"description": "<h1>Armure moyenne</h1><p>Ce type darmure, compromis entre la maniabilité de larmure légère et la protection de larmure lourde, est le choix favori des aventuriers qui sattendent à affronter des combats de manière régulière. Il peut sagir dune armure de cuir couvrant la majeure partie du corps, avec des parties en cuir bouilli pour protéger les points vitaux, ou dune armure mêlant le cuir et la cotte de mailles, ou encore dune cuirasse en acier, simple mais efficace.</p><p>Un personnage portant une armure moyenne peut généralement en ôter certaines parties pour la transformer en armure légère sil le souhaite.</p><h2>Effets des armures moyennes</h2><ul><li>protection d6-2 (0-4 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure moyenne offre 2 points de protection ;</li><li>le port dune armure moyenne saccompagne dun malus de -1 en agilité du fait de lencombrement ;</li><li>le port dune armure moyenne handicape un sorcier et augmente de 2 points de pouvoir le coût de ses sorts.</li></ul>"
},
"Casque": {
"name": "Casque",
"description": "<h1>Casque</h1><p>Si vous êtes équipé dun casque, celui-ci ajoute +1 à la protection de votre armure, dans le cas où vous en portez une. Si vous portez par exemple une armure légère et un casque, votre dé de protection sera égal à d6-2 (d6-1 en armure moyenne et d6 en armure lourde).</p><p>En revanche, un casque vous inflige un malus à linitiative (il est plus difficile de remarquer ce qui se passe autour de vous avec un casque qui limite votre champ de vision), ainsi que dans certaines situations sociales.</p><p>En général, un héros ne porte pas son casque en permanence et ne le met que lorsquil se prépare au combat.</p>"
},
"Grand bouclier": {
"name": "Grand bouclier",
"description": "<h1>Grand bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que sil est conscient de lattaque qui le vise, et donc sil est prêt à la parer.</p>"
},
"Petit bouclier": {
"name": "Petit bouclier",
"description": "<h1>Petit bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que sil est conscient de lattaque qui le vise, et donc sil est prêt à la parer.</p>"
}
}
}

View File

@ -0,0 +1,244 @@
{
"label": "Avantages",
"mapping": {
"description": "system.description"
},
"entries": {
"Agilité de lhomme-oiseau": {
"name": "Agilité de lhomme-oiseau",
"description": "<h1>Agilité de lhomme-oiseau</h1><p>ajoutez 1 à votre agilité. Votre score maximum en agilité passe à 6 au lieu de 5, et votre score de départ maximum en agilité peut être de 4 (au lieu de 3).</p>"
},
"Ami des bêtes": {
"name": "Ami des bêtes",
"description": "<h1>Ami des bêtes</h1><p>vous possédez une affinité naturelle avec les animaux. Vous bénéficiez dun dé de bonus quand vous interagissez avec eux. Si vous êtes dresseur, vous pouvez avoir avec vous deux ou trois compagnons animaux de taille petite, ou un seul de taille moyenne ou grande.</p>"
},
"Ami des céruléens": {
"name": "Ami des céruléens",
"description": "<h1>Ami des céruléens</h1><p>vous avez grandi à proximité des géants bleus, ou bien des circonstances particulières vous ont valu leur amitié, et ils vous considèrent comme un des leurs. Vous bénéficiez dun dé de bonus quand vous interagissez avec les nomades bleus.</p>"
},
"Amis dans la pègre": {
"name": "Amis dans la pègre",
"description": "<h1>Amis dans la pègre</h1><p>vous comptez des amis peu recommandables parmi les différentes pègres qui gangrènent la Lémurie. Ils peuvent vous aider à trouver un receleur, vous fournir une planque, etc.</p>"
},
"Amis haut placés": {
"name": "Amis haut placés",
"description": "<h1>Amis haut placés</h1><p>vous jouissez de contacts au sein des plus hauts échelons de la société. Même sils ne seront pas en général disposés à risquer leur tête pour vous, ils pourront vous apporter de laide (comme vous obtenir une audience auprès dun autre personnage important, vous fournir des informations, jouer de leur influence auprès de la noblesse locale, etc.). Bien sûr, ces amis attendront parfois en retour une faveur de votre part...</p>"
},
"Arme favorite": {
"name": "Arme favorite",
"description": "<h1>Arme favorite</h1><p>vous disposez dune arme de qualité (une grande épée valgardienne, un arc long de Tyrus, une fronde dAxos, un kriss halakhi, un khastok de Malakut, une hache dabordage de Parsool, une rapière de Satarla, ou une arme spécialement fabriquée pour vous ou dont vous avez hérité) et vous vous êtes entraîné à son maniement depuis lenfance. Vous bénéficiez dun dé de bonus lorsque vous utilisez cette arme (ou, si elle est perdue, volée ou détruite, une arme de substitution qui devra reproduire ses qualités uniques, ce qui risque dêtre particulièrement onéreux).</p>"
},
"Artiste": {
"name": "Artiste",
"description": "<h1>Artiste</h1><p>vous avez une sensibilité dartiste. Vous bénéficiez dun dé de bonus pour créer ou estimer des objets dart.</p>"
},
"Athlète": {
"name": "Athlète",
"description": "<h1>Athlète</h1><p>vous bénéficiez dun dé de bonus quand vous entreprenez des activités athlétiques (autres que le combat) comme courir, nager, grimper ou sauter.</p>"
},
"Attirant": {
"name": "Attirant",
"description": "<h1>Attirant</h1><p>vous êtes particulièrement beau ou séduisant. Vous bénéficiez dun dé de bonus dans les situations où lapparence peut jouer un rôle.</p>"
},
"Bagarreur": {
"name": "Bagarreur",
"description": "<h1>Bagarreur</h1><p>vous êtes un boxeur et un lutteur compétent. Vous bénéficiez dun dé de bonus à lattaque quand vous combattez à mains nues.</p>"
},
"Baudrier de guerre": {
"name": "Baudrier de guerre",
"description": "<h1>Baudrier de guerre</h1><p>cet avantage autorise votre personnage à ne porter quun pagne ou un bikini en cotte de mailles et un simple baudrier (léquivalent dune armure légère au mieux), tout en considérant quil sagit dune armure moyenne en terme de protection, et ce sans subir le moindre malus darmure.</p>"
},
"Beau parleur": {
"name": "Beau parleur",
"description": "<h1>Beau parleur</h1><p>vous êtes très persuasif et excellent menteur. Vous bénéficiez dun dé de bonus quand vous voulez mentir, escroquer, baratiner ou tromper quelquun.</p>"
},
"Bibliothèque savante": {
"name": "Bibliothèque savante",
"description": "<h1>Bibliothèque savante</h1><p>vous disposez dune bibliothèque de qualité pour mener vos recherches. Vous bénéficiez dun dé de bonus pour recueillir des informations lorsque vous vous trouvez dans votre bibliothèque. Vous devez toutefois enrichir régulièrement vos collections, ce qui vous conduit à partir à laventure pour trouver les moyens dacquérir de nouveaux manuscrits.</p>"
},
"Bien né": {
"name": "Bien né",
"description": "<h1>Bien né</h1><p>vous avez grandi dans les palais et les cours, parmi la noblesse et la haute société. Vous bénéficiez dun dé de bonus pour agir selon les règles de létiquette et de la courtoisie.</p>"
},
"Colosse": {
"name": "Colosse",
"description": "<h1>Colosse</h1><p>vous savez mobiliser votre vigueur pour accomplir de véritables tours de force. Vous bénéficiez dun dé de bonus pour briser, lever, tirer ou pousser des objets.</p>"
},
"Combat à laveugle": {
"name": "Combat à laveugle",
"description": "<h1>Combat à laveugle</h1><p>pas de lumière ? Aucun problème. En vous basant sur les odeurs, les bruits, les déplacements dair, vous ne faites plus quun avec le monde qui vous entoure. Votre personnage ignore les malus imposés par le MJ pour combattre dans lobscurité.</p>"
},
"Cri de guerre": {
"name": "Cri de guerre",
"description": "<h1>Cri de guerre</h1><p>le personnage pousse son cri de guerre pour effrayer les ennemis à portée de voix. Ces derniers subissent un dé de malus sur tous leurs jets dattaque durant le round qui suit le cri de guerre. Cet avantage ne peut être utilisé gratuitement quune fois par jour ; toute utilisation supplémentaire exigera la dépense de 1 point dhéroïsme.</p>"
},
"Discret": {
"name": "Discret",
"description": "<h1>Discret</h1>\n<p>vous &ecirc;tes vif et agile. Vous b&eacute;n&eacute;ficiez d&rsquo;un d&eacute; de bonus dans les situations o&ugrave; vous essayez de faire preuve de discr&eacute;tion.</p>"
},
"Doigts de fée": {
"name": "Doigts de fée",
"description": "<h1>Doigts de fée</h1><p>vous bénéficiez dun dé de bonus pour toutes les tâches exigeant une grande dextérité, comme le vol à la tire, la fabrication dobjets, le jonglage ou la triche aux cartes et aux dés.</p>"
},
"Dur à cuire": {
"name": "Dur à cuire",
"description": "<h1>Dur à cuire</h1><p>vous avez la robustesse dun bronyx. Ajoutez 2 points à votre vitalité.</p>"
},
"Érudit": {
"name": "Érudit",
"description": "<h1>Érudit</h1><p>quand vous cherchez à vous souvenir dun fait relevant de votre domaine de compétence, vous bénéficiez dun dé de bonus.</p>"
},
"Fêtard": {
"name": "Fêtard",
"description": "<h1>Fêtard</h1><p>vous connaissez bien les auberges et les tavernes, et vous nêtes pas le dernier quand il sagit de lever le coude. Vous bénéficiez dun dé de bonus pour recueillir des informations, trouver des contacts ou obtenir des biens et des services quand vous vous trouvez dans une taverne. De plus, vous tenez très bien lalcool et bénéficiez également dun dé de bonus pour résister aux effets de la boisson.</p>"
},
"Fils des plaines": {
"name": "Fils des plaines",
"description": "<h1>Fils des plaines</h1><p>vous avez grandi dans les plaines. Lorsque vous vous trouvez dans un paysage de plaine, vous bénéficiez dun dé de bonus pour pister, piéger ou chasser, ainsi que pour dautres activités similaires de survie (mais pas pour combattre).</p>"
},
"Fortuné": {
"name": "Fortuné",
"description": "<h1>Fortuné</h1><p>vous disposez dune source de revenus ou dun héritage. Vous bénéficiez dun dé de bonus quand vous cherchez à acquérir des biens ou des services dans votre cité dorigine.</p>"
},
"Gamin des rues": {
"name": "Gamin des rues",
"description": "<h1>Gamin des rues</h1><p>vous êtes un enfant des rues. Vous bénéficiez dun dé de bonus quand vous interagissez avec les gens des bas-fonds de la cité, ou pour des activités comme filer quelquun ou remarquer un détail dans la rue (mais pas pour combattre).</p>"
},
"Inspirateur": {
"name": "Inspirateur",
"description": "<h1>Inspirateur</h1><p>vous savez motiver vos amis et vos partisans. Cela peut se faire au moyen dune invocation aux dieux, dun discours enflammé ou dune musique inspirante, à moins que cela ne vienne simplement de votre présence charismatique. Pour le round qui suit lutilisation de cet avantage, vos compagnons bénéficient dun dé de bonus à tous leurs jets dattaque (à condition dêtre à portée de voix). Cet avantage ne peut être utilisé gratuitement quune fois par jour ; toute utilisation supplémentaire exigera la dépense de 1 point dhéroïsme.</p>"
},
"Intimidant": {
"name": "Intimidant",
"description": "<h1>Intimidant</h1><p>vous bénéficiez dun dé de bonus à chaque fois que vous essayez de forcer quelquun à vous donner une information ou à faire une chose à laquelle il répugne.</p>"
},
"Intrépide": {
"name": "Intrépide",
"description": "<h1>Intrépide</h1><p>votre personnage est insensible à la peur. Même une peur magiquement induite na aucune prise sur lui.</p>"
},
"Laboratoire fourni": {
"name": "Laboratoire fourni",
"description": "<h1>Laboratoire fourni</h1><p>vous disposez dun laboratoire de qualité pour mener vos expériences. Vous bénéficiez dun dé de bonus aux jets pour créer des préparations alchimiques ou des instruments mécaniques lorsque vous vous trouvez dans votre laboratoire. Celui-ci doit toutefois être réapprovisionné de temps à autre, ce qui vous conduit à partir à laventure pour trouver les moyens financiers et matériels de refaire vos stocks.</p>"
},
"Magie des Rois-Sorciers": {
"name": "Magie des Rois-Sorciers",
"description": "<h1>Magie des Rois-Sorciers</h1><p>vous avez atteint une certaine compréhension des antiques secrets des Rois-Sorciers. Vous bénéficiez dun dé de bonus pour lancer des sortilèges. Si vous choisissez cet avantage, vous devez prendre un désavantage supplémentaire.</p>"
},
"Mains guérisseuses": {
"name": "Mains guérisseuses",
"description": "<h1>Mains guérisseuses</h1><p>vous bénéficiez dun dé de bonus sur les tests destinés à aider un blessé à récupérer de ses blessures, dun empoisonnement, etc. Vous devez posséder la carrière médecin pour prendre cet avantage.</p>"
},
"Maître du déguisement": {
"name": "Maître du déguisement",
"description": "<h1>Maître du déguisement</h1><p>vous bénéficiez dun dé de bonus quand vous tentez de dissimuler votre identité. De plus, si vous souhaitez intervenir promptement dans une scène où votre personnage nétait pas présent, vous pouvez dépenser 1 point dhéroïsme pour faire partie du décor, par exemple déguisé en garde de la patrouille ou en bourgeois passant dans la rue. En fait, vous étiez là depuis le début, mais incognito!</p>"
},
"Marqué par les dieux": {
"name": "Marqué par les dieux",
"description": "<h1>Marqué par les dieux</h1><p>les dieux vous accordent leur faveur. Vous gagnez 1 point dhéroïsme supplémentaire.</p>"
},
"Montagnard": {
"name": "Montagnard",
"description": "<h1>Montagnard</h1><p>vous avez grandi dans les montagnes. Lorsque vous vous trouvez dans un paysage montagneux, vous bénéficiez dun dé de bonus pour pister, piéger ou chasser, ainsi que pour dautres activités similaires de survie (mais pas pour combattre).</p>"
},
"Né en selle": {
"name": "Né en selle",
"description": "<h1>Né en selle</h1><p>vous bénéficiez dun dé de bonus pour chevaucher des montures et agir en selle (mais pas pour combattre).</p>"
},
"Odorat développé": {
"name": "Odorat développé",
"description": "<h1>Odorat développé</h1><p>à chaque fois que vous effectuez un jet daction sous esprit pour percevoir quelque chose grâce à votre odorat, vous bénéficiez dun dé de bonus.</p>"
},
"Ouïe fine": {
"name": "Ouïe fine",
"description": "<h1>Ouïe fine</h1><p>à chaque fois que vous effectuez un jet daction sous esprit pour percevoir quelque chose grâce à votre ouïe, vous bénéficiez dun dé de bonus.</p>"
},
"Outillage": {
"name": "Outillage",
"description": "<h1>Outillage</h1><p>vous possédez un jeu doutils adaptés à votre métier ou votre artisanat. Vous bénéficiez dun dé de bonus quand vous entreprenez une action où lemploi de ces outils peut se révéler efficace.</p>"
},
"Peau dure": {
"name": "Peau dure",
"description": "<h1>Peau dure</h1><p>vous avez une peau particulièrement résistante et épaisse qui vous confère +1 en protection, même quand vous ne portez pas darmure.</p>"
},
"Perspicace": {
"name": "Perspicace",
"description": "<h1>Perspicace</h1><p>vous êtes doué pour percer à jour les menteurs. Quand quelquun tente de vous mentir ou de vous entourlouper, vous bénéficiez dun dé de bonus pour le remarquer. Cela ne veut pas dire que vous connaîtrez forcément la vérité, mais vous saurez au moins quon est en train de vous mentir.</p>"
},
"Pied marin": {
"name": "Pied marin",
"description": "<h1>Pied marin</h1><p>vous avez grandi dans un environnement de navires et de bateaux. Vous bénéficiez dun dé de bonus pour manœuvrer une embarcation ou entreprendre des activités physiques à bord dun navire (mais pas pour combattre).</p>"
},
"Pisteur des marais": {
"name": "Pisteur des marais",
"description": "<h1>Pisteur des marais</h1><p>vous avez grandi dans les marais. Lorsque vous vous trouvez dans un paysage de marécage, vous bénéficiez dun dé de bonus pour pister, piéger ou chasser, ainsi que pour dautres activités similaires de survie (mais pas pour combattre).</p>"
},
"Poings dacier": {
"name": "Poings dacier",
"description": "<h1>Poings dacier</h1><p>vous avez les poings durs comme la pierre après des années dentraînement ou à force de vous bagarrer dans toutes les tavernes de la ville. Vous ajoutez votre vigueur aux dégâts quand vous combattez à mains nues.</p>"
},
"Pouvoir du Néant": {
"name": "Pouvoir du Néant",
"description": "<h1>Pouvoir du Néant</h1><p>vous avez porté le regard sur labîme de noirceur du Néant, et recevez deux points de pouvoir supplémentaires. Si vous choisissez cet avantage, vous devez aussi prendre un désavantage supplémentaire.</p>"
},
"Récupération rapide": {
"name": "Récupération rapide",
"description": "<h1>Récupération rapide</h1><p>vous jouissiez dune constitution hors norme. Lorsque vous récupérez après un combat, vous regagnez 1 point de vitalité supplémentaire (qui sajoute à la récupération normale, égale à la moitié des points perdus). De plus, si vous êtes blessé, vous récupérez 1 point de vitalité par jour, peu importe les activités que vous entreprenez.</p>"
},
"Renard du désert": {
"name": "Renard du désert",
"description": "<h1>Renard du désert</h1><p>lorsque vous vous trouvez dans un désert, vous bénéficiez dun dé de bonus pour pister, piéger ou chasser, ainsi que pour dautres activités similaires de survie (mais pas pour combattre).</p>"
},
"Résistant à la magie": {
"name": "Résistant à la magie",
"description": "<h1>Résistant à la magie</h1><p>si vous êtes visé par un sortilège, lancez un d6. Sur un 6, le sortilège na aucun effet sur vous.</p>"
},
"Résistant aux poisons": {
"name": "Résistant aux poisons",
"description": "<h1>Résistant aux poisons</h1><p>vous bénéficiez dun dé de bonus pour résister aux effets des drogues, des venins, des toxines, ainsi que de lalcool.</p>"
},
"Roi de lévasion": {
"name": "Roi de lévasion",
"description": "<h1>Roi de lévasion</h1><p>cordes, chaînes, menottes, prison, rien ne vous retient bien longtemps. Que ce soit par vos talents ou par un coup de chance, vous finissez toujours par vous libérer. Vous bénéficiez dun dé de bonus lorsque vous tentez de vous évader ou de vous libérer de vos liens.</p>"
},
"Roi de la jungle": {
"name": "Roi de la jungle",
"description": "<h1>Roi de la jungle</h1><p>vous avez grandi dans la jungle. Lorsque vous vous trouvez dans un paysage de jungle, vous bénéficiez dun dé de bonus pour pister, piéger ou chasser, ainsi que pour dautres activités similaires de survie (mais pas pour combattre).</p>"
},
"Santé de fer": {
"name": "Santé de fer",
"description": "<h1>Santé de fer</h1><p>vous êtes immunisé à toutes les maladies, y compris celles dorigine magique.</p>"
},
"Savant": {
"name": "Savant",
"description": "<h1>Savant</h1><p>ajoutez 1 à votre esprit. Votre score maximum en esprit passe à 6 au lieu de 5, et votre score de départ maximum en esprit peut être de 4 (au lieu de 3).</p>"
},
"Sentir la magie": {
"name": "Sentir la magie",
"description": "<h1>Sentir la magie</h1><p>vous bénéficiez dun dé de bonus quand vous essayez de reconnaître (ou de traquer) un sorcier, un effet ou un artefact magique.</p>"
},
"Tigre des neiges": {
"name": "Tigre des neiges",
"description": "<h1>Tigre des neiges</h1><p>vous avez grandi dans la toundra gelée. Lorsque vous vous trouvez dans un paysage neigeux, vous bénéficiez dun dé de bonus pour pister, piéger ou chasser, ainsi que pour dautres activités similaires de survie (mais pas pour combattre).</p>"
},
"Tireur puissant": {
"name": "Tireur puissant",
"description": "<h1>Tireur puissant</h1><p>avec un type darme à distance choisi (arc, fronde, javelot, etc.), vous ajoutez votre vigueur aux dégâts.</p>"
},
"Vigilant": {
"name": "Vigilant",
"description": "<h1>Vigilant</h1><p>vous jouissez dune excellente capacité de réaction face au danger. Vous bénéficiez dun dé de bonus à vos jets de réaction.</p>"
},
"Vigueur céruléenne": {
"name": "Vigueur céruléenne",
"description": "<h1>Vigueur céruléenne</h1><p>vous êtes grand et fort. Ajoutez 1 à votre vigueur. Votre score maximum en vigueur passe à 6 au lieu de 5, et votre score de départ maximum en vigueur peut être de 4 (au lieu de 3).</p>"
},
"Vision nocturne": {
"name": "Vision nocturne",
"description": "<h1>Vision nocturne</h1><p>vous bénéficiez dun dé de bonus quand lobscurité impose un malus à la vision.</p>"
},
"Vue perçante": {
"name": "Vue perçante",
"description": "<h1>Vue perçante</h1><p>à chaque fois que vous effectuez un jet daction sous esprit pour percevoir quelque chose grâce à votre vue, vous bénéficiez dun dé de bonus.</p>"
}
}
}

View File

@ -0,0 +1,33 @@
{
"label": "Avantages/Désavantages de Créatures",
"mapping": {
"description": "system.description"
},
"entries": {
"Attaque féroce": {
"name": "Attaque féroce"
},
"Attaque Multiple": {
"name": "Attaque Multiple"
},
"Attaque Spéciale": {
"name": "Attaque Spéciale"
},
"Attaque Timide": {
"name": "Attaque Timide"
},
"Attaque Venimeuse": {
"name": "Attaque Venimeuse"
},
"Camouflage": {
"name": "Camouflage"
},
"Déficience": {
"name": "Déficience"
},
"Prédateur": {
"name": "Prédateur"
}
}
}

View File

@ -0,0 +1,116 @@
{
"label": "Carrières héroïques",
"mapping": {
"description": "system.description"
},
"entries": {
"Alchimiste (artificier/inventeur)": {
"name": "Alchimiste (artificier/inventeur)",
"description": "<h1>Alchimiste (artificier/inventeur)</h1><p>Les alchimistes sont les scientifiques et les inventeurs de Lémurie. Souvent confondus avec les sorciers par ceux qui ne comprennent rien à leur science, les alchimistes ont une connaissance approfondie des principes de la chimie et de la métallurgie, ainsi que des vertus des plantes et herbes quils cultivent parfois dans leurs propres jardins médicinaux.</p><p>Les alchimistes sont ainsi capables de créer des parfums, des potions, des poudres et des poisons, de composer des alliages aux propriétés uniques, de concevoir des instruments et des machines étranges, entre autres inventions étonnantes. Certains alchimistes particulièrement brillants sont même capables dassembler des morceaux issus de différentes créatures vivantes pour créer dhorribles chimères. Quand ils conçoivent des machines, les alchimistes travaillent souvent en étroite collaboration avec des forgerons. Vous trouverez davantage dinformations sur lalchimie au chapitre 6.</p><h2>Attributs</h2><p>à lévidence lesprit est lattribut essentiel pour un alchimiste, dont la profession exige une grande intelligence et de vastes connaissances, que ce soit pour mener ses propres recherches ou pour déchiffrer les textes et les plans rédigés par de lointains prédécesseurs.</p><h2>À laventure</h2><p>ce n est pas une carrière très courante chez les héros, car elle impose daustères recherches et beaucoup de patience. Il arrive cependant que des alchimistes audacieux saventurent à explorer dantiques ruines dans l espoir dy découvrir danciennes reliques dont la véritable valeur pourrait échapper à des héros moins instruits queux.</p><h2>Combat</h2><p>les circonstances où des rangs dans la carrière dalchimiste pourraient se révéler utiles au combat sont particulièrement rares.</p><h2>Idées dAvantages</h2><p>bibliothèque savante, doigts de fée, érudit, laboratoire fourni, odorat développé, résistant aux poisons, savant.</p><h2>Idées de Désavantages</h2><p>chétif, distrait, foie jaune, gars de la ville, non-combattant, obsession (savoir ou artefacts anciens).</p><h2>Carrière dangereuse</h2><p>pour chaque rang dalchimiste au-dessus du rang 2, le personnage doit prendre un désavantage (consultez la liste des avantages et désavantages, page 40).</p><h2>Langues</h2><p>les alchimistes doivent apprendre le démonique sils veulent pouvoir utiliser les puissantes créations magiques et alchimiques de lantique race des Rois-Sorciers. Ce langage est particulièrement ardu et ses formes orale et écrite exigent dêtre apprises séparément.</p>"
},
"Assassin (agent/espion)": {
"name": "Assassin (agent/espion)",
"description": "<h1>Assassin (agent/espion)</h1><p>Tueurs à gages, quand ils ne sont pas des agents au service dun souverain, les espions et les assassins ont élevé le meurtre et le vol au rang dart. Ce sont des experts de la collecte secrète dinformations et de rumeurs, de lattaque sournoise et du meurtre discret, parfois maquillé en mort naturelle (par lusage de poison, par exemple). Ils utilisent des méthodes éprouvées pour réunir des informations sur un sujet ou un personnage, se bâtir un solide réseau de contacts (dont tous ne sont pas forcément très recommandables), et se rapprocher de leur cible (quil sagisse de crocheter une serrure, de mentir ou de se déguiser). Ils savent se montrer patients et peuvent parfois rester en planque des jours durant, à attendre loccasion parfaite de frapper. Il est de notoriété publique que les meilleurs assassins de Lémurie proviennent de la cité dHalakh.</p><h2>Attributs</h2><p>tous les attributs sont importants pour un assassin.</p><h2>À laventure</h2><p>les assassins et les espions sont généralement des solitaires, ce qui nen fait pas des candidats évidents pour rejoindre un groupe daventuriers. En revanche, danciens assassins ont des compétences très utiles à offrir à un groupe de héros.</p><h2>Combat</h2><p>un assassin peut obtenir un avantage ponctuel sil attaque par surprise, en frappant un adversaire qui ne la pas vu approcher, ou en utilisant une arme dissimulée, par exemple.</p><h2>Idées dAvantages</h2><p>amis dans la pègre, amis haut placés, arme favorite, beau parleur, discret, maître du déguisement, ouïe fine, résistant aux poisons, vigilant, vue perçante.</p><h2>Idées de Désavantages</h2><p>arrogant, gars de la ville, mauvaise réputation, obsession (achever la mission), traqué.</p>"
},
"Astrologue": {
"name": "Astrologue",
"description": "<h1>Alchimiste&nbsp;</h1>\n<p>Lorsque les dieux veulent communiquer avec les hommes, ils utilisent le plus souvent les r&ecirc;ves ou les oracles. Mais leurs messages sont g&eacute;n&eacute;ralement abscons, &eacute;nigmatiques, myst&eacute;rieux. Pour les d&eacute;chiffrer, il est n&eacute;cessaire de faire appel aux talents d&rsquo;un voyant, d&rsquo;un devin ou de quelque autre interpr&egrave;te des volont&eacute;s c&eacute;lestes. Encore faut-il que les dieux aient le d&eacute;sir de r&eacute;v&eacute;ler leurs secrets aux simples mortels. La plupart du temps, ils pr&eacute;f&egrave;rent s&rsquo;amuser &agrave; fourvoyer les malheureux plut&ocirc;t que de tenter de les sauver de leur destin tragique. En effet, les pr&ecirc;tres affirment que l&rsquo;avenir est &eacute;crit et que les dieux connaissent le d&eacute;but et la fin de toute chose.</p>\n<p>L&rsquo;astrologie naquit lorsque les hommes, anxieux de conna&icirc;tre leur sort sans devoir attendre la bonne volont&eacute; des dieux, lev&egrave;rent les yeux vers leur domaine et scrut&egrave;rent les signes qui s&rsquo;y manifestaient. Car Hurm arbitre le destin de tout &ecirc;tre et de toute chose, et Sa&rsquo;Tel a consign&eacute; les d&eacute;crets du roi des dieux sur la vo&ucirc;te c&eacute;leste. Ils d&eacute;couvrirent ainsi que le destin pouvait se laisser augurer dans les &eacute;toiles du firmament, &agrave; condition de savoir interpr&eacute;ter les conjonctions et les transits des astres, et de conna&icirc;tre la signification de chaque corps et ph&eacute;nom&egrave;ne c&eacute;lestes. Mais il n&rsquo;est pas donn&eacute; &agrave; tout le monde de pouvoir d&eacute;chiffrer les Glyphes sacr&eacute;s que constituent les constellations.</p>\n<p>Les sages capables de lire l&rsquo;avenir dans les &eacute;toiles sont d&eacute;sign&eacute;s sous le nom d&rsquo;astrologues. Leur art consiste &agrave; &eacute;tablir des cartes du ciel et &agrave; en donner une interpr&eacute;tation afin de r&eacute;v&eacute;ler le destin d&rsquo;un individu et le sort que lui r&eacute;servent les dieux, par exemple &agrave; l&rsquo;occasion d&rsquo;un voyage, d&rsquo;un choix &agrave; faire, d&rsquo;une t&acirc;che &agrave; entreprendre. Qu&rsquo;ils soient princes, g&eacute;n&eacute;raux, marchands, aventuriers ou simples paysans, tous consultent des astrologues, car m&ecirc;me le h&eacute;ros le plus brave peut h&eacute;siter devant une qu&ecirc;te en apparence impossible, &agrave; moins d&rsquo;avoir l&rsquo;assurance que les dieux lui souriront.</p>\n<h2>Attributs</h2>\n<p>&eacute;tudier les conjonctions et analyser le mouvement des astres requi&egrave;rent une solide &eacute;rudition et une intelligence p&eacute;n&eacute;trante. Tout personnage voulant se lancer dans cette carri&egrave;re aura donc int&eacute;r&ecirc;t &agrave; privil&eacute;gier l&rsquo;esprit. Mais pour l&rsquo;astrologue qui serait moins dou&eacute; dans l&rsquo;&eacute;tablissement d&rsquo;un th&egrave;me astral pr&eacute;cis, une bonne aura permettra d&rsquo;&eacute;noncer des pr&eacute;dictions avec conviction, m&ecirc;me si lui-m&ecirc;me n&rsquo;est pas vraiment certain de leur fiabilit&eacute;...</p>\n<h2>&Agrave; l&rsquo;aventure</h2>\n<p>quitter son observatoire pour parcourir des centaines de lieues, affronter des dangers, risquer de se faire capturer et r&eacute;duire en esclavage ? Parfois la connaissance est &agrave; ce prix. M&ecirc;me si un astrologue a plut&ocirc;t tendance &agrave; vouloir rester en ville pour vendre ses horoscopes et examiner le ciel, il est des &eacute;v&eacute;nements qui ne peuvent s&rsquo;observer qu&rsquo;&agrave; un endroit et &agrave; un moment pr&eacute;cis. De plus, un groupe ne refusera probablement pas la pr&eacute;sence d&rsquo;un astrologue suffisamment dou&eacute; pour d&eacute;terminer si les conjonctures sont favorables avant de s&rsquo;engager dans quelque p&eacute;rilleuse exp&eacute;dition.</p>\n<h2>Combat</h2>\n<p>pour sauver sa vie, un astrologue en situation critique fera comme la plupart des gens sens&eacute;s : il cherchera &agrave; se cacher ou &agrave; fuir. Et surtout, jamais il ne se risquera &agrave; provoquer une r&eacute;action qui pourrait entra&icirc;ner un affrontement physique. &Agrave; moins, peut-&ecirc;tre, que son horoscope ne lui pr&eacute;dise une issue favorable !</p>\n<h2>Id&eacute;es d&rsquo;Avantages</h2>\n<p>amis haut plac&eacute;s, beau parleur, biblioth&egrave;que savante, &eacute;rudit, laboratoire fourni, savant.</p>\n<h2>Id&eacute;es de D&eacute;savantages</h2>\n<p>ch&eacute;tif, distrait, foie jaune, gars de la ville, non-combattant, obsession, souffreteux.</p>\n<p>&nbsp;</p>"
},
"Barbare (berserk/primitif)": {
"name": "Barbare (berserk/primitif)",
"description": "<h1>Barbare (berserk/primitif)</h1><p>Ces personnages ne sont pas originaires des grandes cités de Lémurie, mais plutôt des montagnes de lAxos, des toundras glacées de Valgard, du désert de Beshaar ou dautres contrées sauvages du continent.</p><p>Les barbares sont des êtres farouches et sauvages, comme les terres qui les ont vus naître. Doués dinstincts aussi aiguisés que ceux dun fauve, ils possèdent un talent inné pour la survie en milieu hostile et de solides connaissances sur la nature. Ce sont généralement de bons cavaliers. Mais les barbares restent surtout célèbres pour la rage indomptable avec laquelle ils combattent et leur faculté innée dintimider les âmes les mieux trempées.</p><h2>Attributs</h2><p>la vie rude des barbares exige robustesse et endurance, aussi une bonne vigueur est essentielle pour un barbare, bien quil ne doive pas non plus négliger lagilité.</p><h2>Idées de Désavantages</h2><p>arrogant, gars de la ville, mauvaise réputation, obsession (achever la mission), traqué.</p><h2>À laventure</h2><p>les barbares sont des aventuriersnés et possèdent les talents et les aptitudes nécessaires pour survivre aux pires situations.</p><h2>Combat</h2><p>les barbares se battent généralement de manière brutale, sans le moindre raffinement. Cela pourrait impressionner des citadins inaccoutumés à une telle sauvagerie, et offrir un avantage ponctuel à un barbare dans le cadre dun combat particulièrement violent et sans pitié.</p><h2>Idées dAvantages</h2><p>arme favorite, baudrier de guerre, colosse, cri de guerre, dur à cuire, fils des plaines, intimidant, montagnard, odorat développé, ouïe fine, peau dure, pisteur des marais, récupération rapide, roi de la jungle, santé de fer, tigre des neiges, vigilant, vue perçante.</p><h2>Idées de Désavantages</h2><p>bouseux, crédule, illettré, impétueux, lubrique, marin deau douce, méfiance envers la sorcellerie, signe distinctif, taciturne.</p>"
},
"Bourreau (geôlier/esclavagiste)": {
"name": "Bourreau (geôlier/esclavagiste)",
"description": "<h1>Bourreau (geôlier/esclavagiste)</h1><p>Les bourreaux sont chargés des exécutions publiques décrétées par le tribunal ou les autorités.</p><p>Les geôliers soccupent des prisons où croupissent les pires criminels des cités de Lémurie. Ils exercent leur sinistre activité dans de sordides cachots où ils se chargent dextirper des informations aux prisonniers récalcitrants et aux ennemis des rois qui les emploient. Passés maîtres dans lart de lintimidation et de linterrogatoire, ils possèdent de bonnes connaissances de base en anatomie et en premiers soins (des savoirs indispensables pour briser un prisonnier sans quil meure avant davoir parlé).</p><p>Les esclavagistes mènent des raids dans des terres lointaines pour capturer ou acheter des « sauvages » quils ramènent dans les grandes cités de Lémurie afin de les revendre comme gladiateurs, travailleurs de force ou serviteurs, ou pour peupler de jeunes esclaves nubiles les harems des riches.</p><h2>Attributs</h2><p>les bourreaux ont rarement un score daura élevé, tandis que la vigueur reste un attribut indispensable pour accomplir une décapitation dans les règles de lart ou pour maintenir le calme parmi leurs prisonniers.</p><h2>À laventure</h2><p>les geôliers quittent rarement leurs cachots humides, mais il peut arriver quun bourreau se retrouve frappé dexil et contraint de mener une vie derrance et daventure. Les esclavagistes sont toujours par monts et par vaux pour les besoins de leur sordide commerce.</p><h2>Combat</h2><p>les bourreaux préfèrent les grandes haches ou les épées à deux mains, tandis que certains esclavagistes sont particulièrement habiles avec un fouet. Les bourreaux ne sont pas des combattants très subtils et les guerriers expérimentés se laisseront rarement surprendre par leur style de combat brutal et sans finesse.</p><h2>Idées dAvantages</h2><p>amis dans la pègre, arme favorite, colosse, dur à cuire, intimidant, récupération rapide.</p><h2>Idées de Désavantages</h2><p>bigleux, borgne/oreille coupée, cupide, dur doreille, fanatique, fanfaron, gars de la ville, illettré, inquiétant, lent à la détente, manchot/unijambiste, pataud, phobie, poltron, repoussant, soiffard.</p>"
},
"Chasseur (éclaireur/pisteur)": {
"name": "Chasseur (éclaireur/pisteur)",
"description": "<h1>Chasseur (éclaireur/pisteur)</h1><p>Le chasseur est passé maître dans lart de pister et de traquer les animaux. Une fois quil a localisé sa proie, il utilise des techniques dapproche discrète, la pose de pièges, ou son habileté à larc pour labattre. Les chasseurs sont parfaitement à leur aise dans la nature sauvage et sont capables dy survivre sur de longues périodes, pour ne retourner vers les zones civilisées quune fois quils ont réuni suffisamment de fourrures et de peaux à vendre, ou quand la compagnie de leurs semblables commence à leur manquer.</p><h2>Attributs</h2><p>lagilité est importante pour un chasseur, tout comme la vigueur et lesprit, encore quà un moindre degré.</p><h2>À laventure</h2><p>la traque de bêtes féroces est déjà une aventure en soi. Mais les chasseurs connaissent très bien les territoires sur lesquels ils opèrent et il leur arrive de découvrir au gré de leurs pérégrinations danciennes pistes abandonnées, de vieilles ruines ou des lieux étranges. Pour cette raison, les chasseurs se voient fréquemment proposer de servir de guide à des groupes daventuriers.</p><h2>Combat</h2><p>un chasseur pourra recevoir un bonus de carrière ponctuel sil affronte une créature sauvage quil connaît bien. En revanche, cette carrière est rarement utile contre des adversaires humains.</p><h2>Idées dAvantages</h2><p>ami des bêtes, discret, fils des plaines, montagnard, odorat développé, ouïe fine, outillage, pisteur des marais, renard du désert, vigilant, vision nocturne, vue perçante.</p><h2>Idées de Désavantages</h2><p>borgne/oreille coupée, manchot/unijambiste, marin deau douce, taciturne.</p>"
},
"Danseur (acrobate/saltimbanque)": {
"name": "Danseur (acrobate/saltimbanque)",
"description": "<h1>Danseur (acrobate/saltimbanque)</h1><p>La danse est un divertissement apprécié en Lémurie. Toute cérémonie ou fête digne de ce nom se doit de comporter des danseurs ou des acrobates. Les danseurs sont de véritables athlètes, capables de prouesses en termes de précision, dagilité et de coordination. Les saltimbanques maîtrisent aussi quelques tours de prestidigitation ou de jonglage, tandis que certaines danseuses pratiquent des danses exotiques et utilisent des voiles qui soulignent plus quils ne masquent vraiment leurs attraits.</p><h2>Attributs</h2><p>les danseurs font principalement appel à leur agilité et leur aura. Les acrobates et les saltimbanques sont souvent plus costauds quils ny paraissent.</p><h2>À laventure</h2><p>les saltimbanques voyagent de ville en ville au sein de troupes itinérantes. Cela peut les confronter aux dangers de la route, quil sagisse de bêtes féroces ou de brigands.</p><h2>Combat</h2><p>cette carrière na rien dune carrière martiale et elle ne sera que rarement utile face à un combattant expérimenté. Dans certaines circonstances, une danseuse pourra obtenir un avantage ponctuel si son adversaire est déconcentré par ses charmes, ou en accomplissant une acrobatie, comme une roulade, pour surprendre son ennemi. Un acrobate pourra cependant tirer parti des lianes, des cordes ou des tentures murales pour effectuer de spectaculaires actions comme on peut en voir dans les films de cape et dépée.</p><h2>Idées dAvantages</h2><p>athlète, attirant, discret, doigts de fée, récupération rapide, roi de lévasion, vigilant.</p><h2>Idées de Désavantages</h2><p>chétif, gars de la ville, non-combattant.</p>"
},
"Dresseur (maître des bêtes/montreur dours)": {
"name": "Dresseur (maître des bêtes/montreur dours)",
"description": "<h1>Dresseur (maître des bêtes/montreur dours)</h1><p>Les maîtres des bêtes sont demandés dans toute la Lémurie pour leur capacité à soccuper des animaux, envers lesquels ils manifestent généralement une forme particulière dempathie. Ils les dressent à être montés, à servir de bêtes de trait ou à combattre, que ce soit sur le champ de bataille ou dans une arène. Les dresseurs sont capables de calmer une créature enragée, de soigner des animaux blessés ou malades, de reconnaître une bête dangereuse et de dire si celle-ci est sur le point dattaquer. En général, ce sont également des cavaliers émérites et de remarquables conducteurs dattelage. Certains dresseurs tiennent leurs animaux par la peur et les privations plutôt que détablir une relation de confiance avec eux.</p><h2>Attributs</h2><p>un dresseur doit posséder une forte personnalité et une détermination sans faille, tempérées par un cœur généreux (même si ce nest pas toujours le cas). Laura est donc lattribut le plus important pour un dresseur, suivi de près par lesprit.</p><h2>À laventure</h2><p>les dresseurs sont très demandés, que ce soit par des marchands organisant une caravane, par des nobles ou des militaires pour entraîner et soigner leurs montures, par des propriétaires darènes, ou par des aventuriers qui sattendent à croiser détranges bêtes sauvages sur leur route.</p><h2>Combat</h2><p>un dresseur sait comment se comporter face à un animal et a des chances de connaître ses points faibles. Face à une bête sauvage, cette carrière pourra parfois apporter un avantage ponctuel.</p><h2>Idées dAvantages</h2><p>ami des bêtes, baudrier de guerre, né en selle, odorat développé, ouïe fine, résistant aux poisons, vigilant, vision nocturne, vue perçante.</p><h2>Idées de Désavantages</h2><p>bouseux, illettré, impétueux, incapable de mentir.</p>"
},
"Esclave (serf/serviteur)": {
"name": "Esclave (serf/serviteur)",
"description": "<h1>Esclave (serf/serviteur)</h1><p>Lesclavage n est pas un choix de carrière évident pour un aventurier, mais il peut contribuer utilement à définir le personnage et offre quelques compétences et talents originaux.</p><p>Cette carrière permet à un personnage dapprendre à ne pas se faire remarquer, à voir et écouter discrètement, à cuisiner, nettoyer, coudre, et à effectuer toutes sortes de travaux ménagers. Certains esclaves (les plus forts ou les fauteurs de trouble) sont parfois vendus aux arènes pour y combattre comme gladiateurs.</p><h2>Attributs</h2><p>selon à quoi ils sont employés, les esclaves ont besoin dune bonne vigueur ou dune bonne agilité. Les femmes esclaves voient leur situation saméliorer (ou empirer !) si elles ont un bon score daura. Les esclaves trop intelligents sont généralement considérés comme des fauteurs de trouble.</p><h2>À laventure</h2><p>les esclaves à lesprit aventureux ne restent pas longtemps sous le joug de leur maître, à moins bien sûr que cela ne serve leurs intérêts. Une vie desclave fugitif mène tout naturellement à laventure.</p><h2>Combat</h2><p>cette carrière n est pas dun grand intérêt au combat. Toutefois des guerriers pourraient négliger de soccuper dun esclave, ne le considérant pas comme une menace, ce qui risque dêtre une grave erreur.</p><h2>Idées dAvantages</h2><p>colosse, discret, ouïe fine, roi de lévasion.</p><h2>Idées de Désavantages</h2><p>foie jaune, gars de la ville, illettré, inadapté au froid, marin deau douce, maudit, muet, non-combattant, phobie, souffreteux, taciturne.</p>"
},
"Fermier (paysan/berger)": {
"name": "Fermier (paysan/berger)",
"description": "<h1>Fermier (paysan/berger)</h1><p>Les fermiers vivent à lextérieur de lenceinte de la cité, mais généralement à moins dune journée de voyage de celle-ci, afin de pouvoir aller y vendre leurs récoltes. Ce sont des gens robustes habitués au dur labeur. Bons connaisseurs des plantes et des animaux dont ils savent prendre soin, les fermiers sont également capables de préparer la cuisine, de cuire du pain, de brasser de la bière, de négocier au meilleur prix leur production sur le marché local, etc.</p><h2>Attributs</h2><p>pour un fermier, il ny a pas dattribut plus important quun autre, encore que laura soit sans doute celui qui lui sera le moins utile.</p><h2>À laventure</h2><p>les fermiers ne sont pas particulièrement aventureux et il faut quelque événement inhabituel ou funeste pour les pousser à abandonner leur ferme et à se lancer dans une vie derrance.</p><h2>Combat</h2><p>en général, les fermiers ne sont pas des combattants aguerris et ils ne recevront quexceptionnellement un avantage au combat en raison de cette carrière, par exemple sils défendent leurs terres contre des pillards ou utilisent un outil agricole comme arme improvisée.</p><h2>Idées dAvantages</h2><p>ami des bêtes, bagarreur, fêtard, marqué par les dieux.</p><h2>Idées de Désavantages</h2><p>bouseux, crédule, lent à la détente, marin deau douce, pataud, repoussant, soiffard, taciturne.</p>"
},
"Forgeron (armurier)": {
"name": "Forgeron (armurier)",
"description": "<h1>Forgeron (armurier)</h1><p>Spécialisés dans le travail des métaux, ces artisans passent de longues heures dans leurs forges à créer et réparer des objets en métal. Ils fabriquent aussi bien des instruments et des outils que des armes et des armures, ou encore les pièces métalliques qui entrent dans la construction des galères et des nefs volantes. Les alchimistes font souvent appel à des forgerons pour fabriquer leurs inventions. Leur expérience leur est bien utile quand il sagit destimer et de marchander le prix dobjets en métal, notamment les armes et armures.</p><h2>Attributs</h2><p>les forgerons sont souvent solidement bâtis, avec une bonne vigueur, car le dur labeur de la forge implique force et endurance.</p><h2>À laventure</h2><p>les forgerons ne sont pas vraiment des aventuriers, mais certains sengagent parfois dans une troupe de mercenaires pour soccuper de l entretien des armes et des armures.</p><h2>Combat</h2><p>bien quun forgeron ne soit pas à proprement parler un combattant, il pourra recevoir ponctuellement un bonus de mêlée sil affronte un adversaire portant une armure métallique dont il connaît les spécificités et les éventuels points faibles.</p><h2>Idées dAvantages</h2><p>arme favorite, bagarreur, baudrier de guerre, colosse, outillage.</p><h2>Idées de Désavantages</h2><p>crédule, impétueux, inadapté au froid, lent à la détente, taciturne.</p>"
},
"Gladiateur (champion, belluaire)": {
"name": "Gladiateur (champion, belluaire)",
"description": "<h1>Gladiateur (champion, belluaire)</h1><p>Les gladiateurs sont des experts du duel, habiles au maniement de toutes sortes darmes et capables daffronter des hommes ou des bêtes féroces avec style et panache. Les combattants des arènes sont généralement des esclaves, ou parfois des hommes libres contraints de se battre en remboursement dune dette impayée ou en punition dun crime. Ceux qui survivent au combat sont récompensés par les cris enthousiastes de la foule tandis que leur adversaire agonise à leurs pieds. Les meilleurs gladiateurs acquièrent une renommée qui dépasse le cadre de larène, et qui peut aussi bien jouer à leur avantage quà leur détriment.</p><h2>Attributs</h2><p>pour un gladiateur, la vigueur et lagilité sont essentielles, mais les plus populaires des guerriers de larène possèdent aussi beaucoup daura.</p><h2>À laventure</h2><p>la vie de gladiateur ne conduit pas delle-même à laventure, mais de nombreux héros ont fait un passage dans les arènes, que ce soit par choix, par nécessité, ou au gré de circonstances particulières.</p><h2>Combat</h2><p>les gladiateurs sont entraînés à un style de combat dont le but n est pas simplement de tuer rapidement ladversaire, mais de faire de la passe darmes un échange de coups spectaculaires. Ils pourront obtenir un bonus au combat en tentant une botte particulièrement théâtrale, à condition de ne pas en abuser et, comme toujours, avec lapprobation du MJ.</p><h2>Idées dAvantages</h2><p>arme favorite, athlète, bagarreur, baudrier de guerre, cri de guerre, dur à cuire, intimidant, marqué par les dieux, récupération rapide, vigilant.</p><h2>Idées de Désavantages</h2><p>borgne/oreille coupée, fanfaron, impétueux, manchot/unijambiste, signe distinctif.</p>"
},
"Marchand (colporteur/négociant)": {
"name": "Marchand (colporteur/négociant)",
"description": "<h1>Marchand (colporteur/négociant)</h1><p>Les marchands ne sont pas des boutiquiers, mais des négociants qui voyagent au loin, à la recherche de produits nouveaux et exotiques à acheter et à vendre. Les personnages marchands ont donc acquis de nombreux savoirs utiles. Ils maîtrisent lart de la négociation, savent estimer les marchandises, ont de bonnes connaissances géographiques, et sont bien renseignés sur des villes et des régions lointaines ainsi que sur les institutions qui gouvernent les cités et les guildes. Si vous recherchez un objet rare ou inhabituel, parlez-en dabord à un marchand !</p><h2>Attributs</h2><p>les marchands ont besoin dun esprit vif et dun certain degré daura pour marchander et faire des affaires.</p><h2>À laventure</h2><p>une vie itinérante est forcément une vie daventure, que le marchand la recherche ou pas. Les marchands sont toujours en quête de nouvelles contrées et de nouveaux marchés, ce qui les entraîne dans de nombreuses aventures.</p><h2>Combat</h2><p>la carrière de marchand nétant pas une carrière martiale, elle ne sera presque jamais utile à un personnage engagé au combat.</p><h2>Idées dAvantages</h2><p>beau parleur, fortuné, perspicace, savant.</p><h2>Idées de Désavantages</h2><p>cupide, lent à la détente, non-combattant, obsession.</p>"
},
"Marin (matelot/pirate)": {
"name": "Marin (matelot/pirate)",
"description": "<h1>Marin (matelot/pirate)</h1><p>Les marins sont les combattants et les aventuriers des mers. Ils savent manœuvrer une embarcation, sorienter aux étoiles, ont de bonnes connaissances sur le milieu marin ainsi que sur les ports et les îles côtières.</p><p>Les matelots expérimentés sont toujours recherchés, et il est rare quun capitaine refuse daccepter à son bord un matelot prêt à payer son voyage en participant à la manœuvre.</p><p>Les pirates sont les brigands des mers. Ils parlent leur propre version du lémurien, quon appelle largot des mers.</p><h2>Attributs</h2><p>les marins ont besoin dune bonne vigueur et dune bonne agilité.</p><h2>À laventure</h2><p>la vie en mer ne manque pas daventures. Les monstres marins, les batailles navales, les ports exotiques remplis de gens étranges et les cartes au trésor sont le pain quotidien des loups de mer.</p><h2>Combat</h2><p>un marin pourra recevoir un bonus ponctuel lors daffrontements en mer, et peut-être aussi contre des créatures marines quil aurait déjà combattues ou dont il aurait entendu parler.</p><h2>Idées dAvantages</h2><p>amis dans la pègre, athlète, bagarreur, baudrier de guerre, cri de guerre, discret, doigts de fée, fêtard, pied marin, vigilant, vue perçante.</p><h2>Idées de Désavantages</h2><p>borgne/oreille coupée, cupide, fanfaron, illettré, impétueux, lubrique, manchot/unijambiste, méfiance envers la sorcellerie, phobie, signe distinctif, soiffard.</p>"
},
"Médecin (guérisseur/rebouteux)": {
"name": "Médecin (guérisseur/rebouteux)",
"description": "<h1>Médecin (guérisseur/rebouteux)</h1><p>Les médecins et tous ceux capables de soigner les personnes blessées ou malades jouissent dun grand respect au sein des villes de Lémurie. La population sait reconnaître limportance de leur mission et létendue de leur savoir, même si les petites gens nont pas forcément les moyens de soffrir les services dun vrai médecin et sen remettent plutôt à des charlatans.</p><p>Les médecins prescrivent des potions et des onguents, savent réduire les fractures, recoudre les plaies et aident à mettre les enfants au monde. Ils connaissent les maladies et leurs remèdes, savent administrer les premiers soins, et les plantes médicinales nont plus de secret pour eux. Souvent, ils possèdent un petit jardin où ils cultivent des herbes aux vertus curatives puissantes. Certains médecins ont des connaissances de base en alchimie (cf. chapitre 6), et tous se doivent bien sûr de savoir lire et écrire.</p><h2>Attributs</h2><p>lesprit est lattribut essentiel pour un médecin.</p><h2>À laventure</h2><p>la carrière de médecin n est pas en elle-même propice à une vie daventure, mais il arrive que des médecins soient recrutés pour accompagner une expédition maritime ou une armée en marche.</p><h2>Combat</h2><p>au combat, la carrière de médecin n est pas dun grand secours. Ce n est quaprès le combat quelle révèle tout son intérêt !</p><h2>Idées dAvantages</h2><p>bibliothèque savante, doigts de fée, érudit, mains guérisseuses, résistant aux poisons, santé de fer.</p><h2>Idées de Désavantages</h2><p>foie jaune, gars de la ville, incapable de mentir, non-combattant, soiffard.</p>"
},
"Mendiant (vagabond/clochard)": {
"name": "Mendiant (vagabond/clochard)",
"description": "<h1>Mendiant (vagabond/clochard)</h1><p>Les vagabonds errent dun lieu à lautre avec pour seul objectif de réussir à survivre. Ils peuvent à loccasion travailler ici ou là, vendre quelques babioles sorties de leur besace, ou simplement mendier dans les rues quand les temps sont vraiment durs. En dernier recours, certains sadonnent à de petits larcins pour se remplir le ventre.</p><h2>Attributs</h2><p>aucun attribut n est plus important que les autres pour un mendiant. Être affligé dune difformité, dun handicap, ou dune maladie repoussante (ou simplement le simuler) peut cependant se révéler utile quand il sagit de faire appel à la compassion des passants.</p><h2>À laventure</h2><p>la vie dun vagabond implique des rencontres en tous genres sur les routes, ce qui peut mener à laventure sans même la rechercher.</p><h2>Combat</h2><p>en général, un mendiant na rien dun combattant. Cette carrière ne pourra donc se révéler utile dans le cadre dun combat, sauf quand le personnage fait de son mieux pour ne pas être remarqué.</p><h2>Idées dAvantages</h2><p>amis dans la pègre, discret, doigts de fée, gamin des rues.</p><h2>Idées de Désavantages</h2><p>addiction, borgne/ oreille coupée, chétif, gars de la ville, illettré, indigne de confiance, malédiction de Morgazzon, manchot/ unijambiste, maudit, non-combattant, signe distinctif, soiffard, souffreteux.</p>"
},
"Ménestrel (barde/poète)": {
"name": "Ménestrel (barde/poète)",
"description": "<h1>Ménestrel (barde/poète)</h1><p>Artistes itinérants, les ménestrels chantent des chansons, jouent de la musique, récitent des poèmes, racontent des fables et des légendes. Ils inventent souvent leurs propres contes ou apprennent des histoires fameuses auxquelles ils ne manquent pas dapporter leur touche personnelle. Certains ménestrels n errent pas de ville en ville pour exercer leur art, mais sont attachés au service de quelque noble et fortuné personnage qui les garde auprès de lui pour le divertir.</p><p>Ces artistes sont toujours heureux de jouer pour un large public et de récolter quelques piécettes pour leur effort. Certains ménestrels étendent leurs talents au jonglage et à la prestidigitation, ce qui peut être une bonne couverture pour un personnage qui est aussi voleur. Comme ils voyagent beaucoup et sont aussi doués pour écouter que pour captiver les foules par leurs récits, ils connaissent de nombreuses légendes anciennes et ont une bonne connaissance du monde et des événements qui agitent les cités. Les ménestrels sont souvent de grands séducteurs ; ils ont un don certain pour savoir trouver les mots qui toucheront le cœur des belles.</p><h2>Attributs</h2><p>la carrière de ménestrel exige un bon score daura, ainsi quune bonne dose dagilité et un esprit aiguisé.</p><h2>À laventure</h2><p>les ménestrels sont itinérants, ce qui les expose forcément aux dangers de la route. Certains choisissent daccompagner des soldats et des aventuriers afin de connaître eux-mêmes lexcitation de laventure et de créer des récits épiques basés sur ce quils auront vécu.</p><h2>Combat</h2><p>la carrière de ménestrel n est pas à la base une carrière martiale, et celle-ci naccordera de bonus au combat que dans de rares situations. Un tour de passe-passe ou une diversion pourra éventuellement permettre à un ménestrel de surprendre son adversaire, ou plus probablement lui offrir une chance de prendre ses jambes à son cou.</p><h2>Idées dAvantages</h2><p>artiste, attirant, beau parleur, érudit, fêtard, inspirateur, maître du déguisement, ouïe fine, outillage (instrument de musique), perspicace.</p><h2>Idées de Désavantages</h2><p>arrogant, chétif, lubrique, non-combattant, soiffard.</p>"
},
"Mercenaire (brigand/guerrier)": {
"name": "Mercenaire (brigand/guerrier)",
"description": "<h1>Mercenaire (brigand/guerrier)</h1><p>Les mercenaires sont des guerriers qui louent leurs services au plus offrant. Certains sassemblent en troupes sous lautorité dun chef respecté, tandis que dautres voyagent seuls ou en petits groupes à la recherche dun employeur.</p><p>Ces petites bandes se tournent fréquemment vers le brigandage quand elles se retrouvent trop longtemps sans engagement. Toutes les cités de Lémurie ont déjà fait appel à des mercenaires pour mener leurs guerres et la profession a encore de beaux jours devant elle. Rudes guerriers, bons cavaliers pour certains, les mercenaires savent se montrer intimidants, entretenir leurs armes et leur équipement et se débrouiller pour vivre à la dure en pleine nature. En ville, ils fréquentent assidûment tavernes et tripots.</p><h2>Attributs</h2><p>pour sadonner au métier des armes, les mercenaires doivent posséder de bonnes prédispositions en vigueur et en agilité.</p><h2>À laventure</h2><p>par nature, les mercenaires sont des vagabonds qui parcourent la Lémurie en quête dun nouvel engagement. Même en temps de paix, ils trouvent à semployer pour escorter les caravanes marchandes, participer à des expéditions de chasseurs de trésor, ou servir de gardes du corps pour la noblesse.</p><h2>Combat</h2><p>les mercenaires sont connus pour se battre dautant mieux que la paie est bonne, et pour mettre peu de cœur à louvrage (voire tourner casaque) quand ils sont mal payés ou abusés. Au combat, un mercenaire pourra recevoir un bonus de carrière ponctuel si sa paie est particulièrement satisfaisante.</p><h2>Idées dAvantages</h2><p>arme favorite, bagarreur, baudrier de guerre, combat à laveugle, cri de guerre, dur à cuire, fêtard, inspirateur, né en selle, récupération rapide, vigilant.</p><h2>Idées de Désavantages</h2><p>cupide, fanfaron, impétueux, lubrique.</p>"
},
"Noble (aristocrate/courtisan)": {
"name": "Noble (aristocrate/courtisan)",
"description": "<h1>Noble (aristocrate/courtisan)</h1><p>Ces personnages, qui portent généralement un titre de noblesse (sans forcément le mériter), jouissent dune certaine autorité sur les gens du peuple, les paysans et les esclaves. Ils possèdent souvent de belles propriétés en ville ou des villas dans la campagne environnante, sont en mesure dobtenir des prêts monétaires, disposent de contacts haut placés, connaissent les règles de létiquette et savent shabiller avec élégance. La vie de courtisan développe également leurs talents pour ce qui est du mensonge, du chantage et de lintimidation.</p><h2>Attributs</h2><p>les nobles ont besoin dune aura forte ainsi que dun esprit vif, même si, en fin de compte, cest bien souvent la richesse qui dicte sa loi.</p><h2>À laventure</h2><p>les nobles nont pas de goût particulier pour laventure, même sil arrive quils financent des expéditions lointaines à la recherche dartefacts anciens ou montent des opérations de négoce. Certains nobles audacieux se joignent parfois à ces expéditions afin den assumer eux-mêmes la direction.</p><h2>Combat</h2><p>une carrière de noble apportera rarement un avantage au combat. Toutefois, des paysans ou des gens du bas peuple pourront, selon les circonstances, manifester des réticences à sen prendre à un de leurs supérieurs. Les nobles se retrouvent souvent comme commandants à la tête darmées, quils en aient les qualités ou pas.</p><h2>Idées dAvantages</h2><p>amis haut placés, attirant, bien né, fortuné, inspirateur, né en selle.</p><h2>Idées de Désavantages</h2><p>addiction, arrogant, cupide, fanfaron, gars de la ville, impétueux, lubrique.</p>"
},
"Ouvrier (docker, manœuvre)": {
"name": "Ouvrier (docker, manœuvre)",
"description": "<h1>Ouvrier (docker, manœuvre)</h1><p>Les ouvriers sont les travailleurs manuels, ceux qui montent les palissades, creusent les fossés, construisent les maisons, édifient les remparts et les temples, chargent et déchargent les chariots et les bateaux. Ils se déplacent souvent au gré des emplois, dont beaucoup sont saisonniers ou temporaires. Les ouvriers sont habitués à travailler dur et à porter de lourdes charges ; ils savent aussi tenir lalcool et sy entendent en intimidation. Certaines des tâches queffectuent les ouvriers sont parfois confiées à des esclaves.</p><h2>Attributs</h2><p>une forte vigueur est utile aux travailleurs de force que sont les ouvriers.</p><h2>À laventure</h2><p>le labeur des ouvriers est monotone et pas vraiment propice à laventure. Un personnage qui possède cette carrière na pas dû lexercer très longtemps.</p><h2>Combat</h2><p>les ouvriers ne sont pas vraiment des combattants, même sils ont tendance à régler les disputes à coups de poing. Ils peuvent recevoir un bonus lors dune bagarre, notamment quand il sagit de saisir ou détrangler leur adversaire.</p><h2>Idées dAvantages</h2><p>bagarreur, colosse, dur à cuire, fêtard, intimidant, outillage, résistant aux poisons, vigueur céruléenne.</p><h2>Idées de Désavantages</h2><p>dur doreille, illettré, impétueux, incapable de mentir, inquiétant, lubrique, pataud, phobie, soiffard, taciturne.</p>"
},
"Pilote des airs": {
"name": "Pilote des airs",
"description": "<h1>Pilote des airs</h1><p>Les pilotes des airs représentent lélite des combattants de Satarla. Formés au pilotage et à lentretien des nefs volantes, ce sont aussi des navigateurs et des observateurs expérimentés qui remplissent de nombreuses missions en tant quéclaireurs, explorateurs ou messagers. Ce sont généralement danciens soldats, souvent dorigine noble.</p><h2>Attributs</h2><p>esprit et agilité sont très utiles à un pilote des airs, ainsi que vigueur, dans une moindre mesure.</p><h2>À laventure</h2><p>un pilote des airs est par essence un casse-cou et quiconque est passé par cette carrière manifeste forcément un goût pour laventure.</p><h2>Combat</h2><p>un pilote des airs aura toujours un avantage au combat contre un adversaire peu familier des nefs volantes, à condition bien sûr que laffrontement ait lieu en plein ciel.</p><h2>Idées dAvantages</h2><p>amis haut placés, arme favorite, athlète, bien né, fortuné, inspirateur, marqué par les dieux, vue perçante.</p><h2>Idées de Désavantages</h2><p>arrogant, fanfaron, gars de la ville, impétueux.</p>"
},
"Prêtre (druide/chaman)": {
"name": "Prêtre (druide/chaman)",
"description": "<h1>Prêtre (druide/chaman)</h1><p>Au sein des temples que lon rencontre dans toutes les grandes cités de Lémurie, les prêtres dirigent le culte rendu aux dieux et sont les interprètes de la volonté divine. Ce sont des lettrés instruits en théologie, en savoir antique et en langues anciennes, en astrologie et en astronomie. Leur fonction leur confère un statut particulier au sein de la cité, et ils jouissent dune forte influence sur les affaires politiques, mais aussi sur larmée et la population en général.</p><p>Les druides rendent un culte aux Seigneurs Sombres et sont moins « fréquentables », notamment du fait quils pratiquent les sacrifices humains.</p><p>Vous trouverez davantage dinformations sur les prêtres au chapitre 6.</p><h2>Attributs</h2><p>les prêtres ont surtout besoin dun esprit aiguisé, mais les meilleurs dentre eux ont également laura nécessaire pour attirer les fidèles en nombre.</p><h2>À laventure</h2><p>certains prêtres mènent une vie particulièrement aventureuse, toujours en quête de savoirs anciens ou de reliques liées à leurs dieux. Dautres préfèrent une vie plus paisible et ne quittent que rarement la sécurité de leur temple.</p><h2>Combat</h2><p>une carrière de prêtre napporte aucun avantage au combat, si ce nest éventuellement lors dun affrontement face à des adversaires superstitieux qui hésiteront à sen prendre à un serviteur des dieux.</p><h2>Idées dAvantages</h2><p>amis haut placés, beau parleur, érudit, inspirateur, marqué par les dieux, perspicace, résistant à la magie, savant, sentir la magie.</p><h2>Idées de Désavantages</h2><p>addiction, arrogant, fanatique, foie jaune, malédiction de Morgazzon, méfiance envers la sorcellerie, non-combattant, obsession.</p><h2>Langues</h2><p>les prêtres et les druides doivent apprendre le démonique sils veulent pouvoir utiliser les puissantes créations magiques et alchimiques de lantique race des Rois-Sorciers. Ce langage est particulièrement ardu et ses formes orale et écrite exigent dêtre apprises séparément.</p>"
},
"Scribe (érudit/copiste)": {
"name": "Scribe (érudit/copiste)",
"description": "<h1>Scribe (érudit/copiste)</h1><p>Savants et pédagogues, les scribes sont pourvus dune solide érudition qui couvre une large variété de sujets. Ils sont mathématiciens, cartographes, astronomes, linguistes, historiens et philosophes. Certains se chargent plus spécifiquement de la tâche fastidieuse de copier les manuscrits anciens. Les scribes sont aussi des débatteurs de talent, habitués aux discussions passionnées entre beaux esprits. Il va sans dire que les scribes savent lire et écrire.</p><h2>Attributs</h2><p>lesprit est lattribut essentiel pour un scribe.</p><h2>À laventure</h2><p>les scribes font dordinaire de piètres aventuriers, mais il peut être très utile pour un groupe davoir avec lui un personnage aussi érudit.</p><h2>Combat</h2><p>même si les scribes aiment à rappeler que « la plume est plus forte que lépée », il y a peu de situations où cette carrière pourra être dune quelconque utilité au combat.</p><h2>Idées dAvantages</h2><p>bibliothèque savante, érudit, savant.</p><h2>Idées de Désavantages</h2><p>chétif, foie jaune, gars de la ville, incapable de mentir, non-combattant, obsession.</p>"
},
"Soldat (garde/milicien)": {
"name": "Soldat (garde/milicien)",
"description": "<h1>Soldat (garde/milicien)</h1><p>Les soldats sont les combattants professionnels payés pour garder les remparts dune cité ou constituer les armées des rois. Stoïques, habitués à obéir aux ordres, ce ne sont pas les plus imaginatifs des guerriers. Les soldats, qui peuvent être aussi de bons cavaliers, savent se montrer intimidants et jouissent dune certaine autorité, surtout quand ils sont officiers. Ils connaissent bien la cité quils servent, ainsi que la rude vie des camps militaires.</p><h2>Attributs</h2><p>la vigueur est normalement lattribut essentiel pour un soldat, mais les archers et les cavaliers auront besoin dune bonne agilité. Les officiers doivent avoir de laura pour diriger leurs hommes et un esprit aiguisé pour établir de solides plans de bataille.</p><h2>À laventure</h2><p>la plupart des soldats manquent dinspiration et de fantaisie pour faire de bons aventuriers. En revanche, le temps passé à larmée permet à un personnage daffûter ses talents martiaux en attendant de repartir à laventure.</p><h2>Combat</h2><p>les soldats pourront parfois bénéficier dun bonus de carrière au combat, notamment sils se battent selon une tactique établie, au sein dune unité bien commandée.</p><h2>Idées dAvantages</h2><p>arme favorite, athlète, bagarreur, dur à cuire, fêtard, inspirateur, né en selle, récupération rapide.</p><h2>Idées de Désavantages</h2><p>crédule, dur doreille, fanfaron, lubrique, soiffard, taciturne.</p>"
},
"Sorcier (magicien/enchanteur)": {
"name": "Sorcier (magicien/enchanteur)",
"description": "<h1>Sorcier (magicien/enchanteur)</h1><p>Les sorciers sont à la fois craints et respectés. Personne ne les fréquente volontiers à moins dune absolue nécessité car, dans leur grande majorité, ce sont des êtres immoraux et déséquilibrés, quand ils ne sont pas totalement déments et malfaisants. Les sorciers vivent généralement seuls, uniquement entourés de quelques serviteurs ou dun apprenti. Ils sadonnent à létude de sciences ésotériques comme lastrologie, lastronomie et la démonologie, recherchent fiévreusement dantiques manuscrits interdits renfermant un savoir occulte, quand ils ne concluent pas des pactes avec les démons afin dapprendre des mots de pouvoir capables de façonner le tissu de la réalité.</p><p>Beaucoup sont originaires de Zalut, la cité des magiciens, mais on trouve des sorciers de moindre envergure dans presque toutes les grandes cités de Lémurie (à exception de Tyrus, où ils sont proscrits). Vous trouverez davantage dinformations sur les sorciers au chapitre 6.</p><h2>Attributs</h2><p>les sorciers ont besoin dun esprit fort, à la fois pour mener leurs études et pour être en mesure de lancer des sorts puissants.</p><h2>À laventure</h2><p>les sorciers ne font pas de bons aventuriers, préférant déléguer ce genre de choses à leurs sbires et à leurs serviteurs. Mais il arrive parfois quils quittent leur antre pour prendre part eux-mêmes à une expédition dont ils espèrent quelque gain mystique dimportance.</p><h2>Combat</h2><p>rares sont les circonstances où le fait dêtre sorcier offre un avantage durant un combat utilisant des armes ordinaires. Mais cela importe peu, car les sorciers talentueux nont pas besoin de savoir manier une épée pour venir à bout dun adversaire.</p><h2>Carrière dangereuse</h2><p>la sorcellerie est un moyen rapide dobtenir du pouvoir, mais elle a un prix. Pour chaque rang de cette carrière au-delà du premier, vous devez choisir un désavantage supplémentaire (cf. chapitre 5). Cela sapplique également si vous choisissez daugmenter votre rang de sorcier plus tard dans le jeu, par lutilisation de points dexpérience.</p><h2>Idées dAvantages</h2><p>bibliothèque savante, érudit, magie des Rois-Sorciers, perspicace, pouvoir du Néant, résistant à la magie, savant.</p><h2>Idées de Désavantages</h2><p>addiction, arrogant, distrait, indigne de confiance, inquiétant, malédiction de Morgazzon, mauvaise réputation, non-combattant, obsession, phobie, signe distinctif, souffreteux.</p><h2>Langues</h2><p>les sorciers doivent apprendre le démonique sils veulent pouvoir utiliser les puissantes créations magiques et alchimiques de lantique race des Rois-Sorciers. Ce langage est particulièrement ardu et ses formes orale et écrite exigent dêtre apprises séparément.</p>"
},
"Tentatrice (courtisane/serveuse)": {
"name": "Tentatrice (courtisane/serveuse)",
"description": "<h1>Tentatrice (courtisane/serveuse)</h1><p>Certaines personnes ont élevé la séduction au rang dart. La tentatrice peut être la maîtresse dun noble, une prostituée, ou une simple serveuse de taverne (qui, peut-être, fait les poches des clients distraits par ses charmes), mais dans tous les cas elle sait utiliser son pouvoir sur les hommes pour arriver à ses fins. Elle est aussi dangereuse quelle est belle, car cest le genre de femme pour laquelle les hommes se battent et les guerres éclatent. Une tentatrice est passée maîtresse dans lart de la manipulation et de la séduction.</p><p>N.B. Barbarians of Lemuria étant conçu pour évoquer les thèmes et lambiance des histoires classiques de Sword & Sorcery, cette carrière est présentée au féminin, mais peut très bien être prise par un personnage masculin, selon les circonstances.</p><h2>Attributs</h2><p>laura est lattribut le plus important pour une tentatrice. Lagilité et lesprit sont également utiles.</p><h2>À laventure</h2><p>les tentatrices ne sont dhabitude pas très aventureuses (du moins en dehors dun lit !), et il faudra donc que dautres carrières viennent expliquer ce choix peu probable dune vie itinérante à courir le danger.</p><h2>Combat</h2><p>cette carrière est rarement utile au combat, encore quune tentatrice puisse utiliser son rang dans cette carrière pour distraire des gardes, par exemple.</p><h2>Idées dAvantages</h2><p>amis dans la pègre, amis haut placés, attirant, beau parleur, discret, doigts de fée, fêtard, inspirateur.</p><h2>Idées de Désavantages</h2><p>chétif, gars de la ville, impétueux, lent à la détente, lubrique, noncombattant.</p>"
},
"Voleur (filou/crapule)": {
"name": "Voleur (filou/crapule)",
"description": "<h1>Voleur (filou/crapule)</h1><p>Votre personnage est tombé dans le crime, à moins quil nait commencé sa vie comme gamin des rues obligé de voler pour survivre. Quoi quil en soit, il possède certains talents, que beaucoup jugent peu recommandables. Les voleurs savent grimper aux murs et crocheter les serrures, se faufiler discrètement, faire les poches des passants, monter des arnaques ou tricher aux jeux de hasard. Ils savent aussi se renseigner sur ce qui se passe en ville et appartiennent parfois à une « guilde », une organisation qui réunit les criminels de la cité.</p><h2>Attributs</h2><p>les voleurs ont besoin dune bonne agilité, mais aussi dun esprit aiguisé.</p><h2>À laventure</h2><p>les bons voleurs font des recrues de choix pour les aventuriers prévoyant dexplorer des temples ou des tombeaux renfermant des trésors protégés par des pièges et de solides serrures.</p><h2>Combat</h2><p>en général, les voleurs cherchent plutôt à éviter le combat. Ils peuvent bénéficier dun bonus de carrière quand ils cherchent à prendre la poudre descampette, surtout face aux gardes de la cité.</p><h2>Idées dAvantages</h2><p>amis dans la pègre, discret, doigts de fée, fêtard, gamin des rues, ouïe fine, outillage (outils de voleur), roi de lévasion, vigilant, vision nocturne.</p><h2>Idées de Désavantages</h2><p>cupide, gars de la ville, illettré, indigne de confiance, mauvaise réputation, poltron, souffreteux, traqué.</p>"
}
}
}

View File

@ -0,0 +1,25 @@
{
"label": "Effets - Exemples",
"mapping": {
"description": "system.description"
},
"entries": {
"Agilité -1": {
"name": "Agilité -1",
"description": ""
},
"Aura -1": {
"name": "Aura -1",
"description": ""
},
"Esprit -1": {
"name": "Esprit -1",
"description": ""
},
"Vigueur -1": {
"name": "Vigueur -1",
"description": ""
}
}
}

View File

@ -0,0 +1,181 @@
{
"label": "Equipement",
"mapping": {
"description": "system.description"
},
"entries": {
"Aumonière": {
"name": "Aumonière",
"description": ""
},
"Bague": {
"name": "Bague",
"description": ""
},
"Bottes": {
"name": "Bottes",
"description": ""
},
"Bougie": {
"name": "Bougie",
"description": ""
},
"Bourse": {
"name": "Bourse",
"description": ""
},
"Cape de Marchand": {
"name": "Cape de Marchand",
"description": ""
},
"Capuchon": {
"name": "Capuchon",
"description": ""
},
"Carquois": {
"name": "Carquois",
"description": ""
},
"Ceinture": {
"name": "Ceinture",
"description": ""
},
"Chapeau": {
"name": "Chapeau",
"description": ""
},
"Chope": {
"name": "Chope",
"description": ""
},
"Collier": {
"name": "Collier",
"description": ""
},
"Corde + Grappin": {
"name": "Corde + Grappin",
"description": ""
},
"Cuir Brut": {
"name": "Cuir Brut",
"description": ""
},
"Dés à Jouer": {
"name": "Dés à Jouer",
"description": ""
},
"Fourrure Brute": {
"name": "Fourrure Brute",
"description": ""
},
"Gants": {
"name": "Gants",
"description": ""
},
"Gourde": {
"name": "Gourde",
"description": ""
},
"Instrument de Musique": {
"name": "Instrument de Musique",
"description": ""
},
"Lanterne + Huile + Silex": {
"name": "Lanterne + Huile + Silex",
"description": ""
},
"Lingot d'Acier": {
"name": "Lingot d'Acier",
"description": ""
},
"Lingot D'Or": {
"name": "Lingot D'Or",
"description": ""
},
"Livre": {
"name": "Livre",
"description": ""
},
"Manteau": {
"name": "Manteau",
"description": ""
},
"Materiel de Pêche": {
"name": "Materiel de Pêche",
"description": ""
},
"Mortier": {
"name": "Mortier",
"description": ""
},
"Nécessaire d'Alchimie": {
"name": "Nécessaire d'Alchimie",
"description": ""
},
"Nécessaire D'Ecriture": {
"name": "Nécessaire D'Ecriture",
"description": ""
},
"Nécessaire de Forge": {
"name": "Nécessaire de Forge",
"description": ""
},
"Nécessaire de Survie": {
"name": "Nécessaire de Survie",
"description": ""
},
"Outils de Crochetage": {
"name": "Outils de Crochetage",
"description": ""
},
"Outils de Menuiserie": {
"name": "Outils de Menuiserie",
"description": ""
},
"Outre": {
"name": "Outre",
"description": ""
},
"Pantalon": {
"name": "Pantalon",
"description": ""
},
"Parchemins": {
"name": "Parchemins",
"description": ""
},
"Petit Chaudron": {
"name": "Petit Chaudron",
"description": ""
},
"Petit Coffre": {
"name": "Petit Coffre",
"description": ""
},
"Piege": {
"name": "Piege",
"description": ""
},
"Pierre Precieuse": {
"name": "Pierre Precieuse",
"description": ""
},
"Ration de Voyage": {
"name": "Ration de Voyage",
"description": ""
},
"Sac": {
"name": "Sac",
"description": ""
},
"Sac a Dos": {
"name": "Sac a Dos",
"description": ""
},
"Torche": {
"name": "Torche",
"description": ""
}
}
}

View File

@ -0,0 +1,129 @@
{
"label": "Options de Combat",
"mapping": {
"description": "system.description"
},
"entries": {
"LOeil du Chasseur (Viser)": {
"name": "LOeil du Chasseur (Viser)",
"description": "<p>Armes de jet ou de tir uniquement. Vous passez le round &agrave; viser. Vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 &agrave; votre prochain jet de tir ou de lancer.</p>"
},
"Loeil du Mercenaire (Observer)": {
"name": "Loeil du Mercenaire (Observer)",
"description": "<p>Vous observez attentivement l&rsquo;un des adversaires ou un groupe d&rsquo;adversaires similaires. Vous ne<br>portez pas d&rsquo;attaque.</p>\n<p>Si vous r&eacute;ussissez un jet d&rsquo;Esprit + Carri&egrave;re &nbsp;guerri&egrave;re (mercenaire, soldat, etc.) en observant l&rsquo;adversaire, vous pouvez donner un bonus de +2 &agrave; l&rsquo;attaque ou &agrave; la d&eacute;fense &agrave; l&rsquo;un de vos alli&eacute; contre ce m&ecirc;me adversaire pour sa prochaine action de ce type. Une seule assistance peut &ecirc;tre obtenue pour un m&ecirc;me adversaire.</p>"
},
"La Corde de Tyrus (Arc de Tyrus)": {
"name": "La Corde de Tyrus (Arc de Tyrus)",
"description": "<p>Uniquement avec un arc long de Tyrus. Vous tendez la corde si fort que votre fl&egrave;che porte plus loin.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle r&eacute;ussit, vous doublez la distance de tir de l&rsquo;Arc (44m au lieu de 22m).</p>"
},
"La Danseuse (Combat à Deux Armes - Défensif)": {
"name": "La Danseuse (Combat à Deux Armes - Défensif)",
"description": "<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res&nbsp;ou moyennes.</p>\n<p>Vous attaquez avec une arme et parez avec l&rsquo;autre. Vous consid&eacute;rez l&rsquo;arme de parade comme l&rsquo;&eacute;quivalent d&rsquo;un petit bouclier (+1 en d&eacute;fense contre une attaque), mais vous subissez un malus de -1 sur votre jet d&rsquo;attaque avec votre autre arme.</p>"
},
"La Feinte du Druide (Attaque au Défaut d'armure)": {
"name": "La Feinte du Druide (Attaque au Défaut d'armure)",
"description": "<p>Vous visez une zone du corps non prot&eacute;g&eacute;e ou&nbsp;un point faible de l&rsquo;armure de votre adversaire.</p>\n<p>Appliquez la valeur de protection fixe de l&rsquo;armure comme malus &agrave; votre jet d&rsquo;attaque (-1 pour une armure l&eacute;g&egrave;re, -2 pour une armure moyenne et -3 pour une armure lourde). Si votre attaque passe malgr&eacute; ce malus, les d&eacute;g&acirc;ts de votre coup ignorent la protection de l&rsquo;armure.</p>\n<p>Si le MJ l&rsquo;accepte, cette option de combat pourra &eacute;galement permettre de trouver le d&eacute;faut de l&rsquo;armure naturelle d&rsquo;une cr&eacute;ature.</p>"
},
"La Folie de Dyr (Occuper)": {
"name": "La Folie de Dyr (Occuper)",
"description": "<p>Vous faites tournoyer votre arme dans tout les sens, pour faire reculer votre adversaire.</p>\n<p>Votre attaque re&ccedil;oit un malus suppl&eacute;mentaire de -1 et n&rsquo;occasionne pas de d&eacute;g&acirc;ts. En cas<br>de succ&egrave;s, votre adversaire ne peut pas attaquer ce round. Uniquement sur des adversaires au maximum de de taille sup&eacute;rieure d&rsquo;un cran &agrave; la v&ocirc;tre.</p>"
},
"La Folie du Gladiateur (Attaque Intrépide)": {
"name": "La Folie du Gladiateur (Attaque Intrépide)",
"description": "<p>Vous attaquez avec la plus extr&ecirc;me t&eacute;m&eacute;rit&eacute;.</p>\n<p>Vous ne b&eacute;n&eacute;ficiez pas de l&rsquo;&eacute;ventuel bonus d&rsquo;un&nbsp;bouclier ou d&rsquo;une arme secondaire de parade et subissez un malus de -2 &agrave; la d&eacute;fense. En revanche,&nbsp;vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 au jet d&rsquo;attaque.</p>"
},
"La Force de Grondil (Frappe Brutale)": {
"name": "La Force de Grondil (Frappe Brutale)",
"description": "<p>Vous placez une attaque brutale, sans finesse, mais avec toute votre force. Uniquement avec des armes moyenne ou plus (minimum d6 d&eacute;g&acirc;ts).</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle r&eacute;ussit, vous pouvez ajouter la moiti&eacute; de votre Vigueur pour le calcul des d&eacute;g&acirc;ts (minimum 1). Ce bonus vient en plus du bonus de Vigueur de base d&eacute;j&agrave; applicable.</p>"
},
"La Frappe Lémurienne (Attaque Standard)": {
"name": "La Frappe Lémurienne (Attaque Standard)",
"description": "<p>Vous portez une attaque &agrave; votre adversaire, avec votre arme. Au contact ou &agrave; distance.</p>"
},
"La Fureur de Charkond (Intimider)": {
"name": "La Fureur de Charkond (Intimider)",
"description": "<p>Vous faites une man&oelig;uvre physique dans l&rsquo;objectif d&rsquo;impressionner votre adversaire en lieu et place de votre attaque.</p>\n<p>Si vous r&eacute;ussissez un test de Vigueur+M&ecirc;l&eacute;e, avec l&rsquo;Esprit de votre cible en malus, elle subit un malus de -2 sur tout ses tests d&rsquo;attaque pour le reste du round. Ne fonctionne que sur un adversaire sur lequel l&rsquo;Intimidation est applicable, donc en g&eacute;n&eacute;ral ne fonctionne pas sur les cr&eacute;atures.</p>"
},
"La Main dAfyra (Se Reposer)": {
"name": "La Main dAfyra (Se Reposer)",
"description": "<p>Vous restez au contact de votre adversaire, mais vous vous concentrez sur vous-m&ecirc;me. Vous<br>ne pouvez pas attaquer ce round.</p>\n<p>Si vous r&eacute;ussissez un jet de Vigueur, vous r&eacute;cup&eacute;rez 2 Points de Vitalit&eacute;, 4 sur un succ&egrave;s H&eacute;ro&iuml;que. Ces points ne peuvent &ecirc;tre r&eacute;cup&eacute;r&eacute;s que si ils ont &eacute;t&eacute; perdus lors du combat en cours.</p>"
},
"La Parade de lErudit (Défense Totale)": {
"name": "La Parade de lErudit (Défense Totale)",
"description": "<p>Vous consacrez votre round &agrave; esquiver, parer et vous prot&eacute;ger des coups. Vous n&rsquo; effectuez pas d&rsquo;attaque durant le round, mais b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 en d&eacute;fense, qui s&rsquo;ajoute &eacute;ventuellement &agrave; celui que pourrait vous apporter un bouclier ou une arme secondaire de parade.</p>"
},
"La Passe de Charkond (Feinte)": {
"name": "La Passe de Charkond (Feinte)",
"description": "<p>Vous placez une botte sp&eacute;ciale, pour tromper et profiter de la d&eacute;fense de votre adversaire. Uniquement possible avec un dague ou une arme de type &eacute;p&eacute;e (sabre, cimeterre, etc.).</p>\n<p>Si vous r&eacute;ussissez un jet d&rsquo;Esprit +Carri&egrave;re guerri&egrave;re (mercenaire, soldat, etc.) en plus de votre<br>attaque, la d&eacute;fense de votre adversaire s&rsquo;ajoute &agrave; vos d&eacute;g&acirc;ts.</p>"
},
"La Passe de lAssassin (Avantage)": {
"name": "La Passe de lAssassin (Avantage)",
"description": "<p>Vous vous placez de mani&egrave;re &agrave; obtenir &nbsp;une &nbsp;position &nbsp;plus avantageuse pour portez vos attaques.</p>\n<p>En plus de votre attaque normale, vous devez r&eacute;ussir un jet de R&eacute;action (Esprit+Initiative). Sur une<br>r&eacute;ussite, vous b&eacute;n&eacute;ficiez d&rsquo;un d&eacute; bonus pour votre prochaine attaque. Si vous renoncez &agrave; votre attaque, vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 pour le jet de R&eacute;action. Sur un &eacute;chec, c&rsquo;est votre adversaire qui b&eacute;n&eacute;ficie d&rsquo;un d&eacute; bonus pour sa prochaine attaque.</p>"
},
"La Passe du Khastok": {
"name": "La Passe du Khastok",
"description": "<p>Uniquement avec un Khastok de Malakut. Vous fauchez les jambes (ou les membres inf&eacute;rieurs) de<br>votre adversaire.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle occasionne des d&eacute;g&acirc;ts, la cible doit r&eacute;ussir un test d&rsquo;Agilit&eacute;, avec votre score de M&ecirc;l&eacute;e en malus ou tomber au sol.</p>"
},
"La pose de lEsclave (Posture Défensive)": {
"name": "La pose de lEsclave (Posture Défensive)",
"description": "<p>Vous choisissez d&rsquo;adopter une attitude prudente, en restant toujours pr&ecirc;t &agrave; parer ou &agrave; esquiver l&rsquo;attaque de votre adversaire. Combattre en posture d&eacute;fensive vous conf&egrave;re un bonus de +1 en d&eacute;fense, mais vous subissez un malus de -1 &agrave; votre jet d&rsquo;attaque.</p>"
},
"La Rage du Barbare (Posture Offensive)": {
"name": "La Rage du Barbare (Posture Offensive)",
"description": "<p>Vous vous concentrez sur l&rsquo;attaque, au d&eacute;triment&nbsp;de votre d&eacute;fense. Cette option vous conf&egrave;re un bonus de +1 au jet d&rsquo;attaque, mais vous subissez un malus de -1 en d&eacute;fense.</p>"
},
"La Ruade de lAxos (Déséquilibrer)": {
"name": "La Ruade de lAxos (Déséquilibrer)",
"description": "<p>Vous cherchez &agrave; d&eacute;s&eacute;quilibrer votre adversaire. Vous ne portez pas d&rsquo;attaque.</p>\n<p>Si vous r&eacute;ussissez un jet de R&eacute;action (Esprit+Initiative) avec l&rsquo;Agilit&eacute; de votre cible comme malus, elle re&ccedil;oit un d&eacute; malus pour sa prochaine action et un malus de -1 en d&eacute;fense sur la prochaine attaque. Sur un succ&egrave;s h&eacute;ro&iuml;que et que votre cible est de la pi&eacute;taille ou un coriace, elle tombe au sol.</p>"
},
"La Vengeance du Valgard (Epee Valgardienne)": {
"name": "La Vengeance du Valgard (Epee Valgardienne)",
"description": "<p>Uniquement avec une &eacute;p&eacute;e Valgardienne. Si vous avez subit des d&eacute;g&acirc;ts lors de l&rsquo;attaque pr&eacute;c&eacute;dente, vous profitez du poids de votre arme pour appuyer votre coup.</p>\n<p>Si vous avez perdu des Points de Vitalit&eacute; &nbsp;lors &nbsp;de &nbsp;l&rsquo;attaque pr&eacute;c&eacute;dente, vous pouvez faire un<br>jet de Vigueur+Barbare en plus de votre attaque. Si les deux jets sont r&eacute;ussis, vous augmentez les d&eacute;g&acirc;ts de 2 points. Si seule l&rsquo;attaque est r&eacute;ussi, appliquez les d&eacute;g&acirc;ts normaux.</p>"
},
"Le Coup de Mangaï (Entraver - Fouet)": {
"name": "Le Coup de Mangaï (Entraver - Fouet)",
"description": "<p>Uniquement avec un fouet. Vous fouettez votre adversaire pour le g&ecirc;ner et l&rsquo;entraver.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle r&eacute;ussit, votre fouet s&rsquo;enroule autour d&rsquo;un membre de votre cible. Tant que vous maintenez le fouet, elle subit un malus de -2 pour toutes ses actions, et -1 en d&eacute;fense. En lieu et place d&rsquo;une attaque, la cible peut tenter de se lib&eacute;rer en r&eacute;ussissant un jet de Vigueur+Initiative, avec votre Vigueur en malus.</p>"
},
"Le Coup du Gladiateur (Combat à Deux Armes - Offensif)": {
"name": "Le Coup du Gladiateur (Combat à Deux Armes - Offensif)",
"description": "<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res&nbsp;ou moyennes.</p>\n<p><span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\">Vous attaquez avec vos deux armes. </span><span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\">Vous n&rsquo;effectuez qu&rsquo;un seul jet d&rsquo;attaque avec un </span>malus de -1, mais vous infligez des d&eacute;g&acirc;ts comme&nbsp;si vous maniez une arme moyenne (si vous utilisez deux armes l&eacute;g&egrave;res) ou une arme lourde (si vous&nbsp;utilisez une arme moyenne et une arme l&eacute;g&egrave;re, ou deux armes moyennes).</p>"
},
"Le Coup du Soldat (Désarmer)": {
"name": "Le Coup du Soldat (Désarmer)",
"description": "<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res ou moyennes. Vous visez l&rsquo;arme de votre adversaire<br>pour la faire tomber.</p>\n<p>Vous portez une attaque sur l&rsquo;arme, avec pour malus l&rsquo;Agilit&eacute;+M&ecirc;l&eacute;e de votre adversaire. En cas de r&eacute;ussite, l&rsquo;arme vis&eacute;e tombe au sol &agrave; 1d6-2 m&egrave;tres de votre opposant.</p>"
},
"Le Dit de Iondal (Moquer)": {
"name": "Le Dit de Iondal (Moquer)",
"description": "<p>Vous moquez votre adversaire avec une phrase bien sentie.</p>\n<p>Si vous r&eacute;ussissez un test d&rsquo;Esprit+Carri&egrave;re appropri&eacute;e, avec l&rsquo;Esprit de votre cible en malus, elle<br>subit un malus de -2 en d&eacute;fense pour le reste du round.</p>"
},
"Le Doigt de Karyzon (Tir x2)": {
"name": "Le Doigt de Karyzon (Tir x2)",
"description": "<p>Vous encha&icirc;nez 2 tirs au lieu d&rsquo;un, sans pr&eacute;cision. Uniquement avec armes de jet et arcs.</p>\n<p>Vous tirez (ou lancer) tr&egrave;s rapidement, sans pr&eacute;cision, sur la m&ecirc;me cible. Chaque tir/lancer souffre d&rsquo;un malus de -2.</p>"
},
"Le Halakh-Kriss (Spéciale Kriss)": {
"name": "Le Halakh-Kriss (Spéciale Kriss)",
"description": "<p>Uniquement avec un Kriss d&rsquo;Halakh. Vous portez un coup vicieux &agrave; votre adversaire.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -1, mais si elle r&eacute;ussit, vous augmentez les d&eacute;g&acirc;ts de 1 point.</p>"
},
"Le Plomb de lAxos (Fronde Axos)": {
"name": "Le Plomb de lAxos (Fronde Axos)",
"description": "<p>Uniquement avec une Fronde de l&rsquo;Axos. Vous faites tournoyer votre fronde &agrave; grande vitesse.</p>\n<p>Votre tir souffre d&rsquo;un malus de -2, mais vos d&eacute;g&acirc;ts b&eacute;n&eacute;ficient de la vigueur enti&egrave;re &agrave; la place de la moiti&eacute; de la Vigueur.</p>"
},
"Le Saut du Voleur (Distraire)": {
"name": "Le Saut du Voleur (Distraire)",
"description": "<p>Vous faites une man&oelig;uvre ayant pour &nbsp;objectif de distraire l&rsquo;adversaire. Vous ne portez pas<br>d&rsquo;attaque.</p>\n<p>Si vous r&eacute;ussissez un test de R&eacute;action (Esprit+Initiative) avec l&rsquo;Esprit de votre cible en malus, elle<br>subit un malus de -1 pour toutes ses actions dans le round en cours.</p>"
},
"Le Trait du Beshaar (Javelot)": {
"name": "Le Trait du Beshaar (Javelot)",
"description": "<p>Uniquement avec un Javelot. Vous lancez votre javelot &agrave; une distance plus grande que la plupart des<br>autres aventuriers.</p>\n<p>Votre tir souffre d&rsquo;un malus de -1, mais la port&eacute;e du javelot est doubl&eacute;e (12m au lieu de 6m).</p>"
},
"Le Tranchant de Parsool (Hache de Parsool)": {
"name": "Le Tranchant de Parsool (Hache de Parsool)",
"description": "<p>Uniquement avec une Hache d&rsquo;Abordage de Parsool. Vous placez une attaque visant l&rsquo;armure de votre adversaire pour la d&eacute;truire.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -1, mais si elle r&eacute;ussit, vous faites sauter une pi&egrave;ce d&rsquo;armure de votre adversaire au lieu de faire des d&eacute;g&acirc;ts. L&rsquo;armure touch&eacute;e se d&eacute;grade d&rsquo;un rang de protection. Uniquement valable sur des adversaires portant une armure artificielle.</p>"
},
"Les Poignards de Karyzon (Lancer x2)": {
"name": "Les Poignards de Karyzon (Lancer x2)",
"description": "<p>Uniquement avec deux Couteaux ou Poignards de lancer. Arm&eacute; d&rsquo;un Poignard dans chaque main, vous<br>les lancez sur 2 cibles diff&eacute;rentes en m&ecirc;me temps</p>\n<p>Chaque attaque &nbsp;est &nbsp;r&eacute;solue s&eacute;par&eacute;ment et souffre d&rsquo;un malus de -2.</p>"
}
}
}

View File

@ -0,0 +1,181 @@
{
"label": "Désavantages",
"mapping": {
"description": "system.description"
},
"entries": {
"Addiction": {
"name": "Addiction",
"description": "<h1>Addiction</h1><p>vous avez développé une dépendance à une substance, et vous en avez besoin de manière quotidienne pour vivre normalement. Si vous passez une journée sans assouvir votre vice, vous subissez un dé de malus sur tous vos jets.</p>"
},
"Âgé": {
"name": "Âgé",
"description": "<h1>Âgé</h1><p>votre personnage na plus vingt ans. Sil ne dispose pas chaque jour dune période décente de repos, il commence à se fatiguer et subit un dé de malus pour toute action physique éreintante. Ce désavantage devrait aussi offrir bien dautres situations cocasses au cours de la partie.</p>"
},
"Arrogant": {
"name": "Arrogant",
"description": "<h1>Arrogant</h1><p>vous subissez un dé de malus lorsque vous interagissez avec des provinciaux ou des étrangers, qui pourraient prendre ombrage de votre arrogance. Ce désavantage est très fréquent au sein de la noblesse.</p>"
},
"Bigleux": {
"name": "Bigleux",
"description": "<h1>Bigleux</h1><p>lorsque vous faites appel à votre vue pour observer ou repérer quelque chose, vous subissez un dé de malus.</p>"
},
"Borgne/oreille coupée": {
"name": "Borgne/oreille coupée",
"description": "<h1>Borgne/oreille coupée</h1><p>vous subissez un dé de malus quand le MJ estime que cela est approprié à la situation.</p>"
},
"Bouseux": {
"name": "Bouseux",
"description": "<h1>Bouseux</h1><p>la grande ville est un endroit déstabilisant et impitoyable pour les nouveaux venus. Vous subissez un dé de malus dans les situations concernant la survie en milieu urbain.</p>"
},
"Chétif": {
"name": "Chétif",
"description": "<h1>Chétif</h1><p>vous ne jouissez pas dune solide constitution. Ôtez 2 points à votre score de vitalité.</p>"
},
"Crédule": {
"name": "Crédule",
"description": "<h1>Crédule</h1><p>vous gobez les mensonges les plus gros. Vous subissez un dé de malus quand quelquun essaie de vous convaincre quune idée est bonne, alors quelle ne lest pas.</p>"
},
"Cupide": {
"name": "Cupide",
"description": "<h1>Cupide</h1><p>vous êtes incapable de résister à une occasion de vous enrichir. Sil y a une chance de se remplir les poches, vous perdez tout bon sens. Vous subissez un dé de malus à chaque fois que vous êtes tenté par une offre alléchante.</p>"
},
"Deux mains gauches": {
"name": "Deux mains gauches",
"description": "<h1>Deux mains gauches</h1><p>vous subissez un dé de malus pour crocheter une serrure, tirer à larc ou à larbalète, ou accomplir toute autre tâche de précision requérant une bonne dextérité.</p>"
},
"Distrait": {
"name": "Distrait",
"description": "<h1>Distrait</h1><p>vous nêtes pas forcément stupide en fait, vous pouvez même être brillant mais vous êtes tête-en-lair, incapable de vous souvenir de vos obligations ou du nom des gens. Un défaut que le MJ se fera un plaisir dexploiter de temps à autre au détriment de votre personnage…</p>"
},
"Dur doreille": {
"name": "Dur doreille",
"description": "<h1>Dur doreille</h1><p>lorsque vous faites appel à votre audition pour percevoir quelque chose, vous subissez un dé de malus.</p>"
},
"Fanatique": {
"name": "Fanatique",
"description": "<h1>Fanatique</h1><p>ce désavantage est plus fréquent chez les rivaux que chez les héros. Beaucoup dhommes sont prêts à mourir pour leur foi, mais un fanatique est prêt à tuer pour elle. Vous subissez un dé de malus à chaque fois que vous essayez de vous montrer courtois envers un infidèle.</p>"
},
"Fanfaron": {
"name": "Fanfaron",
"description": "<h1>Fanfaron</h1><p>vous avez une très haute opinion de vous-même et ressentez le besoin de la partager avec le reste du monde. Vous avez tendance à vous attribuer le mérite qui revient à dautres et à exagérer vos propres exploits tout en minimisant le rôle que vos compagnons ont pu jouer. Inutile de le dire, vous prenez de grandes libertés avec la vérité, ce qui pourrait vous valoir dêtre traité de menteur.</p>"
},
"Foie jaune": {
"name": "Foie jaune",
"description": "<h1>Foie jaune</h1>\n<p>Quand les &eacute;p&eacute;es sont tir&eacute;es, vous connaissez toujours un moment d&rsquo;ind&eacute;cision. Lancez un d3 : c&rsquo;est le nombre de rounds o&ugrave; vous restez paralys&eacute; par la situation, incapable d&rsquo;agir autrement qu&rsquo;en effectuant des actions d&eacute;fensives.</p>"
},
"Gars de la ville": {
"name": "Gars de la ville",
"description": "<h1>Gars de la ville</h1><p>vous nêtes pas à votre aise dans les grands espaces naturels. Vous subissez un dé de malus dans les situations concernant la survie en milieu sauvage.</p>"
},
"Illettré": {
"name": "Illettré",
"description": "<h1>Illettré</h1><p>vous ne savez ni lire ni écrire, et ne pouvez pas choisir de carrière exigeant dêtre lettré.</p>"
},
"Impétueux": {
"name": "Impétueux",
"description": "<h1>Impétueux</h1><p>vous vous laissez souvent emporter par votre colère et réagissez à la moindre insulte, réelle ou supposée. Vous subissez un dé de malus pour vous efforcer de contrôler votre colère et dagir rationnellement, par exemple pour éviter de faire un esclandre en plein bal au palais, ou pour ignorer la raillerie dun ennemi. Votre colère peut vous mettre en danger, en vous incitant par exemple à vous battre en duel pour des motifs futiles.</p>"
},
"Inadapté à la chaleur": {
"name": "Inadapté à la chaleur",
"description": "<h1>Inadapté à la chaleur</h1><p>vous êtes extrêmement sensible à la chaleur. Vous subissez un dé de malus sur toutes les actions entreprises dans un environnement de grande chaleur.</p>"
},
"Inadapté au froid": {
"name": "Inadapté au froid",
"description": "<h1>Inadapté au froid</h1><p>vous êtes particulièrement sensible au froid. Vous subissez un dé de malus sur toutes les actions entreprises dans un environnement de grand froid.</p>"
},
"Incapable de mentir": {
"name": "Incapable de mentir",
"description": "<h1>Incapable de mentir</h1><p>que ce soit par nervosité ou par respect dun code de lhonneur strict, vous êtes un très mauvais menteur. Vous subissez un dé de malus à chaque fois que vous essayez de tromper autrui, de dire des demi-vérités ou de cacher une information à quelquun qui vous pose une question directe. Vous êtes du genre à répondre « je ne vous dirai rien » plutôt que « je ne vois pas de quoi vous voulez parler ».</p>"
},
"Indigne de confiance": {
"name": "Indigne de confiance",
"description": "<h1>Indigne de confiance</h1><p>vous subissez un dé de malus quand la situation exige que quelquun vous croie ou vous fasse confiance.</p>"
},
"Inquiétant": {
"name": "Inquiétant",
"description": "<h1>Inquiétant</h1><p>il y a quelque chose en vous qui perturbe les autres. Cela peut provenir de votre regard, de votre odeur ou de votre façon de parler. Même les animaux vous évitent. Vous subissez un dé de malus dans les interactions sociales ou quand vous tentez damadouer des animaux.</p>"
},
"Lent à la détente": {
"name": "Lent à la détente",
"description": "<h1>Lent à la détente</h1><p>vous nêtes jamais très vigilant à ce qui se passe autour de vous et vous êtes lent à réagir face au danger. Vous subissez un dé de malus sur vos jets de réaction.</p>"
},
"Lubrique": {
"name": "Lubrique",
"description": "<h1>Lubrique</h1><p>vous avez le plus grand mal à résister aux charmes du sexe opposé et subissez un dé de malus sur vos jets pour ne pas succomber à un joli minois.</p>"
},
"Malédiction de Morgazzon": {
"name": "Malédiction de Morgazzon",
"description": "<h1>Malédiction de Morgazzon</h1><p>vous êtes atteint de démence. Vous devrez travailler avec le MJ pour déterminer la façon dont votre folie se manifeste.</p>"
},
"Manchot/unijambiste": {
"name": "Manchot/unijambiste",
"description": "<h1>Manchot/unijambiste</h1><p>vous subissez un dé de malus quand le MJ estime que cela est approprié à la situation.</p>"
},
"Marin deau douce": {
"name": "Marin deau douce",
"description": "<h1>Marin deau douce</h1><p>vous subissez un dé de malus pour toute activité entreprise à bord dun navire.</p>"
},
"Maudit": {
"name": "Maudit",
"description": "<h1>Maudit</h1><p>les dieux se sont détournés de vous, ou alors cest que vous êtes tout simplement malchanceux. Pour une raison incompréhensible, les tuiles tombent toujours sur vous. Les gardes de la ville vous prennent pour un criminel recherché, la servante de la taverne que vous avez attirée dans votre lit se révèle être une princesse en fuite, vous marchez sur une petite branche qui se brise avec un craquement sonore juste au moment où vous alliez réussir à passer discrètement, etc. En dautres termes, vous commencez le jeu avec 1 point dhéroïsme en moins.</p>"
},
"Mauvaise réputation": {
"name": "Mauvaise réputation",
"description": "<h1>Mauvaise réputation</h1><p>vous avez commis dans le passé quelque méfait de sinistre mémoire. Peu importe si vous êtes réellement coupable ou pas, ou si vous aviez une bonne raison dagir comme vous lavez fait, vous êtes précédé par votre mauvaise réputation. Vous subissez un dé de malus dans les interactions sociales où il sagit de faire bonne impression, et continuez à subir ce malus jusquà ce que vous ayez (re)gagné la confiance de la personne en question.</p>"
},
"Méfiance envers la sorcellerie": {
"name": "Méfiance envers la sorcellerie",
"description": "<h1>Méfiance envers la sorcellerie</h1><p>vous subissez un dé de malus quand vous êtes confronté à des sorciers et des alchimistes.</p>"
},
"Muet": {
"name": "Muet",
"description": "<h1>Muet</h1><p>vous êtes incapable de parler, et vous subissez toujours un dé de malus dans les interactions sociales où vous avez besoin de vous faire comprendre.</p>"
},
"Non-combattant": {
"name": "Non-combattant",
"description": "<h1>Non-combattant</h1><p>vous nêtes pas un guerrier, vos talents sont ailleurs. Vous ne disposez que de deux points (au lieu de quatre) à répartir dans les aptitudes de combat, mais vous débutez avec six points de carrière (au lieu de quatre). De plus, le coût en points dexpérience pour améliorer vos aptitudes de combat est doublé.</p>"
},
"Obsession": {
"name": "Obsession",
"description": "<h1>Obsession</h1><p>vous êtes totalement obsédé par quelque chose. Il peut sagir dun but, dune personne ou dun objet. Vous consacrez beaucoup de temps, dénergie et dargent à cette obsession. À chaque fois que vous vous trouvez en présence de lobjet de votre obsession, vous subissez un dé de malus sur tous les jets qui impliquent que vous lignoriez. Il peut arriver que votre obsession vous plonge dans des situations inextricables ou cocasses.</p>"
},
"Pataud": {
"name": "Pataud",
"description": "<h1>Pataud</h1><p>vous navez pas un bon sens de léquilibre. Vous subissez un dé de malus à chaque fois que léquilibre entre en jeu, par exemple pour traverser un précipice sur une passerelle étroite, ou prendre pied sur une saillie à flanc de montagne.</p>"
},
"Phobie": {
"name": "Phobie",
"description": "<h1>Phobie</h1><p>vous êtes affligé dune peur irrationnelle. Vous subissez un dé de malus en présence de lobjet de votre phobie. Il peut sagir par exemple de la peur du feu, des reptiles, des araignées, des hauteurs, de la foule, de la mort, de lobscurité, des espaces confinés, des navires volants, etc.</p>"
},
"Poltron": {
"name": "Poltron",
"description": "<h1>Poltron</h1><p>ce nest pas un désavantage très fréquent chez les héros, mais vous avez les pires difficultés à contrôler votre peur. Vous subissez un dé de malus sur les jets destinés à résister aux effets de la peur ou de lintimidation. De plus, vous faites toujours de votre mieux pour éviter toute forme de conflit.</p>"
},
"Repoussant": {
"name": "Repoussant",
"description": "<h1>Repoussant</h1><p>vous êtes particulièrement laid. Vous subissez un dé de malus dans les situations où lapparence peut avoir son importance.</p>"
},
"Signe distinctif": {
"name": "Signe distinctif",
"description": "<h1>Signe distinctif</h1><p>il y a quelque chose chez vous qui ne soublie pas. Il peut sagir dune cicatrice particulière ou dun tatouage, à moins que vous ne soyez né avec six doigts à la main gauche. Bref, vous possédez une caractéristique physique qui se remarque. Vous subissez un dé de malus quand vous essayez de vous déguiser ou de passer inaperçu. Si vous êtes également affligé du désavantage traqué, les chasseurs de primes et les espions ont deux fois plus de chances de vous repérer quand vous entrez ou sortez dune cité.</p>"
},
"Soiffard": {
"name": "Soiffard",
"description": "<h1>Soiffard</h1><p>quand vous êtes chargé dune tâche importante par vos compagnons, lancez un dé. Si vous obtenez un 1, vous êtes ivre et incapable de faire quoi que ce soit jusquà ce que vous ayez dessoûlé.</p>"
},
"Souffreteux": {
"name": "Souffreteux",
"description": "<h1>Souffreteux</h1><p>vous souffrez dune constitution fragile. Vous ne pouvez récupérer de points de vitalité perdus que si vous bénéficiez de soins médicaux ; vous ne récupérez rien par du simple repos, comme cest normalement la règle.</p>"
},
"Taciturne": {
"name": "Taciturne",
"description": "<h1>Taciturne</h1><p>votre personnage est incroyablement taiseux. Les jours où il prononce une phrase de plus de trois mots sont à marquer dune pierre blanche, et il est très rare quil engage de lui-même la conversation. Son extrême réticence à parler implique malheureusement quil ne donne jamais une information si on ne la lui demande pas. Vous subissez un dé de malus dans les interactions sociales.</p>"
},
"Traqué": {
"name": "Traqué",
"description": "<h1>Traqué</h1><p>vous êtes recherché par les autorités, ou bien vous avez offensé un aristocrate puissant ou un roi des pirates. Quoi quil en soit, vous devez constamment échapper à leurs agents qui tentent de vous capturer ou de vous tuer. Lancez un d6 à chaque fois que vous entrez dans une ville nouvelle. Sur un 1, les agents à la solde de votre ennemi (ou cet ennemi lui-même) vous auront repéré et vous tomberont dessus.</p>"
}
}
}

View File

@ -0,0 +1,105 @@
{
"label": "Dieux",
"mapping": {
"description": "system.description"
},
"entries": {
"Afyra, Deesse de la Vie": {
"name": "Afyra, Deesse de la Vie",
"description": ""
},
"Charkond, Dieu de la Guerre et des Batailles": {
"name": "Charkond, Dieu de la Guerre et des Batailles",
"description": ""
},
"Chiomalla, Deesse des Grains et des Moissons": {
"name": "Chiomalla, Deesse des Grains et des Moissons",
"description": ""
},
"Dyr, Dieu des Tempêtes et du Tonnerre": {
"name": "Dyr, Dieu des Tempêtes et du Tonnerre",
"description": ""
},
"Fillana, déesse des étoiles": {
"name": "Fillana, déesse des étoiles",
"description": ""
},
"Fyrzon la Sentinelle, lInébranlable": {
"name": "Fyrzon la Sentinelle, lInébranlable",
"description": ""
},
"Grondil, le dieu bâtisseur": {
"name": "Grondil, le dieu bâtisseur",
"description": ""
},
"Hadron le Noir , seigneur du Néant": {
"name": "Hadron le Noir , seigneur du Néant",
"description": ""
},
"Hurm, le père des dieux, seigneur du ciel": {
"name": "Hurm, le père des dieux, seigneur du ciel",
"description": ""
},
"Iondal le débauché": {
"name": "Iondal le débauché",
"description": ""
},
"Karyzon, le seigneur des vents": {
"name": "Karyzon, le seigneur des vents",
"description": ""
},
"Knothakon, dieu de la sagesse, seigneur des âges": {
"name": "Knothakon, dieu de la sagesse, seigneur des âges",
"description": ""
},
"Lilandra la séductrice": {
"name": "Lilandra la séductrice",
"description": ""
},
"Morgazzon, roi-démon de la folie": {
"name": "Morgazzon, roi-démon de la folie",
"description": ""
},
"Nemmereth du long sommeil, dieu de la mort": {
"name": "Nemmereth du long sommeil, dieu de la mort",
"description": ""
},
"Piandra, déesse de la chance, Dame Fortune": {
"name": "Piandra, déesse de la chance, Dame Fortune",
"description": ""
},
"Quathoomar, dieu du voyage": {
"name": "Quathoomar, dieu du voyage",
"description": ""
},
"SaTel, dieu des étoiles": {
"name": "SaTel, dieu des étoiles",
"description": ""
},
"Shazzadion, dieu des mers": {
"name": "Shazzadion, dieu des mers",
"description": ""
},
"Tharungozoth le massacreur, seigneur des souffrances": {
"name": "Tharungozoth le massacreur, seigneur des souffrances",
"description": ""
},
"Yrzlak le dieu forgeron": {
"name": "Yrzlak le dieu forgeron",
"description": ""
},
"Zaggath, seigneur du Feu": {
"name": "Zaggath, seigneur du Feu",
"description": ""
},
"Zalkyr le Lumineux, dieu du soleil": {
"name": "Zalkyr le Lumineux, dieu du soleil",
"description": ""
},
"Zylidith, seigneur du sang, dieu du sacrifice": {
"name": "Zylidith, seigneur du sang, dieu du sacrifice",
"description": ""
}
}
}

View File

@ -0,0 +1,81 @@
{
"label": "Langues",
"mapping": {
"description": "system.description"
},
"entries": {
"Argot des Mers": {
"name": "Argot des Mers",
"description": "<p>Les &icirc;les du Cr&acirc;ne, &agrave; la population&nbsp;h&eacute;t&eacute;roclite en provenance des quatre coins du&nbsp;monde, ont d&eacute;velopp&eacute; leur propre langue, un&nbsp;assemblage bigarr&eacute; d&rsquo;influences diverses. Il n&rsquo;en&nbsp;existe pas de forme &eacute;crite.</p>"
},
"Axien": {
"name": "Axien",
"description": "<p>L&rsquo;axien est la langue des tribus barbares qui vivent dans la cha&icirc;ne de l&rsquo;Axos. Cette langue reste plut&ocirc;t confin&eacute;e &agrave; cette r&eacute;gion montagneuse,&nbsp;&nbsp;mais on raconte que d&rsquo;anciens textes datant de l&rsquo;&eacute;poque lointaine o&ugrave; l&rsquo;axien &eacute;tait plus largement&nbsp;r&eacute;pandu seraient entrepos&eacute;s dans des grottes&nbsp;oubli&eacute;es au c&oelig;ur des montagnes.</p>"
},
"Beshaari": {
"name": "Beshaari",
"description": "<p>Les nomades du d&eacute;sert de Beshaar&nbsp;parlent et &eacute;crivent leur propre langue. La plupart&nbsp;des habitants d&rsquo;Halakh parlent le beshaari en plus&nbsp;du l&eacute;murien.</p>"
},
"Céruléen": {
"name": "Céruléen",
"description": "<p>Les nomades bleus parlent leur&nbsp;propre langue, qui n&rsquo;a pas de forme &eacute;crite. Les&nbsp;marchands d&rsquo;Oomis apprennent souvent le&nbsp;c&eacute;rul&eacute;en.</p>"
},
"Chant du Vent": {
"name": "Chant du Vent",
"description": "<p>La langue chantante des&nbsp;hommes-oiseaux peut &eacute;voquer tour &agrave; tour le son&nbsp;de la brise se faufilant entre les rochers escarp&eacute;s&nbsp;des sommets et le sifflement des bourrasques&nbsp;s&rsquo;engouffrant dans les canyons montagneux et les&nbsp;cavernes. Cette langue est tr&egrave;s difficile &agrave; parler&nbsp;correctement pour un &eacute;tranger. Elle poss&egrave;de une&nbsp;forme &eacute;crite, qui est tout aussi difficile &agrave; ma&icirc;triser&nbsp;et &agrave; traduire.</p>"
},
"Démonique (Lire/Ecrire)": {
"name": "Démonique (Lire/Ecrire)",
"description": "<p>Cest lancienne langue des Rois- Sorciers, dans laquelle sont rédigés tous les textes remontant à leur époque. Les magiciens, alchimistes, druides et prêtres doivent apprendre le démonique sils veulent pouvoir utiliser les puissants sortilèges et recettes alchimiques de cette antique race. Ce langage est particulièrement ardu et ses formes orale et écrite exigent dêtre apprises séparément. Les magiciens de Zalut conversent toujours en démonique, à moins de devoir parler à des étrangers.</p>\n<p>Connaissance de l'éctriture/lecture seulement.</p>"
},
"Démonique (Parler)": {
"name": "Démonique (Parler)",
"description": "<p>Cest lancienne langue des Rois- Sorciers, dans laquelle sont rédigés tous les textes remontant à leur époque. Les magiciens, alchimistes, druides et prêtres doivent apprendre le démonique sils veulent pouvoir utiliser les puissants sortilèges et recettes alchimiques de cette antique race. Ce langage est particulièrement ardu et ses formes orale et écrite exigent dêtre apprises séparément. Les magiciens de Zalut conversent toujours en démonique, à moins de devoir parler à des étrangers.</p>\n<p>Connaissance parlé.</p>"
},
"Festreli": {
"name": "Festreli",
"description": "<p>A l&rsquo;origine, le festreli &eacute;tait un dialecte&nbsp;du l&eacute;murien, mais il s&rsquo;en est tellement &eacute;loign&eacute;&nbsp;qu&rsquo;il est &agrave; pr&eacute;sent devenu presque inintelligible&nbsp;pour des locuteurs du l&eacute;murien.</p>"
},
"Ghatai": {
"name": "Ghatai",
"description": "<p>Langue des nomades du sud du Khanat, le ghata&iuml; s&rsquo;apparente &agrave; un dialecte ancien du&nbsp;l&eacute;murien, avec de nombreux emprunts au pinxi (cf. ci-dessous), pour le vocabulaire notamment. Avec&nbsp;un peu d&rsquo; effort et beaucoup de patience, un locuteur du l&eacute;murien sera en mesure de communiquer de&nbsp;mani&egrave;re rudimentaire avec des gens qui parlent le ghata&iuml;. Cette langue, qui &agrave; l&rsquo;origine ne poss&eacute;dait pas&nbsp;son propre syst&egrave;me d&rsquo;&eacute;criture, utilise d&eacute;sormais celui du pinxi.</p>"
},
"Grooth": {
"name": "Grooth",
"description": "<p>Il ne s&rsquo;agit pas d&rsquo;une langue &agrave;&nbsp;proprement parler, mais plut&ocirc;t d&rsquo;un langage&nbsp;rudimentaire fait de grognements, de grimaces,&nbsp;de tapements du pied et de grands mouvements&nbsp;simiesques. Ce langage n&rsquo;a pas de forme &eacute;crite et&nbsp;est totalement inusit&eacute; en dehors des tribus des&nbsp;grooth.</p>"
},
"Kashtien": {
"name": "Kashtien",
"description": "<p>Les habitants des marais de Kasht&nbsp;ont leur propre langue, dont chaque tribu utilise&nbsp;une variante qui lui est propre.</p>"
},
"Lemurien": {
"name": "Lemurien",
"description": "<p>La langue la plus commun&eacute;ment&nbsp;parl&eacute;e en L&eacute;murie. Chaque cit&eacute; parle cependant&nbsp;son propre dialecte l&eacute;murien, ce qui veut dire&nbsp;qu&rsquo;un voyageur aura parfois du mal &agrave; comprendre&nbsp;les gens du coin. Le MJ pourra &agrave; l&rsquo;occasion vous&nbsp;demander de r&eacute;ussir un jet d&rsquo;esprit pour communiquer avec des gens d&rsquo;autres cit&eacute;s que la v&ocirc;tre.</p>"
},
"Malakutien": {
"name": "Malakutien",
"description": "<p>Lles habitants de Malakut et de la&nbsp;r&eacute;gion environnante parlent leur propre langue.</p>"
},
"Pinxi": {
"name": "Pinxi",
"description": "<p>la langue des Xi Lu, encore commun&eacute;ment parl&eacute;e par cette ethnie, m&ecirc;me si la plupart des Xi&nbsp;Lu apprennent au moins des rudiments de gatha&iuml;, la langue officielle du gouvernement du grand khan.</p>"
},
"Shamite": {
"name": "Shamite",
"description": "<p>Les habitants de Shamballah et de la&nbsp;r&eacute;gion environnante parlent leur propre langue.</p>"
},
"Valgardien": {
"name": "Valgardien",
"description": "<p>Les gens du Valgard parlent et&nbsp;&eacute;crivent leur propre langue, qui est &eacute;tonnamment&nbsp;&eacute;labor&eacute;e.</p>"
},
"Wei": {
"name": "Wei",
"description": "<p>Les Wei poss&egrave;dent leur propre langue, difficile &agrave; ma&icirc;triser pour des &eacute;trangers en raison de&nbsp;ses sonorit&eacute;s particuli&egrave;res, avec un emploi abondant de claquements de langue. Les Wei n&rsquo;ont pas&nbsp;d&rsquo;&eacute;criture ; leur culture repose sur la transmission orale des savoirs et des coutumes.</p>"
},
"Yggdari": {
"name": "Yggdari",
"description": "<p>C&rsquo;est le nom de l&rsquo;ancienne langue des&nbsp;hommes (aussi appel&eacute;e langue des Anciens). Peu&nbsp;d&rsquo;individus la parlent aujourd&rsquo;hui, et encore moins&nbsp;peuvent la lire. Il arrive cependant que d&rsquo;antiques&nbsp;textes soient retrouv&eacute;s dans les ruines d&rsquo;Ygddar,&nbsp;de Qiddesh, de Qeb, de Qar ou d&rsquo;Oosal, mais leur&nbsp;traduction requiert g&eacute;n&eacute;ralement les services d&rsquo;un&nbsp;scribe particuli&egrave;rement comp&eacute;tent.</p>"
}
}
}

View File

@ -0,0 +1,177 @@
{
"label": "Alchimie - Objets",
"mapping": {
"description": "system.description"
},
"entries": {
"Allume-feu": {
"name": "Allume-feu",
"description": "<p>permet d&rsquo;allumer un feu&nbsp;facilement et rapidement</p>"
},
"Antirouille": {
"name": "Antirouille",
"description": "<p>quantit&eacute; suffisante pour &ocirc;ter la&nbsp;rouille d&rsquo;une armure compl&egrave;te</p>"
},
"Arbalète à Grappin": {
"name": "Arbalète à Grappin",
"description": "<p>tire un grappin attach&eacute;&nbsp;&agrave; une corde en soie avec un facteur de port&eacute;e&nbsp;de 7,5 m</p>"
},
"Arme": {
"name": "Arme",
"description": "<p>Les armes et armures de cette qualit&eacute;&nbsp;permettent, une fois par round, de relancer un 1&nbsp;obtenu sur un jet de d&eacute;g&acirc;ts/de protection.</p>"
},
"Arme dissimulée dans un Objet Courant": {
"name": "Arme dissimulée dans un Objet Courant",
"description": "<p>En dehors des armes, les autres cr&eacute;ations&nbsp;infligeant des d&eacute;g&acirc;ts ou soignant des blessures&nbsp;provoquent respectivement la perte ou la&nbsp;r&eacute;cup&eacute;ration de d6 points de vitalit&eacute;.</p>"
},
"Arme Légendaire": {
"name": "Arme Légendaire",
"description": "<p>ajoute un d&eacute; de bonus&nbsp;aux jets de d&eacute;g&acirc;ts et ignore les armures, &agrave;&nbsp; l&rsquo;exception de celles cr&eacute;&eacute;es par un alchimiste.&nbsp;De plus, l&rsquo;arme est incassable. Une arme aussi&nbsp;exceptionnelle se doit de recevoir un nom</p>"
},
"Arme Mythique": {
"name": "Arme Mythique",
"description": "<p>comme une arme l&eacute;gendaire,&nbsp;mais elle est de plus consid&eacute;r&eacute;e comme une&nbsp;arme favorite, cf. l&rsquo;avantage du m&ecirc;me nom</p>"
},
"Arme Supérieure": {
"name": "Arme Supérieure",
"description": "<p>un d&eacute; de bonus aux jets de&nbsp;d&eacute;g&acirc;ts</p>"
},
"Armure": {
"name": "Armure",
"description": "<p>Les armes et armures de cette qualit&eacute;&nbsp;permettent, une fois par round, de relancer un 1&nbsp;obtenu sur un jet de d&eacute;g&acirc;ts/de protection.</p>"
},
"Armure Légendaire": {
"name": "Armure Légendaire",
"description": "<p>offre une protection&nbsp;semblable &agrave; celle d&rsquo;une armure de la cat&eacute;gorie&nbsp;sup&eacute;rieure &ndash; une armure l&eacute;g&egrave;re apporte la&nbsp;m&ecirc;me protection qu&rsquo;une armure moyenne, et&nbsp;une armure lourde apporte une protection de d6. De plus, le jet de protection de l&rsquo;armure&nbsp;se fait avec un d&eacute; de bonus, et elle diminue de&nbsp;moiti&eacute; les d&eacute;g&acirc;ts suppl&eacute;mentaires inflig&eacute;s par&nbsp;un succ&egrave;s h&eacute;ro&iuml;que ou l&eacute;gendaire.</p>"
},
"Armure Mythique": {
"name": "Armure Mythique",
"description": "<p>comme une armure&nbsp;l&eacute;gendaire, mais sans malus d&rsquo;agilit&eacute; ; un&nbsp;h&eacute;ros pourrait m&ecirc;me nager en portant cette&nbsp;armure</p>"
},
"Armure Supérieure": {
"name": "Armure Supérieure",
"description": "<p>offre une protection&nbsp;semblable &agrave; celle d&rsquo;une armure de la cat&eacute;gorie&nbsp;sup&eacute;rieure &ndash; une armure l&eacute;g&egrave;re apporte la&nbsp;m&ecirc;me protection qu&rsquo;une armure moyenne, et&nbsp;une armure lourde apporte une protection de&nbsp;d6. De plus, l&rsquo;armure diminue de moiti&eacute; les&nbsp;d&eacute;g&acirc;ts suppl&eacute;mentaires inflig&eacute;s par un succ&egrave;s&nbsp;h&eacute;ro&iuml;que ou l&eacute;gendaire</p>"
},
"Automate ou golem ayant la forme dune armure animée": {
"name": "Automate ou golem ayant la forme dune armure animée",
"description": ""
},
"Casque permettant à son porteur de respirer sous leau": {
"name": "Casque permettant à son porteur de respirer sous leau",
"description": ""
},
"Ceinture dallanium": {
"name": "Ceinture dallanium",
"description": "<p>permet de flotter dans&nbsp;les airs</p>"
},
"Ceinture dinvisibilité": {
"name": "Ceinture dinvisibilité",
"description": "<p>quand on la boucle,&nbsp;cette ceinture offre le m&ecirc;me effet que la&nbsp;poudre d&rsquo;invisibilit&eacute;</p>"
},
"Création de formes de vie en laboratoire": {
"name": "Création de formes de vie en laboratoire",
"description": ""
},
"Création de formes de vie hybrides dhomme et danimal": {
"name": "Création de formes de vie hybrides dhomme et danimal",
"description": ""
},
"Création par croisement et hybridation de plantes ou danimaux mortellement dangereux": {
"name": "Création par croisement et hybridation de plantes ou danimaux mortellement dangereux",
"description": ""
},
"Cuve de clonage des individus": {
"name": "Cuve de clonage des individus",
"description": ""
},
"Dague à lame creuse en verre": {
"name": "Dague à lame creuse en verre",
"description": "<p>remplie&nbsp;d&rsquo;acide ou de poison</p>"
},
"Fabrication dallanium et de janium": {
"name": "Fabrication dallanium et de janium",
"description": ""
},
"Habitation intelligente": {
"name": "Habitation intelligente",
"description": ""
},
"Horloge": {
"name": "Horloge",
"description": ""
},
"Huile Brulante": {
"name": "Huile Brulante",
"description": "<p>br&ucirc;le au contact et inflige d6&nbsp;points de d&eacute;g&acirc;ts</p>"
},
"Instrument de musique au son parfait": {
"name": "Instrument de musique au son parfait",
"description": "<p>un d&eacute; de bonus pour en jouer</p>"
},
"Lance-éclair": {
"name": "Lance-éclair",
"description": "<p>une arme qui a vaguement&nbsp;la forme d&rsquo;une arbal&egrave;te et projette un &eacute;clair.&nbsp;Facteur de port&eacute;e : 75 m ; d6 x2 points de&nbsp;d&eacute;g&acirc;ts ignorant les armure</p>"
},
"Machine de guerre blindée": {
"name": "Machine de guerre blindée",
"description": ""
},
"Machine dotée d'une semi-conscience": {
"name": "Machine dotée d'une semi-conscience",
"description": ""
},
"Machine Volante": {
"name": "Machine Volante",
"description": "<p>nef volante, par exemple</p>"
},
"Membre Artificiel": {
"name": "Membre Artificiel",
"description": "<p>non articul&eacute;, mais bien&nbsp;plus &eacute;l&eacute;gant qu&rsquo;un simple crochet</p>"
},
"Microscope": {
"name": "Microscope",
"description": ""
},
"Navire submersible": {
"name": "Navire submersible",
"description": "<p>un&nbsp; sous-marin&nbsp;descendant &agrave; une profondeur maximale de&nbsp;6 m&egrave;tres et pouvant emporter un &eacute;quipage&nbsp;de quatre personnes. Un tuyau flottant&nbsp;jusqu&rsquo;&agrave; la surface alimente le sous-marin&nbsp;en oxyg&egrave;ne (et peut &ecirc;tre rep&eacute;r&eacute; en surface).&nbsp;Le sous-marin contient suffisamment d&rsquo;air&nbsp;pour rester en plong&eacute;e pendant une heure. Il&nbsp;se d&eacute;place &agrave; une vitesse d&rsquo;environ 8 kilom&egrave;tres&nbsp;&agrave; l&rsquo;heure, propuls&eacute; par la force des membres&nbsp;de l&rsquo;&eacute;quipage qui p&eacute;dalent pour faire tourner&nbsp;l&rsquo;h&eacute;lice</p>"
},
"Outil": {
"name": "Outil",
"description": "<p>Les armes et armures de cette qualit&eacute;&nbsp;permettent, une fois par round, de relancer un 1&nbsp;obtenu sur un jet de d&eacute;g&acirc;ts/de protection.</p>\n<p>En dehors des armes, les autres cr&eacute;ations&nbsp;infligeant des d&eacute;g&acirc;ts ou soignant des blessures&nbsp;provoquent respectivement la perte ou la&nbsp;r&eacute;cup&eacute;ration de d3 points de vitalit&eacute;.</p>"
},
"Périscope": {
"name": "Périscope",
"description": ""
},
"Piège": {
"name": "Piège",
"description": "<p>malus de -2 pour le rep&eacute;rer et le&nbsp;d&eacute;samorcer ; inflige d3+1 points de d&eacute;g&acirc;t</p>"
},
"Serrure": {
"name": "Serrure",
"description": "<p>malus de -2 pour la forcer</p>"
},
"Serrure ou piège à la complexité unique": {
"name": "Serrure ou piège à la complexité unique",
"description": "<p>-8 pour les crocheter/d&eacute;samorcer ; un pi&egrave;ge&nbsp;inflige d6 x3 points de d&eacute;g&acirc;ts</p>"
},
"Serrure ou piège élaboré": {
"name": "Serrure ou piège élaboré",
"description": "<p>-4 pour les&nbsp;crocheter/d&eacute;samorcer ; un pi&egrave;ge inflige d6+1&nbsp;points de d&eacute;g&acirc;ts</p>"
},
"Serrure ou piège particulièrement ingénieux": {
"name": "Serrure ou piège particulièrement ingénieux",
"description": "<p>-6 pour les crocheter/d&eacute;samorcer ; le pi&egrave;ge&nbsp;inflige d6 x2 points de d&eacute;g&acirc;ts</p>"
},
"Substance chimique luminescente": {
"name": "Substance chimique luminescente",
"description": "<p>produit&nbsp;de la lumi&egrave;re pour une demi-journ&eacute;e</p>"
},
"Télescope": {
"name": "Télescope",
"description": ""
}
}
}

View File

@ -0,0 +1,97 @@
{
"label": "Origines",
"mapping": {
"description": "system.description"
},
"entries": {
"Bei Wei": {
"name": "Bei Wei",
"description": "<h1>Bei Wei</h1>\n<p>Peuplade de la for&ecirc;t bor&eacute;ale, les Wei sont trapus (les hommes d&eacute;passent rarement les 1,70 m) avec un visage rond au nez aplati, &agrave; la peau brune et aux cheveux noirs. Ils ont de petits yeux brid&eacute;s (noirs ou marron) qui leur conf&egrave;rent un regard intense et plut&ocirc;t inqui&eacute;tant, du moins pour ceux qui les rencontrent pour la premi&egrave;re fois.</p>\n<p>&Eacute;leveurs de xalibu (des cervid&eacute;s domestiqu&eacute;s), trappeurs et b&ucirc;cherons, ce sont de grands connaisseurs des terres gel&eacute;es du bout du monde, capables de survivre dans un environnement qui serait fatal &agrave; tout autre qu&rsquo;eux. Si vous incarnez un Wei, une de vos carri&egrave;res doit &ecirc;tre barbare ou chasseur. Chez les Wei, les carri&egrave;res de pr&ecirc;tre, sorcier ou m&eacute;decin sont interdites aux hommes et ressortent du domaine exclusif des femmes.</p>\n<p>&nbsp;</p>\n<h2>Avantages&nbsp;</h2>\n<p>ami des b&ecirc;tes, intr&eacute;pide, mains gu&eacute;risseuses, sant&eacute; de fer, tigre des neiges, tireur puissant, vigilant, vue per&ccedil;ante.</p>\n<p>&nbsp;</p>\n<h2>D&eacute;savantages</h2>\n<p>bouseux, illettr&eacute;, inadapt&eacute; &agrave; la chaleur, inqui&eacute;tant, m&eacute;fiance envers la sorcellerie, taciturne.</p>\n<p>&nbsp;</p>\n<h2>Noms masculins&nbsp;</h2>\n<p>Bongyur, Dongge, Dreugpa, Gempo, Jungnen, Kamzo, Kempo, Lungpo, Nagpo, Nyetri, Phagpa, Sengtsen.</p>\n<p>&nbsp;</p>\n<h2>Noms f&eacute;minins&nbsp;&nbsp;</h2>\n<p>Bkrubati, Chantra, Chodra, Jigmei, Lhalung, Logzen, Meito, Mirlapa, Palgye, Samaye, Santara, Tangba.</p>"
},
"Côte de Feu": {
"name": "Côte de Feu",
"description": "<h1>Côte de Feu</h1><p>La Côte de Feu est le domaine où vit la Reine Sorcière, entourée de ses sentinelles kalukans. Si votre héros est originaire de la Côte de Feu, vous pouvez décider den faire un kalukan, à condition que le MJ lautorise. Dans ce cas, reportez-vous au chapitre 5 pour une liste des avantages/désavantages éligibles pour un personnage kalukan. Si vous choisissez plutôt dêtre un humain, utilisez les listes proposées pour Halakh ou les marais de Kasht.</p>"
},
"Désert de Beshaar": {
"name": "Désert de Beshaar",
"description": "<h1>Désert de Beshaar</h1><p>Les Beshaaris sont des nomades qui chevauchent de gros oiseaux coureurs ressemblant à des autruches. Plutôt de petite taille, les Beshaaris ont une peau basanée qui a tendance à se rider profondément avec lâge en raison du soleil implacable du désert. Ils ont les yeux noirs, marron foncé, verts, violets ou pourpres. Chez eux, on rencontre plus souvent quailleurs des individus aux yeux vairons.</p><p>Les Beshaaris ont la réputation dêtre susceptibles et prompts à la colère. Ils possèdent des coutumes complexes et extrêmement codifiées quils respectent avec un scrupule sourcilleux ; une négociation avec les nomades du Beshaar est un exercice délicat où les occasions de commettre un impair sont nombreuses.</p><p>Lexotique beauté des jeunes filles beshaaries est célèbre, et celles capturées lors de raids contre les tribus nomades se retrouvent souvent vendues</p><p>comme esclaves ou danseuses. Plus dun homme impétueux a perdu la vie en se battant pour les faveurs dune séduisante vierge beshaarie.</p><p>Tous les personnages beshaaris doivent choisir barbare pour première carrière. À la chasse comme à la guerre, les guerriers beshaaris aiment à sarmer de longs javelots quils lancent depuis le dos de leurs montures.</p><h2>Avantages</h2><p>ami des bêtes, arme favorite (javelot), attirant, baudrier de guerre, né en selle, renard du désert, vision nocturne, vue perçante.</p><h2>Désavantages</h2><p>bouseux, chétif, impétueux, inadapté au froid, marin deau douce, signe distinctif, taciturne.</p><h2>Noms masculins</h2><p>Aban, Akar, Akon, Atak, Basit, Boulos, Darwish, Fath, Ferran, Harith, Jalid, Karim, Makil, Mujib, Nur, Sadin, Samad, Surk, Yazan.</p><h2>Noms féminins</h2><p>Alima, Almas, Ambre, Bisara, Dimah, Felina, Hilela, Husina, Isimi, Jamara, Judi, Kalila, Lula, Maysam, Mumi, Namara, Nuha, Qisa, Rua, Thara.</p>"
},
"Ghataï": {
"name": "Ghataï",
"description": "<h1>Ghata&iuml; (steppe du Khanat)</h1>\n<p>Les Ghata&iuml; ont la peau cuivr&eacute;e et les cheveux bruns, ch&acirc;tain fonc&eacute; ou roux. Leurs yeux en amande sont g&eacute;n&eacute;ralement noirs ou marron, plus rarement bleus ou indigo. De taille moyenne, les Ghata&iuml; sont r&acirc;bl&eacute;s, endurcis par une vie rude dans un environnement aust&egrave;re.</p>\n<p>Ce sont des nomades et des &eacute;leveurs, ma&icirc;tres de la grande steppe qui s&rsquo; &eacute;tend entre les montagnes de l&rsquo;Axos au sud et le Bois du Sage au nord. C&rsquo;est un peuple de cavaliers &eacute;m&eacute;rites, dont une partie s&rsquo;est s&eacute;dentaris&eacute;e apr&egrave;s avoir conquis les cit&eacute;s des Xi Lu. Si votre personnage appartient aux nomades ghata&iuml;, une de ses carri&egrave;res doit &ecirc;tre barbare ou mercenaire.</p>\n<p>&nbsp;</p>\n<h2>Avantages&nbsp;</h2>\n<p>arme favorite (arc ghata&iuml; ou fouet), dur &agrave; cuire, fils des plaines, vision nocturne, vue per&ccedil;ante.</p>\n<p>&nbsp;</p>\n<h2>D&eacute;savantages&nbsp;</h2>\n<p>bouseux, illettr&eacute;, imp&eacute;tueux, inadapt&eacute; &agrave; la chaleur, indigne de confiance, marin d&rsquo;eau douce.</p>\n<p>&nbsp;</p>\n<h2>Noms masculins&nbsp;&nbsp;</h2>\n<p>Akta, Alagh, Chimeg, Gentulga, Gorgeg, Khubila&iuml;, Manga&iuml;, Nemtar, Subota&iuml;, Telagu, Ulba, Zhengar.</p>\n<p>&nbsp;</p>\n<h2>Noms f&eacute;minins&nbsp;&nbsp;</h2>\n<p>Bolaarma, Enthu, Erdene, Kushi, Narrantseg, Ner, Odval, Oyunn, Setseg, Silta, Suren, Yeshe.</p>"
},
"Halakh": {
"name": "Halakh",
"description": "<h1>Halakh</h1><p>Les graciles Halakhis ont la peau brune, les cheveux noirs et les yeux sombres. Leur cité dans les montagnes est un important centre de commerce pour les nomades beshaaris, qui sont leurs proches cousins, et des marchands de toutes les contrées de Lémurie convergent en ce lieu. Les Halakhis portent souvent le kriss, un long poignard à la lame sinueuse, et il se murmure que cest à Halakh que lon trouve les meilleurs assassins.</p><h2>Avantages</h2><p>arme favorite (kriss), discret, montagnard, outillage, renard du désert, résistant aux poisons, vision nocturne.</p><h2>Désavantages</h2><p>addiction, fanatique, gars de la ville, indigne de confiance, marin deau douce.</p><h2>Noms masculins</h2><p>Angada, Balaram, Bhadrakil, Chalam, Chedi, Daruk, Devad, Drajit, Govardan, Iravan, Janak, Jiwal, Karna, Kichaka, Kurava, Maharak, Mapoutra, Parada, Parasara, Shoumat.</p><h2>Noms féminins</h2><p>Anjana, Ardana, Charla, Damayanti, Devaki, Gadiva, Hanala, Holi, Ilvala, Jasura, Kalindi, Kesha, Madri, Mashini, Nakula, Nala, Neta, Ralekha, Rasena, Vahana.</p>"
},
"Îles du Crâne": {
"name": "Îles du Crâne",
"description": "<h1>Îles du Crâne</h1><p>On trouve sur les îles du Crâne des gens originaires des quatre coins de Lémurie, qui forment le pire rassemblement de crapules et de forbans qui se puisse trouver. Les hommes y sont bien plus nombreux que les femmes, lesquelles restent souvent cantonnées au rôle de serveuses dans les tripots, même si certaines ont su se tailler une place parmi les pirates. Ceux qui viennent ici le font généralement pour deux raisons : lappel du large et la promesse du butin. Si votre héros vient des îles du Crâne, une de ses carrières doit être pirate.</p><h2>Avantages</h2><p>amis dans la pègre, athlète, bagarreur, discret, doigts de fée, fêtard, gamin des rues, pied marin, récupération rapide, roi de lévasion, vigilant, vue perçante.</p><h2>Désavantages</h2><p>borgne / oreille coupée, cupide, fanfaron, illettré, indigne de confiance, lubrique, malédiction de Morgazzon, manchot / unijambiste, maudit, phobie, poltron, signe distinctif, soiffard, traqué.</p><h2>Noms</h2><p>comme des gens de tous horizons se retrouvent ici, on y rencontre des noms provenant de toutes les contrées de Lémurie.</p>"
},
"Jungle de Qo et jungle de Qush": {
"name": "Jungle de Qo et jungle de Qush",
"description": "<h1>Jungle de Qo et jungle de Qush</h1><p>Si vous provenez de ces jungles impénétrables, vous serez certainement un grooth (cf. chapitre 5), mais demandez dabord laccord du MJ. Sinon, il existe quelques tribus humaines de barbares et de chasseurs installées à la lisière de la jungle. Si votre héros provient dune de ces tribus, utilisez la liste davantages/désavantages et les noms propres de Shamballah (cf. ci-après).</p>"
},
"Lysor": {
"name": "Lysor",
"description": "<h1>Lysor</h1><p>Les Lysoriens sont des gens paisibles et méditatifs. Alors que leur cité grouille détrangers affairés et bruyants, les natifs de Lysor tranchent par leur calme et leur attitude méditative, comme sils restaient insensibles à lagitation ambiante.</p><p>Les Lysoriens ont habituellement les cheveux blonds ou châtain clair et les yeux bleus ou verts, bien que les autres couleurs ne soient pas non plus inhabituelles. Ils affichent généralement un teint frais, légèrement hâlé, qui respire la santé. Lysor senorgueillit de compter les meilleurs guérisseurs et médecins de toute la Lémurie, même si les fiers Satarlans contestent cette assertion.</p><h2>Avantages</h2><p>amis haut placés, artiste, attirant, bibliothèque savante, érudit, fortuné, mains guérisseuses, perspicace, récupération rapide, résistant aux poisons, santé de fer, savant.</p><h2>Désavantages</h2><p>chétif, foie jaune, gars de la ville, incapable de mentir, lent à la détente, malédiction de Morgazzon, non-combattant.</p><h2>Noms masculins</h2><p>Aklaton, Bardak, Bazyli, Creon, Cyr, Dramik, Erechon, Jenko, Morgos, Myron, Otos, Skorpos, Vaston, Zedek, Zerro.</p><h2>Noms féminins</h2><p>Adara, Alesta, Cora, Dresina, Elma, Furka, Honna, Irusina, Jace, Letha, Megara, Melika, Nirla, Timandra, Uvikka, Vara, Zeva.</p>"
},
"Malakut": {
"name": "Malakut",
"description": "<h1>Malakut</h1><p>Les Malakutis ont une apparence qui leur confère souvent un air inquiétant. Plutôt frêles, le teint olivâtre et les cheveux noirs ou châtain foncé, ils ont les lèvres minces, de petits yeux et le nez aquilin. Deux redoutables guildes de voleurs sopposent à Malakut, les Guenillards et les Poignards Sanglants. Extrêmement puissantes au sein de la cité, les deux guildes étendent également leur influence aux villes voisines de la région. Malakut produit de fameuses lances au fer en forme de longue feuille de laurier, les khastoks, qui sont utilisées par la Garde royale jemadar. Si votre personnage est originaire de Malakut, il y a de fortes chances pour que sa première carrière soit voleur.</p><h2>Avantages</h2><p>amis dans la pègre, arme favorite (khastok), combat à laveugle, discret, doigts de fée, fêtard, fils des plaines, gamin des rues, outillage (outils de voleur), vigilant.</p><h2>Désavantages</h2><p>chétif, gars de la ville, indigne de confiance, marin deau douce, mauvaise réputation, traqué.</p><h2>Noms masculins</h2><p>Arfi, Badar, Crixas, Darzi, Erfan, Firdos, Gilki, Jandak, Krugar, Lodar, Midum, Nakum, Purdos, Qalader, Qatir, Qorbi, Ralak, Sardan, Tamar, Zemar.</p><h2>Noms féminins</h2><p>Adala, Azra, Bursebala, Coza, Daliya, Dua, Ethibela, Lamala, Mirvala, Norva, Qisi, Roshan, Sakina, Saran, Simi, Tala, Tikina, Wella, Xua, Zinah.</p>"
},
"Marais de Festrel": {
"name": "Marais de Festrel",
"description": "<h1>Marais de Festrel</h1><p>Les marais de Festrel hébergent une population clairsemée, car cette région est loin dêtre la plus hospitalière de Lémurie. Les hommes qui vivent ici cultivent leur isolement et, quand ils nont pas envie de se montrer aux étrangers, sont très difficiles à trouver. Petits et trapus, ils font preuve dune agilité étonnante et sont de formidables bateliers.</p><h2>Avantages</h2><p>athlète, bagarreur, discret, odorat développé, ouïe fine, pisteur des marais, résistant aux poisons, santé de fer, vigilant.</p><h2>Désavantages</h2><p>bouseux, illettré, inadapté à la chaleur, maudit, taciturne.</p><h2>Noms</h2><p>les habitants des marais de Festrel portent le même genre de noms que ceux de Parsool et dOomis.</p>"
},
"Marais de Kasht": {
"name": "Marais de Kasht",
"description": "<h1>Marais de Kasht</h1><p>Les habitants des marais de Kasht sont généralement petits et sveltes, avec des cheveux noirs et la peau pâle. Aussi silencieux et invisibles que des ombres, ils se déplacent à travers leur pays marécageux, empruntant des chemins secrets tracés par plusieurs générations de chasseurs, de trappeurs et de pêcheurs. Ils sont passés maîtres dans lart dutiliser leur environnement pour se camoufler et masquer leur odeur, afin dapprocher les créatures du marais quils chassent pour se nourrir.</p><h2>Avantages</h2><p>ami des bêtes, athlète, discret, odorat développé, ouïe fine, pisteur des marais, résistant aux poisons, santé de fer, vigilant.</p><h2>Désavantages</h2><p>bouseux, chétif, crédule.</p><h2>Noms masculins</h2><p>Achak, Ahmik, Akando, Akule, Ashok, Bidi, Chepi, Chetan, Ciqala, Dogon, Goth, Hinto, Hokee, Jolon, Keme, Knoton, Kourouk, Molimo, Tkala, Tkouna.</p><h2>Noms féminins</h2><p>Aiyana, Alawa, Atiaran, Bly, Camarin, Cathecassa, Chapala, Chimalis, Dena, Doli, Donoma, Etania, Kalama, Landina, Mitenah, Nitika, Onatah, Orenda, Zkala, Zkouna.</p>"
},
"Montagnes de lAxos": {
"name": "Montagnes de lAxos",
"description": "<h1>Montagnes de lAxos</h1><p>Les contreforts de ces montagnes sont habités par plusieurs tribus de farouches barbares. Blancs de peau, grands et athlétiques, ces éleveurs sont aussi dexcellents chasseurs et des grimpeurs réputés. Les hommes des tribus de lAxos mènent une vie fruste ; leur artisanat et leur art nutilisent que les matériaux que leurs offrent leurs montagnes, et cest également le cas pour leurs armes de chasse et de guerre.</p><p>Si vous êtes originaire des montagnes de lAxos, votre première carrière doit être barbare, et il ne serait pas étonnant que vous soyez aussi chasseur. Les tribus de lAxos sont réputées pour leur habileté à la fronde.</p><p>Les cimes de la chaîne de lAxos sont la demeure dun énigmatique peuple dhommesoiseaux (cf. chapitre 5).</p><h2>Avantages</h2><p>arme favorite (fronde de lAxos), athlète, colosse, cri de guerre, dur à cuire, montagnard, odorat développé, ouïe fine, récupération rapide, santé de fer, vigilant.</p><h2>Désavantages</h2><p>bouseux, illettré, inadapté à la chaleur, marin deau douce, méfiance envers la sorcellerie, taciturne.</p><h2>Noms masculins</h2><p>Almod, Amerik, Borc, Drogar, Erkil, Fiak, Finvar, Ginnar, Hakon, Krakar, Oslac, Rokar, Salgarth, Sungar, Thork, Thurkil, Travik, Vali, Vikar, Vogg.</p><h2>Noms féminins</h2><p>Arlin, Asta, Birla, Dalla, Emelle, Esja, Evenni, Finna, Forla, Froda, Gevi, Glevara, Herdis, Jodis, Jofa, Klima, Runa, Rym, Sivora, Varda.</p>"
},
"Oomis": {
"name": "Oomis",
"description": "<h1>Oomis</h1><p>Les Oomisiens sont généralement grands et solidement charpentés, avec les cheveux dun blanc argenté, des yeux de différentes nuances de bleu, des petites oreilles (à peine dessinées) et une peau présentant une légère teinte bleutée. Ces caractéristiques physiques amènent certains à se demander jusquoù va lamitié qui les lie aux nomades bleus…</p><p>Cest un peuple dhabiles négociants, et un personnage originaire dOomis prendra souvent marchand pour première carrière.</p><h2>Avantages</h2><p>ami des céruléens, dur à cuire, fortuné, perspicace.</p><h2>Désavantages</h2><p>cupide, dur doreille, lent à la détente, malédiction de Morgazzon.</p><h2>Noms masculins</h2><p>Aceld, Algeros, Curcio, Dalmar, Deston, Kaarlo, Norf, Quent, Rust, Sevrik, Vardon, Vik.</p><h2>Noms féminins</h2><p>Afrodille, Alix, Daisi, Dany, Delit, Jance, Jenina, Jessamin, Miette, Myrla, Questa.</p>"
},
"Parsool": {
"name": "Parsool",
"description": "<h1>Parsool</h1><p>La population de Parsool est très cosmopolite et lon y croise tous les types de morphologie et toutes les couleurs de peau. Les meilleurs marins de Lémurie viennent de Parsool. Un personnage originaire de cette cité prendra certainement marin parmi ses choix de carrières.</p><h2>Avantages</h2><p>arme favorite (hache dabordage de Parsool), cri de guerre (Parsool), fêtard, pied marin.</p><h2>Désavantages</h2><p>borgne/oreille coupée, gars de la ville, illettré, manchot/unijambiste, soiffard.</p><h2>Noms masculins</h2><p>Agroc, Bardhyl, Besmir, Dar, Driton, Erion, Jaak, Jeton, Jodoc, Juhan, Kalev, Koit, Lek, Loic, Nighul, Paol, Pavo, Ropar, Skender, Toomaas.</p><h2>Noms féminins</h2><p>Arvesa, Besa, Bora, Dritta, Eha, Genta, Kaias, Kaja, Leka, Liridona, Loviise, Marika, Mimiza, Mirjam, Reet, Riina, Rovena, Tuule, Viu, Zami.</p>"
},
"Plaines de Klaar": {
"name": "Plaines de Klaar",
"description": "<h1>Plaines de Klaar</h1><p>Les plaines de Klaar sont la demeure des céruléens, une race de géants à la peau gris-bleu quon surnomme aussi les nomades bleus. Effrayants par leur taille, les céruléens ne sont pourtant pas un peuple particulièrement agressif. De fait, ce sont surtout dexcellents marchands.</p><p>Si votre personnage est un céruléen, vous devez choisir barbare comme première carrière. Votre deuxième carrière sera certainement marchand, puisque tous les enfants des nomades bleus apprennent dès leur plus jeune âge lart du négoce. Les carrières dalchimiste, de médecin, de scribe et de sorcier sont interdites aux céruléens. Chez eux, les prêtres sont appelés des chamans. Vous trouverez au chapitre 5 une liste des avantages/ désavantages pour un personnage céruléen, ainsi que quelques exemples de noms.</p>"
},
"Satarla": {
"name": "Satarla",
"description": "<h1>Satarla</h1><p>La cité de Satarla, quon surnomme le « Joyau de Lémurie », est un haut lieu de culture et de sophistication. Les Satarlans sont souvent plus grands que la moyenne, mais comme la ville accueille des gens de toutes origines, on y rencontre toutes les morphologies et toutes les couleurs de peau. Il est amusant de noter que ceux qui sinstallent ici ont tôt fait dadopter cet air supérieur qui semble commun à tous les natifs de Satarla. La mendicité y est interdite, aussi un personnage originaire de Satarla ne peut-il débuter avec une carrière de mendiant. Seuls les Satarlans peuvent choisir dadopter la carrière de pilote des airs. Les prouesses des chevaliers de Satarla sont légendaires.</p><h2>Avantages</h2><p>amis haut placés, artiste, bibliothèque savante, bien né, érudit, fortuné, marqué par les dieux, né en selle, savant.</p><h2>Désavantages : arrogant, cupide, gars de la ville. Noms masculins</h2><p>Alban, Avitus, Blasius, Brutor, Cassian, Corvin, Crisus, Drusus, Emilian, Festus, Gallus, Gord, Hilaro, Hort, Juven, Luman, Martis, Nonus, Petron, Regul, Rufin, Sabin, Severan, Terent, Torc, Vitan.</p><h2>Noms féminins</h2><p>Amilia, Arlana, Cassi, Cloel, Domitia, Fabula, Floriana, Gemellia, Junia, Laela, Laurenia, Manda, Marina, Nunia, Quina, Severina, Tullia, Valeria, Varinia, Vita.</p>"
},
"Shamballah": {
"name": "Shamballah",
"description": "<h1>Shamballah</h1><p>Les natifs de Shamballah ont la peau mate, les cheveux foncés et des yeux violets, écarlates ou indigo. Ils ont des sens particulièrement affûtés et font dexcellents chasseurs.</p><h2>Avantages</h2><p>ami des bêtes, athlète, odorat développé, ouïe fine, roi de la jungle, vigilant, vue perçante.</p><h2>Désavantages</h2><p>bouseux, illettré, inadapté au froid, marin deau douce, méfiance envers la sorcellerie.</p><h2>Noms masculins</h2><p>Akri, Badran, Bello, Diallo, Donkor, Eze, Jaafar, Juma, Kamouzou, MBoutou, MDogo, Nasso, Ohin, Oulan, Rasoul, Simballa, Talib, Watimou, Zareb, Zouri.</p><h2>Noms féminins</h2><p>Afi, Bembel, Binta, Chipi, Damisi, Dayo, Elomi, Geli, Habika, Jahia, Lila, MLala, Panya, Sabra, Shani, Tabita, Tisha, Yousra, Zalika, Zina.</p>"
},
"Terres Désolées": {
"name": "Terres Désolées",
"description": "<h1>Terres Désolées</h1><p>Personne ne sait grand-chose au sujet des Terres Désolées, et moins encore sur les contrées qui sétendraient au-delà. Des gens vivent assurément dans cette région, sil faut en croire les récits de chasseurs et dexplorateurs qui ont relevé des traces de présence. Mais à ce jour, personne na découvert le moindre village ou hameau, et on ignore tout de lapparence de leurs habitants.</p><p>Si votre héros est originaire des Terres Désolées, il vous faudra travailler avec le MJ pour déterminer à quoi ressemble votre personnage. Mais attendezvous à ce quil soit toujours considéré comme un étranger, où quil se rende en Lémurie.</p>"
},
"Tyrus": {
"name": "Tyrus",
"description": "<h1>Tyrus</h1><p>Les habitants de la prospère cité fluviale de Tyrus ont la peau et les cheveux sombres, les yeux verts ou marron. Les soldats de Tyrus sont des archers fameux et les artisans de la ville produisent de magnifiques arcs longs. Les sorciers y sont proscrits.</p><h2>Avantages</h2><p>arme favorite (arc long de Tyrus), bagarreur, cri de guerre (Tyrus), fêtard, résistant à la magie, roi de la jungle, sentir la magie, vigilant.</p><h2>Désavantages</h2><p>fanfaron, gars de la ville, illettré, méfiance envers la sorcellerie, soiffard.</p><h2>Noms masculins</h2><p>Anxo, Baldo, Bartol, Bento, Dimas, Eloy, Ericos, Gaspar, Helder, Jorg, Mogos, Nuno, Ovanto, Pluco, Qido, Raul, Rui, Tacito, Thiago, Valen.</p><h2>Noms féminins</h2><p>Ana, Branca, Carmo, Desideria, Dorotana, Jovita, Judita, Kardelia, Lia, Lotia, Lygia, Miella, Nona, Rebeqa, Sabella, Tuvia, Uxia, Xania, Xoanna, Zeta.</p>"
},
"Urceb": {
"name": "Urceb",
"description": "<h1>Urceb</h1><p>Les habitants dUrceb sont des risque-tout, des joueurs et des opportunistes. Habitués à saventurer dans les souterrains qui sétendent sous leur cité, ils sont à leur aise dans les tunnels, les catacombes et les grottes.</p><h2>Avantages</h2><p>amis dans la pègre, amis haut placés, combat à laveugle, fêtard, outillage, roi de lévasion, vision nocturne.</p><h2>Désavantages : gars de la ville, illettré, taciturne. Noms masculins</h2><p>Ambros, Axel, Bodo, Curd, Dolf, Egond, Falkor, Golo, Hegbran, Jonar, Kurnvarn, Londar, Lothar, Mennus, Rudig, Sepp, Till, Torsten, Urs, Volkard.</p><h2>Noms féminins</h2><p>Alhella, Barbella, Crika, Dorlina, Erna, Frekka, Gusala, Hannelor, Jolanda, Karolinda, Letta, Lieselotte, Margita, Nadja, Pia, Resi, Seffi, Theda, Ursa, Uta.</p>"
},
"Valgard": {
"name": "Valgard",
"description": "<h1>Valgard</h1><p>Grands et musclés, arborant des tignasses blondes ou rousses, les Valgardiens vivent en tribus belliqueuses. Si votre personnage est originaire de Valgard, une de ses carrières doit être barbare. Les sorciers ou les alchimistes sont rares parmi les Valgardiens, sans être non plus totalement inédits.</p><h2>Avantages</h2><p>arme favorite (épée valgardienne), cri de guerre (Valgard), marqué par les dieux, odorat développé, récupération rapide, tigre des neiges.</p><h2>Désavantages</h2><p>bouseux, illettré, inadapté à la chaleur, incapable de mentir, marin deau douce, méfiance envers la sorcellerie, taciturne.</p><h2>Noms masculins</h2><p>Abrak, Ankar, Asvith, Banfar, Borkar, Broti, Craigor, Drakkar, Elkor, Fingor, Gonnar, Grimar, Hevik, Jark, Korik, Krok, Morkrar, Rokor, Thagric, Voldar.</p><h2>Noms féminins</h2><p>Adisa, Alvora, Asara, Berna, Brongara, Disa, Edarra, Erindis, Finnara, Fraorka, Gyllana, Hakatla, Helvera, Jarngera, Jodis, Jolinn, Kitta, Marfora, Rakela, Sesilida.</p>"
},
"Zalut": {
"name": "Zalut",
"description": "<h1>Zalut</h1><p>Surnommée la cité des magiciens, Zalut est gouvernée par des sorciers, des prêtres et des alchimistes. Les Zalutis ont la peau très pâle (les albinos y sont moins rares quailleurs) et aiment à se raser le crâne. Ils cultivent leur isolement et la légende prétend quils seraient les derniers descendants des Rois-Sorciers.</p><p>En général, les personnages originaires de Zalut possèdent une de ces trois carrières susnommées, ou sont esclaves. Dautres choix de carrières restent toutefois possibles.</p><h2>Avantages</h2><p>érudit, intimidant, magie des RoisSorciers, pouvoir du Néant, résistant à la magie, résistant aux poisons, savant, sentir la magie, vision nocturne.</p><h2>Désavantages</h2><p>addiction, arrogant, chétif, foie jaune, indigne de confiance, inquiétant, malédiction de Morgazzon, maudit, obsession, poltron, signe distinctif, souffreteux.</p><h2>Noms masculins</h2><p>Ariistuzuun, Arsiuqqu, Balathu, Bashaa, Dadanuum, Hunzuu, Ikuppi, Libulluth, Nigsummu, Nikannuur, NurYunna, Nutesh, Puzzur, Rihaatu, Sargon, Suusaandar, Tattaanu, Yamazuubaar, Zorgal, Zuuthusu.</p><h2>Noms féminins</h2><p>Amatia, Ashlultum, Banuna, Gemeti, Iltani, Ishtaya, Jaarthula, Kishu, Ku-Aya, Nidintu, Numunia, Nuteshi, Sillashu, Sumia, Thuulia, Yadidatum, Zadia, Zakiti, Zemibi, Zorkara.</p>"
}
}
}

View File

@ -0,0 +1,157 @@
{
"label": "Alchimie - Potions",
"mapping": {
"description": "system.description"
},
"entries": {
"Acide": {
"name": "Acide",
"description": "<p>1 petite fiole, inflige d3 points de&nbsp;d&eacute;g&acirc;ts ou peut percer 2,5 cm de bois ou de&nbsp;m&eacute;tal</p>"
},
"Agrandissement ou Rapetissement": {
"name": "Agrandissement ou Rapetissement",
"description": "<p>Dur&eacute;e : 1 sc&egrave;ne</p>"
},
"Alcool de Qualité": {
"name": "Alcool de Qualité",
"description": "<p>3 bouteilles</p>"
},
"Altération permanente": {
"name": "Altération permanente",
"description": "<p>bonus permanent&nbsp;de +1 dans un attribut ; on ne peut b&eacute;n&eacute;ficier&nbsp;qu&rsquo;une seule fois des effets de cet &eacute;lixir</p>"
},
"Antalgique": {
"name": "Antalgique",
"description": "<p>2d6 heures d'effet, 3 doses</p>"
},
"Anti-Fièvre": {
"name": "Anti-Fièvre",
"description": "<p>2d6 heures d'effet, 3 doses</p>"
},
"Antidote aux Poisons Alchimiques": {
"name": "Antidote aux Poisons Alchimiques",
"description": "<p>Soigne&nbsp;l&rsquo; empoisonnement en 1 heure, 3 doses</p>"
},
"Antidote contre les Venins Animaux et Poisons Végétaux": {
"name": "Antidote contre les Venins Animaux et Poisons Végétaux",
"description": "<p>soigne l&rsquo; empoisonnement&nbsp;en 1 heure, 3 doses</p>"
},
"Antidote Universel": {
"name": "Antidote Universel",
"description": "<p>soigne instantan&eacute;ment&nbsp;n&rsquo;importe quel empoisonnement, m&ecirc;me&nbsp;magique ; 1 dose</p>"
},
"Beauté": {
"name": "Beauté",
"description": "<p>+1 en aura ; dur&eacute;e : une sc&egrave;ne</p>"
},
"Encre Invisible": {
"name": "Encre Invisible",
"description": "<p>R&eacute;appara&icirc;t quand elle est mouill&eacute;e ou chauff&eacute;e</p>"
},
"Feu Alchimique": {
"name": "Feu Alchimique",
"description": "<p>une fiole qui, quand elle est&nbsp;bris&eacute;e, explose en une boule de feu de 3 m de&nbsp;rayon, infligeant d6 x2 points de d&eacute;g&acirc;ts</p>"
},
"Héroïsme": {
"name": "Héroïsme",
"description": "<p>le buveur b&eacute;n&eacute;ficie d&rsquo;un bonus de&nbsp;+1 &agrave; toutes ses aptitudes de combat ; dur&eacute;e :&nbsp;une sc&egrave;ne ; 1 dose</p>"
},
"Illusion de la Jeunesse": {
"name": "Illusion de la Jeunesse",
"description": "<p>le buveur retrouve&nbsp;l&rsquo;apparence qu&rsquo;il avait &agrave; 25 ans ; dur&eacute;e : une&nbsp;semaine ; 1 dose</p>"
},
"Immortalité": {
"name": "Immortalité",
"description": "<p>Pr&eacute;vient toute mort naturelle.&nbsp;Le buveur vieillit lentement, en se dess&eacute;chant&nbsp;au fil des si&egrave;cles. Seule une mort violente peut&nbsp;l&rsquo; emporter.</p>"
},
"Métamorphose": {
"name": "Métamorphose",
"description": "<p>le buveur prend l&rsquo;apparence d&rsquo;une autre personne, pour une dur&eacute;e d&rsquo;une heure. N&eacute;cessite quelques cheveux, rognures&nbsp;d&rsquo;ongles, ou gouttes de sang de la personne en&nbsp;question ; 1 dose</p>"
},
"Mort aux Rats": {
"name": "Mort aux Rats",
"description": "<p>Tue&nbsp; les&nbsp; petits&nbsp; animaux&nbsp;nuisibles</p>"
},
"Neutralisant dacide": {
"name": "Neutralisant dacide",
"description": "<p>stoppe instantan&eacute;ment&nbsp;les effets d&rsquo;une quantit&eacute; &eacute;quivalente d&rsquo;acide ;&nbsp;9 petites fioles</p>"
},
"Panacée": {
"name": "Panacée",
"description": "<p>le buveur est gu&eacute;ri de n&rsquo;importe quelle maladie ; 2 doses</p>"
},
"Paralysant": {
"name": "Paralysant",
"description": "<p>le buveur doit r&eacute;ussir un jet de&nbsp;vigueur avec votre rang d&rsquo;alchimiste en malus&nbsp;ou se retrouver paralys&eacute; pour une dur&eacute;e de 24&nbsp;heures ; 1 dose</p>"
},
"Perspicacité": {
"name": "Perspicacité",
"description": "<p>+1 en esprit ; dur&eacute;e : une sc&egrave;ne</p>"
},
"Philtre damour": {
"name": "Philtre damour",
"description": "<p>le buveur doit r&eacute;ussir un jet&nbsp;d&rsquo;esprit avec votre rang d&rsquo;alchimiste en malus&nbsp;ou tomber follement amoureux ; dur&eacute;e : une&nbsp;lune ; 1 dose</p>"
},
"Poudre dinvisibilité": {
"name": "Poudre dinvisibilité",
"description": "<p>rend invisible aux yeux&nbsp;d&rsquo;autrui, &agrave; moins d&rsquo;entreprendre une action&nbsp;qui attire l&rsquo;attention ; dur&eacute;e : une sc&egrave;ne</p>"
},
"Poudre de Phénix": {
"name": "Poudre de Phénix",
"description": "<p>une poudre qui br&ucirc;le au&nbsp;contact, m&ecirc;me sous l&rsquo; eau, en infligeant d6 x3&nbsp;points de d&eacute;g&acirc;ts</p>"
},
"Précision": {
"name": "Précision",
"description": "<p>un d&eacute; de bonus aux jets d&rsquo;attaque de&nbsp;tir ; dur&eacute;e : une sc&egrave;ne</p>"
},
"Prouesse": {
"name": "Prouesse",
"description": "<p>un d&eacute; de bonus aux jets d&rsquo;attaque de&nbsp;corps &agrave; corps ; dur&eacute;e : une sc&egrave;ne</p>"
},
"Puissance": {
"name": "Puissance",
"description": "<p>+1 en vigueur ; dur&eacute;e : une sc&egrave;ne</p>"
},
"Régénération Suprême": {
"name": "Régénération Suprême",
"description": "<p>provoque &nbsp;la&nbsp;r&eacute;g&eacute;n&eacute;ration d&rsquo;un membre amput&eacute;, d&rsquo;un &oelig;il&nbsp;perdu, etc., annulant le d&eacute;savantage associ&eacute; &agrave;&nbsp;ce handicap</p>"
},
"Remède contre la Vérole": {
"name": "Remède contre la Vérole",
"description": ""
},
"Remède contre le Scorbut": {
"name": "Remède contre le Scorbut",
"description": ""
},
"Répulsifs à Insecte": {
"name": "Répulsifs à Insecte",
"description": "<p>4d6 heures d&rsquo;effet, 3 doses</p>"
},
"Résistance": {
"name": "Résistance",
"description": "<p>la peau du buveur devient aussi&nbsp;r&eacute;sistante qu&rsquo;une armure, lui offrant d6 de&nbsp;protection ; dur&eacute;e : une sc&egrave;ne ; 1 dose</p>"
},
"Sens Accrus": {
"name": "Sens Accrus",
"description": "<p>Un d&eacute; de bonus aux jets d&rsquo;action&nbsp;pour d&eacute;tecter ou rep&eacute;rer quelque chose ;&nbsp;dur&eacute;e : une sc&egrave;ne</p>"
},
"Sommeil Instantané": {
"name": "Sommeil Instantané",
"description": "<p>le buveur doit r&eacute;ussir un&nbsp;jet de vigueur avec votre rang d&rsquo;alchimiste en&nbsp;malus, ou sombrer dans un profond sommeil&nbsp;pendant une demi-journ&eacute;e.</p>"
},
"Somnifere": {
"name": "Somnifere",
"description": "<p>A l&rsquo;ingestion, provoque 2d6 heures&nbsp;de sommeil profond, 3 doses</p>"
},
"Teinture de respiration aquatique": {
"name": "Teinture de respiration aquatique",
"description": "<p>permet&nbsp;au buveur de respirer sous l&rsquo;eau pendant une&nbsp;demi-journ&eacute;e</p>"
},
"Vivacité": {
"name": "Vivacité",
"description": "<p>+1 en agilit&eacute; ; dur&eacute;e : une sc&egrave;ne</p>"
}
}
}

View File

@ -0,0 +1,41 @@
{
"label": "Races",
"mapping": {
"description": "system.description"
},
"entries": {
"Céruléens": {
"name": "Céruléens",
"description": "<h1>Céruléens</h1><p>Malgré leur nom, les céruléens (aussi appelés les nomades bleus) ont plutôt la peau grise, avec des variations de teinte allant du gris-vert au gris-bleu, voire au gris-violet. Les mâles mesurent entre 2,20 et 2,50 m, mais certains peuvent atteindre jusquà 2,70 m. En moyenne, les femmes font une trentaine de centimètres de moins que les hommes et possèdent une silhouette moins massive queux. Tous sont généralement chauves.</p><p>Les céruléens parcourent les plaines de Klaar dans leurs grands chariots, au rythme lent des énormes banths qui les tirent. Cest une race farouche qui se mêle peu aux hommes, à part pour commercer de temps à autre avec certains marchands qui ont su gagner leur confiance, à Urceb ou Oomis. Il existe plusieurs grandes tribus et une vingtaine ou une trentaine de tribus mineures. Chacune possède son propre nom, que ses membres accolent à leur prénom. Voici les noms des tribus les plus connues : Hegga, Karvoona, Kazzorla, Chunth, Thazaar et Kozaar. Chaque tribu est dirigée par un chef et compte également un chaman, qui tient le rôle de chef spirituel et de médecin.</p><p>Malgré leur physique impressionnant, les céruléens ne sont pas un peuple particulièrement belliqueux, même sils ne manquent pas datouts pour le combat. Lorsque deux tribus saffrontent, ils vont à la bataille montés sur des eldaphons spécialement entraînés pour la guerre.</p><p>Les nomades bleus préfèrent le commerce à la guerre. La dernière semaine de chaque mois, différentes tribus se rassemblent dans les ruines dYgddar pour échanger des marchandises et retrouver de vieux amis. Certaines tribus sont en conflit et il arrive parfois que des rixes éclatent, mais ces périodes consacrées au commerce se déroulent en général dans une ambiance cordiale.</p><p>On raconte que les céruléens seraient le résultat dexpériences alchimiques menées par les Rois-Sorciers.</p><p>LEdda pourpre et dautres chroniques anciennes indiquent sans lombre dun doute que des géants à la peau bleue combattaient au côté des Rois-Sorciers à lépoque de Kylarth, comme du temps du roi Thangard. À la bataille du gouffre dHyrdral, le géant bleu Chunak mena ses frères à la révolte contre leurs maîtres reptiliens, quils massacrèrent en grand nombre avant que ceux-ci aient pu faire appel à toute la puissance de leur magie maléfique. Sans ce revirement des céruléens, il est probable que les Rois-Sorciers auraient remporté cette bataille.</p><p>Les céruléens nont aucune aptitude naturelle pour devenir sorciers ou alchimistes ; ces carrières leur sont donc interdites. Les prêtres des céruléens sont appelés des chamans et ils vénèrent principalement Quathoomar.</p><h2>Avantages</h2><p>ami des bêtes, ami des céruléens, bagarreur, colosse, dur à cuire, fils des plaines, intimidant, peau dure, récupération rapide, vigueur céruléenne.</p><h2>Désavantages</h2><p>bouseux, deux mains gauches, marin deau douce, méfiance envers la sorcellerie, pataud, signe distinctif.</p><h2>Noms masculins</h2><p>Bork, Chun, Dekk, Erkk, Fakk, Gort, Gozaar, Gurnt, Jaakko, Jank, Jouka, Jrycki, Kall, Kerrik, Kook, Koozo, Kukk, Lekk, Lozzar, Nukk, Penkk, Tarrk, Venk, Vilk, Vork.</p><h2>Noms féminins</h2><p>Akki, Bekka, Bezis, Danki, Eeva, Furka, Inka, Irka, Joona, Jurva, Kalli, Karis, Kella, Kooki, Krakki, Lazzis, Likka, Lovi, Marjukka, Marzi, Nukeel, Nukka, Oki, Rikki,Tharki.</p>"
},
"Grooth": {
"name": "Grooth",
"description": "<h1>Grooth</h1><p>Les grooth sont une race dhommes primitifs anthropophages vivant dans de petits campements de huttes rudimentaires au cœur des jungles. À peine plus évolués que des singes, ils possèdent un corps trapu et puissant, de longs bras musculeux qui pendent presque jusquau sol et des jambes courtaudes et arquées. Ils ont un visage aux traits simiesques, de petits yeux rouges sous un front proéminent et de larges mâchoires aux canines inférieures remontant comme des crocs. Les grooth sarment de solides gourdins ainsi que de lances à pointe en silex, et se ceignent les reins dun pagne en peau danimal, seuls signes chez eux dun semblant de culture.</p><p>Si vous souhaitez jouer un grooth, vous ne pouvez choisir vos carrières de départ que parmi celles-ci : barbare, dresseur, esclavagiste, gladiateur, chasseur, guerrier, chaman (prêtre), esclave, ouvrier.</p><p>Tous les grooth ont automatiquement le désavantage illettré.</p><h2>Avantages</h2><p>bagarreur, colosse, dur à cuire, intimidant, odorat développé, ouïe fine, récupération rapide, roi de la jungle, vision nocturne.</p><h2>Désavantages</h2><p>bigleux, bouseux, deux mains gauches, distrait, impétueux, marin deau douce, maudit, méfiance envers la sorcellerie, phobie du feu, repoussant, signe distinctif, taciturne.</p><h2>Noms masculins et féminins</h2><p>Ak, Bruk, Cek, Dur, Erg, Fik, Grar, Hig, Ig, Jat, Kof, Lurt, Mak, Nin, Op, Prek, Quh, Rir, Sum, Tulk, Um, Vit, Wat, Zuk.</p>"
},
"Hommes-oiseaux": {
"name": "Hommes-oiseaux",
"description": "<h1>Hommes-oiseaux</h1><p>Cette race mystérieuse et très secrète vit au cœur de vallées cachées dans les hauteurs des montagnes de lAxos. Les hommes-oiseaux sont élancés, agiles et très créatifs. Ils bâtissent leurs demeures dans des grottes et sur des corniches ; leurs ailes leur permettent de planer ou même de voler sur de courtes distances, à condition de ne pas être trop chargés. Leurs pieds présentent des serres semblables à celles doiseaux, qui leur permettent de grimper les parois rocheuses avec une grande aisance. Ce ne sont pas de grands guerriers et ils se servent essentiellement darmes de jet légères quils utilisent aussi bien à la chasse que pour défendre leur territoire. Les armures sont trop encombrantes et les empêcheraient de voler ; seuls les plus forts dentre eux séquipent en cas de danger de brassards, dun harnais et de jambières en cuir (léquivalent dune armure légère), ou utilisent un petit bouclier.</p><p>Si vous jouez un homme-oiseau, vous pouvez choisir nimporte quelle carrière, mais les carrières suivantes sont rares chez eux, et il vous faudra une bonne histoire pour expliquer ce choix : assassin, bourreau, gladiateur, marin, soldat, voleur, ouvrier, vagabond.</p><h2>Avantages</h2><p>agilité de lhomme-oiseau, ami des bêtes, arme favorite (fléchette), artiste, athlète, montagnard, vigilant, vision nocturne, vue perçante.</p><h2>Désavantages</h2><p>chétif, foie jaune, méfiance envers la sorcellerie, non-combattant, signe distinctif.</p><h2>Noms masculins</h2><p>Aaleevic, Aamaneeth, Aaneet, Cloonacool, Easreth, Eemenearl, Eveearic, Faerloec, Flaanaceel, Graaranic, Heael, Heoorl, Himeen, Hoorcaaarl, Iaoween, Jaoor, Laaric, Meerscaaarl, Nyaneeth, Oorlacooth, Raoeeth, Raor, Saamaneal, Soorth, Urllaanic.</p><h2>Noms féminins</h2><p>Aaroel, Aellaarree, Aerieena, Earraa, Eeleemeena, Evearilla, Flaermeena, Flitillia, Flooressa, Galaania, Gleeemaa, Gleesinra, Haorellee, Heelestraa, Iastreena, Ieliellaa, Ifeelea, Laeesa, Lolaandrea, Loornaea, Meerceena, Nyleea, Oorea, Raoreea, Seeorea.</p>"
},
"Humain": {
"name": "Humain",
"description": "<h1>Humain</h1>\n<p>&nbsp;</p>"
},
"Kalukans": {
"name": "Kalukans",
"description": "<h1>Kalukans</h1><p>Les kalukans sont une race deunuques sans tête, qui possèdent un seul gros œil au centre de leur poitrine, derrière lequel se situe leur cerveau. Créés artificiellement par dantiques rituels alchimiques afin de servir de gardes à leurs maîtres (notamment contre dautres magiciens), ces êtres possèdent une force surhumaine et nont besoin ni de manger, ni de dormir.</p><p>Leur corps est couvert de tatouages investis dune puissante sorcellerie qui les maintient en vie. Ils sont asexués, même sils possèdent des corps musclés et proportionnés comme ceux dhommes adultes.</p><p>La Reine Sorcière de la Côte de Feu utilise des kalukans comme sentinelles dans sa forteresse, où ils veillent armés de ces grands cimeterres qui portent le nom de tulwars.</p><p>Les kalukans nont pas de bouche et sont donc incapables de parler, ce qui leur inflige un dé de malus dans les situations sociales où ils ont besoin de se faire comprendre. Ils ne possèdent pas non plus décriture, ce qui conduit certains à les prendre pour des brutes stupides.</p><p>En réalité, ils font preuve dune grande capacité dapprentissage et peuvent parfaitement apprendre à lire et écrire.</p><p>Tous les kalukans sont nés esclaves, les héros kalukans sont donc automatiquement esclaves pour leur première carrière, et gardes (soldats) ou ouvriers pour leur deuxième carrière. Le choix reste libre pour leurs autres carrières. Étrangement, peut-être parce quils sont eux-mêmes issus dune création alchimique, les kalukans manifestent parfois un grand talent pour la création de potions, dobjets et dinstruments quand ils ont loccasion dapprendre cet art. Les kalukans ne peuvent pas être ménestrels, marchands ou courtisans, et dautres carrières leur sont également difficiles daccès.</p><p>Tous les kalukans ont automatiquement le désavantage muet.</p><h2>Avantages</h2><p>arme favorite (tulwar), colosse, dur à cuire, intimidant, peau dure, récupération rapide, résistant à la magie, résistant aux poisons, santé de fer, sentir la magie, vigilant, vigueur céruléenne, vision nocturne.</p><h2>Désavantages</h2><p>deux mains gauches, illettré, inquiétant, maudit, pataud, signe distinctif.</p><p>Dordinaire, les kalukans nont pas de nom, mais il arrive quils reçoivent un surnom. Si vous jouez un héros kalukan, vous pouvez par exemple demander à un autre joueur (ou au MJ) de donner un surnom à votre personnage.</p>"
},
"Morgal": {
"name": "Morgal",
"description": "<h1>Morgal</h1><p>Les morgal sont une race de vampires buveurs de sang qui peuvent vivre pendant des siècles (et peut-être même éternellement). Ils ressemblent au départ à des humains normaux, même sils sont particulièrement grands et pâles de peau. Mais à mesure quils prennent de lâge, les morgal perdent progressivement leur humanité et sombrent dans la démence. La couleur de leurs yeux peut aller du rouge au violet, voire au noir le plus profond. Leurs ongles poussent à une vitesse surnaturelle et à moins quun morgal ne prenne soin de les couper très régulièrement, il suffit dune semaine pour que ses mains soient griffues comme celles dune bête. Certains érudits pensent que les morgal seraient les rejetons dune lignée de Rois-Sorciers qui se serait séparée du reste de leur race dans un lointain passé.</p><h2>Avantages</h2><p>bibliothèque savante, dur à cuire, magie des Rois-Sorciers, perspicace, pouvoir du Néant, récupération rapide, résistant à la magie, savant, vision nocturne.</p><h2>Désavantages</h2><p>addiction, inquiétant, malédiction de Morgazzon, obsession, phobie du feu, poltron, signe distinctif.</p>"
},
"Rois-Sorciers": {
"name": "Rois-Sorciers",
"description": "<h1>Rois-Sorciers</h1><p>La race des Rois-Sorciers a dominé la Lémurie, et sans doute le monde entier, avant la venue de lhomme. Ils possédaient une force et une robustesse exceptionnelles, même sils nétaient pas particulièrement des guerriers. Ils étaient en revanche très intelligents et créatifs, et maîtrisaient une puissante sorcellerie qui tirait sa force dHadron et des autres seigneurs du Néant.</p><p>Les Rois-Sorciers furent détruits à la bataille du gouffre dHyrdral. Seuls quelques-uns dentre eux parvinrent à senfuir pour gagner lîle de Thulé, où leurs descendants vivraient encore de nos jours, dans la ville de Zalut, la cité des magiciens.</p><h2>Avantages</h2><p>beau parleur, bibliothèque savante, dur à cuire, magie des Rois-Sorciers, perspicace, pouvoir du Néant, récupération rapide, résistant à la magie, savant, vigueur céruléenne, vision nocturne.</p><h2>Désavantages</h2><p>addiction, arrogant, foie jaune, inquiétant, non-combattant, obsession, phobie, poltron, signe distinctif.</p><h2>Noms masculins</h2><p>Apuulluunideeszu, Kadashmasazz, Kiipluuu, Nigsummuzzugal, Niiqarquusu, Shamazzad, Shudduggaat, Shu-Thuzzul, Thusuzuu, Ugurnaszir, Vaargaxx, Xhaothigguzzar.</p><h2>Noms féminins</h2><p>Aplazza, Arishakka, Deemethresu, Labashi, Puzuri, Rihatzzi, Ripaazz, Selukzu, Utuala, Yaattirram, Yahattizzi, Zashimbra.</p>"
},
"Slorth": {
"name": "Slorth",
"description": "<h1>Slorth</h1><p>Il est presque assuré que les slorth sont une création des Rois-</p><p>Sorciers. Ces serpents à tête de femme</p><p>résident habituellement dans les déserts de Beshaar, mais on peut également les rencontrer (plus exceptionnellement) dans les plaines de Klaar. Ce sont des êtres au corps de serpent blafard (presque incolore) et putride, surmonté dune tête de femme, belle et blanche de peau, aux dents effilées. Leur morsure est venimeuse et plonge la victime dans un profond sommeil.</p><h2>Avantages</h2><p>artiste, beau parleur, discret, fils des plaines, intimidant, odorat développé, peau dure, perspicace, renard du désert, résistant aux poisons, roi de lévasion, vigilant, vision nocturne.</p><h2>Désavantages</h2><p>inadapté au froid, indigne de confiance, inquiétant, maudit, signe distinctif.</p><h2>Noms</h2><p>Bashaa, Demetzri, Eneshu, Giléru, Ishmè, Labashi, Memorashi, Numunia, Salishmè, Tiggarati.</p>"
}
}
}

View File

@ -0,0 +1,25 @@
{
"label": "Sorts",
"mapping": {
"description": "system.description"
},
"entries": {
"Arme Démoniaque": {
"name": "Arme Démoniaque",
"description": "<p>Description</p>\n<p>Permet d&rsquo;animer une arme de corps &agrave; corps qui s&rsquo;attaque&nbsp;aux ennemis du sorcier en ob&eacute;issant &agrave; ses injonctions&nbsp;mentales.</p>\n<p>Effet</p>\n<p>Les jets d&rsquo;attaque et de d&eacute;g&acirc;ts de l&rsquo;arme sont r&eacute;alis&eacute;s avec&nbsp;l&rsquo;esprit du sorcier et non son agilit&eacute; et sa vigueur.</p>"
},
"Caresse de Zaggath": {
"name": "Caresse de Zaggath",
"description": "<p>Description</p>\n<p>Permet de prendre le contr&ocirc;le d&rsquo;une source de feu et de la faire exploser.&nbsp;</p>\n<p>Effet</p>\n<p>La source de feu explose dans un d&eacute;luge de flammes&nbsp;causant d6 d&eacute;g&acirc;ts &agrave; tous ceux se trouvant &agrave; port&eacute;e de&nbsp;l&rsquo;explosion.</p>"
},
"Javelot de Methyn Sarr": {
"name": "Javelot de Methyn Sarr",
"description": "<p>Description</p>\n<p>Permet de projeter un javelot de flammes magiques sur la&nbsp;cible.</p>\n<p>Effet</p>\n<p>Le sorcier r&eacute;alise un test de tir classique. En cas de r&eacute;ussite,&nbsp;le javelot inflige d6B points de d&eacute;g&acirc;ts. Si le r&eacute;sultat du d&eacute; de&nbsp;d&eacute;g&acirc;t est un 6, la cible s&rsquo;enflamme.</p>"
},
"Mauvais Oeil": {
"name": "Mauvais Oeil",
"description": "<p>Description</p>\n<p>Permet d&rsquo;infliger &agrave; la cible une mal&eacute;diction qui affecte sa&nbsp;capacit&eacute; d&rsquo;agir.</p>\n<p>Effet</p>\n<p>La victime re&ccedil;oit 1 d&eacute; malus sur tous ses jets d&rsquo;action&nbsp;pendant la dur&eacute;e du sortil&egrave;ge. La difficult&eacute; est modifi&eacute;e par l'Esprit de la cible.</p>"
}
}
}

View File

@ -0,0 +1,33 @@
{
"label": "Armes de Véhicules",
"mapping": {
"description": "system.description"
},
"entries": {
"Abordage": {
"name": "Abordage",
"description": "<p>Une action dAbordage peut être tentée si deux navires sont bloqués lun contre lautre suite à une action réussie dÉperonner ou de Lancer les grappins. LAbordage est la seule action pour laquelle il ny a pas de limite aux points de ressources que vous pouvez engager afin davoir un bonus au jet dattaque. LAbordage est aussi loccasion pour des héros dentreprendre des Actions héroïques en mer, de la même façon quils peuvent le faire lors de batailles terrestres. Ces actions formeront une petite aventure à part entière, par exemple si les héros doivent fouiller le navire ennemi tout en affrontant son équipage.</p>"
},
"Briser les Rames": {
"name": "Briser les Rames",
"description": "<p>Le navire attaquant frôle le navire ennemi dans le but de briser ses rangées de rames afin de<br />limmobiliser sans le couler. Pour cette manœuvre, les navires doivent commencer le round à Bout<br />portant ou à portée Courte. Lattaquant effectue un jet daction. Le défenseur peut utiliser ses<br />ressources pour éviter lattaque (ce qui lui octroie un bonus en défense).</p>"
},
"Catapulte (Feu)": {
"name": "Catapulte (Feu)",
"description": "<p>Les catapultes peuvent tirer des pierres ou des pots de goudron enflammé jusquà une portée<br />Extrême. Les pierres font des dégâts à la coque et au gréement du navire, mais peuvent aussi<br />tuer des matelots. Un pot à feu qui explose sur le pont arrose la coque et léquipage de goudron<br />enflammé, qui continue à brûler jusquà ce que lincendie soit maîtrisé.</p>"
},
"Catapulte (Pierre)": {
"name": "Catapulte (Pierre)",
"description": "<p>Les catapultes peuvent tirer des pierres ou des pots de goudron enflammé jusquà une portée<br />Extrême. Les pierres font des dégâts à la coque et au gréement du navire, mais peuvent aussi<br />tuer des matelots. Un pot à feu qui explose sur le pont arrose la coque et léquipage de goudron<br />enflammé, qui continue à brûler jusquà ce que lincendie soit maîtrisé.</p>"
},
"Crache Feu": {
"name": "Crache Feu",
"description": "<p>Lusage de cet appareil dalchimiste exige des compétences particulières. Sa conception comme<br />la formule du produit qui lalimente sont des secrets jalousement gardés. Le crache-feu est un<br />gros réservoir pressurisé équipé dun tube à son sommet. La machine tire un jet de liquide brûlant<br />à de grandes distances (jusquà portée Longue).</p>\n<p>Les flammes sont presque impossibles à éteindre.</p>"
},
"Projectiles": {
"name": "Projectiles",
"description": "<p>Léquipage du navire envoie une volée de projectiles (javelines, flèches, billes de fronde) sur le vaisseau ennemi, à condition que ce dernier se trouve au maximum à portée Longue.</p>"
}
}
}

View File

@ -0,0 +1,145 @@
{
"label": "Armes",
"mapping": {
"description": "system.description"
},
"entries": {
"Arbalète": {
"name": "Arbalète",
"description": "<h1>Arbalète</h1><p>une arme de tir qui nécessite peu dentraînement et offre beaucoup de puissance. Les lourds projectiles tirés par une arbalète portent le nom de carreaux. Il faut un round complet pour charger une arbalète.</p>"
},
"Arbalète lourde": {
"name": "Arbalète lourde",
"description": "<h1>Arbalète lourde</h1><p>plus lourde et plus puissante quune arbalète normale, larbalète lourde est peu usitée en Lémurie, sauf comme arme de siège portative. Il faut 2 rounds complets pour charger une arbalète lourde.</p>"
},
"Arc": {
"name": "Arc",
"description": "<h1>Arc</h1><p>une longue tige flexible en bois dont les extrémités sont reliées par une corde et qui permet de tirer des flèches. Il existe différentes formes darcs.</p>"
},
"Arc Ghataï": {
"name": "Arc Ghataï",
"description": "<p>Larme emblématique des Ghataï est un arc composite, particulièrement adapté pour des cavaliers. Les archers de cavalerie forment le gros des forces gathaï, qui utilisent des tactiques de harcèlement plutôt que de charge frontale.</p>"
},
"Arme dhast": {
"name": "Arme dhast",
"description": "<h1>Arme dhast</h1><p>ce nom recouvre une catégorie darmes possédant toutes un fer destiné à frapper, fixé au bout dune longue hampe en bois, qui offre à son utilisateur une grande allonge. Selon leur forme, ces armes à deux mains portent le nom de hallebarde, coutille, guisarme, vouge…</p>"
},
"Armes Improvisée": {
"name": "Armes Improvisée",
"description": ""
},
"Armes Improvisée (Lancer)": {
"name": "Armes Improvisée (Lancer)",
"description": ""
},
"Bâton": {
"name": "Bâton",
"description": "<h1>Bâton</h1><p>une longueur de bois robuste (environ 1,80 m de hauteur), qui sert aussi bien de bâton de marche que darme.</p>"
},
"Bâton-Fronde": {
"name": "Bâton-Fronde",
"description": "<h1>Bâton-Fronde</h1><p>Version plus puissante de la fronde, montée au bout dun bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>"
},
"Cimeterre": {
"name": "Cimeterre",
"description": "<h1>Épée</h1><p>larme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres dabordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de larme que vous voulez sur la fiche de votre personnage en fonction de limage que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer lennemi.</p>"
},
"Dague": {
"name": "Dague",
"description": "<h1>Dague</h1><p>cette catégorie regroupe toutes les lames courtes destinées à lacérer ou poignarder un adversaire. Les dagues sont à un ou deux tranchants selon les modèles, et peuvent être lancées aussi bien quutilisées au corps à corps. Facilement dissimulable, la dague est larme favorite des truands et des assassins.</p>"
},
"Dague (Lancer)": {
"name": "Dague (Lancer)",
"description": "<h1>Dague</h1><p>cette catégorie regroupe toutes les lames courtes destinées à lacérer ou poignarder un adversaire. Les dagues sont à un ou deux tranchants selon les modèles, et peuvent être lancées aussi bien quutilisées au corps à corps. Facilement dissimulable, la dague est larme favorite des truands et des assassins.</p>"
},
"Épée": {
"name": "Épée",
"description": "<h1>Épée</h1><p>larme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres dabordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de larme que vous voulez sur la fiche de votre personnage en fonction de limage que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer lennemi.</p>"
},
"Épée à deux mains": {
"name": "Épée à deux mains",
"description": "<h1>Épée à deux mains</h1><p>Une lourde épée pouvant mesurer jusquà 1,80 m de long pour les plus grandes, et sutilisant à deux mains. Elle peut porter différents noms selon les modèles : claymore, espadon, épée bâtarde…</p>"
},
"Fléau": {
"name": "Fléau",
"description": "<h1>Fléau</h1><p>un fléau consiste en un manche de bois prolongé dune chaîne, à lextrémité de laquelle est fixée une boule hérissée de pointes métalliques. Les fléaux ne sont pas des armes employées couramment en Lémurie, mais les gladiateurs en utilisent parfois dans les arènes. Les attaques au fléau ignorent le bonus en défense accordé par lemploi dun bouclier.</p>"
},
"Fléchettes": {
"name": "Fléchettes",
"description": "<h1>Fléchettes</h1><p>de petits projectiles ressemblant à des flèches miniatures, destinés à être lancés à la main. En général, un personnage qui utilise des fléchettes en possède un petit stock.</p>"
},
"Fouet": {
"name": "Fouet",
"description": "<p><span dir=\"ltr\" style=\"left:609.197px;top:442.965px;font-size:18.3333px;font-family:serif;transform:scaleX(0.92363)\">Outil indispensable pour des éleveurs, </span><span dir=\"ltr\" style=\"left:595.026px;top:466.304px;font-size:18.3333px;font-family:serif;transform:scaleX(0.930262)\">le fouet peut devenir une véritable arme </span><span dir=\"ltr\" style=\"left:595.026px;top:489.642px;font-size:18.3333px;font-family:serif;transform:scaleX(0.868979)\">de</span><span dir=\"ltr\" style=\"left:610.059px;top:489.642px;font-size:18.3333px;font-family:serif\"> </span><span dir=\"ltr\" style=\"left:621.719px;top:489.642px;font-size:18.3333px;font-family:serif;transform:scaleX(0.924893)\">guerre</span><span dir=\"ltr\" style=\"left:665.004px;top:489.642px;font-size:18.3333px;font-family:serif\"> </span><span dir=\"ltr\" style=\"left:676.664px;top:489.642px;font-size:18.3333px;font-family:serif;transform:scaleX(0.954368)\">entre</span><span dir=\"ltr\" style=\"left:711.626px;top:489.642px;font-size:18.3333px;font-family:serif\"> </span><span dir=\"ltr\" style=\"left:723.286px;top:489.642px;font-size:18.3333px;font-family:serif;transform:scaleX(0.83588)\">des</span><span dir=\"ltr\" style=\"left:743.709px;top:489.642px;font-size:18.3333px;font-family:serif\"> </span><span dir=\"ltr\" style=\"left:755.369px;top:489.642px;font-size:18.3333px;font-family:serif;transform:scaleX(0.956849)\">mains</span><span dir=\"ltr\" style=\"left:797.279px;top:489.642px;font-size:18.3333px;font-family:serif\"> </span><span dir=\"ltr\" style=\"left:808.939px;top:489.642px;font-size:18.3333px;font-family:serif;transform:scaleX(0.889718)\">expertes. </span><span dir=\"ltr\" style=\"left:595.026px;top:512.98px;font-size:18.3333px;font-family:serif;transform:scaleX(0.955811)\">Certains cavaliers ghataï sen sont fait </span><span dir=\"ltr\" style=\"left:595.026px;top:536.319px;font-size:18.3333px;font-family:serif;transform:scaleX(0.901031)\">une spécialité.</span></p>"
},
"Fronde": {
"name": "Fronde",
"description": "<h1>Fronde</h1><p>simple pièce de cuir équipée de lanières, une fronde permet de projeter de petites pierres ou des billes de plomb avec une certaine force. Cest une arme peu coûteuse et facile à fabriquer. Il existe une version plus puissante, montée au bout dun bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>"
},
"Gourdin": {
"name": "Gourdin",
"description": "<h1>Gourdin</h1><p>cest larme la plus rudimentaire qui soit. Un gourdin consiste généralement en un bâton de bois noueux, extrêmement dur et mesurant moins de 90 cm de long. Par commodité, on regroupe sous ce terme toute autre arme contondante du même genre (matraque, etc.). Il est possible dutiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>"
},
"Gourdin Clouté": {
"name": "Gourdin Clouté",
"description": "<h1>Gourdin</h1><p>cest larme la plus rudimentaire qui soit. Un gourdin consiste généralement en un bâton de bois noueux, extrêmement dur et mesurant moins de 90 cm de long. Par commodité, on regroupe sous ce terme toute autre arme contondante du même genre (matraque, etc.). Il est possible dutiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>"
},
"Hache": {
"name": "Hache",
"description": "<h1>Hache</h1><p>un fer à un ou deux tranchants (qui peut être en bronze, en fer ou en acier) monté sur un manche en bois.</p>"
},
"Hache (Lancer)": {
"name": "Hache (Lancer)",
"description": "<h1>Hache</h1><p>un fer à un ou deux tranchants (qui peut être en bronze, en fer ou en acier) monté sur un manche en bois.</p>"
},
"Hâche à deux mains": {
"name": "Hâche à deux mains",
"description": "<h1>Hâche à deux mains</h1><p>Une lourde hache sutilisant à deux mains.</p>"
},
"Javelot": {
"name": "Javelot",
"description": "<h1>Javelot</h1><p>une arme de jet constituée dune courte hampe surmontée dune tête pointue. En général, un guerrier qui utilise le javelot en emporte deux ou trois avec lui. Cette arme a la faveur des hommes-oiseaux de lAxos.</p>"
},
"Kriss": {
"name": "Kriss",
"description": "<h1>Dague</h1><p>cette catégorie regroupe toutes les lames courtes destinées à lacérer ou poignarder un adversaire. Les dagues sont à un ou deux tranchants selon les modèles, et peuvent être lancées aussi bien quutilisées au corps à corps. Facilement dissimulable, la dague est larme favorite des truands et des assassins.</p>"
},
"Lance": {
"name": "Lance",
"description": "<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue dune pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>"
},
"Lance (Lancer)": {
"name": "Lance (Lancer)",
"description": "<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue dune pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>"
},
"Mains Nues": {
"name": "Mains Nues",
"description": ""
},
"Masse darmes": {
"name": "Masse darmes",
"description": "<h1>Masse darmes</h1><p>cette arme a la même forme quun gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou dailettes pour plus defficacité. Les masses darmes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>"
},
"Masse darmes (Lancer)": {
"name": "Masse darmes (Lancer)",
"description": "<h1>Masse darmes</h1><p>cette arme a la même forme quun gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou dailettes pour plus defficacité. Les masses darmes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>"
},
"Massue": {
"name": "Massue",
"description": "<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont lextrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, doù son autre nom de casse-tête.</p>"
},
"Massue (Lancer)": {
"name": "Massue (Lancer)",
"description": "<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont lextrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, doù son autre nom de casse-tête.</p>"
},
"Morgenstern": {
"name": "Morgenstern",
"description": "<h1>Morgenstern</h1><p>une grosse boule de métal hérissée de pointes, montée à lextrémité dune longue hampe de 1,20 à 1,50 m de long. Rudimentaire, mais efficace.</p>"
},
"Rapière": {
"name": "Rapière",
"description": "<h1>Rapière</h1><p>cette épée fine et légère est essentiellement utilisée par les bellâtres et les courtisans des cités-états de Lémurie, chez qui lescrime a été élevé au rang dart. La rapière sutilise généralement en conjonction avec une dague de parade (aussi appelée main gauche), un petit bouclier, ou une simple cape roulée en boule.</p>"
}
}
}

View File

@ -803,6 +803,18 @@ body.system-bol img#logo {
max-width: calc(250px - 10px);
margin-right: 10px;
}
.sheet-profile-img {
cursor: pointer;
border: none;
background-color: #EEE;
height: auto;
width: 96px;
height: 96px;
min-width: 96px;
min-height: 96px;
max-width: 96px;
margin-right: 10px;
}
.bol.sheet.actor .window-content form .main .sheet-body {
overflow: hidden;
}
@ -937,6 +949,7 @@ body.system-bol img#logo {
min-height: 400px;
}
.bol.sheet.item h1 input.itemname {
margin-top: 32px;
font-family: "Wolfsbane2Expanded", cursive;
}
.bol.sheet.item .item-properties {
@ -1037,7 +1050,7 @@ body.system-bol img#logo {
flex-direction: column;
position: absolute;
top: 2.75rem;
right: 4rem;
right: 16rem;
}
.tokenhudext.right {
justify-content: flex-start;
@ -1051,9 +1064,10 @@ body.system-bol img#logo {
.tokenhudext.right2 {
justify-content: flex-start;
flex-direction: column;
/*transform: translate(0, -30%);*/
position: absolute;
top: -4rem;
left: 12rem;
left: 11rem;
}
.control-icon.tokenhudicon {
width: fit-content;
@ -1083,3 +1097,11 @@ body.system-bol img#logo {
.character-summary-rollable {
text-decoration: underline;
}
.activated-green {
color: darkgreen;
}
/* Hide compendium background image */
.compendium-sidebar .directory-item.compendium.locked .compendium-banner {
opacity: 00;
}

View File

@ -1,10 +1,19 @@
{
"ACTOR.TypeCharacter": "Character",
"ACTOR.TypeEncounter": "Encounter",
"ITEM.TypeItem": "Item",
"ITEM.TypeFeature": "Feature",
"ITEM.TypeWeapon": "Weapon",
"ITEM.TypeArmor": "Armor",
"TYPES": {
"Actor": {
"character": "PC",
"encounter": "NPC",
"npc": "NPC",
"vehicle": "Vehicle",
"horde": "Horde"
},
"Item": {
"item": "Object",
"feature": "Trait",
"weapon": "Weapon",
"armure": "Armor"
}
},
"BOL.attributes.vigor": "Strength",
"BOL.attributes.halfvigor" : "Half-Strength",
@ -46,6 +55,9 @@
"BOL.ui.horoscopesMalus": "Horoscopes (Malus)",
"BOL.ui.groupHoroscope": "Horoscrope de Groupe de ",
"BOL.ui.rabble": "Rabble",
"BOL.ui.tough": "Tough",
"BOL.ui.villain": "Villain",
"BOL.ui.properties": "Properties",
"BOL.ui.description": "Description",
"BOL.ui.actions": "Actions",
@ -164,10 +176,57 @@
"BOL.ui.armorAgiMalus": "Armor+Shield Modifier (Agi)",
"BOL.ui.armorInitMalus": "Armor Modifier (Init)",
"BOL.ui.attackValue": "Attack Value",
"BOL.ui.attackModifier": "Attack Modifier",
"BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)",
"BOL.ui.initMalus": "Init malus",
"BOL.ui.isspecial": "Spécial ?",
"BOL.ui.createEquipment": "Create Equipment",
"BOL.ui.creature": "Creature",
"BOL.ui.undead": "Undead",
"BOL.ui.daemon": "Daemon",
"BOL.ui.attributaptitude": "Attribut ou Aptitude",
"BOL.ui.always": "Tout les jets (ie toujours)",
"BOL.ui.effectbonusmalus": "Bonus ou Malus à appliquer",
"BOL.ui.boleffects": "Effects (automatic)",
"BOL.ui.modifier": "Modifier",
"BOL.ui.effects": "Ongoing effects",
"BOL.ui.pcname": "PCs",
"BOL.ui.npcname": "NPCs",
"BOL.ui.pclistbutton": "Compact view",
"BOL.ui.noactorfound": "Unknown NPC. The NPC must be known in the world to be displayed here.",
"BOL.ui.deletetitle": "Delete",
"BOL.ui.confirmdelete": "Are you sure to delete this item ?",
"BOL.ui.nomorealchemypoints": "No more Creation Point !",
"BOL.ui.armornoformula": "The Armor {protect.name} has no protection formula !",
"BOL.ui.selectactor": "Select the actors to apply the macro",
"BOL.ui.itemnotfound": "Impossible to find the object of this macro",
"BOL.ui.noinit": "No initiative recorded. Roll initiative from the actor's sheet.",
"BOL.ui.warninitiative": "No available initiative. Roll Initiative for this combat.",
"BOL.ui.isspecial": "Special ?",
"BOL.ui.createEquipment": "Create an equipment",
"BOL.ui.astrology": "Astrology and Horoscope",
"BOL.ui.astrologyMinor": "Build a Minor Horoscope",
"BOL.ui.astrologyMajor": "Build a Major Horoscope",
"BOL.ui.astrologyMajorGroup": "Build a Major Group Horoscope",
"BOL.ui.makeHoroscope": "Build a Horoscope",
"BOL.ui.astrologerRank": "Astrologer Rank",
"BOL.ui.horoscopeCost": "Astrology Points cost",
"BOL.ui.minor": "Minor",
"BOL.ui.major": "Major",
"BOL.ui.majorgroup": "Group Major",
"BOL.ui.horoscopeGroup": "Group Horoscope",
"BOL.ui.horoscopeDiceRemaining": "Remaining Dice",
"BOL.ui.horoscopeDiceMax": "Max Dice",
"BOL.ui.astrologyNoPoints": "You do not have enough Astrology Points!",
"BOL.ui.newEquipment": "New equipment",
"BOL.ui.newNaturalWeapon": "Natural weapon",
"BOL.ui.newNaturalProtection": "Natural protection",
"BOL.ui.createNaturalWeapon": "Create a natural weapon",
"BOL.ui.createNaturalProtection": "Create a natural protection",
"BOL.ui.hordeSize": "Horde size",
"BOL.ui.hordeAttack": "Horde attack",
"BOL.ui.hordeName": "Name of the Horde",
"BOL.ui.criticallegend": "Legendary Success",
"BOL.ui.hordeHP": "Horde Vitality (1 member)",
"BOL.ui.hordehp": "Horde Vitality (total)",
"BOL.featureCategory.origins": "Origins",
"BOL.featureCategory.races": "Races",
@ -185,6 +244,11 @@
"BOL.featureSubtypes.language": "Language",
"BOL.featureSubtypes.gods": "Faith & Gods",
"BOL.featureSubtypes.fightOption": "Combat Option",
"BOL.featureSubtypes.effect": "Effect",
"BOL.featureSubtypes.effects": "Effects",
"BOL.featureSubtypes.boleffect": "Effect",
"BOL.featureSubtypes.horoscope": "Horoscope",
"BOL.featureSubtypes.xplog": "XP Journal",
"BOL.bougette.nomoney": "Nothing",
"BOL.bougette.tolive": "To live",
@ -209,6 +273,7 @@
"BOL.itemCategory.other": "Other",
"BOL.itemCategory.capacity" : "Capacity",
"BOL.itemCategory.alchemy": "Alchemy",
"BOL.itemCategory.vehicleweapon": "Vehicle weapon",
"BOL.combatCategory.protections": "Protections",
"BOL.combatCategory.shields": "Shields",
@ -408,11 +473,14 @@
"BOL.chat.rolldamage": "Roll for damages",
"BOL.chat.rolldamage6": "Roll for damages +6",
"BOL.chat.rolldamage12": "Roll for damages +12 (1 HP)",
"BOL.chat.rolldamage12Legend": "Roll for damages +12",
"BOL.chat.damageresult": "Damages of {name} : {total}",
"BOL.chat.damagetarget": "Target : {target}",
"BOL.chat.applydamagetotarget": "Apply damages to the target",
"BOL.chat.fightoption": "Combat options",
"BOL.chat.reroll": "Reroll (1 HP)",
"BOL.chat.heroicreminder": "In addition of the actions below, you can : <ul><li>Carnage : Do a second free attack on the same opponent</li><li>Precise : 1 Malus Die on your opponent on a chosen location</li><li>Disarm</li><li>Rabble Massacre</li><li>Prone : Push your opponent on the ground (max +1 size)</li></ul>If you spent 1 Hero Point in addition, all these effects can be doubled.",
"BOL.chat.legendaryreminder": "In addition of the actions below, you can twice the following actions: <ul><li>Carnage : Do a second free attack on the same opponent</li><li>Precise : 1 Malus Die on your opponent on a chosen location</li><li>Disarm</li><li>Rabble Massacre</li><li>Prone : Push your opponent on the ground (max +1 size)</li></ul>",
"BOL.chat.toheroic": "Convert to Mighty success (1 HP)",
"BOL.chat.tolegend": "Convert to Legendary succes (1 HP)",
"BOL.chat.hurttitle": "{name} is going to receive {damageTotal} damages !",
@ -430,6 +498,51 @@
"BOL.chat.spell": "Spell",
"BOL.chat.spellcost": "Power Points cost",
"BOL.chat.spellremaining": "Remaining Power Points",
"BOL.chat.nodamagesummary": "No damage ....",
"BOL.chat.damageresume": "{name} as taken wounds ...",
"BOL.chat.fumblemessage": "If you accept the consequences of a fumble (GM choice), you can get 1 additionnal Hero Point.",
"BOL.chat.rangeinfo": "Range/Throw of {attackerName} to {defenderName}",
"BOL.chat.rangeweaponinfo": "Weapon : {weaponName} - Base range {weaponRange}",
"BOL.chat.rangeout": "Modifier : Out of range",
"BOL.chat.range0": "Modifier : Point blank (+1)",
"BOL.chat.range1": "Modifier : Short Range (0)",
"BOL.chat.range2": "Modifier : Middle Range (-1)",
"BOL.chat.range3": "Modifier : Long Range (-2)",
"BOL.chat.range4": "Modifier : Very Long Range (-4)",
"BOL.chat.range5": "Modifier : Extrem Range (-6)",
"BOL.chat.range6": "Modifier : Max Range (-8)",
"BOL.chat.rangeprefix": "Evaluated distance : ",
"BOL.chat.rangevisible": "Line of sight is cleared between tokens.",
"BOL.chat.rangenotvisible": "Line of sight is blocked between tokens.",
"BOL.chat.rangetitle": "GM Information",
"BOL.chat.weaponreroll1": "As a reminder, this weapon re-roll 1 whend rolling for damage.",
"BOL.chat.rollbougette": "Budget roll",
"BOL.chat.bougettesuccess": "Your budget remains unchanged !",
"BOL.chat.bougettefailure": "You spent too much money, your budget is going down by one level...",
"BOL.chat.initiative": "Initiative rank (10 to 1)",
"BOL.chat.horoscope": "Horoscope",
"BOL.chat.horoscopepoints": "Cost : {points} Astrology Points",
"BOL.chat.horoscopeminorsuccess": "Your minor horoscope is a success : change the horoscope name in your sheet. You will benefit of 1 Bonus Die for the given situation.",
"BOL.chat.horoscopeminorfailure": "Your minor horoscope mineur isa failure : change the horoscope name in your sheet. Vous will suffer 1 Malus Die for the given situation.",
"BOL.chat.horoscopemajorsuccess": "Your major horoscope is a success : {horoscopeName} gets 1 new Hero Point for this adventure. This point has been automatically added.",
"BOL.chat.horoscopemajorfailure": "Your major horoscope is a failure : {horoscopeName} looses 1 Hero Point for this adventure. This point has been automatically substracted.",
"BOL.chat.horoscopemajorgroupsuccess": "Your major group horoscope majeur is a success. Your and your party gets {careerBonus} Bonus Dice during this adventure.",
"BOL.chat.horoscopemajorgroupfailure": "Your major group horoscope is a failure. You and your party suffers {careerBonus} Malus Dice durig this adventure.",
"BOL.chat.usedhoroscope": "Horoscope has been used",
"BOL.chat.horoscopedeleted": "The Horoscopes used are deleted automatically.",
"BOL.chat.criticaloptions": "Critical success !! You can (select 1 option) :",
"BOL.chat.criticalcarnage": "Dual attack : you gain 1 free attack. This second attack can't benefit from a Hero/Villain Point.",
"BOL.chat.criticalplus6": "Devastating : damage +6 aux dommages (cf button below).",
"BOL.chat.criticalprecise": "Precise : You hit to harm your opponent. Describe what your are doing, and if the GM agree, your opponent will suffer 1 Malus Die for the relevant actions.",
"BOL.chat.criticalunarm": "Disarm : Si your opponnent has a weapon in hand, you disarm him.",
"BOL.chat.criticalrabble": "Rabble Massacre : If you fight against rabble, damages results indicate the amount of rabble you kill.",
"BOL.chat.criticalpush": "Prone : If the size allow it, you push your opponent on the ground. He suffer 1 Malus Die for all his actions during the next round.",
"BOL.chat.criticalup": "Transform to Legendary : If you spent 1 Hero Point/Villain, you can transform this Heroic success into a Legendary success.You can the choose 2 options in this list above.",
"BOL.chat.criticalinfo": "This is an Heroic success ! Choose your options and effects !",
"BOL.chat.criticallegendaryinfo": "This is a Legendary succes ! Choisissez vos options et effets !",
"BOL.chat.criticalbuttonjournal": "Legendary/Heroic Success",
"BOL.chat.nodamage": "Do not apply damages",
"BOL.chat.armorRoll": "Armor roll",
"BOL.dialog.soeasy": "So easy (+4)",
"BOL.dialog.veryeasy": "Very easy (+2)",

596
lang/es.json Normal file
View File

@ -0,0 +1,596 @@
{
"TYPES": {
"Actor": {
"character": "PJ",
"encounter": "PNJ",
"npc": "PNJ",
"vehicle": "Vehículo"
},
"Item": {
"item": "Objeto",
"feature": "Rasgo",
"weapon": "Arma",
"armure": "Armadura"
}
},
"BOL.attributes.vigor": "Fuerza",
"BOL.attributes.halfvigor" : "Media-Fuerza",
"BOL.attributes.agility": "Agilidad",
"BOL.attributes.mind": "Mente",
"BOL.attributes.appeal": "Atractivo",
"BOL.aptitudes.init": "Iniciativa",
"BOL.aptitudes.melee": "Melé",
"BOL.aptitudes.ranged": "Distancia",
"BOL.aptitudes.def": "Defensa",
"BOL.aptitudes.prot": "Protección",
"BOL.resources.hp": "Vitalidad",
"BOL.resources.hero": "Héroe",
"BOL.resources.faith": "Fe",
"BOL.resources.creation": "Creación",
"BOL.resources.power": "Poder",
"BOL.resources.villainy": "Villano",
"BOL.resources.alchemypoints": "Puntos Alquimia",
"BOL.traits.xp": "Experiencia",
"BOL.ui.tab.stats": "Atributos",
"BOL.ui.tab.combat": "Combate",
"BOL.ui.tab.actions": "Acciones",
"BOL.ui.tab.features": "Rasgos",
"BOL.ui.tab.equipment": "Equipo",
"BOL.ui.tab.description": "Descripción",
"BOL.ui.tab.details": "Detalles",
"BOL.ui.tab.spellalchemy": "Alquimia",
"BOL.ui.tab.astrologer": "Astrólogo",
"BOL.ui.astrologerPoints": "Puntos Astrología",
"BOL.ui.astrologerPointsLabel": "Puntos Astrología actuales",
"BOL.ui.ishoroscopemajor": "¿Horóscopo Mayor (ej del grupo)?",
"BOL.ui.answer": "Respuesta",
"BOL.ui.horoscopefavorable": "Favorable (1dB)",
"BOL.ui.horoscopeunfavorable": "Desfavorable (1dM)",
"BOL.ui.horoscopes": "Horóscopos",
"BOL.ui.horoscopesBonus": "Horóscopos (Ventaja)",
"BOL.ui.horoscopesMalus": "Horóscopos (Desventaja)",
"BOL.ui.groupHoroscope": "Horóscropo de Grupo de ",
"BOL.ui.rabble": "Chusma",
"BOL.ui.tough": "Matones",
"BOL.ui.villain": "Villanos",
"BOL.ui.properties": "Propiedades",
"BOL.ui.description": "Descripción",
"BOL.ui.actions": "Acciones",
"BOL.ui.capacities": "Capacidad",
"BOL.ui.damages": "Daño",
"BOL.ui.details": "Detalles",
"BOL.ui.category": "Categoría",
"BOL.ui.subcategory": "Sub-Categoría",
"BOL.ui.type": "Tipo",
"BOL.ui.subtype": "Subtipo",
"BOL.ui.attribute" : "Atributo",
"BOL.ui.aptitude" : "Habilidad",
"BOL.ui.advantages" : "Ventaja/Desventaja",
"BOL.ui.modifiers": "Modificador",
"BOL.ui.item": "Objeto",
"BOL.ui.edit": "Editar",
"BOL.ui.unequip": "Quitar",
"BOL.ui.equip": "Equipar",
"BOL.ui.delete": "Borrar",
"BOL.ui.roll" : "Tirar",
"BOL.ui.equipment" : "Equipo",
"BOL.ui.equipmentProperties" : "Propiedades Equipo",
"BOL.ui.weaponAttack" : "Ataque Arma",
"BOL.ui.weaponProperties" : "Propiedades Arma",
"BOL.ui.protectionProperties" : "Propiedades Protección",
"BOL.ui.magicalProperties" : "Propiedades Mágicas",
"BOL.ui.alchemyProperties": "Propiedades Alquimia",
"BOL.ui.armor" : "Armadura",
"BOL.ui.reach" : "Alcance",
"BOL.ui.weapon" : "Arma",
"BOL.ui.melee" : "Melé",
"BOL.ui.ranged" : "Distancia",
"BOL.ui.protection" : "Protección",
"BOL.ui.shield" : "Escudo",
"BOL.ui.blocking" : "Bloqueo",
"BOL.ui.range" : "Alcance",
"BOL.ui.quantity" : "Cantidad",
"BOL.ui.qty" : "Cant.",
"BOL.ui.slot" : "Hueco",
"BOL.ui.weight" : "Peso",
"BOL.ui.price": "Precio",
"BOL.ui.cancel": "Cancelar",
"BOL.ui.submit": "OK",
"BOL.ui.attributeCheck" : "Tirada Atributo",
"BOL.ui.aptitudeCheck" : "Tirada Habilidad",
"BOL.ui.weaponCheck" : "Tirada Arma",
"BOL.ui.spellCheck" : "Tirada Conjuro",
"BOL.ui.careers" : "Oficios",
"BOL.ui.boons" : "Ventaja",
"BOL.ui.flaws" : "Desventaja",
"BOL.ui.rank" : "Rango",
"BOL.ui.success" : "Éxito",
"BOL.ui.failure" : "Fallo",
"BOL.ui.fumble" : "Pifia",
"BOL.ui.critical" : "Éxito Asombroso",
"BOL.ui.criticallegend" : "Éxito Legendario",
"BOL.ui.maneuvers" : "Maniobras",
"BOL.ui.stacksize" : "Tamaño Pila (máx)",
"BOL.ui.weapons" : "Armas",
"BOL.ui.protections" : "Protección",
"BOL.ui.ammos" : "Munición",
"BOL.ui.containers" : "Contenedor",
"BOL.ui.treasure" : "Tesoro",
"BOL.ui.vehicles" : "Vehículo/Montura",
"BOL.ui.misc" : "Varios",
"BOL.ui.vehicleProperties" : "Propiedades Vehículo",
"BOL.ui.speed" : "Velocidad",
"BOL.ui.noWeaponName" : "Nombre Arma",
"BOL.ui.targetDefence": "Defensa",
"BOL.ui.applyShieldMalus": "Aplicar Mod. Escudo",
"BOL.ui.shieldMalus": "Mod. Escudo",
"BOL.ui.defenseScore": "Valor Defensa",
"BOL.ui.defender": "Defensor",
"BOL.ui.difficulty": "Dificultad",
"BOL.ui.spellProperties": "Propiedades Conjuro",
"BOL.ui.duration": "Duración",
"BOL.ui.spellkeep": "Mantenimiento",
"BOL.ui.concentrate": "Concentración",
"BOL.ui.registerInit": "Registrar Inic.",
"BOL.ui.isSorcerer": "¿Es Hechicero?",
"BOL.ui.isAlchemist": "¿Es Alquimista?",
"BOL.ui.isPriest": "¿Es Clérigo/Druida?",
"BOL.ui.isAstrologer": "¿Es Astrólogo?",
"BOL.ui.circle": "Círculo",
"BOL.ui.spells": "Conjuros",
"BOL.ui.focusSpell": "Lanzar conjuro",
"BOL.ui.sorcererRank" : "Rango Hechicero",
"BOL.ui.alchemistRank": "Rango Alquimista",
"BOL.ui.mandatoryconditions": "Condiciones obligatorias",
"BOL.ui.optionnalconditions": "Condiciones opcionales",
"BOL.ui.ppcost": "Coste Puntos Poder",
"BOL.ui.ppAvailable": "Puntos Poder Disponibles",
"BOL.ui.pccost": "Coste Puntos Creación",
"BOL.ui.pcnow": "Puntos Creación Actuales",
"BOL.ui.alchemyType": "Tipo",
"BOL.ui.alchemy": "Alquimia",
"BOL.ui.makeAlchemy": "Realizar Alquimia",
"BOL.ui.alchemyCostTotal": "Coste Total Puntos Alquimia",
"BOL.ui.alchemyInvest": "Invertir Puntos Alquimia",
"BOL.ui.alchemyCurrent": "Puntos Alquimia actuales en Objeto",
"BOL.ui.advance": "Estado",
"BOL.ui.isadvantage": "¿Da un dado ventaja?",
"BOL.ui.bonusmalus": "Ventaja/desventaja adicional",
"BOL.ui.nbdices": "Número Dados",
"BOL.ui.totalmod": "Mod. Total",
"BOL.ui.rangeModifiers": "Mod. distancia",
"BOL.ui.money": "Dinero",
"BOL.ui.moneyTitle": "Tesoro",
"BOL.ui.fightOption": "Opciones Combate",
"BOL.ui.none": "Ninguno",
"BOL.ui.fightOptionType": "Tipo Opción Combate",
"BOL.ui.activated": "Activado",
"BOL.ui.deactivated": "Desactivado",
"BOL.ui.status": "Estado",
"BOL.ui.toactivated": "Activo",
"BOL.ui.todeactivated": "Inactivo",
"BOL.ui.armorAgiMalus": "Mod. Armadura+Escudo (Agi)",
"BOL.ui.armorInitMalus": "Mod. Armadura (Inic)",
"BOL.ui.attackValue": "Valor Ataque",
"BOL.ui.attackModifier": "Mod. Ataque",
"BOL.ui.weaponbonus": "Esta arma se beneficia de un Dado de ventaja (ej Arma Personal)",
"BOL.ui.initMalus": "Desventaja Inic.",
"BOL.ui.creature": "Criatura",
"BOL.ui.undead": "No-muerto",
"BOL.ui.daemon": "Demonio",
"BOL.ui.attributaptitude": "Atributo o Habilidad",
"BOL.ui.always": "Todos (ej siempre)",
"BOL.ui.effectbonusmalus": "Ventaja o Desventaja a aplicar",
"BOL.ui.boleffects": "Efectos (automático)",
"BOL.ui.modifier": "Modificador",
"BOL.ui.effects": "Efectos Activos",
"BOL.ui.pcname": "PCs",
"BOL.ui.npcname": "NPCs",
"BOL.ui.pclistbutton": "Vista compacta",
"BOL.ui.noactorfound": "PNJ Desconocido. El PNJ debe ser conocido en el mundo de juego para poder mostrase.",
"BOL.ui.deletetitle": "Borrar",
"BOL.ui.confirmdelete": "¿Seguro que quieres borrar este objeto?",
"BOL.ui.nomorealchemypoints": "¡Sin Puntos de Creación!",
"BOL.ui.armornoformula": "La Armadura {protect.name} no dispone de fórmula de protección!",
"BOL.ui.selectactor": "Selecciona un actora para aplicar la macro",
"BOL.ui.itemnotfound": "Imposible encontrar el objeto de esta macro",
"BOL.ui.noinit": "Sin iniciativa. Tira por iniciativa desde la hoja del actor.",
"BOL.ui.warninitiative": "Iniciativa no disponible. Tira Iniciativa para este combate.",
"BOL.ui.isspecial": "¿Especial?",
"BOL.ui.createEquipment": "Crear equipo",
"BOL.ui.astrology": "Astrología",
"BOL.ui.astrologyMinor": "Crear Horóscopo Menor",
"BOL.ui.astrologyMajor": "Crear Horóscopo Mayor",
"BOL.ui.astrologyMajorGroup": "Crear Grupo Horóscopo Mayor",
"BOL.ui.makeHoroscope": "Crear Horóscopo",
"BOL.ui.astrologerRank": "Rango Astrólogo",
"BOL.ui.horoscopeCost": "Coste Puntos Astrología",
"BOL.ui.minor": "Menor",
"BOL.ui.major": "Mayor",
"BOL.ui.majorgroup": "Grupo Mayor",
"BOL.ui.horoscopeGroup": "Grupo Horóscopo",
"BOL.ui.horoscopeDiceRemaining": "Dados Restantes",
"BOL.ui.horoscopeDiceMax": "Dado Máx",
"BOL.ui.astrologyNoPoints": "¡No dispones de suficientes Puntos Astrología!",
"BOL.ui.newEquipment": "Nuevo equipo",
"BOL.ui.newNaturalWeapon": "Arma natural",
"BOL.ui.newNaturalProtection": "Protección natural",
"BOL.ui.createNaturalWeapon": "Crear un arma natural",
"BOL.ui.createNaturalProtection": "Crear una protección natural",
"BOL.featureCategory.origins": "Origen",
"BOL.featureCategory.races": "Raza",
"BOL.featureCategory.careers": "Oficios",
"BOL.featureCategory.boons": "Ventajas",
"BOL.featureCategory.flaws": "Desventajas",
"BOL.featureCategory.languages": "Idiomas",
"BOL.featureCategory.fightoptions": "Opciones Combate",
"BOL.featureSubtypes.origin": "Origen",
"BOL.featureSubtypes.race": "Raza",
"BOL.featureSubtypes.career": "Oficio",
"BOL.featureSubtypes.boon": "Ventaja",
"BOL.featureSubtypes.flaw": "Desventaja",
"BOL.featureSubtypes.language": "Idioma",
"BOL.featureSubtypes.gods": "Dioses",
"BOL.featureSubtypes.fightOption": "Opción Combate",
"BOL.featureSubtypes.effect": "Efecto",
"BOL.featureSubtypes.effects": "Efectos",
"BOL.featureSubtypes.boleffect": "Efecto",
"BOL.featureSubtypes.horoscope": "Horóscopo",
"BOL.featureSubtypes.xplog": "Diario PX",
"BOL.bougette.nomoney": "Nada",
"BOL.bougette.tolive": "Vivir justo",
"BOL.bougette.easylife": "Vida simple",
"BOL.bougette.luxury" : "Vida lujosa",
"BOL.bougette.rich": "¡Rico!",
"BOL.fightOptionTypes.armor": "Ataque Armadura",
"BOL.fightOptionTypes.intrepid": "Ataque Total",
"BOL.fightOptionTypes.twoweaponsdef": "Dos Armas (Defensa)",
"BOL.fightOptionTypes.twoweaponsatt": "Dos Armas (Ataque)",
"BOL.fightOptionTypes.fulldefense": "Defensa Total",
"BOL.fightOptionTypes.defense": "Posición Defensiva",
"BOL.fightOptionTypes.attack": "Posición Ofensiva",
"BOL.fightOptionTypes.other": "Otro",
"BOL.itemCategory.object": "Objeto",
"BOL.itemCategory.equipment": "Equipo",
"BOL.itemCategory.consumable": "Consumible",
"BOL.itemCategory.spell": "Conjuro",
"BOL.itemCategory.vehicle": "Montura/Vehículo",
"BOL.itemCategory.other": "Otro",
"BOL.itemCategory.capacity" : "Capacidad",
"BOL.itemCategory.alchemy": "Alquimia",
"BOL.itemCategory.vehicleweapon": "Arma Vehicular",
"BOL.combatCategory.protections": "Protecciones",
"BOL.combatCategory.shields": "Escudos",
"BOL.combatCategory.melee": "Melé",
"BOL.combatCategory.ranged": "Distancia",
"BOL.combatCategory.fightOptions": "Opciones combate",
"BOL.combatCategory.natural": "Armas Naturales",
"BOL.equipmentCategory.weapon": "Arma",
"BOL.equipmentCategory.armor": "Armadura",
"BOL.equipmentCategory.protection": "Protección",
"BOL.equipmentCategory.shield": "Escudo",
"BOL.equipmentCategory.helm": "Casco",
"BOL.equipmentCategory.jewel": "Joya",
"BOL.equipmentCategory.scroll": "Pergamino",
"BOL.equipmentCategory.ammunition": "Munición",
"BOL.equipmentCategory.container": "Contenedor",
"BOL.equipmentCategory.currency": "Moneda",
"BOL.equipmentCategory.other": "Otro",
"BOL.protectionCategory.armor": "Armadura",
"BOL.protectionCategory.shield": "Escudo",
"BOL.protectionCategory.helm": "Casco",
"BOL.protectionCategory.other": "Otro",
"BOL.spellItem.charm": "Truco",
"BOL.spellItem.circle1": "Primer Círculo",
"BOL.spellItem.circle2": "Segundo Círculo",
"BOL.spellItem.circle3": "Tercer Círculo",
"BOL.alchemyItem.common": "Común",
"BOL.alchemyItem.scarce": "Escaso",
"BOL.alchemyItem.legend": "Legendario",
"BOL.alchemyItem.mythic": "Mítico",
"BOL.weaponCategory.melee": "Melé",
"BOL.weaponCategory.ranged": "Distancia",
"BOL.weaponCategory.other": "Otro",
"BOL.itemProperty.damageMultiplier": "Multiplicador Daño",
"BOL.itemProperty.attackBonusDice": "Dado Ventaja Ataque",
"BOL.itemProperty.equipable": "Equipable",
"BOL.itemProperty.protection": "Protección",
"BOL.itemProperty.blocking": "Bloqueo",
"BOL.itemProperty.magical": "Mágico",
"BOL.itemProperty.concealable": "Ocultable",
"BOL.itemProperty.2H": "Arma 2M",
"BOL.itemProperty.helm": "Casco",
"BOL.itemProperty.improvised": "Improvisada",
"BOL.itemProperty.shield": "Escudo",
"BOL.itemProperty.melee": "Melé",
"BOL.itemProperty.throwable": "Arrojadiza",
"BOL.itemProperty.ignoreshield": "Ignora Escudo",
"BOL.itemProperty.bashing": "Golpea",
"BOL.itemProperty.stackable": "Apilable",
"BOL.itemProperty.ranged": "Distancia",
"BOL.itemProperty.weapon": "Arma",
"BOL.itemProperty.reloadable": "Recargable",
"BOL.itemProperty.worn": "Equipada",
"BOL.itemProperty.spell" : "Conjuro",
"BOL.itemProperty.armor" : "Armadura",
"BOL.itemProperty.consumable" : "Consumible",
"BOL.itemProperty.bow" : "Arco",
"BOL.itemProperty.crossbow" : "Ballesta",
"BOL.itemProperty.throwing" : "Arrojadiza",
"BOL.itemProperty.activable" : "Activable",
"BOL.itemProperty.powder" : "Polvo",
"BOL.itemProperty.attackAttribute" : "Ataque (Atributo)",
"BOL.itemProperty.attackAptitude" : "Ataque (Habilidad)",
"BOL.itemProperty.attackModifiers" : "Ataque (Modificadores)",
"BOL.itemProperty.attackReroll1" : "Ataque (Relanzar 1s)",
"BOL.itemProperty.damage" : "Daño",
"BOL.itemProperty.damageModifiers" : "Daño (Modificador)",
"BOL.itemProperty.damageAttribute" : "Daño (Atributo)",
"BOL.itemProperty.damageSpecial" : "Damage (Especial)",
"BOL.itemProperty.damageReroll1" : "Relanzar 1s",
"BOL.itemProperty.range" : "Alcance (en m)",
"BOL.itemProperty.soakFormula": "Absorver (Fórmula)",
"BOL.itemProperty.soakModifiers": "Absorver (Modificador)",
"BOL.itemProperty.soakValue": "Absorver (Valor Defecto)",
"BOL.itemProperty.armorQuality": "Calidad Armadura",
"BOL.itemProperty.blockingMalus" : "Mod. Bloqueo",
"BOL.itemProperty.blockingAttacksBlocked" : "Ataques bloqueados",
"BOL.itemProperty.blocking1Attack" : "Bloquea 1 ataque",
"BOL.itemProperty.blockingAllAttacks" : "Bloquea todos ataques",
"BOL.itemProperty.slot" : "Hueco",
"BOL.itemProperty.reload": "Recarga (Acción)",
"BOL.itemProperty.weaponSize" : "Tamaño Arma",
"BOL.itemProperty.difficulty": "Dificultad",
"BOL.itemProperty.natural": "Arma natural",
"BOL.itemProperty.onlymodifier": "Sólo modificador (ej criatura)",
"BOL.itemStat.quantity": "Cantidad",
"BOL.itemStat.weight": "Peso",
"BOL.itemStat.price": "Precio",
"BOL.itemStat.range": "Alcance",
"BOL.itemStat.damage": "Daño",
"BOL.itemStat.reload": "Recargar (Acción)",
"BOL.itemStat.soak": "Absorver",
"BOL.itemStat.blocking": "Bloqueo",
"BOL.itemStat.modifiers": "Modificadores",
"BOL.weaponSize.unarmed" : "Desarmado",
"BOL.weaponSize.improvised" : "Improvisada",
"BOL.weaponSize.light" : "Ligera",
"BOL.weaponSize.medium" : "Mediana",
"BOL.weaponSize.heavy" : "Pesada",
"BOL.itemModifiers.init": "Mod. (Iniciativa)",
"BOL.itemModifiers.social": "Mod. (Social)",
"BOL.itemModifiers.agility": "Mod. (Agilidad)",
"BOL.itemModifiers.powercost": "Mod. (Coste adicional en PP)",
"BOL.itemBlocking.malus": "Modificador",
"BOL.itemBlocking.nbAttacksPerRound": "Agilidad",
"BOL.soakFormula.none" : "-",
"BOL.soakFormula.light" : "Ligero (Cancela d6-3 daño)",
"BOL.soakFormula.medium" : "Mediano (Cancela d6-2 daño)",
"BOL.soakFormula.heavy" : "Pesado (Cancela d6-1 daño)",
"BOL.armorQuality.none" : "-",
"BOL.armorQuality.light" : "Ligera",
"BOL.armorQuality.lightQ" : "Ligera Calidad",
"BOL.armorQuality.lightSup" : "Ligera Superior",
"BOL.armorQuality.lightLeg" : "Ligera Legendaria",
"BOL.armorQuality.medium" : "Mediana",
"BOL.armorQuality.mediumQ" : "Mediana Calidad",
"BOL.armorQuality.mediumSup" : "Mediana Superior",
"BOL.armorQuality.mediumLeg" : "Mediana Legendaria",
"BOL.armorQuality.heavy" : "Pesada",
"BOL.armorQuality.heavyQ" : "Pesada Calidad",
"BOL.armorQuality.heavySup" : "Pesada Superior",
"BOL.armorQuality.heavyLeg" : "Pesada Legendaria",
"BOL.equipmentSlots.none" : "-",
"BOL.equipmentSlots.head" : "Cabeza",
"BOL.equipmentSlots.neck" : "Cuello",
"BOL.equipmentSlots.shoulders" : "Ombros",
"BOL.equipmentSlots.body" : "Cuerpo",
"BOL.equipmentSlots.rhand" : "Mano derecha",
"BOL.equipmentSlots.lhand" : "Mano izquierda",
"BOL.equipmentSlots.2hands" : "2 manos",
"BOL.equipmentSlots.rarm" : "Brazo derecho",
"BOL.equipmentSlots.larm" : "Brazo izquierdo",
"BOL.equipmentSlots.chest" : "Pecho",
"BOL.equipmentSlots.belt" : "Cintura",
"BOL.equipmentSlots.legs" : "Piernas",
"BOL.equipmentSlots.feet" : "Pies",
"BOL.equipmentSlots.finder" : "Dedo",
"BOL.equipmentSlots.ear" : "Oreja",
"BOL.vehicleCategory.mount" : "Montura terrestre",
"BOL.vehicleCategory.flying" : "Montura voladora",
"BOL.vehicleCategory.boat" : "Bote",
"BOL.vehicleCategory.other" : "Otro",
"BOL.range.PointBlank": "Quemarropa",
"BOL.range.Short": "Corta",
"BOL.range.Medium": "Media",
"BOL.range.Long": "Larga",
"BOL.range.VeryLong": "Distante",
"BOL.range.Extreme": "Extrema",
"BOL.range.Maximum": "Límite",
"BOL.notification.MacroMultipleTokensSelected": "¡Has seleccionado varios tokens!",
"BOL.notification.MacroNoActorAvailable": "¡No se pudo marcar el actor como objetivo!",
"BOL.notification.MacroNoTokenSelected": "¡Debes seleccionar un token!",
"BOL.size.tiny": "Minúsculo",
"BOL.size.verysmall": "Muy pequeño",
"BOL.size.small" : "Pequeño",
"BOL.size.medium" : "Mediano",
"BOL.size.large" : "Grande",
"BOL.size.verylarge": "Muy Grande",
"BOL.size.huge" : "Monstruoso",
"BOL.size.massive" : "Monumental",
"BOL.size.enormous": "Enorme",
"BOL.size.gigantic": "Gigante",
"BOL.size.immense": "Inmenso",
"BOL.size.colossal": "Colosal",
"BOL.chat.fightactive": "¡Activa la opción de combate {foName} este asalto!",
"BOL.chat.fightunactive": "¡Desactiva la opción de combate {foName} este asalto!",
"BOL.chat.isdead": "¡{name} esta muerto!",
"BOL.chat.epitaph": "¡Guardar el honor de su nombre y su memoria!",
"BOL.chat.vitalityzero": "Vitalidad de {name} es {hp}: ¡va a caer inconsciente!",
"BOL.chat.vitalityheroism": "Puedes gastar 1 Punto Héroe para levantarte en 1 asalto.",
"BOL.chat.vitalityheroismhint": "En este caso, tu vitalidad se incrementa a su máximo dividido por 2.",
"BOL.chat.vitalitydying": "Vitalidad de {name} es {hp}! Se esta muriendo...",
"BOL.chat.vitalitydyingheroism": "Puedes gastar 1 Punto Héroe para Desafiar la Muerte.",
"BOL.chat.alchemytitle": "Receta alquímica: {name}",
"BOL.chat.alchemypoints": "Coste Puntos Creación: {pcCostCurrent}",
"BOL.chat.alchemysuccess": "¡La receta alquímica es un éxito!<br>Crea el objeto/efecto relevante en el inventario.<br>El estadio se reinicia.",
"BOL.chat.alchemyfailure": "¡La receta alquímica ha fallado!<br>El estadio se reinicia.",
"BOL.chat.rolldamage": "Tirada de daño",
"BOL.chat.rolldamage6": "Tirada de daño +6",
"BOL.chat.rolldamage12": "Tirada de daño +12 (1 PH)",
"BOL.chat.damageresult": "Daño {name}: {total}",
"BOL.chat.damagetarget": "Objetivo: {target}",
"BOL.chat.applydamagetotarget": "Aplicar daño al objetivo",
"BOL.chat.fightoption": "Opciones de combate",
"BOL.chat.reroll": "Relanzar (1 PH)",
"BOL.chat.heroicreminder": "Adicionalmente a las acciones abajo puedes: <ul><li>Carnicería: 1 ataque adicional al mismo oponente</li><li>Golpe Preciso: 1 Dado desventaja para oponente en localización</li><li>Desarme</li><li>Asesino de Chusma</li><li>Derribado: empujas oponente al suelo (máx +1 tamaño)</li></ul>Si gastas 1 Punto Heroe adicional, todos estos efectos pueden doblarse.",
"BOL.chat.toheroic": "Convertir en éxito Asombroso (1 PH)",
"BOL.chat.tolegend": "Convertir en éxito Legendario (1 PH)",
"BOL.chat.hurttitle": "¡{name} va a recibir {damageTotal} daño!",
"BOL.chat.armordefault": "Este ataque atraviesa armadura: la armadura no se utiliza para reducir daño.",
"BOL.chat.witharmor": "Impacto con armadura",
"BOL.chat.withoutarmor": "Impacto sin armadura",
"BOL.chat.shakeoff": "Sacudirse las Heridas (1 PH)",
"BOL.chat.splinteredshield": "Sacrificar Escudo/Arma {name} (1 PH)",
"BOL.chat.nodamage": "Sin daño",
"BOL.chat.damagesummary": "{name} recibe daño",
"BOL.chat.protectvalue": "Protección armadura",
"BOL.chat.noprotectvalue": "¡Sin armadura!",
"BOL.chat.heroreducedamage": "Un Punto de Héroe se ha gastado, para reducir el daño en {total}.",
"BOL.chat.herosplintered": "No recibes daño gracias a sacrificar el escudo/arma {weaponHero.name}. ¡El escudo/arma se ha destruido! y un PH se ha gastado.",
"BOL.chat.finaldamage": "Daño Final: ¡{finalDamage} de daño!",
"BOL.chat.spell": "Conjuro",
"BOL.chat.spellcost": "Coste Puntos Poder",
"BOL.chat.spellremaining": "Puntos Poder restantes",
"BOL.chat.nodamagesummary": "Sin daño ....",
"BOL.chat.damageresume": "{name} recibe heridas ...",
"BOL.chat.fumblemessage": "Si aceptas un fallo calamitoso (DJ escoje consecuencia), puedes ganar 1 Punto Héroe adicional.",
"BOL.chat.rangeinfo": "Disparo de {attackerName} a {defenderName}",
"BOL.chat.rangeweaponinfo": "Arma: {weaponName} - Alcance base {weaponRange}",
"BOL.chat.rangeout": "Mod: Fuera de alcance",
"BOL.chat.range0": "Mod: Quemarropa (+1)",
"BOL.chat.range1": "Mod: Alcance Corto (0)",
"BOL.chat.range2": "Mod: Alcance Medio (-1)",
"BOL.chat.range3": "Mod: Alcance Largo (-2)",
"BOL.chat.range4": "Mod: Alcance Distante (-4)",
"BOL.chat.range5": "Mod: Alcance Extremo (-6)",
"BOL.chat.range6": "Mod: Alcance Límite (-8)",
"BOL.chat.rangeprefix": "Distancia calculada: ",
"BOL.chat.rangevisible": "Linea de visión limpia entre tokens.",
"BOL.chat.rangenotvisible": "Linea de visión bloqueada entre tokens.",
"BOL.chat.rangetitle": "Información DJ",
"BOL.chat.weaponreroll1": "Recordatorio, este arma vuelve a tirar los 1s en daño.",
"BOL.chat.rollbougette": "Tirada moneda",
"BOL.chat.bougettesuccess": "¡Tus fondos monetarios no varían!",
"BOL.chat.bougettefailure": "Has gastado demasiado dinero, tu balance se decrementa un nivel...",
"BOL.chat.initiative": "Rango iniciativa (10 a 1)",
"BOL.chat.horoscope": "Horóscopo",
"BOL.chat.horoscopepoints": "Coste: {points} Puntos Astrología",
"BOL.chat.horoscopeminorsuccess": "Éxito horóscopo menor: cambia el nombre del horóscopo en la hoja. Te beneficias de 1 Dado Ventaja en la situación.",
"BOL.chat.horoscopeminorfailure": "Fallo horóscopo menor: cambia el nombre del horóscopo en la hoja. Sufres 1 Dado Desventaja en la situación.",
"BOL.chat.horoscopemajorsuccess": "Éxito horóscopo mayor: {horoscopeName} consigue 1 Punto Héroe en esta aventura. El punto ha sido añadido automáticamente.",
"BOL.chat.horoscopemajorfailure": "Fallo horóscopo mayor: {horoscopeName} pierde 1 Punto Héroe en esta aventura. El punto ha sido reducido automáticamente.",
"BOL.chat.horoscopemajorgroupsuccess": "Éxito en tu grupo de horóscopo mayor. Tu y tus compañeros ganáis {careerBonus} Dado Ventaja durante esta aventura.",
"BOL.chat.horoscopemajorgroupfailure": "Fallo en tu grupo de horóscopo mayor. Tu y tus compañeros sufrís {careerBonus} Dado Desventaja durante esta aventura.",
"BOL.chat.usedhoroscope": "Se ha utilizado Horóscopo",
"BOL.chat.horoscopedeleted": "Los horóscopos utilizados son borrados automáticamente.",
"BOL.chat.criticaloptions": "¡Éxito Asombroso! Selecciona 1 opción:",
"BOL.chat.criticalcarnage": "Carnicería: ganas 1 ataque adicional. Este segundo ataque no se puede beneficiar de Puntos Héroe/Villano.",
"BOL.chat.criticalplus6": "Golpe Devastador: añade +6 al daño causado (botón abajo).",
"BOL.chat.criticalprecise": "Golpe Preciso: impactas y dañas a tu oponente. Describe lo que haces (DJ de acuerdo), tu oponente sufre 1 Dado Desventaja en acciones relevantes.",
"BOL.chat.criticalunarm": "Desarme: si su oponente lleva algún arma, puede decidir desarmarlo en lugar de hacerle daño.",
"BOL.chat.criticalrabble": "Asesino de Chusma: si luchas contra Chusma, el daño resultante se convierte en el número de enemigos que derrotas.",
"BOL.chat.criticalpush": "Derribado: si el tamaño lo permite, empujas oponente al suelo. Sufre un 1 Dado Desventaja en todas sus acciones el siguiente asalto.",
"BOL.chat.criticalup": "Transforma en Legendario: si gastas 1 Punto Héroe/Villano transformas el éxito Asombroso en Legendario. Selecciona 2 opciones de la lista.",
"BOL.chat.criticalinfo": "¡Esto es un éxito Asombroso o Legendario! Escoge tus opciones y efectos",
"BOL.chat.criticalbuttonjournal": "Éxito Asombroso/Legendario",
"BOL.chat.armorRoll": "Tirada de Armadura",
"BOL.dialog.soeasy": "Demasiado fácil (+4)",
"BOL.dialog.veryeasy": "Muy fácil (+2)",
"BOL.dialog.easy": "Fácil (+1)",
"BOL.dialog.moderate": "Moderado (0)",
"BOL.dialog.hard": "Difícil (-1)",
"BOL.dialog.tough": "Duro (-2)",
"BOL.dialog.demanding": "Exigente (-4)",
"BOL.dialog.formidable": "Formidable (-6)",
"BOL.dialog.heroic": "Heroica (-8)",
"BOL.dialog.mythic": "Mítica (-10)",
"BOL.dialog.divine": "Divina (-12)",
"BOL.dialog.pointblank": "Quemarropa (+1)",
"BOL.dialog.close": "Corta (0)",
"BOL.dialog.medium": "Media (-1))",
"BOL.dialog.long": "Larga (-2)",
"BOL.dialog.distant": "Distante (-4)",
"BOL.dialog.extreme": "Extrema (-6)",
"BOL.dialog.utmost": "Límite (-8)",
"BOL.ui.name": "Nombre",
"BOL.ui.xp": "Experiencia",
"BOL.ui.xpspent": "Consumida",
"BOL.ui.xptotal": "Total",
"BOL.ui.biosize": "Tamaño",
"BOL.ui.bioweight": "Peso",
"BOL.ui.bioage": "Edad",
"BOL.ui.biohair": "Pelo",
"BOL.ui.bioeyes": "Ojos",
"BOL.ui.biosigns": "Marcas",
"BOL.ui.biodescription": "Descripción",
"BOL.ui.bionotes": "Notas",
"BOL.chat.welcome1": "Bienvenidos a Bárbaros de Lemuria (Ludospherik)",
"BOL.chat.welcome2": "Para jugar es necesario usar el manual, que lo podéis conseguir aquí: https://www.ludospherik-editions.com/en_gb/",
"BOL.chat.welcome3": "Los mapas incluidos tienen autorización de Guillaume Tavernier y Ludospherik. ¡Nuestro agradecimiento!",
"BOL.chat.welcome4": "Todo el soporte para el sistema es a través del servidor Discord: https://discord.gg/pPSDNJk",
"BOL.chat.welcome5": "¡Buena partida en Lemuria!",
"BOL.chat.welcome6": "",
"BOL.settings.rollArmor": "Tiradas de armadura",
"BOL.settings.rollArmorTooltip": "Tiradas de armadura, si no esta activo usará el valor fijo",
"BOL.settings.useBougette": "Utilizar Bougette (regla casera francesa)",
"BOL.settings.useBougetteTooltip": "Utilizar valor Bougette (Monedero), descrito en Annales Lemurienne de LeRatierBretonnien (https://www.lahiette.com/leratierbretonnien/)",
"BOL.settings.removeDead": "Automáticamente eliminar PNJs muertos al final del asalto",
"BOL.settings.removeDeadTooltip": "Automáticamente eliminar PNJs, cuando la Vitalidad es menor de 0 al final de cada asalto",
"BOL.settings.diceFormula": "Fórmula de Dados",
"BOL.settings.diceFormulaTooltip": "Fórmula general de dados (2d6 por defecto)",
"BOL.settings.diceSuccessValue" : "Valor éxito",
"BOL.settings.diceSuccessValueTooltip": "Valor del umbral para el éxito (9 por defecto en 2d6)",
"BOL.settings.diceCriticalValue" : "Valor éxito crítico",
"BOL.settings.diceCriticalValueTooltip": "Valor del umbral mínimo para el éxito crítico (12 por defecto en 2d6)",
"BOL.settings.diceCriticalFailure" : "Valor fallo crítico",
"BOL.settings.diceCriticalFailureTooltip": "Valor del umbral máximo para el fallo crítico (2 por defecto en 2d6)",
"BOL.settings.defaultLogoActorSheetPath" : "Logo para la Hoja",
"BOL.settings.defaultLogoPathActorSheetTooltip": "Hubicación del logo para la hoja del Actor (346x200, por defecto: /systems/bol/ui/logo.webp)",
"BOL.settings.defaultLogoTopLeftPath" : "Logo esquina superior izquierda",
"BOL.settings.defaultLogoTopLeftPathTooltip": "Hubicación logo ventana principal superior izquierda (718x416, por defecto: /systems/bol/ui/logo2.webp)"
}

View File

@ -2,8 +2,10 @@
"TYPES": {
"Actor": {
"character": "Personnage",
"encounter": "PNJ",
"npc": "PNJ",
"vehicle": "Véhicule"
"vehicle": "Véhicule",
"horde": "Horde"
},
"Item": {
"item": "Objet",
@ -139,6 +141,12 @@
"BOL.ui.registerInit": "Enregistrer comme Init. de combat",
"BOL.ui.initMalus": "Malus d'initiative",
"BOL.ui.magicnewrules": "Règles supplémentaires (cf. supplément fan-made Sorcellerie!)",
"BOL.ui.other":"Autre",
"BOL.ui.career":"Carrière",
"BOL.ui.boon":"Avantage",
"BOL.ui.flaw":"Désanvatage",
"BOL.ui.cost":"Cout XP",
"BOL.ui.date":"Date",
"BOL.ui.isSorcerer": "Carrière de Sorcier ?",
"BOL.ui.isAlchemist": "Carrière d'Alchimiste ?",
@ -196,12 +204,15 @@
"BOL.ui.armorAgiMalus": "Malus d'Armure+Bouclier (Agi)",
"BOL.ui.armorInitMalus": "Malus d'Armure (Init)",
"BOL.ui.attackValue": "Valeur d'attaque",
"BOL.ui.attackModifier": "Attaque",
"BOL.ui.vehicleWeapons": "Armes de véhicules",
"BOL.ui.hullDamage": "D.coque",
"BOL.ui.crewDamage": "D.équipage",
"BOL.ui.fireDamage": "Feu ?",
"BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)",
"BOL.ui.creature": "Creature",
"BOL.ui.creature": "Créature",
"BOL.ui.undead": "Mort vivant",
"BOL.ui.daemon": "Démon",
"BOL.ui.rabble": "Piétaille",
"BOL.ui.tough": "Coriace",
"BOL.ui.villain": "Rival",
@ -225,7 +236,17 @@
"BOL.ui.warninitiative": "Votre initiative n'est pas disponible. Effectuez un jet d'Initiative pour ce combat.",
"BOL.ui.isspecial": "Spéciale ?",
"BOL.ui.createEquipment": "Créer un Equipement",
"BOL.ui.newEquipment": "Nouvel équipement",
"BOL.ui.newNaturalWeapon": "Arme naturelle",
"BOL.ui.newNaturalProtection": "Protection naturelle",
"BOL.ui.createNaturalWeapon": "Créer une arme naturelle",
"BOL.ui.createNaturalProtection": "Créer une protection naturelle",
"BOL.ui.hordeSize": "Taille de la horde",
"BOL.ui.hordeAttack": "Attaque de Horde",
"BOL.ui.hordeName": "Nom de la Horde",
"BOL.ui.hordeHP": "Vitalité (1 membre)",
"BOL.ui.hordehp": "Vitalité (total)",
"BOL.featureCategory.origins": "Origines",
"BOL.featureCategory.races": "Races",
"BOL.featureCategory.careers": "Carrières",
@ -251,6 +272,7 @@
"BOL.featureSubtypes.effects": "Effets",
"BOL.featureSubtypes.boleffect": "Effet",
"BOL.featureSubtypes.horoscope": "Horoscope",
"BOL.featureSubtypes.xplog": "Log d'XP",
"BOL.fightOptionTypes.armor": "Attaque au défaut d'armure",
"BOL.fightOptionTypes.intrepid": "Attaque intrépide",
@ -479,12 +501,14 @@
"BOL.chat.rolldamage": "Lancer les dommages",
"BOL.chat.rolldamage6": "Lancer les dommages +6",
"BOL.chat.rolldamage12": "Dommages +12 (1 Pt. d'Heroisme)",
"BOL.chat.rolldamage12Legend": "Dommages +12",
"BOL.chat.damageresult": "Dommages de {name} : {total}",
"BOL.chat.damagetarget": "Cible : {target}",
"BOL.chat.applydamagetotarget": "Appliquer les dommages à la cible",
"BOL.chat.fightoption": "Option de combat",
"BOL.chat.reroll": "Relancer (1 P. Heroisme)",
"BOL.chat.heroicreminder": "En plus des actions indiquées sur les boutons ci-dessous, vous pouvez : <ul><li>Carnage : Attaquer une seconde fois le même adversaire</li><li>Coup précis : Un dé de malus à votre adversaire sur une localisation choisie</li><li>Désarmement</li><li>Massacrer la piétaille</li><li>Renversement : Renversez votre adversaire (1 taille de plus max)</li></ul>Si vous dépensez un Point d'Héroisme en plus, tout ces effets peuvent être doublés",
"BOL.chat.legendaryreminder": "En plus des actions indiquées sur les boutons ci-dessous, vous pouvez effectuer 2 actions parmis: <ul><li>Carnage : Attaquer une seconde fois le même adversaire</li><li>Coup précis : Un dé de malus à votre adversaire sur une localisation choisie</li><li>Désarmement</li><li>Massacrer la piétaille</li><li>Renversement : Renversez votre adversaire (1 taille de plus max)</li></ul>",
"BOL.chat.toheroic": "Transformer en succés Héroïque (1 P. Héroisme/Vilainie)",
"BOL.chat.tolegend": "Transformer en succes Légendaire (1 P. Heroisme/Vilainie)",
"BOL.chat.hurttitle": "{name} va encaisser {damageTotal} dégats !",
@ -542,9 +566,10 @@
"BOL.chat.criticalrabble": "Massacrer la piétaille : Si vous combattez de la Piétaille, les résultats des dommages indiquent le nombre d'adversaires mis hors de combat.",
"BOL.chat.criticalpush": "Renversement : Si la taille le permet, vous poussez votre adversaire au sol, il souffrira d'1 Dé de Malus pour toutes ses actions au round suivant.",
"BOL.chat.criticalup": "Transformer en Légendaire : En dépensant 1 point d'Héroisme/Vilainie, vous pouvez transformer ce Succès Héroïque en Légendaire, qui vous permet de prendre 2 options dans la liste ci-dessus (cf. bouton pour un +12 aux dommages par exemple).",
"BOL.chat.criticalinfo": "C'est un succès Héroïque ou Légendaire ! Choisissez vos options et effets !",
"BOL.chat.criticalinfo": "C'est un succès Héroïque ! Choisissez vos options et effets !",
"BOL.chat.criticallegendaryinfo": "C'est un succès Légendaire ! Choisissez vos options et effets !",
"BOL.chat.criticalbuttonjournal": "Succès Héroïque/Légendaire",
"BOL.chat.losshp": "{name} a perdu {lossHP} points de Vitalité. Si il se repose quelques minutes, il peut récupérer {recupHP} points de Vitalité.",
"BOL.chat.applyrecup": "Récupérer pendant quelques minutes (+{recupHP} Vitalité)",
"BOL.chat.inforecup": "{name} vient de récupérer {recupHP} points de Vitalité après quelques minutes de repos.",
@ -581,14 +606,21 @@
"BOL.ui.biosigns": "Signes distinctifs",
"BOL.ui.biodescription": "Description",
"BOL.ui.bionotes": "Notes",
"BOL.ui.xplog":"Journal d'XP",
"BOL.ui.value":"Valeur",
"BOL.chat.welcome1": "Bienvenue dans Barbarians of Lemuria (Ludospherik version)",
"BOL.chat.welcome2": "Les livres nécessaires pour jouer sont disponibles sur le site de <a href='http://www.ludospherik.fr/content/14-barbarians-of-lemuria'>l'éditeur Ludospherik.</a>",
"BOL.chat.welcome3": "Les cartes intégrées au système le sont grace à l'aimable autorisation de leur auteur Guillaume Tavernier et des éditions Ludospherik. Merci à eux !.",
"BOL.chat.welcome4": "Tout le support et le suivi de ce système est disponible via le <a href='https://discord.gg/pPSDNJk'>Discord Foundry FR</a>.",
"BOL.chat.welcome5": "Consulter l'aide en ligne pour plus d'informations : @UUID[Compendium.bol.aides-de-jeu.97rugQOtiwt8zPfQ]{Aide du Jeu}.",
"BOL.chat.welcome5": "Consulter l'aide en ligne pour plus d'informations : @UUID[Compendium.bol.aides-de-jeu.JournalEntry.8ihDiCxC47fcdKVA]{Aide du Jeu}.",
"BOL.chat.welcome6": "Bon jeu en Lemurie !",
"BOL.chat.nodamage": "Ne pas appliquer les dommages",
"BOL.chat.pcwarning": "Attention ! Aucun personnage n'est relié au joueur !",
"BOL.chat.pcwarningmsg": "<b>ATTENTION</b> Le joueur n'est relié à aucun personnage !",
"BOL.chat.pcnotlinked": "Le token du personnage joueur n'est pas relié à l'acteur",
"BOL.chat.pcnotlinkedmsg": "<b>ATTENTION</b> Le token du personnage joueur n'est pas relié à l'acteur !",
"BOL.chat.armorRoll": "Jet d'armure",
"BOL.settings.rollArmor": "Effectuer des jets pour les armures",
"BOL.settings.rollArmorTooltip": "Effectue un jet de dés pour les armures (valeur fixe si désactivé)",
@ -607,5 +639,8 @@
"BOL.settings.defaultLogoActorSheetPath" : "Chemin du logo des fiches de perso",
"BOL.settings.defaultLogoPathActorSheetTooltip": "Vous pouvez changer le logo BoL des fiches de perso, pour jouer dans un autre univers (idéalement 346 x 200, défaut : /systems/bol/ui/logo.webp)",
"BOL.settings.defaultLogoTopLeftPath" : "Chemin du logo haut gauche",
"BOL.settings.defaultLogoTopLeftPathTooltip": "Vous pouvez changer le logo BoL en haut à gauche de chaque écran (idéalement 718 x 416, défaut : /systems/bol/ui/logo2.webp)"
"BOL.settings.defaultLogoTopLeftPathTooltip": "Vous pouvez changer le logo BoL en haut à gauche de chaque écran (idéalement 718 x 416, défaut : /systems/bol/ui/logo2.webp)",
"EFFECT.StatusProne": "A terre",
"EFFECT.StatusDead": "Mort"
}

View File

@ -9,7 +9,7 @@ export class BoLActorSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "actor"],
template: "systems/bol/templates/actor/actor-sheet.hbs",
width: 860,
@ -27,7 +27,7 @@ export class BoLActorSheet extends ActorSheet {
function onLoad() {
let logoSheet = BoLUtility.getLogoActorSheet()
$(".bol-actor-form").css("backgroundImage",`url(${logoSheet})`)
$(".bol-actor-form").css("backgroundImage", `url(${logoSheet})`)
}
// Setup everything onload
$(function () { onLoad(); });
@ -47,10 +47,19 @@ export class BoLActorSheet extends ActorSheet {
// Equip/Unequip item
html.find('.item-equip').click(this._onToggleEquip.bind(this));
html.find('.create_item').click(ev => {
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvel Equipement", type: "item" }], { renderSheet: true });
html.find('.create-item').click(ev => {
this.actor.createEmbeddedDocuments('Item', [{ name: game.i18n.localize("BOL.ui.newEquipment"), type: "item" }], { renderSheet: true });
});
html.find('.create-natural-weapon').click(ev => {
let system = foundry.utils.duplicate(game.bol.config.defaultNaturalWeapon)
this.actor.createEmbeddedDocuments('Item', [{ name: game.i18n.localize("BOL.ui.newNaturalWeapon"), type: "item", system }], { renderSheet: true });
});
html.find('.create-natural-protection').click(ev => {
let system = foundry.utils.duplicate(game.bol.config.defaultNaturalProtection)
this.actor.createEmbeddedDocuments('Item', [{ name: game.i18n.localize("BOL.ui.newNaturalProtection"), type: "item", system }], { renderSheet: true });
});
html.find(".toggle-fight-option").click((ev) => {
const li = $(ev.currentTarget).parents(".item")
this.actor.toggleFightOption(li.data("itemId"))
@ -122,8 +131,8 @@ export class BoLActorSheet extends ActorSheet {
/** @override */
async getData(options) {
const data = super.getData(options)
const actorData = duplicate(data)
let formData = duplicate(data)
const actorData = foundry.utils.duplicate(data)
let formData = foundry.utils.duplicate(data)
formData.config = game.bol.config
formData.data = actorData
@ -147,6 +156,7 @@ export class BoLActorSheet extends ActorSheet {
formData.fightoptions = this.actor.fightoptions
formData.ammos = this.actor.ammos
formData.misc = this.actor.misc
formData.xplog = this.actor.xplog
formData.combat = this.actor.buildCombat()
formData.initiativeRank = this.actor.getInitiativeRank()
//formData.combatCreature = this.actor.buildCombatCreature()
@ -155,12 +165,13 @@ export class BoLActorSheet extends ActorSheet {
formData.options = this.options
formData.owner = this.document.isOwner
formData.editScore = this.options.editScore
formData.useBougette = (this.actor.type == "character" && BoLUtility.getUseBougette()) || false
formData.useBougette = (this.actor.type == "character" && BoLUtility.getUseBougette()) || false
formData.bougette = this.actor.getBougette()
formData.charType = this.actor.getCharType()
formData.villainy = this.actor.getVillainy()
formData.biography = await TextEditor.enrichHTML(this.object.system.details?.biography || "", {async: true})
formData.notes = await TextEditor.enrichHTML(this.object.system.details.notes || "", {async: true})
formData.villainy = this.actor.getVillainy()
formData.isUndead = this.actor.isUndead()
formData.biography = await TextEditor.enrichHTML(this.object.system.details?.biography || "", { async: true })
formData.notes = await TextEditor.enrichHTML(this.object.system.details.notes || "", { async: true })
formData.isSorcerer = this.actor.isSorcerer()
formData.isAlchemist = this.actor.isAlchemist()
formData.isAstrologer = this.actor.isAstrologer()
@ -186,7 +197,7 @@ export class BoLActorSheet extends ActorSheet {
// Get the type of item to create.
const type = header.dataset.type;
// Grab any data associated with this control.
const data = duplicate(header.dataset);
const data = foundry.utils.duplicate(header.dataset);
// Initialize a default name.
const name = `New ${type.capitalize()}`;
// Prepare the item object.
@ -248,22 +259,22 @@ export class BoLActorSheet extends ActorSheet {
case "attributexp":
this.actor.incAttributeXP(dataset.key)
break;
case "bougette":
this.actor.rollBougette()
break;
case "careerxp":
this.actor.incCareerXP( li.data("item-id"))
this.actor.incCareerXP(li.data("item-id"))
break;
case "horoscope-minor":
BoLRoll.horoscopeCheck(this.actor, event, "minor")
break
case "horoscope-major":
BoLRoll.horoscopeCheck(this.actor, event, "major")
break
break
case "horoscope-major-group":
BoLRoll.horoscopeCheck(this.actor, event, "majorgroup")
break
break
case "bougette":
this.actor.rollBougette()
break;
default: break;
}
}

View File

@ -7,6 +7,39 @@ import { BoLUtility } from "../system/bol-utility.js";
*/
export class BoLActor extends Actor {
static async create(data, options) {
// Case of compendium global import
if (data instanceof Array) {
return super.create(data, options);
}
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
if (data.items) {
let actor = super.create(data, options);
return actor;
}
if (data.type == 'encounter') {
data.system = { resources: { hero : { max : 0, value: 0 } } }
}
if (data.type == 'horde') {
let weapon = {
name: game.i18n.localize("BOL.ui.hordeAttack"), type: "item",
img: "ui/icons/attaque_melee.webp",
system: foundry.utils.duplicate(game.bol.config.defaultNaturalWeapon)
}
weapon.system.properties.attackModifiers = 1
weapon.system.properties.damage = "1d6M"
data.items = [weapon]
data.img = "systems/bol/ui/icons/icon-horde-token.webp"
data.prototypeToken = { texture: "systems/bol/ui/icons/icon-horde-token.webp" }
}
return super.create(data, options);
}
/** @override */
prepareData() {
@ -18,19 +51,47 @@ export class BoLActor extends Actor {
this.chartype = 'tough'
this.villainy = true
}
if (this.type === 'creature') {
this.villainy = true
}
if (this.type == "horde") {
let weapon = this.items.find(i => i.type === "item" && i.system.subtype === "weapon")
// Check if the horde attack is inline with the hordesize
if (weapon?.system?.properties?.attackModifiers != this.system.hordesize) {
this.updateEmbeddedDocuments('Item', [{ _id: weapon.id, 'system.properties.attackModifiers': this.system.hordesize }])
}
}
super.prepareData()
}
/* -------------------------------------------- */
async _onCreateOperation(documents, operation, user) {
await super._onCreateOperation(documents, operation, user);
}
/* -------------------------------------------- */
getTokenSizeFromHordeSize(hordeSize) {
hordeSize = hordeSize || this.system.hordesize
// If size > 50 then max is 50
let size = Math.min(hordeSize, 20)
// Compute the size of the token from 1 to 5
let tokenSize = Math.max((size / 4), 1) // Never below 1
return tokenSize
}
/* -------------------------------------------- */
async _preCreate(data, options, user) {
await super._preCreate(data, options, user);
// Configure prototype token settings
const prototypeToken = {};
if (this.type === "character") Object.assign(prototypeToken, {
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
});
this.updateSource({ prototypeToken });
if (this.type === "character") {
Object.assign(prototypeToken, {
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
});
this.updateSource({ prototypeToken });
}
}
/* -------------------------------------------- */
@ -38,10 +99,7 @@ export class BoLActor extends Actor {
if (this.type === 'character') {
return true
}
if (this.type === 'encounter' && this.chartype == "adversary") {
return true
}
return false
return (this.type === 'encounter' && this.chartype == "adversary")
}
/* -------------------------------------------- */
@ -54,10 +112,10 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */
getVillainy() {
if (this.type === 'encounter' && this.chartype == "adversary") {
return true
}
return false
return ( (this.type === 'encounter' && this.chartype == "adversary") || this.chartype == "creature")
}
isUndead() {
return (this.type == "encounter" && this.system.isundead)
}
/* -------------------------------------------- */
getInitiativeMalus() {
@ -69,7 +127,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */
getBougette() {
if (this.type == "character") {
let b = duplicate(this.system.bougette)
let b = foundry.utils.duplicate(this.system.bougette)
b.label = game.i18n.localize(game.bol.config.bougetteState[String(this.system.bougette.value)])
b.diceImg = "icons/dice/" + game.bol.config.bougetteDice[String(this.system.bougette.value)] + "black.svg"
return b
@ -80,7 +138,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */
async rollBougette() {
if (this.type == "character") {
let attribute = duplicate(this.system.attributes.vigor)
let attribute = foundry.utils.duplicate(this.system.attributes.vigor)
let rollData = BoLRoll.getCommonRollData(this, "bougette", attribute, undefined)
rollData.formula = game.bol.config.bougetteDice[String(this.system.bougette.value)]
let r = new BoLDefaultRoll(rollData)
@ -91,7 +149,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */
decBougette() {
if (this.type == "character") {
let bougette = duplicate(this.system.bougette)
let bougette = foundry.utils.duplicate(this.system.bougette)
bougette.value = Math.max(Number(bougette.value) - 1, 0)
this.update({ 'system.bougette': bougette })
}
@ -145,7 +203,7 @@ export class BoLActor extends Actor {
}
}
get attributes() {
let attrList = duplicate(Object.values(this.system.attributes))
let attrList = foundry.utils.duplicate(Object.values(this.system.attributes))
this.addEffectModifiers(attrList, "system.attributes.")
return attrList
}
@ -199,21 +257,40 @@ export class BoLActor extends Actor {
getActiveFightOption() {
let it = this.items.find(i => i.type === "feature" && i.system.subtype === "fightoption" && i.system.properties.activated)
if (it) {
return duplicate(it)
return foundry.utils.duplicate(it)
}
return undefined
}
/* -------------------------------------------- */
addXPLog(type, name, cost, value) {
let xplog = {
name: "XP : " + game.i18n.localize(type), type: "feature",
img: "icons/magic/symbols/chevron-elipse-circle-blue.webp",
system: {
subtype: "xplog", properties: {
xptype: type,
xpdate: new Date().toLocaleDateString(),
xpname: name,
xpcost: cost,
xpvalue: value
}
}
}
this.createEmbeddedDocuments('Item', [xplog])
}
/* -------------------------------------------- */
incAttributeXP(key) {
let attr = duplicate(this.system.attributes[key])
let attr = foundry.utils.duplicate(this.system.attributes[key])
if (attr) {
let nextXP = (attr.value == -1) ? 2 : attr.value + (attr.value + 1)
let xp = duplicate(this.system.xp)
let xp = foundry.utils.duplicate(this.system.xp)
if (xp.total - xp.spent >= nextXP) {
attr.value += 1
xp.spent += nextXP
this.update({ [`system.attributes.${key}`]: attr, [`system.xp`]: xp })
this.addXPLog("attribute", key, nextXP, attr.value)
} else {
ui.notifications.warn("Pas assez de points d'expérience !")
}
@ -222,14 +299,15 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */
incAptitudeXP(key) {
let apt = duplicate(this.system.aptitudes[key])
let apt = foundry.utils.duplicate(this.system.aptitudes[key])
if (apt) {
let nextXP = (apt.value == -1) ? 1 : apt.value + 2
let xp = duplicate(this.system.xp)
let xp = foundry.utils.duplicate(this.system.xp)
if (xp.total - xp.spent >= nextXP) {
apt.value += 1
xp.spent += nextXP
this.update({ [`system.aptitudes.${key}`]: apt, [`system.xp`]: xp })
this.addXPLog("aptitude", key, nextXP, apt.value)
} else {
ui.notifications.warn("Pas assez de points d'expérience !")
}
@ -239,13 +317,14 @@ export class BoLActor extends Actor {
incCareerXP(itemId) {
let career = this.items.get(itemId)
if (career) {
career = duplicate(career)
career = foundry.utils.duplicate(career)
let nextXP = career.system.rank + 1
let xp = duplicate(this.system.xp)
let xp = foundry.utils.duplicate(this.system.xp)
if (xp.total - xp.spent >= nextXP) {
xp.spent += nextXP
this.update({ [`system.xp`]: xp })
this.updateEmbeddedDocuments('Item', [{ _id: career._id, 'system.rank': career.system.rank + 1 }])
this.addXPLog("career", career.name, nextXP, career.system.rank + 1)
} else {
ui.notifications.warn("Pas assez de points d'expérience !")
}
@ -259,7 +338,7 @@ export class BoLActor extends Actor {
let updates = []
if (fightOption) {
fightOption = duplicate(fightOption)
fightOption = foundry.utils.duplicate(fightOption)
if (fightOption.system.properties.activated) {
state = false
} else {
@ -298,17 +377,20 @@ export class BoLActor extends Actor {
get boleffects() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "boleffect")
}
get xplog() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "xplog")
}
get horoscopes() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "horoscope")
}
get boons() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "boon") || []);
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "boon") || []);
}
get flaws() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw") || []);
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw") || []);
}
get careers() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "career") || [])
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "career") || [])
}
get origins() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "origin");
@ -390,31 +472,23 @@ export class BoLActor extends Actor {
get bonusBoons() {
let boons = this.items.filter(i => i.type === "feature" && i.system.subtype === "boon" && i.system.properties.isbonusdice)
return duplicate(boons || [])
return foundry.utils.duplicate(boons || [])
}
get malusFlaws() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw" && i.system.properties.ismalusdice) || []);
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw" && i.system.properties.ismalusdice) || []);
}
isSorcerer() {
if (this.careers.find(item => item.system.properties.sorcerer == true))
return true
return false
return (this.careers.find(item => item.system.properties.sorcerer))
}
isAlchemist() {
if (this.careers.find(item => item.system.properties.alchemist == true))
return true
return false
return (this.careers.find(item => item.system.properties.alchemist))
}
isAstrologer() {
if (this.careers.find(item => item.system.properties.astrologer == true))
return true
return false
return (this.careers.find(item => item.system.properties.astrologer))
}
isPriest() {
if (this.careers.find(item => item.system.properties.priest == true))
return true
return false
return (this.careers.find(item => item.system.properties.priest))
}
/*-------------------------------------------- */
@ -484,7 +558,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */
spentAstrologyPoints(points) {
let astrology = duplicate(this.system.resources.astrologypoints)
let astrology = foundry.utils.duplicate(this.system.resources.astrologypoints)
astrology.value -= points
astrology.value = Math.max(astrology.value, 0)
this.update({ 'system.resources.astrologypoints': astrology })
@ -535,8 +609,8 @@ export class BoLActor extends Actor {
rollData.horoscopeName = actorHoroscope.name
}
if (rollData.horoscopeType == "majorgroup") {
let rID = randomID(16)
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
let rID = foundry.utils.randomID(16)
let horoscopes = foundry.utils.duplicate(game.settings.get("bol", "horoscope-group"))
horoscopes[rID] = {
id: rID,
name: game.i18n.localize("BOL.ui.groupHoroscope") + this.name,
@ -568,7 +642,7 @@ export class BoLActor extends Actor {
async spendAlchemyPoint(alchemyId, pcCost) {
let alchemy = this.items.get(alchemyId)
if (alchemy) {
pcCost = Number(pcCost) ?? 0
pcCost = Number(pcCost) || 0
if (this.system.resources.alchemypoints.value >= pcCost) {
let newPC = this.system.resources.alchemypoints.value - pcCost
newPC = (newPC < 0) ? 0 : newPC
@ -582,7 +656,7 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
getAstrologerBonus() {
let astrologer = this.careers.find(item => item.system.properties.astrologer == true)
let astrologer = this.careers.find(item => item.system.properties.astrologer)
if (astrologer) {
return astrologer.system.rank
}
@ -590,7 +664,7 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
getAlchemistBonus() {
let sorcerer = this.careers.find(item => item.system.properties.alchemist == true)
let sorcerer = this.careers.find(item => item.system.properties.alchemist)
if (sorcerer) {
return sorcerer.system.rank
}
@ -598,7 +672,7 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
getSorcererBonus() {
let sorcerer = this.careers.find(item => item.system.properties.sorcerer == true)
let sorcerer = this.careers.find(item => item.system.properties.sorcerer)
if (sorcerer) {
return sorcerer.system.rank
}
@ -628,8 +702,8 @@ export class BoLActor extends Actor {
resources['faith'] = this.system.resources.faith
resources['power'] = this.system.resources.power
}
if (this.system.chartype == 'adversary') {
resources['hero'] = duplicate(this.system.resources.hero)
if (this.system.chartype == 'adversary' || this.system.chartype == 'creature') {
resources['hero'] = foundry.utils.duplicate(this.system.resources.hero)
resources['hero'].label = "BOL.resources.villainy"
}
} else {
@ -775,17 +849,17 @@ export class BoLActor extends Actor {
let lastHP = await this.getFlag("world", hpID)
if (lastHP != this.system.resources.hp.value && game.user.isGM) { // Only GM sends this
await this.setFlag("world", hpID, this.system.resources.hp.value)
let prone = this.effects.find(ef => ef.label == "EFFECT.StatusProne")
let dead = this.effects.find(ef => ef.label == "EFFECT.StatusDead")
let prone = this.effects.find(ef => ef.name == game.i18n.localize("EFFECT.StatusProne"))
let dead = this.effects.find(ef => ef.name == game.i18n.localize("EFFECT.StatusDead"))
if (this.system.resources.hp.value <= 0) {
if (!prone) {
await this.createEmbeddedDocuments("ActiveEffect", [
{ label: 'EFFECT.StatusProne', icon: 'icons/svg/falling.svg', flags: { core: { statusId: 'prone' } } }
{ name: game.i18n.localize('EFFECT.StatusProne'), icon: 'icons/svg/falling.svg', statuses: 'prone' }
])
}
if (this.system.resources.hp.value < -5 && !dead) {
await this.createEmbeddedDocuments("ActiveEffect", [
{ label: 'EFFECT.StatusDead', icon: 'icons/svg/skull.svg', flags: { core: { statusId: 'dead' } } }
{ name: game.i18n.localize('EFFECT.StatusDead'), icon: 'icons/svg/skull.svg', statuses: 'dead' }
])
}
ChatMessage.create({
@ -812,7 +886,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */
storeVitaliteCombat() {
this.setFlag("world", "vitalite-before-combat", duplicate(this.system.resources.hp))
this.setFlag("world", "vitalite-before-combat", foundry.utils.duplicate(this.system.resources.hp))
}
/*-------------------------------------------- */
async displayRecuperation() {
@ -836,7 +910,7 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
async applyRecuperation(recupHP) {
let hp = duplicate(this.system.resources.hp)
let hp = foundry.utils.duplicate(this.system.resources.hp)
//console.log("RECUP !!!!", hp, recupHP)
hp.value += Number(recupHP)
hp.value = Math.min(hp.value, hp.max)
@ -864,10 +938,7 @@ export class BoLActor extends Actor {
checkNumeric(myObject) {
if (myObject) {
for (let key in myObject) {
if (myObject[key].value === null) {
myObject[key].value = 0
}
if (myObject[key].value === NaN) {
if (myObject[key].value === null || isNaN(myObject[key].value)) {
myObject[key].value = 0
}
}
@ -885,11 +956,39 @@ export class BoLActor extends Actor {
if (data.system?.resources) {
this.checkNumeric(data.system.resources)
}
// Apply changes in Horde size to Token width/height
if (this.type == "horde") {
if (data?.system?.hordesize) { // If horde size is changed}
let newHP = data.system.hordesize * this.system.hordebasehp
if (newHP != this.system.resources.hp.value) {
data.system.resources = { hp: { value: newHP, max: newHP } } // Update HP
}
let tokenSize = this.getTokenSizeFromHordeSize(data?.system?.hordesize)
if (this.isToken && (tokenSize !== this.token.width)) {
this.token.update({ width: tokenSize, height: tokenSize })
} else {
if (tokenSize && (tokenSize !== this.prototypeToken.width)) {
if (!foundry.utils.hasProperty(data, "prototypeToken.width")) {
data.prototypeToken ||= {};
data.prototypeToken.height = tokenSize;
data.prototypeToken.width = tokenSize;
}
}
}
}
if (data?.system?.hordebasehp) {
let newHP = this.system.hordesize * data.system.hordebasehp
if (newHP != this.system.resources.hp.value) {
data.system.resources = { hp: { value: newHP, max: newHP } }
}
}
}
super._preUpdate(data, options, userId)
}
/*-------------------------------------------- */
getInitiativeRank(rollData = undefined, isCombat = false, combatData) {
getInitiativeRank(rollData = undefined, isCombat = false, combatData = undefined) {
let fvttInit = 4 // Pietaille par defaut
if (this.type == 'character') {
fvttInit = 5
@ -955,8 +1054,15 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
async sufferDamage(damage) {
let updates = {}
let newHP = this.system.resources.hp.value - damage
await this.update({ 'system.resources.hp.value': newHP })
updates['system.resources.hp.value'] = newHP
if (this.type == "horde") {
let newSize = Math.ceil(newHP / this.system.hordebasehp)
updates['system.hordesize'] = newSize
}
await this.update(updates)
}
/* -------------------------------------------- */
@ -987,20 +1093,21 @@ export class BoLActor extends Actor {
}
/* -------------------------------------------- */
rollProtection(itemId) {
let armor = duplicate(this.items.get(itemId))
async rollProtection(itemId) {
let armor = foundry.utils.duplicate(this.items.get(itemId))
if (armor) {
let armorFormula = "max(" + armor.system.properties.soak.formula + ", 0)"
let rollArmor = new Roll(armorFormula)
rollArmor.roll({ async: false }).toMessage()
await rollArmor.roll()
rollArmor.toMessage()
}
}
/* -------------------------------------------- */
rollWeaponDamage(itemId) {
let weapon = duplicate(this.items.get(itemId))
let weapon = foundry.utils.duplicate(this.items.get(itemId))
if (weapon) {
let r = new BoLDefaultRoll({ id: randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this })
let r = new BoLDefaultRoll({ id: foundry.utils.randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this })
r.setSuccess(true)
r.rollDamage()
}
@ -1010,7 +1117,7 @@ export class BoLActor extends Actor {
toggleEquipItem(item) {
const equipable = item.system.properties.equipable;
if (equipable) {
let itemData = duplicate(item);
let itemData = foundry.utils.duplicate(item);
itemData.system.worn = !itemData.system.worn;
return item.update(itemData);
}

217
module/actor/horde-sheet.js Normal file
View File

@ -0,0 +1,217 @@
/**
* Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet}
*/
import { BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js";
export class BoLHordeSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "actor"],
template: "systems/bol/templates/actor/horde-sheet.hbs",
width: 860,
height: 600,
dragDrop: [{ dragSelector: ".items-list .item", dropSelector: null }],
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }]
});
}
/* -------------------------------------------- */
/** @override */
activateListeners(html) {
super.activateListeners(html);
function onLoad() {
let logoSheet = BoLUtility.getLogoActorSheet()
$(".bol-actor-form").css("backgroundImage",`url(${logoSheet})`)
}
// Setup everything onload
$(function () { onLoad(); });
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
// Add Inventory Item
html.find('.item-create').click(this._onItemCreate.bind(this));
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.items.get(li.data("itemId"));
item.sheet.render(true);
})
// Equip/Unequip item
html.find('.item-equip').click(this._onToggleEquip.bind(this));
html.find('.create_item').click(ev => {
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvel Equipement", type: "item" }], { renderSheet: true });
});
// Incr./Decr. career ranks
html.find(".inc-dec-btns").click((ev) => {
const li = $(ev.currentTarget).parents(".item");
if (li) {
const item = this.actor.items.get(li.data("itemId"));
if (item) {
const dataset = ev.currentTarget.dataset;
const operator = dataset.operator;
const target = dataset.target;
const incr = parseInt(dataset.incr)
const min = parseInt(dataset.min)
const max = parseInt(dataset.max) || 10000
let value = eval("item." + target)
value = value || 0
//console.log("IncDec", item, target, value, operator, min, max)
if (operator === "minus") {
if (value >= min + incr) value -= incr;
else value = min;
}
if (operator === "plus") {
if (value <= max - incr) value += incr;
else value = max;
}
let update = { [`${target}`]: value };
item.update(update);
}
}
});
// Delete Inventory Item
html.find('.item-delete').click(ev => {
Dialog.confirm({
title: "Suppression",
content: `Vous êtes sûr de vouloir supprimer cet item ?`,
yes: () => {
const li = $(ev.currentTarget).parents(".item");
this.actor.deleteEmbeddedDocuments("Item", [li.data("itemId")])
li.slideUp(200, () => this.render(false));
},
no: () => { },
defaultYes: false,
});
});
// Rollable abilities.
html.find('.rollable').click(this._onRoll.bind(this));
}
/* -------------------------------------------- */
/** @override */
async getData(options) {
const data = super.getData(options)
let formData = foundry.utils.duplicate(data)
formData.config = game.bol.config
formData.name = this.actor.name
formData.img = this.actor.img
formData.system = foundry.utils.duplicate(this.actor.system)
formData.isGM = game.user.isGM
formData.options = this.options
formData.owner = this.document.isOwner
formData.editScore = this.options.editScore
formData.description = await TextEditor.enrichHTML(this.actor.system.description, {async: true})
formData.isGM = game.user.isGM
console.log("HORDE", formData)
return formData;
}
/* -------------------------------------------- */
/**
* Handle creating a new Owned Item for the actor using initial data defined in the HTML dataset
* @param {Event} event The originating click event
* @private
*/
_onItemCreate(event) {
event.preventDefault();
const header = event.currentTarget;
// Get the type of item to create.
const type = header.dataset.type;
// Grab any data associated with this control.
const data = foundry.utils.duplicate(header.dataset);
// Initialize a default name.
const name = `New ${type.capitalize()}`;
// Prepare the item object.
const itemData = {
name: name,
type: type,
data: data
};
// Remove the type from the dataset since it's in the itemData.type prop.
delete itemData.data["type"];
// Finally, create the item!
return this.actor.createEmbeddedDocuments("Item", [itemData]);
}
_onToggleEquip(event) {
event.preventDefault();
const li = $(event.currentTarget).closest(".item");
const item = this.actor.items.get(li.data("itemId"));
return this.actor.toggleEquipItem(item);
}
/**
* Handle clickable rolls.
* @param {Event} event The originating click event
* @private
*/
_onRoll(event) {
event.preventDefault();
const element = event.currentTarget
const dataset = element.dataset
const rollType = dataset.rollType
const li = $(event.currentTarget).closest(".item")
switch (rollType) {
case "attribute":
BoLRoll.attributeCheck(this.actor, dataset.key, event)
break;
case "aptitude":
BoLRoll.aptitudeCheck(this.actor, dataset.key, event)
break;
case "weapon":
BoLRoll.weaponCheck(this.actor, event)
break;
case "spell":
BoLRoll.spellCheck(this.actor, event)
break;
case "alchemy":
BoLRoll.alchemyCheck(this.actor, event)
break;
case "protection":
this.actor.rollProtection(li.data("item-id"))
break;
case "damage":
this.actor.rollWeaponDamage(li.data("item-id"))
break;
case "aptitudexp":
this.actor.incAptitudeXP(dataset.key)
break;
case "attributexp":
this.actor.incAttributeXP(dataset.key)
break;
case "careerxp":
this.actor.incCareerXP( li.data("item-id"))
break;
default: break;
}
}
/** @override */
setPosition(options = {}) {
const position = super.setPosition(options);
const sheetBody = this.element.find(".sheet-body");
const bodyHeight = position.height - 192;
sheetBody.css("height", bodyHeight);
return position;
}
}

View File

@ -9,7 +9,7 @@ export class BoLVehicleSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "actor"],
template: "systems/bol/templates/actor/vehicle-sheet.hbs",
width: 860,
@ -116,13 +116,12 @@ export class BoLVehicleSheet extends ActorSheet {
/** @override */
async getData(options) {
const data = super.getData(options)
const actorData = duplicate(data)
let formData = duplicate(data)
let formData = foundry.utils.duplicate(data)
formData.config = game.bol.config
formData.name = this.actor.name
formData.img = this.actor.img
formData.system = duplicate(this.actor.system)
formData.system = foundry.utils.duplicate(this.actor.system)
formData.weapons = this.actor.vehicleWeapons
formData.isGM = game.user.isGM
formData.options = this.options
@ -148,7 +147,7 @@ export class BoLVehicleSheet extends ActorSheet {
// Get the type of item to create.
const type = header.dataset.type;
// Grab any data associated with this control.
const data = duplicate(header.dataset);
const data = foundry.utils.duplicate(header.dataset);
// Initialize a default name.
const name = `New ${type.capitalize()}`;
// Prepare the item object.

View File

@ -3,6 +3,7 @@
import { BoLActor } from "./actor/actor.js"
import { BoLActorSheet } from "./actor/actor-sheet.js"
import { BoLVehicleSheet } from "./actor/vehicle-sheet.js"
import { BoLHordeSheet } from "./actor/horde-sheet.js"
import { BoLItem } from "./item/item.js"
import { BoLItemSheet } from "./item/item-sheet.js"
import { System, BOL } from "./system/config.js"
@ -14,10 +15,8 @@ import { BoLUtility } from "./system/bol-utility.js"
import { BoLCombatManager } from "./system/bol-combat.js"
import { BoLTokenHud } from "./system/bol-action-hud.js"
import { BoLHotbar } from "./system/bol-hotbar.js"
import { BoLAdventureGenerator } from "./system/bol-adventure-generator.js"
import { BoLCommands} from "./system/bol-commands.js"
import { BoLCharacterSummary} from "./system/bol-character-summary.js"
import { BoLRoll} from "./controllers/bol-rolls.js"
import { BoLCommands } from "./system/bol-commands.js"
import { BoLRoll } from "./controllers/bol-rolls.js"
/* -------------------------------------------- */
Hooks.once('init', async function () {
@ -27,16 +26,16 @@ Hooks.once('init', async function () {
BoLItem,
BoLHotbar,
BoLRoll,
BoLUtility,
macros: Macros,
config: BOL
};
// Game socket
game.socket.on("system.bol", sockmsg => {
BoLUtility.onSocketMessage(sockmsg);
})
/**
* Set an initiative formula for the system
* @type {String}
@ -45,7 +44,7 @@ Hooks.once('init', async function () {
formula: "2d6+@attributes.mind.value+@aptitudes.init.value",
decimals: 2
};
// Define custom Entity classes
CONFIG.Actor.documentClass = BoLActor;
CONFIG.Item.documentClass = BoLItem;
@ -55,6 +54,7 @@ Hooks.once('init', async function () {
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("bol", BoLActorSheet, { types: ["character", "encounter"], makeDefault: true })
Actors.registerSheet("bol", BoLVehicleSheet, { types: ["vehicle"], makeDefault: true })
Actors.registerSheet("bol", BoLHordeSheet, { types: ["horde"], makeDefault: true })
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("bol", BoLItemSheet, { makeDefault: true });
@ -64,7 +64,6 @@ Hooks.once('init', async function () {
BoLTokenHud.init()
BoLHotbar.init()
BoLCommands.init()
BoLAdventureGenerator.init()
// Preload Handlebars Templates
await preloadHandlebarsTemplates();
@ -75,59 +74,58 @@ Hooks.once('init', async function () {
// Register hooks
registerHooks()
if (typeof Babele !== 'undefined') {
Babele.get().setSystemTranslationsDir("compendiums");
}
});
/* -------------------------------------------- */
// Register world usage statistics
function registerUsageCount( registerKey ) {
if ( game.user.isGM ) {
game.settings.register(registerKey, "world-key", {
name: "Unique world key",
scope: "world",
config: false,
default: "",
type: String
});
let worldKey = game.settings.get(registerKey, "world-key")
if ( worldKey == undefined || worldKey == "" ) {
worldKey = randomID(32)
game.settings.set(registerKey, "world-key", worldKey )
}
// Simple API counter
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
//$.ajaxSetup({
//headers: { 'Access-Control-Allow-Origin': '*' }
//})
$.ajax(regURL)
}
}
/* -------------------------------------------- */
function welcomeMessage() {
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-pegasus"><span class="rdd-roll-part">
content: `<div id="welcome-message-bol"><span class="rdd-roll-part">
<strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` +
game.i18n.localize("BOL.chat.welcome2") + "<p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p>" +
game.i18n.localize("BOL.chat.welcome5") + "<br>" +
game.i18n.localize("BOL.chat.welcome6")
} )
game.i18n.localize("BOL.chat.welcome2") + "<p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p>" +
game.i18n.localize("BOL.chat.welcome5") + "<br>" +
game.i18n.localize("BOL.chat.welcome6")
})
}
/* -------------------------------------------- */
Hooks.once('ready', async function () {
BoLUtility.ready()
BoLCharacterSummary.ready()
registerUsageCount(game.system.id)
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => {
console.log("ClassCounter loaded", moduleCounter)
moduleCounter.ClassCounter.registerUsageCount()
}).catch(err =>
console.log("No stats available, giving up.")
)
welcomeMessage()
// User warning
if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info(game.i18n.localize("BOL.chat.pcwarning"));
ChatMessage.create({
content: game.i18n.localize("BOL.chat.pcwarningmsg") + game.user.name,
user: game.user._id
});
}
if (!game.user.isGM && game.user.character && !game.user.character.prototypeToken.actorLink) {
ui.notifications.info(game.i18n.localize("BOL.chat.pcnotlinked"));
ChatMessage.create({
content: game.i18n.localize("BOL.chat.pcnotlinkedmsg") + game.user.name,
user: game.user._id
});
}
})

View File

@ -19,11 +19,9 @@ export class BoLRoll {
static updateApplicableEffects(rollData) {
let appEffects = []
for (let effect of rollData.bolEffects) {
if (effect.system.properties.identifier == "always") {
appEffects.push(effect)
} else if (effect.system.properties.identifier.includes(rollData.attribute.key)) {
appEffects.push(effect)
} else if (rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key)) {
if ( (effect.system.properties.identifier == "always") ||
(effect.system.properties.identifier.includes(rollData.attribute.key)) ||
(rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key)) ){
appEffects.push(effect)
}
}
@ -62,6 +60,7 @@ export class BoLRoll {
armorInitMalus: actor.getArmorInitMalus(),
horoscopeBonusList: actor.getHoroscopesBonus(),
horoscopeMalusList: actor.getHoroscopesMalus(),
config: game.bol.config,
adv: "0",
mod: 0,
modRanged: 0,
@ -184,7 +183,7 @@ export class BoLRoll {
ui.notifications.warn("Unable to find weapon !")
return
}
weapon = duplicate(weapon)
weapon = foundry.utils.duplicate(weapon)
return this.weaponCheckWithWeapon(actor, weapon)
}
@ -196,7 +195,7 @@ export class BoLRoll {
ui.notifications.warn("Unable to find Alchemy !");
return;
}
alchemy = duplicate(alchemy)
alchemy = foundry.utils.duplicate(alchemy)
let alchemyData = alchemy.system
if (alchemyData.properties.pccurrent < alchemyData.properties.pccost) {
ui.notifications.warn("Pas assez de Points de Création investis dans la Préparation !")
@ -270,7 +269,7 @@ export class BoLRoll {
ui.notifications.warn("Impossible de trouver ce sort !")
return
}
spell = duplicate(spell)
spell = foundry.utils.duplicate(spell)
return this.spellCheckWithSpell(actor, spell)
}
@ -403,7 +402,7 @@ export class BoLRoll {
html.find('#attr').change((event) => {
let attrKey = event.currentTarget.value
let actor = BoLUtility.getActorFromRollData(this.rollData)
this.rollData.attribute = duplicate(actor.system.attributes[attrKey])
this.rollData.attribute = foundry.utils.duplicate(actor.system.attributes[attrKey])
this.rollData.attrValue = actor.system.attributes[attrKey].value
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
this.updateTotalDice()
@ -411,7 +410,7 @@ export class BoLRoll {
html.find('#apt').change((event) => {
let aptKey = event.currentTarget.value
let actor = BoLUtility.getActorFromRollData(this.rollData)
this.rollData.aptitude = duplicate(actor.system.aptitudes[aptKey])
this.rollData.aptitude = foundry.utils.duplicate(actor.system.aptitudes[aptKey])
this.rollData.aptValue = actor.system.aptitudes[aptKey].value
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
this.updateTotalDice()
@ -454,7 +453,7 @@ export class BoLRoll {
html.find('#horoscope-bonus-applied').change((event) => {
this.rollData.selectedHoroscope = []
for (let option of event.currentTarget.selectedOptions) {
this.rollData.selectedHoroscope.push(duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
this.rollData.selectedHoroscope.push(foundry.utils.duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
}
let horoscopes = $('#horoscope-bonus-applied').val()
this.rollData.horoscopeBonus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length
@ -464,7 +463,7 @@ export class BoLRoll {
html.find('#horoscope-malus-applied').change((event) => {
this.rollData.selectedHoroscope = []
for (let option of event.currentTarget.selectedOptions) {
this.rollData.selectedHoroscope.push(duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
this.rollData.selectedHoroscope.push(foundry.utils.duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
}
let horoscopes = $('#horoscope-malus-applied').val()
this.rollData.horoscopeMalus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length
@ -532,7 +531,7 @@ export class BoLRoll {
rollData.careerBonus = rollData.careerBonus ?? 0
rollData.modRanged = rollData.modRanged ?? 0
rollData.mod = rollData.mod ?? 0
rollData.id = randomID(16)
rollData.id = foundry.utils.randomID(16)
rollData.weaponModifier = 0
rollData.attackBonusDice = false
rollData.armorMalus = 0
@ -569,6 +568,7 @@ export class BoLRoll {
icon: '<i class="fas fa-check"></i>',
label: game.i18n.localize("BOL.ui.submit"),
callback: (html) => {
console.log("Submit Roll!!!!");
if (rollData.mode == 'spell' && rollData.ppCurrent < rollData.ppCost) { // Check PP available
ui.notifications.warn("Pas assez de Points de Pouvoir !")
return
@ -618,29 +618,40 @@ export class BoLDefaultRoll {
if (this.rollData.applyId) {
BoLUtility.cleanupButtons(this.rollData.applyId)
}
this.rollData.optionsId = randomID(16)
this.rollData.applyId = randomID(16)
this.rollData.optionsId = foundry.utils.randomID(16)
this.rollData.applyId = foundry.utils.randomID(16)
}
/* -------------------------------------------- */
async roll() {
const r = new Roll(this.rollData.formula)
//console.log("Roll formula", this.rollData.formula)
await r.roll({ "async": false })
await r.roll()
let diceData = BoLUtility.getDiceData()
//console.log("DICEDATA", diceData)
const activeDice = r.terms[0].results.filter(r => r.active)
const diceTotal = activeDice.map(r => r.result).reduce((a, b) => a + b)
this.rollData.roll = r
this.rollData.isSuccess = (r.total >= diceData.successValue)
this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isRealCritical = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isHeroic = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isLegendary = false
this.rollData.isFumble = (diceTotal <= diceData.criticalFailureValue)
this.rollData.isFailure = !this.rollData.isSuccess
if ( this.rollData.isFumble ) {
this.rollData.isSuccess = false
this.rollData.isCritical = false
this.rollData.isRealCritical = false
this.rollData.isHeroic = false
this.rollData.isFailure = true
} else {
this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue)
if ( this.rollData.isCritical) {
this.rollData.isSuccess = true
} else {
this.rollData.isSuccess = (r.total >= diceData.successValue)
}
this.rollData.isRealCritical = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isHeroic = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isFailure = !this.rollData.isSuccess
}
this.rollData.isLegendary = false
let actor = BoLUtility.getActorFromRollData(this.rollData)
if (this.rollData.reroll == undefined) {
@ -651,7 +662,7 @@ export class BoLDefaultRoll {
this.rollData.initiativeRank = actor.getInitiativeRank(this.rollData)
if (this.rollData.combatData) { // If combatData present
let combat = game.combats.get(this.rollData.combatData.combatId)
console.log("SET INIT!!!!!", this.rollData.initiativeRank)
//console.log("SET INIT!!!!!", this.rollData.initiativeRank)
combat.setInitiative(this.rollData.combatData.combatantId, this.rollData.initiativeRank)
}
}
@ -690,7 +701,7 @@ export class BoLDefaultRoll {
flavor: msgFlavor,
speaker: ChatMessage.getSpeaker({ actor: actor }),
})
this.rollData.roll = duplicate(this.rollData.roll) // Remove object, keep data (v111 ready)
this.rollData.roll = foundry.utils.duplicate(this.rollData.roll) // Remove object, keep data (v111 ready)
msg.setFlag("world", "bol-roll-data", this.rollData)
})
}
@ -743,7 +754,7 @@ export class BoLDefaultRoll {
speaker: ChatMessage.getSpeaker({ actor: actor }),
flags: { msgType: "default" }
})
this.rollData.damageRoll = duplicate(this.rollData.damageRoll)
this.rollData.damageRoll = foundry.utils.duplicate(this.rollData.damageRoll)
this.rollData.actor = undefined // Cleanup
msg.setFlag("world", "bol-roll-data", this.rollData)
})
@ -767,8 +778,12 @@ export class BoLDefaultRoll {
if (this.rollData.damageMode == 'damage-plus-6') {
bonusDmg = 6
}
if (this.rollData.damageMode == 'damage-plus-12') {
if (this.rollData.damageMode == 'damage-plus-12' || this.rollData.damageMode == 'damage-plus-12-legend') {
bonusDmg = 12
if (this.rollData.damageMode == 'damage-plus-12') { // In this case, the hero point is used (ie shortcut)
let actor = BoLUtility.getActorFromRollData(this.rollData)
actor.subHeroPoints(1)
}
}
let attrDamageValue = this.getDamageAttributeValue(this.rollData.weapon.system.properties.damageAttribute)
let weaponFormula = BoLUtility.getDamageFormula(this.rollData.weapon.system, this.rollData.fightOption)
@ -778,7 +793,7 @@ export class BoLDefaultRoll {
//console.log("Formula", weaponFormula, damageFormula, this.rollData.weapon.data.data.properties.damage)
this.rollData.damageFormula = damageFormula
this.rollData.damageRoll = new Roll(damageFormula)
await this.rollData.damageRoll.roll({ "async": false })
await this.rollData.damageRoll.roll()
this.rollData.damageTotal = this.rollData.damageRoll.total
console.log("DAMAGE !!!", damageFormula, attrDamageValue, this.rollData)
}

View File

@ -8,7 +8,7 @@ export class BoLItemSheet extends ItemSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "item"],
template: "systems/bol/templates/item/item-sheet.hbs",
width: 650,
@ -21,14 +21,16 @@ export class BoLItemSheet extends ItemSheet {
/** @override */
async getData(options) {
const data = super.getData(options)
let itemData = duplicate(data.document)
let itemData = foundry.utils.duplicate(data.document)
data.config = game.bol.config
data.item = itemData
data.category = itemData.system.category
data.isGM = game.user.isGM;
data.itemProperties = this.item.itemProperties;
data.description = await TextEditor.enrichHTML(this.object.system.description, { async: true })
if (data.document.actor) {
data.careers = data.document.actor.careers
}
// Dynamic default data fix/adapt
if (itemData.type == "item") {
if (!itemData.system.category) {
@ -76,7 +78,7 @@ export class BoLItemSheet extends ItemSheet {
/* -------------------------------------------- */
postItem() {
let chatData = duplicate(this.item)
let chatData = foundry.utils.duplicate(this.item)
if (this.actor) {
chatData.actor = { id: this.actor.id };
}

View File

@ -1,620 +0,0 @@
{
"titre1": [
{
"prefix": "la",
"name": "Prophétie"
},
{
"prefix": "les",
"name": "Grottes",
"isLieu": true
},
{
"prefix": "les",
"name": "Collines",
"isLieu": true
},
{
"prefix": "les",
"name": "Voleurs",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Sorcier(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "la",
"name": "Bataille"
},
{
"prefix": "la",
"name": "Légende"
},
{
"prefix": "la",
"name": "Tour",
"isLieu": true
},
{
"prefix": "l'",
"name": "Ile",
"isLieu": true
},
{
"prefix": "les",
"name": "Pirates",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Druide(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "le",
"name": "Navire",
"isCarriere": false
},
{
"prefix": "la",
"name": "Couronne",
"isObjet": true
},
{
"prefix": "la",
"name": "Cité",
"isLieu": true
},
{
"prefix": "le",
"name": "Désert",
"isLieu": true
},
{
"prefix": "les",
"name": "Bête(s)",
"isEnnemi": true,
"isLieu": false
},
{
"prefix": "les",
"name": "Démon(s)",
"isEnnemi": true,
"isLieu": false
},
{
"prefix": "le",
"name": "Trésor",
"isObjet": true
},
{
"prefix": "l'",
"name": "Epée",
"isObjet": true
},
{
"prefix": "l'",
"name": "Arène",
"isLieu": true
},
{
"prefix": "les",
"name": "Marais",
"isLieu": true
},
{
"prefix": "les",
"name": "Seigneur(s)",
"isEnnemi": true,
"isLieu": false
},
{
"prefix": "les",
"name": "Assassin(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "le",
"name": "Culte",
"isEnnemi": true,
"isCarriere": false
},
{
"prefix": "le",
"name": "Secret",
"isCarriere": false
},
{
"prefix": "le",
"name": "Palais",
"isLieu": true
},
{
"prefix": "la",
"name": "Mer",
"isLieu": true
},
{
"prefix": "les",
"name": "Barbares",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "le",
"name": "Manuscrit",
"isObjet": true
},
{
"prefix": "les",
"name": "Plaines",
"isLieu": true
},
{
"prefix": "le",
"name": "Sang",
"isLieu": false
},
{
"prefix": "la",
"name": "Tombe",
"isLieu": true
},
{
"prefix": "la",
"name": "Forêt",
"isLieu": true
},
{
"prefix": "les",
"name": "Esclaves",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Mendiant(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Montagnes",
"isCarriereLieu": true
}
],
"titre2": [
{
"prefix": "du",
"name": "mal"
},
{
"prefix": "et le",
"name": "Roi Maussade",
"isEnnemi": true
},
{
"prefix": "et la",
"name": "pestilence",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Malakut",
"isLieu": true
},
{
"prefix": "d'",
"name": "Halakh",
"isLieu": true
},
{
"prefix": "d'",
"name": "Hyrdral",
"isLieu": true
},
{
"prefix": "des",
"name": "esprits abandonnés",
"isEnnemi": true
},
{
"prefix": "du",
"name": "chaos",
"isEnnemi": true
},
{
"prefix": "de la",
"name": "folie",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Satarla",
"isLieu": true
},
{
"prefix": "d'",
"name": "Urceb",
"isLieu": true
},
{
"prefix": "des",
"name": "Terres Désolées",
"isLieu": true
},
{
"prefix": "de la",
"name": "mort",
"isLieu": false
},
{
"prefix": "des",
"name": "idoles impies",
"isObjet": true
},
{
"prefix": "des",
"name": "ténèbres",
"isObjet": false
},
{
"prefix": "de",
"name": "Parsool",
"isLieu": true
},
{
"prefix": "de",
"name": "Qiddesh",
"isLieu": true
},
{
"prefix": "de",
"name": "Kasht",
"isLieu": true
},
{
"prefix": "de la ",
"name": "falalité",
"isLieu": false
},
{
"prefix": "du",
"name": "Nécromant",
"isEnnemi": true
},
{
"prefix": "du",
"name": "Néant",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Lysor",
"isLieu": true
},
{
"prefix": "d'",
"name": "Oosal",
"isLieu": true
},
{
"prefix": "de",
"name": "Thulé",
"isLieu": true
},
{
"prefix": "du",
"name": "désespoir",
"isLieu": false
},
{
"prefix": "du",
"name": "Dieu Bouffi",
"isEnnemi": true
},
{
"prefix": "du",
"name": "silence",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Tyrus",
"isLieu": true
},
{
"prefix": "d'",
"name": "Ygddar",
"isLieu": true
},
{
"prefix": "de",
"name": "la Côte de Feu",
"isLieu": true
},
{
"prefix": "des",
"name": "ombres cruelles",
"isLieu": false
},
{
"prefix": "de la",
"name": "poussière écarlate",
"isLieu": false
},
{
"prefix": "du",
"name": "destin",
"isLieu": false
},
{
"prefix": "du",
"name": "Valgard",
"isLieu": true
},
{
"prefix": "de",
"name": "Qeb",
"isLieu": true
},
{
"prefix": "de",
"name": "la Mer Inconnue",
"isLieu": true
}
],
"mission": [
{
"name": "dattaquer un lieu."
},
{
"name": "de détruire un certain objet."
},
{
"name": "de kidnapper quelquun."
},
{
"name": "dobtenir une certaine chose."
},
{
"name": "dexplorer un lieu."
},
{
"name": "de sauver une personne."
},
{
"name": "déchapper à quelquun."
},
{
"name": "de fuir un lieu."
},
{
"name": "de trouver une personne."
},
{
"name": "de trouver un lieu."
},
{
"name": "de trouver chose."
},
{
"name": "de protéger une personne."
},
{
"name": "de protéger un lieu."
},
{
"name": "de protéger chose."
},
{
"name": "de dérober une certaine chose."
},
{
"name": "de tuer une personne."
},
{
"name": "de détruire une chose."
},
{
"name": "descorter une personne."
},
{
"name": "de transporter une chose."
}
],
"carriere": [
"Noble",
"Acrobate",
"Sorcier",
"Alchimiste",
"Esclave",
"Courtisane",
"Médecin",
"Marin",
"Érudit",
"Mendiant",
"Scribe",
"Poète",
"Forgeron",
"Prêtre",
"Danseur",
"Marchand",
"Pilote des airs",
"Fermier"
],
"lieux1": [
"Palais",
"Donjon",
"Ruines",
"Sanctuaire",
"Crypte",
"Forteresse",
"Tombeau",
"Grottes",
"Tour",
"Antre",
"Île",
"Montagne"
],
"lieux2": [
"de la mort.",
"de la destruction.",
"du désespoir.",
"des morts-vivants.",
"du sage.",
"de l'or.",
"de la tempête.",
"de la terreur.",
"descannibales.",
"du désespoir.",
"des Rois-Sorciers.",
"des âmes perdues."
],
"objets1": [
"Livre",
"Anneau",
"Coupe",
"Joyau",
"Casque",
"Parchemin",
"Couronne",
"Sceau",
"Cristal",
"Crâne",
"Épée",
"Bâton"
],
"objets2": [
"des sept sceaux.",
"de l'éternelle douleur.",
"du sang bouillonnant.",
"de la mort hideuse.",
"du pouvoir suprême.",
"du serpent sournois.",
"du plaisir infini.",
"de la richesse illusoire.",
"de la cruelle trahison.",
"du froid funeste.",
"des spectres inapaisés.",
"du mystère."
],
"motivation": [
"cest le genre de choses que fait Krongar.",
"sinon il finira en prison.",
"il est victime dun chantage.",
"il a trouvé une carte.",
"il a été maudit.",
"il a eu une vision (peut-être un soir de beuverie).",
"il a été engagé pour le faire.",
"il a surpris une conversation.",
"il a lu quelque chose dans un ancien manuscrit.",
"il est tombé accidentellement dans cette affaire.",
"il cherche à assouvir une vengeance.",
"il a ,été dupé."
],
"rival": [
"un poète obsédé.",
"un prince (esse) guerrier.",
"un ministre corrompu.",
"un sectateur fanatique.",
"un noble arrogant.",
"un étrange alchimiste.",
"un sorcier maléfique.",
"un druide cruel.",
"un marchand cupide.",
"un brigand sans foi ni loi.",
"un démon sanguinaire.",
"un fantôme errant."
],
"dieu": [
"Tharungozoth",
"Yrzlak",
"Dyr",
"Knothakon",
"Hadron",
"Shazzadion",
"Chiomalla",
"SaTel",
"Morgazzon",
"Hurm",
"Afyra",
"Grondil",
"Zaggath",
"Zalkyr",
"Fillana",
"Lilandra",
"Zylidith",
"Quathoomar",
"Iondal",
"Piandra",
"Nemmereth",
"Charkond",
"Karyzon",
"Zarymphyxos",
"Kryphondus"
],
"complique1": [
"cest toujours comme ça avec Krongar !",
"la situation réveille chez Krongar des peurs ancestrales.",
"un usurier et ses hommes de main veulent récupérer leur argent.",
"une grave épidémie ravage la région.",
"Krongar est traqué pour un crime passé.",
"les actions dun groupe de rebelles rendent la région peu sûre.",
"des hordes de guerriers envahissent la région pour la conquérir",
"un(e) ancien(ne) admirateur (trice) éconduit(e) cherche à se venger.",
"la loi locale est très sévère et interdit une chose nécessaire à laccomplissement de la mission.",
"un(e) admirateur (trice) inattendu(e) déclare son amour.",
"un rival qui fut défait autrefois réapparaît et met son grain de sel.",
"la folie de Morgazzon fait des ravages dans la région."
],
"obstacle": [
"dun ancien secret.",
"dun long voyage.",
"dune malédiction.",
"dun voleur rusé.",
"dune forte troupe de soldats.",
"dun énorme monstre.",
"dune horde de monstres.",
"dun manque de temps.",
"de gardes et de pièges magiques.",
"dune catastrophe naturelle sur le point de se produire.",
"dune énigme à résoudre.",
"dune bataille à gagner."
],
"retournement": [
"Lennemi est en fait Krongar lui-même, venu dune autre réalité !",
"Toute cette histoire était un piège machiavélique !",
"Lennemi est en fait un vieil ami ou un allié qui a comploté dans lombre !",
"Krongar est contraint de sassocier à un rival pour accomplir la mission !",
"Tout ce qui semblait ordinaire se révèle en fait surnaturel !",
"Lennemi est en fait le père, la mère, le frère ou la sœur de Krongar !",
"Une toute autre mission attend en fait notre héros !",
"Parfois, il ny a pas de retournement de situation !",
"i la mission est accomplie, cela entraînera de terribles répercussions !",
"Le destin offre à Krongar une chance daméliorer les choses, et il est renvoyé dans le temps au début de laventure. La saga recommence, mais cette fois sans retournement de situation !",
"Un ami ou un allié a trahi Krongar !",
"Les dieux sont furieux et lui imposent d'autres tâches"
],
"recompense": [
"Rien du tout ! On sest joué de lui !",
"Beaucoup moins quescompté.",
"Beaucoup moins quescompté, mais il gagne au moins la reconnaissance dune personne haut placée.",
"Beaucoup moins quescompté, mais il est marqué par les dieux (avantage).",
"La récompense escomptée.",
"La récompense escomptée, et il est marqué par les dieux (avantage).",
"La récompense escomptée, ainsi que la reconnaissance dune personne haut placée.",
"Plus quescompté.",
"Plus quescompté, ainsi que la reconnaissance dune personne haut placée.",
"Plus quescompté, et il est marqué par les dieux (avantage).",
"Plus quescompté, ainsi que la reconnaissance dune personne haut placée, et il est marqué par les dieux (avantage).",
"Une promotion... Longue vie au roi Krongar !"
]
}

View File

@ -33,9 +33,9 @@ export class BoLTokenHud {
let action = hudData.actionsList[actionIndex]
const actionItem = actor.items.get(action._id)
if (actionItem.system.subtype == "weapon") {
BoLRoll.weaponCheckWithWeapon(hudData.actor, duplicate(actionItem))
BoLRoll.weaponCheckWithWeapon(hudData.actor, foundry.utils.duplicate(actionItem))
} else if (actionItem.system.subtype == "fightoption") {
let chatData = duplicate(actionItem)
let chatData = foundry.utils.duplicate(actionItem)
if (actionItem.actor) {
chatData.actor = { id: actionItem.actor._id };
}

View File

@ -1,86 +0,0 @@
/* -------------------------------------------- */
import { BoLUtility } from "./bol-utility.js";
/* -------------------------------------------- */
export class BoLAdventureGenerator {
/* -------------------------------------------- */
static async init() {
this.adventureData = await fetchJsonWithTimeout("systems/bol/module/system/adventure_data.json")
}
/* -------------------------------------------- */
static async createAdventure() {
let roll1 = new Roll("1d" + this.adventureData.titre1.length).evaluate({ async: false })
let roll2 = new Roll("1d" + this.adventureData.titre2.length).evaluate({ async: false })
let p1 = this.adventureData.titre1[roll1.result - 1]
let p2 = this.adventureData.titre2[roll2.result - 1]
let story = {}
story.title = "Krongar et " + p1.prefix + " " + p1.name + " " + p2.prefix + " " + p2.name
let rollM = new Roll("1d" + this.adventureData.mission.length).evaluate({ async: false })
story.mission = "La mission de Krongar est de " + this.adventureData.mission[rollM.result - 1].name
if (!p1.isCarriere && !p2.isCarriere) {
let rollC = new Roll("1d" + this.adventureData.carriere.length).evaluate({ async: false })
story.carriere = "Une carrière : " + this.adventureData.carriere[rollC.result - 1]
}
if (!p1.isLieu && !p2.isLieu) {
let rollL1 = new Roll("1d" + this.adventureData.lieux1.length).evaluate({ async: false })
let rollL2 = new Roll("1d" + this.adventureData.lieux2.length).evaluate({ async: false })
story.lieu = "Un lieu : " + this.adventureData.lieux1[rollL1.result - 1] + " " + this.adventureData.lieux2[rollL2.result - 1]
}
if (!p1.isObjet && !p2.isObjet) {
let rollO1 = new Roll("1d" + this.adventureData.objets1.length).evaluate({ async: false })
let rollO2 = new Roll("1d" + this.adventureData.objets2.length).evaluate({ async: false })
story.objet = "Un objet : " + this.adventureData.objets1[rollO1.result - 1] + " " + this.adventureData.objets2[rollO2.result - 1]
}
let rollMOT = new Roll("1d" + this.adventureData.motivation.length).evaluate({ async: false })
story.motivation = "Krongar entreprend cette mission parce que " + this.adventureData.motivation[rollMOT.result - 1]
if (!p1.isEnnemi && !p2.isEnnemi) {
let rollE = new Roll("1d" + this.adventureData.rival.length).evaluate({ async: false })
story.rival = "Un rival : " + this.adventureData.rival[rollE.result - 1]
}
let rollDieu = new Roll("1d6").evaluate({ async: false })
if (rollDieu.result == 6) {
rollDieu = new Roll("1d" + this.adventureData.dieu.length).evaluate({ async: false })
story.dieu = "Un Dieu est impliqué : " + this.adventureData.dieu[rollDieu.result - 1]
}
let rollComp = new Roll("1d6").evaluate({ async: false })
if (rollComp.result >= 5) {
rollComp = new Roll("1d" + this.adventureData.complique1.length).evaluate({ async: false })
story.complication = "Une complication : " + this.adventureData.complique1[rollComp.result - 1]
}
let rollObs = new Roll("1d6").evaluate({ async: false })
if (rollObs.result >= 5) {
rollObs = new Roll("1d" + this.adventureData.obstacle.length).evaluate({ async: false })
story.obstacle = "Un obstacle : " + this.adventureData.obstacle[rollObs.result - 1]
}
let rollRet = new Roll("1d6").evaluate({ async: false })
if (rollRet.result == 6) {
rollRet = new Roll("1d" + this.adventureData.retournement.length).evaluate({ async: false })
story.retournement = "Un retournement : " + this.adventureData.retournement[rollRet.result - 1]
}
let rollRec = new Roll("1d" + this.adventureData.recompense.length).evaluate({ async: false })
story.recompense = "Pour sa peine, Krongar reçoit " + this.adventureData.recompense[rollRec.result - 1]
ChatMessage.create({
alias: this.name,
whisper: BoLUtility.getUsers(user => user.isGM),
content: await renderTemplate('systems/bol/templates/chat/chat-adventure-result.hbs',
{ name: "Aventure !", img: "icons/commodities/gems/gem-cluster-red.webp", story : story})
})
}
}

View File

@ -40,14 +40,14 @@ export class BoLCalendar extends Application {
constructor() {
super();
// position
this.calendarPos = duplicate(game.settings.get("bol", "calendar-pos"));
this.calendarPos = foundry.utils.duplicate(game.settings.get("bol", "calendar-pos"));
if (this.calendarPos == undefined || this.calendarPos.top == undefined) {
this.calendrierPos = BoLCalendar.createCalendarPos()
game.settings.set("bol", "calendar-pos", this.calendarPos)
}
// Calendar
this.calendar = duplicate(game.settings.get("bol", "calendar") ?? BoLCalendar.getCalendar(0));
this.calendar = foundry.utils.duplicate(game.settings.get("bol", "calendar") ?? BoLCalendar.getCalendar(0));
this.calendar.year = this.calendar.year || 900
this.calendar.month = 0
@ -58,7 +58,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
template: "systems/bol/templates/calendar-template.html",
popOut: false,
resizable: false
@ -95,11 +95,11 @@ export class BoLCalendar extends Application {
this.calendar.hour -= 24
await this.incrementDay()
}
game.settings.set("bol", "calendar", duplicate(this.calendar));
game.settings.set("bol", "calendar", foundry.utils.duplicate(this.calendar));
// Notification aux joueurs // TODO: replace with Hook on game settings update
game.socket.emit(SYSTEM_SOCKET_ID, {
msg: "msg_sync_time",
data: duplicate(this.calendrier)
data: foundry.utils.duplicate(this.calendrier)
});
}
@ -112,7 +112,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */
syncPlayerTime(calendrier) {
this.calendrier = duplicate(calendrier); // Local copy update
this.calendrier = foundry.utils.duplicate(calendrier); // Local copy update
this.updateDisplay();
}
@ -123,7 +123,7 @@ export class BoLCalendar extends Application {
}
this.calendrier.heureRdD = indexHeure;
this.calendrier.minutesRelative = 0;
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier));
game.settings.set(SYSTEM_RDD, "calendrier", foundry.utils.duplicate(this.calendrier));
}
/* -------------------------------------------- */
@ -312,13 +312,13 @@ export class BoLCalendar extends Application {
this.calendrier.jour = Number(calendrierData.jourMois) - 1;
this.calendrier.moisRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.moisKey);
this.calendrier.heureRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.heureKey);
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier));
game.settings.set(SYSTEM_RDD, "calendrier", foundry.utils.duplicate(this.calendrier));
await this.rebuildListeNombreAstral();
game.socket.emit(SYSTEM_SOCKET_ID, {
msg: "msg_sync_time",
data: duplicate(this.calendrier)
data: foundry.utils.duplicate(this.calendrier)
});
this.updateDisplay();
@ -326,7 +326,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */
async showCalendarEditor() {
let calendrierData = duplicate(this.fillCalendrierData());
let calendrierData = foundry.utils.duplicate(this.fillCalendrierData());
if (this.editeur == undefined) {
calendrierData.jourMoisOptions = RdDCalendrier.buildJoursMois();
calendrierData.heuresOptions = [0, 1];
@ -344,7 +344,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */
async showAstrologieEditor() {
let calendrierData = duplicate(this.fillCalendrierData());
let calendrierData = foundry.utils.duplicate(this.fillCalendrierData());
let astrologieArray = [];
this.listeNombreAstral = this.listeNombreAstral || [];
for (let astralData of this.listeNombreAstral) {
@ -353,7 +353,7 @@ export class BoLCalendar extends Application {
let actor = game.actors.get(vf.actorId);
vf.actorName = (actor) ? actor.name : "Inconnu";
}
astrologieArray.push(duplicate(astralData));
astrologieArray.push(foundry.utils.duplicate(astralData));
}
let heuresParActeur = {};
for (let actor of game.actors) {
@ -448,7 +448,7 @@ export class BoLCalendar extends Application {
game.system.rdd.calendrier.calendrierPos.top = yPos;
game.system.rdd.calendrier.calendrierPos.left = xPos;
if (game.user.isGM) {
game.settings.set(SYSTEM_RDD, "calendrier-pos", duplicate(game.system.rdd.calendrier.calendrierPos));
game.settings.set(SYSTEM_RDD, "calendrier-pos", foundry.utils.duplicate(game.system.rdd.calendrier.calendrierPos));
}
}
}
@ -456,7 +456,7 @@ export class BoLCalendar extends Application {
game.system.rdd.calendrier.calendrierPos.top = 200;
game.system.rdd.calendrier.calendrierPos.left = 200;
if (game.user.isGM) {
game.settings.set(SYSTEM_RDD, "calendrier-pos", duplicate(game.system.rdd.calendrier.calendrierPos));
game.settings.set(SYSTEM_RDD, "calendrier-pos", foundry.utils.duplicate(game.system.rdd.calendrier.calendrierPos));
}
this.setPos(game.system.rdd.calendrier.calendrierPos);
}

View File

@ -1,162 +0,0 @@
/* -------------------------------------------- */
import { BoLUtility } from "./bol-utility.js";
import { BoLRoll } from "../controllers/bol-rolls.js";
/* -------------------------------------------- */
export class BoLCharacterSummary extends Application {
/* -------------------------------------------- */
static displayPCSummary(){
game.bol.charSummary.render(true)
}
/* -------------------------------------------- */
updatePCSummary(){
if ( this.rendered) {
this.render(true)
}
}
/* -------------------------------------------- */
static createSummaryPos() {
return { top: 200, left: 200 };
}
/* -------------------------------------------- */
static ready() {
if ( !game.user.isGM ) { // Uniquement si GM
return
}
let charSummary = new BoLCharacterSummary()
game.bol.charSummary = charSummary
}
/* -------------------------------------------- */
constructor() {
super();
//game.settings.set("world", "character-summary-data", {npcList: [], x:0, y:0})
this.settings = game.settings.get("world", "character-summary-data")
}
/* -------------------------------------------- */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
template: "systems/bol/templates/apps/character-summary-template.html",
popOut: true,
resizable: true,
dragDrop: [{ dragSelector: ".items-list .item", dropSelector: null }],
classes: ["bol", "dialog"], width: 820, height: 'fit-content'
})
}
/* -------------------------------------------- */
getData() {
let formData = super.getData();
formData.pcs = game.actors.filter( ac => ac.type == "character" && ac.hasPlayerOwner )
formData.npcs = []
let newList = []
let toUpdate = false
for( let actorId of this.settings.npcList ) {
let actor = game.actors.get(actorId)
if (actor) {
formData.npcs.push( actor )
newList.push(actorId)
} else {
toUpdate = true
}
}
formData.config = game.bol.config
formData.horoscopeGroupList = game.settings.get("bol", "horoscope-group")
if ( toUpdate ) {
this.settings.npcList = newList
//console.log("Going to update ...", this.settings)
game.settings.set("world", "character-summary-data", this.settings)
}
return formData
}
/* -------------------------------------------- */
updateNPC() {
game.settings.set("world", "character-summary-data", game.bol.charSummary.settings)
game.bol.charSummary.close()
setTimeout( function() { game.bol.charSummary.render(true)}, 500)
}
/* -------------------------------------------- */
async _onDrop(event) {
//console.log("Dragged data are : ", dragData)
let data = event.dataTransfer.getData('text/plain')
let dataItem = JSON.parse( data)
let actor = fromUuidSync(dataItem.uuid)
if (actor) {
game.bol.charSummary.settings.npcList.push( actor.id )
game.bol.charSummary.updateNPC()
} else {
ui.notifications.warn( game.i18n.localize("BOL.ui.noactorfound") )
}
}
/* -------------------------------------------- */
/** @override */
async activateListeners(html) {
super.activateListeners(html);
html.find('.actor-open').click((event) => {
const li = $(event.currentTarget).parents(".item")
const actor = game.actors.get(li.data("actor-id"))
actor.sheet.render(true)
})
html.find('.summary-roll').click((event) => {
const li = $(event.currentTarget).parents(".item")
const actor = game.actors.get(li.data("actor-id"))
let type = $(event.currentTarget).data("type")
let key = $(event.currentTarget).data("key")
if ( type == "attribute") {
BoLRoll.attributeCheck(actor, key, event)
} else if (type == "aptitude") {
BoLRoll.aptitudeCheck(actor, key, event)
}
})
html.find('.actor-delete').click(event => {
const li = $(event.currentTarget).parents(".item");
let actorId = li.data("actor-id")
let newList = game.bol.charSummary.settings.npcList.filter(id => id != actorId)
game.bol.charSummary.settings.npcList = newList
game.bol.charSummary.updateNPC()
})
html.find('#horoscope-group-edit-available').change(event => {
const horoId = $(event.currentTarget).data("horo-id")
let newValue = event.currentTarget.value
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
if ( horoId && horoscopes[horoId]) {
horoscopes[horoId].availableDice = Number(newValue)
if (newValue <= 0) {
horoscopes[horoId] = undefined
}
game.settings.set("bol", "horoscope-group", horoscopes)
setTimeout(function() { BoLUtility.updateSheets()}, 800 )
}
})
html.find('#horoscope-group-edit-max').change(event => {
const horoId = $(event.currentTarget).data("horo-id")
let newValue = event.currentTarget.value
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
if ( horoId && horoscopes[horoId]) {
horoscopes[horoId].maxDice = Number(newValue)
if (newValue <= 0) {
horoscopes[horoId] = undefined
}
game.settings.set("bol", "horoscope-group", horoscopes)
setTimeout(function() { BoLUtility.updateSheets()}, 800 )
}
})
}
}

View File

@ -21,12 +21,12 @@ export class BoLCombatManager extends Combat {
// Structure input data
ids = typeof ids === "string" ? [ids] : ids;
// Get initiative malus from tough/adversary
let malusInit = 0
let malusInit = 0
for (let combatant of this.combatants) {
malusInit = Math.max(malusInit, combatant.actor.getInitiativeMalus())
}
// calculate initiative
for (let cId = 0; cId < ids.length; cId++) {
for (let cId = 0; cId < ids.length; cId++) {
const combatant = this.combatants.get(ids[cId])
let fvttInit = combatant.actor.getInitiativeRank(false, true, { combatId: this.id, combatantId: combatant.id, malusInit })
fvttInit += (cId / 100)
@ -39,17 +39,25 @@ export class BoLCombatManager extends Combat {
if (game.user.isGM) {
let combatants = this.combatants.contents
let autoRemoveDead = game.settings.get("bol", "auto-remove-dead") // Optionnal auto-removal of dead char.
let updates = []
for (let c of combatants) {
//let actor = game.actors.get(c.actorId)
if (c.actor.type == "horde") {
let actor = game.actors.get(c.actorId)
updates.push({ _id: c.id, name: actor.name + " (" + actor.system.hordesize + ")" })
}
c.actor.clearRoundModifiers()
let toRemove = []
if (autoRemoveDead && c.actor.type == "encounter" && (c.actor.system.chartype == "tough" || c.actor.system.chartype == "creature" || c.actor.system.chartype == "base") && c.actor.system.resources.hp.value <= 0) {
if (autoRemoveDead && c.actor.type == "encounter" &&
(c.actor.system.chartype == "tough" || c.actor.system.chartype == "creature" || c.actor.system.chartype == "base") && c.actor.system.resources.hp.value <= 0) {
toRemove.push(c.id || c._id)
}
//console.log("REM", autoRemoveDead, toRemove, c.actor)
if (toRemove.length > 0) {
this.deleteEmbeddedDocuments('Combatant', toRemove)
}
if (updates.length > 0) {
this.updateEmbeddedDocuments('Combatant', updates)
}
}
}
super.nextRound()
@ -58,11 +66,19 @@ export class BoLCombatManager extends Combat {
/************************************************************************************/
startCombat() {
if (game.user.isGM) {
let updates = []
let combatants = this.combatants.contents
for (let c of combatants) {
let actor = game.actors.get(c.actorId)
actor.storeVitaliteCombat()
if (c.actor.type == "horde") {
let actor = game.actors.get(c.actorId)
updates.push({ _id: c.id, name: actor.name + " (" + actor.system.hordesize + ")" })
}
}
if (updates.length > 0) {
this.updateEmbeddedDocuments('Combatant', updates)
}
}
return super.startCombat()
}

View File

@ -1,6 +1,3 @@
/* -------------------------------------------- */
import { BoLAdventureGenerator } from "./bol-adventure-generator.js"
import { BoLCharacterSummary } from "./bol-character-summary.js"
/* -------------------------------------------- */
export class BoLCommands {
@ -8,8 +5,6 @@ export class BoLCommands {
static init() {
if (!game.bol.commands) {
const bolCommands = new BoLCommands()
bolCommands.registerCommand({ path: ["/adventure"], func: (content, msg, params) => BoLAdventureGenerator.createAdventure(), descr: "Nouvelle idée d'aventure!" });
bolCommands.registerCommand({ path: ["/pcview"], func: (content, msg, params) => BoLCharacterSummary.displayPCSummary(), descr: "Affiche la liste des PJs!" });
game.bol.commands = bolCommands
}
@ -88,7 +83,7 @@ export class BoLCommands {
console.log("===> Processing command")
let command = commandsTable[name];
path = path + name + " ";
if (command && command.subTable) {
if (command?.subTable) {
if (params[0]) {
return this._processCommand(command.subTable, params[0], params.slice(1), content, msg, path)
}
@ -97,9 +92,9 @@ export class BoLCommands {
return true;
}
}
if (command && command.func) {
if (command?.func) {
const result = command.func(content, msg, params);
if (result == false) {
if (!result) {
BoLCommands._chatAnswer(msg, command.descr);
}
return true;

View File

@ -136,6 +136,10 @@ export class BoLUtility {
this.successValue = Number(game.settings.get("bol", "dice-success-value"))
this.criticalSuccessValue = Number(game.settings.get("bol", "dice-critical-success-value"))
this.criticalFailureValue = Number(game.settings.get("bol", "dice-critical-failure-value"))
// Update the effect modifiers
game.bol.config.effectIdentifiers = foundry.utils.mergeObject(game.bol.config.effectIdentifiers, game.bol.config.attackAttributes)
game.bol.config.effectIdentifiers = foundry.utils.mergeObject(game.bol.config.effectIdentifiers, game.bol.config.aptitudes)
}
/* -------------------------------------------- */
@ -196,7 +200,7 @@ export class BoLUtility {
//$("#logo").attr("src", this.getLogoTopLeft() )
$("#logo").css("content", `url(${this.getLogoTopLeft()})`)
CONFIG.statusEffects = duplicate(game.bol.config.statusEffects)
CONFIG.statusEffects = foundry.utils.duplicate(game.bol.config.statusEffects)
}
/* -------------------------------------------- */
@ -234,7 +238,7 @@ export class BoLUtility {
renderTemplate('systems/bol/templates/item/post-item.hbs', chatData).then(html => {
let chatOptions = BoLUtility.chatDataSetup(html);
ChatMessage.create(chatOptions, "selfroll")
ChatMessage.create(chatOptions)
});
}
/* -------------------------------------------- */
@ -311,7 +315,7 @@ export class BoLUtility {
/* -------------------------------------------- */
static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions);
let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blind message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM);
@ -323,7 +327,7 @@ export class BoLUtility {
if (rollData.targetId) {
// Broadcast to GM or process it directly in case of GM defense
if (!game.user.isGM) {
game.socket.emit("system.bol", { name: "msg_attack_success", data: duplicate(rollData) })
game.socket.emit("system.bol", { name: "msg_attack_success", data: foundry.utils.duplicate(rollData) })
} else {
BoLUtility.processAttackSuccess(rollData)
}
@ -337,7 +341,7 @@ export class BoLUtility {
// If the user is the message author or the actor owner, proceed
const actor = game.actors.get(data.message.speaker.actor)
//console.log("FOUND 1!!! ", actor)
if (actor && actor.isOwner) return
if (actor?.isOwner) return
else if (game.user.isGM || data.author.id === game.user.id) return
const divButtons = chatCard.find('.actions-section')
@ -354,7 +358,7 @@ export class BoLUtility {
/* -------------------------------------------- */
static requestInitRoll(actorId, combatData) {
let actor = game.actors.get(actorId)
if (actor && actor.isOwner) {
if (actor?.isOwner) {
ui.notifications.info(game.i18n.localize("BOL.ui.warninitiative"))
BoLRoll.aptitudeCheck(actor, "init", undefined, combatData)
}
@ -447,7 +451,7 @@ export class BoLUtility {
}
/* -------------------------------------------- */
static async processDamageHandling(attackId, defenseMode, weaponId = -1, msgId) {
static async processDamageHandling(attackId, defenseMode, weaponId, msgId) {
if (!game.user.isGM) {
return
}
@ -457,7 +461,7 @@ export class BoLUtility {
console.log("Damage Handling", attackId, defenseMode, weaponId)
// Only GM process this
if (rollData && rollData.defenderId) {
if (rollData?.defenderId) {
if (rollData.defenseDone || defenseMode == 'damage-not-applied') {
return
} // ?? Why ???
@ -469,11 +473,15 @@ export class BoLUtility {
if (defenseMode == 'damage-with-armor') {
let armorFormula = defender.getArmorFormula()
rollData.rollArmor = new Roll(armorFormula)
rollData.rollArmor.roll({ async: false })
await rollData.rollArmor.roll()
let msg = await rollData.rollArmor.toMessage({ flavor: "BOL.chat.armorRoll : " + armorFormula });
if ( game.dice3d) { // wait animation end when DsN is there
await game.dice3d.waitFor3DAnimationByMessageID(msg.id);
}
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
rollData.finalDamage = rollData.damageTotal - rollData.armorProtect
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
defender.sufferDamage(rollData.finalDamage)
await defender.sufferDamage(rollData.finalDamage)
console.log("Armor roll -> result ", rollData)
}
if (defenseMode == 'damage-without-armor') {
@ -483,19 +491,19 @@ export class BoLUtility {
if (defenseMode == 'hero-reduce-damage') {
let armorFormula = defender.getArmorFormula()
rollData.rollArmor = new Roll(armorFormula)
rollData.rollArmor.roll({ async: false })
await rollData.rollArmor.roll()
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
rollData.rollHero = new Roll("1d6")
rollData.rollHero.roll({ async: false })
await rollData.rollHero.roll()
rollData.finalDamage = rollData.damageTotal - rollData.rollHero.total - rollData.armorProtect
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
defender.sufferDamage(rollData.finalDamage)
await defender.sufferDamage(rollData.finalDamage)
defender.subHeroPoints(1)
}
if (defenseMode == 'hero-in-extremis') {
rollData.finalDamage = 0;
rollData.weaponHero = defender.weapons.find(item => item._id == weaponId);
defender.deleteEmbeddedDocuments("Item", [weaponId]);
await defender.deleteEmbeddedDocuments("Item", [weaponId]);
}
let defenderUser
@ -668,7 +676,6 @@ export class BoLUtility {
let res = myReg.exec(damageString)
let nbDice = parseInt(res[1])
let postForm = 'kh' + nbDice
let modIndex = 3
// Upgrade damage if needed
if (upgradeDamage && (!res[3] || res[3] == "")) {
res[3] = "B" // Upgrade to bonus
@ -680,22 +687,18 @@ export class BoLUtility {
if (res[3] == 'M') {
postForm = 'kl' + nbDice
nbDice++
modIndex = 4
}
if (res[3] == 'MM') {
postForm = 'kl' + nbDice
nbDice += 2
modIndex = 4
}
if (res[3] == 'B') {
postForm = 'kh' + nbDice
nbDice++
modIndex = 4
}
if (res[3] == 'BB') {
postForm = 'kh' + nbDice
nbDice += 2
modIndex = 4
}
}
formula = "(" + nbDice + "d" + res[2] + reroll + postForm + "+" + modifier + ") *" + multiplier
@ -742,8 +745,8 @@ export class BoLUtility {
/* -------------------------------------------- */
static removeGroupHoroscope(rollData) {
let horo = rollData.horoscopeGroupList[rollData.selectedGroupHoroscopeIndex]
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
let toChange = duplicate(horoscopes[horo.id])
let horoscopes = foundry.utils.duplicate(game.settings.get("bol", "horoscope-group"))
let toChange = foundry.utils.duplicate(horoscopes[horo.id])
toChange.availableDice -= horo.nbDice // Remove the dice
if (toChange.availableDice <= 0) {
horoscopes[horo.id] = undefined

View File

@ -10,14 +10,15 @@ System.debugMode = true;
export const BOL = {};
BOL.damageValues = {
"1": "1",
"2": "2",
"3": "3",
"d3" : "d3",
"d6M" : "d6M (Malus)",
"d6" : "d6",
"d6B" : "d6B (Bonus)",
"d6BB" : "d6B + dé bonus",
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"d3": "d3",
"d6M": "d6M (Malus)",
"d6": "d6",
"d6B": "d6B (Bonus)",
"d6BB": "d6B + dé bonus",
}
BOL.damageMultiplier = {
@ -31,6 +32,15 @@ BOL.damageMultiplier = {
"8": "x8"
}
BOL.listTypes = {
"attribute": "BOL.ui.attribute",
"aptitude": "BOL.ui.aptitude",
"career": "BOL.ui.career",
"boon": "BOL.ui.boon",
"flaw": "BOL.ui.flaw",
"other": "BOL.ui.other"
}
BOL.spellType = {
"0": "BOL.spellItem.charm",
"1": "BOL.spellItem.circle1",
@ -46,125 +56,125 @@ BOL.alchemyType = {
}
BOL.equipmentSlots = {
"none" : "BOL.equipmentSlots.none",
"head" : "BOL.equipmentSlots.head",
"neck" : "BOL.equipmentSlots.neck",
"shoulders" : "BOL.equipmentSlots.shoulders",
"body" : "BOL.equipmentSlots.body",
"rhand" : "BOL.equipmentSlots.rhand",
"lhand" : "BOL.equipmentSlots.lhand",
"2hands" : "BOL.equipmentSlots.2hands",
"rarm" : "BOL.equipmentSlots.rarm",
"larm" : "BOL.equipmentSlots.larm",
"chest" : "BOL.equipmentSlots.chest",
"belt" : "BOL.equipmentSlots.belt",
"legs" : "BOL.equipmentSlots.legs",
"feet" : "BOL.equipmentSlots.feet",
"finder" : "BOL.equipmentSlots.finder",
"ear" : "BOL.equipmentSlots.ear"
"none": "BOL.equipmentSlots.none",
"head": "BOL.equipmentSlots.head",
"neck": "BOL.equipmentSlots.neck",
"shoulders": "BOL.equipmentSlots.shoulders",
"body": "BOL.equipmentSlots.body",
"rhand": "BOL.equipmentSlots.rhand",
"lhand": "BOL.equipmentSlots.lhand",
"2hands": "BOL.equipmentSlots.2hands",
"rarm": "BOL.equipmentSlots.rarm",
"larm": "BOL.equipmentSlots.larm",
"chest": "BOL.equipmentSlots.chest",
"belt": "BOL.equipmentSlots.belt",
"legs": "BOL.equipmentSlots.legs",
"feet": "BOL.equipmentSlots.feet",
"finder": "BOL.equipmentSlots.finder",
"ear": "BOL.equipmentSlots.ear"
}
BOL.armorQualities = {
"none" : "BOL.armorQuality.none",
"light" : "BOL.armorQuality.light",
"lightQ" : "BOL.armorQuality.lightQ",
"lightSup" : "BOL.armorQuality.lightSup",
"lightLeg" : "BOL.armorQuality.lightLeg",
"medium" : "BOL.armorQuality.medium",
"mediumQ" : "BOL.armorQuality.mediumQ",
"mediumSup" : "BOL.armorQuality.mediumSup",
"mediumLeg" : "BOL.armorQuality.mediumLeg",
"heavy" : "BOL.armorQuality.heavy",
"heavyQ" : "BOL.armorQuality.heavyQ",
"heavySup" : "BOL.armorQuality.heavySup",
"heavyLeg" : "BOL.armorQuality.heavyLeg"
"none": "BOL.armorQuality.none",
"light": "BOL.armorQuality.light",
"lightQ": "BOL.armorQuality.lightQ",
"lightSup": "BOL.armorQuality.lightSup",
"lightLeg": "BOL.armorQuality.lightLeg",
"medium": "BOL.armorQuality.medium",
"mediumQ": "BOL.armorQuality.mediumQ",
"mediumSup": "BOL.armorQuality.mediumSup",
"mediumLeg": "BOL.armorQuality.mediumLeg",
"heavy": "BOL.armorQuality.heavy",
"heavyQ": "BOL.armorQuality.heavyQ",
"heavySup": "BOL.armorQuality.heavySup",
"heavyLeg": "BOL.armorQuality.heavyLeg"
}
BOL.soakFormulas = {
"none" : "0",
"light" : "1d6-3",
"lightQ" : "1d6r1-3",
"lightSup" : "1d6-2",
"lightLeg" : "2d6kh1-2",
"medium" : "1d6-2",
"mediumQ" : "1d6r1-2",
"mediumSup" : "1d6-1",
"mediumLeg" : "2d6kh1-1",
"heavy" : "1d6-1",
"heavyQ" : "1d6r1-1",
"heavySup" : "1d6",
"heavyLeg" : "2d6kh1"
"none": "0",
"light": "1d6-3",
"lightQ": "1d6r1-3",
"lightSup": "1d6-2",
"lightLeg": "2d6kh1-2",
"medium": "1d6-2",
"mediumQ": "1d6r1-2",
"mediumSup": "1d6-1",
"mediumLeg": "2d6kh1-1",
"heavy": "1d6-1",
"heavyQ": "1d6r1-1",
"heavySup": "1d6",
"heavyLeg": "2d6kh1"
}
BOL.attackAttributes = {
"vigor" : "BOL.attributes.vigor",
"agility" : "BOL.attributes.agility",
"mind" : "BOL.attributes.mind",
"appeal" : "BOL.attributes.appeal"
"vigor": "BOL.attributes.vigor",
"agility": "BOL.attributes.agility",
"mind": "BOL.attributes.mind",
"appeal": "BOL.attributes.appeal"
}
BOL.attackAptitudes = {
"melee" : "BOL.aptitudes.melee",
"ranged" : "BOL.aptitudes.ranged"
"melee": "BOL.aptitudes.melee",
"ranged": "BOL.aptitudes.ranged"
}
BOL.aptitudes = {
"melee" : "BOL.aptitudes.melee",
"ranged" : "BOL.aptitudes.ranged",
"init" : "BOL.aptitudes.init",
"def" : "BOL.aptitudes.def"
"melee": "BOL.aptitudes.melee",
"ranged": "BOL.aptitudes.ranged",
"init": "BOL.aptitudes.init",
"def": "BOL.aptitudes.def"
}
BOL.resources = {
"hp" : "BOL.resources.hp",
"hero" : "BOL.resources.hero",
"faith" : "BOL.resources.faith",
"power" : "BOL.resources.power",
"alchemypoints" : "BOL.resources.alchemypoints"
"hp": "BOL.resources.hp",
"hero": "BOL.resources.hero",
"faith": "BOL.resources.faith",
"power": "BOL.resources.power",
"alchemypoints": "BOL.resources.alchemypoints"
}
BOL.weaponSizes = {
"unarmed" : "BOL.weaponSize.unarmed",
"improvised" : "BOL.weaponSize.improvised",
"light" : "BOL.weaponSize.light",
"medium" : "BOL.weaponSize.medium",
"heavy" : "BOL.weaponSize.heavy"
"unarmed": "BOL.weaponSize.unarmed",
"improvised": "BOL.weaponSize.improvised",
"light": "BOL.weaponSize.light",
"medium": "BOL.weaponSize.medium",
"heavy": "BOL.weaponSize.heavy"
}
BOL.damageAttributes = {
"zero" : "0",
"vigor" : "BOL.attributes.vigor",
"half-vigor" : "BOL.attributes.halfvigor"
"zero": "0",
"vigor": "BOL.attributes.vigor",
"half-vigor": "BOL.attributes.halfvigor"
}
BOL.itemCategories = {
"equipment" : "BOL.itemCategory.equipment",
"capacity" : "BOL.itemCategory.capacity",
"spell" : "BOL.itemCategory.spell",
"alchemy" : "BOL.itemCategory.alchemy",
"vehicle" : "BOL.itemCategory.vehicle",
"vehicleweapon": "BOL.itemCategory.vehicleweapon",
"other" : "BOL.itemCategory.other"
"equipment": "BOL.itemCategory.equipment",
"capacity": "BOL.itemCategory.capacity",
"spell": "BOL.itemCategory.spell",
"alchemy": "BOL.itemCategory.alchemy",
"vehicle": "BOL.itemCategory.vehicle",
"vehicleweapon": "BOL.itemCategory.vehicleweapon",
"other": "BOL.itemCategory.other"
}
BOL.itemSubtypes = {
"armor" : "BOL.equipmentCategory.armor",
"weapon" : "BOL.equipmentCategory.weapon",
"shield" : "BOL.equipmentCategory.shield",
"helm" : "BOL.equipmentCategory.helm",
"jewel" : "BOL.equipmentCategory.jewel",
"scroll" : "BOL.equipmentCategory.scroll",
"container" : "BOL.equipmentCategory.container",
"ammunition" : "BOL.equipmentCategory.ammunition",
"currency" : "BOL.equipmentCategory.currency",
"other" : "BOL.equipmentCategory.other"
"armor": "BOL.equipmentCategory.armor",
"weapon": "BOL.equipmentCategory.weapon",
"shield": "BOL.equipmentCategory.shield",
"helm": "BOL.equipmentCategory.helm",
"jewel": "BOL.equipmentCategory.jewel",
"scroll": "BOL.equipmentCategory.scroll",
"container": "BOL.equipmentCategory.container",
"ammunition": "BOL.equipmentCategory.ammunition",
"currency": "BOL.equipmentCategory.currency",
"other": "BOL.equipmentCategory.other"
}
BOL.vehicleSubtypes = {
"mount" : "BOL.vehicleCategory.mount",
"flying" : "BOL.vehicleCategory.flying",
"boat" : "BOL.vehicleCategory.boat",
"other" : "BOL.vehicleCategory.other"
"mount": "BOL.vehicleCategory.mount",
"flying": "BOL.vehicleCategory.flying",
"boat": "BOL.vehicleCategory.boat",
"other": "BOL.vehicleCategory.other"
}
// BOL.equipmentCategories = {
@ -180,97 +190,153 @@ BOL.vehicleSubtypes = {
// "other" : "BOL.equipmentCategory.other"
// }
BOL.rangeModifiers = {
"1": "BOL.dialog.pointblank",
"0": "BOL.dialog.close",
"-1": "BOL.dialog.medium",
"-2": "BOL.dialog.long",
"-4": "BOL.dialog.distant",
"-6": "BOL.dialog.extreme",
"-8": "BOL.dialog.utmost"
}
BOL.difficultyModifiers = {
"4": "BOL.dialog.soeasy",
"2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough",
"-4": "BOL.dialog.demanding",
"-6": "BOL.dialog.formidable",
"-8": "BOL.dialog.heroic",
"-10": "BOL.dialog.mythic",
"-12": "BOL.dialog.divine"
}
BOL.alchemyModifiers = {
"2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough",
"-4": "BOL.dialog.demanding",
"-6": "BOL.dialog.formidable",
"-8": "BOL.dialog.heroic",
}
BOL.spellModifiers = BOL.alchemyModifiers
BOL.spellMandatoryConditions = {
"1": "1",
"2": "2",
"3": "3",
"4": "4"
}
BOL.spellOptionnalConditions = {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8"
}
BOL.effectIdentifiers = {
"always": "BOL.ui.always",
}
BOL.protectionCategories = {
"armor" : "BOL.protectionCategory.armor",
"shield" : "BOL.protectionCategory.shield",
"helm" : "BOL.protectionCategory.helm",
"other" : "BOL.protectionCategory.other"
"armor": "BOL.protectionCategory.armor",
"shield": "BOL.protectionCategory.shield",
"helm": "BOL.protectionCategory.helm",
"other": "BOL.protectionCategory.other"
}
BOL.weaponCategories = {
"melee" : "BOL.weaponCategory.melee",
"ranged" : "BOL.weaponCategory.ranged",
"other" : "BOL.weaponCategory.other"
"melee": "BOL.weaponCategory.melee",
"ranged": "BOL.weaponCategory.ranged",
"other": "BOL.weaponCategory.other"
}
BOL.itemProperties1 = {
"equipable" : "BOL.itemProperty.equipable",
"protection" : "BOL.itemProperty.protection",
"magical" : "BOL.itemProperty.magical",
"worn" : "BOL.itemProperty.worn",
"equipable": "BOL.itemProperty.equipable",
"protection": "BOL.itemProperty.protection",
"magical": "BOL.itemProperty.magical",
"worn": "BOL.itemProperty.worn",
}
BOL.itemProperties2 = {
"equipable" : "BOL.itemProperty.equipable",
"protection" : "BOL.itemProperty.protection",
"blocking" : "BOL.itemProperty.blocking",
"magical" : "BOL.itemProperty.magical",
"concealable" : "BOL.itemProperty.concealable",
"2H" : "BOL.itemProperty.2H",
"helm" : "BOL.itemProperty.helm",
"improvised" : "BOL.itemProperty.improvised",
"shield" : "BOL.itemProperty.shield",
"melee" : "BOL.itemProperty.melee",
"throwable" : "BOL.itemProperty.throwable",
"ignoreshield" : "BOL.itemProperty.ignoreshield",
"bashing" : "BOL.itemProperty.bashing",
"stackable" : "BOL.itemProperty.stackable",
"ranged" : "BOL.itemProperty.ranged",
"weapon" : "BOL.itemProperty.weapon",
"reloadable" : "BOL.itemProperty.reloadable",
"worn" : "BOL.itemProperty.worn",
"spell" : "BOL.itemProperty.spell",
"armor" : "BOL.itemProperty.armor",
"consumable" : "BOL.itemProperty.consumable",
"bow" : "BOL.itemProperty.bow",
"crossbow" : "BOL.itemProperty.crossbow",
"throwing" : "BOL.itemProperty.throwing",
"activable" : "BOL.itemProperty.activable",
"powder" : "BOL.itemProperty.powder",
"damage" : "BOL.itemProperty.damage",
"difficulty": "BOL.itemProperty.difficulty"
"equipable": "BOL.itemProperty.equipable",
"protection": "BOL.itemProperty.protection",
"blocking": "BOL.itemProperty.blocking",
"magical": "BOL.itemProperty.magical",
"concealable": "BOL.itemProperty.concealable",
"2H": "BOL.itemProperty.2H",
"helm": "BOL.itemProperty.helm",
"improvised": "BOL.itemProperty.improvised",
"shield": "BOL.itemProperty.shield",
"melee": "BOL.itemProperty.melee",
"throwable": "BOL.itemProperty.throwable",
"ignoreshield": "BOL.itemProperty.ignoreshield",
"bashing": "BOL.itemProperty.bashing",
"stackable": "BOL.itemProperty.stackable",
"ranged": "BOL.itemProperty.ranged",
"weapon": "BOL.itemProperty.weapon",
"reloadable": "BOL.itemProperty.reloadable",
"worn": "BOL.itemProperty.worn",
"spell": "BOL.itemProperty.spell",
"armor": "BOL.itemProperty.armor",
"consumable": "BOL.itemProperty.consumable",
"bow": "BOL.itemProperty.bow",
"crossbow": "BOL.itemProperty.crossbow",
"throwing": "BOL.itemProperty.throwing",
"activable": "BOL.itemProperty.activable",
"powder": "BOL.itemProperty.powder",
"damage": "BOL.itemProperty.damage",
"difficulty": "BOL.itemProperty.difficulty"
}
BOL.itemStats = {
"quantity" : "BOL.itemStat.quantity",
"weight" : "BOL.itemStat.weight",
"price" : "BOL.itemStat.price",
"range" : "BOL.itemStat.range",
"damage" : "BOL.itemStat.damage",
"reload" : "BOL.itemStat.reload",
"soak" : "BOL.itemStat.soak",
"blocking" : "BOL.itemStat.blocking",
"modifiers" : "BOL.itemStat.modifiers"
"quantity": "BOL.itemStat.quantity",
"weight": "BOL.itemStat.weight",
"price": "BOL.itemStat.price",
"range": "BOL.itemStat.range",
"damage": "BOL.itemStat.damage",
"reload": "BOL.itemStat.reload",
"soak": "BOL.itemStat.soak",
"blocking": "BOL.itemStat.blocking",
"modifiers": "BOL.itemStat.modifiers"
}
BOL.itemModifiers = {
"init" : "BOL.itemModifiers.init",
"social" : "BOL.itemModifiers.social",
"agility" : "BOL.itemModifiers.agility",
"powercost" : "BOL.itemModifiers.powercost"
"init": "BOL.itemModifiers.init",
"social": "BOL.itemModifiers.social",
"agility": "BOL.itemModifiers.agility",
"powercost": "BOL.itemModifiers.powercost"
}
BOL.itemBlocking = {
"malus" : "BOL.itemBlocking.malus",
"nbAttacksPerRound" : "BOL.itemBlocking.nbAttacksPerRound"
"malus": "BOL.itemBlocking.malus",
"nbAttacksPerRound": "BOL.itemBlocking.nbAttacksPerRound"
}
BOL.itemSoak = {
"formula" : "BOL.itemSoak.formula",
"value" : "BOL.itemSoak.value"
"formula": "BOL.itemSoak.formula",
"value": "BOL.itemSoak.value"
}
BOL.featureSubtypes = {
"origin" : "BOL.featureSubtypes.origin",
"race" : "BOL.featureSubtypes.race",
"career" : "BOL.featureSubtypes.career",
"boon" : "BOL.featureSubtypes.boon",
"flaw" : "BOL.featureSubtypes.flaw",
"language" : "BOL.featureSubtypes.language",
"godsfaith" : "BOL.featureSubtypes.gods",
"fightoption" : "BOL.featureSubtypes.fightOption",
"boleffect": "BOL.featureSubtypes.effect",
"horoscope": "BOL.featureSubtypes.horoscope",
"origin": "BOL.featureSubtypes.origin",
"race": "BOL.featureSubtypes.race",
"career": "BOL.featureSubtypes.career",
"boon": "BOL.featureSubtypes.boon",
"flaw": "BOL.featureSubtypes.flaw",
"language": "BOL.featureSubtypes.language",
"godsfaith": "BOL.featureSubtypes.gods",
"fightoption": "BOL.featureSubtypes.fightOption",
"boleffect": "BOL.featureSubtypes.effect",
"horoscope": "BOL.featureSubtypes.horoscope",
"xplog": "BOL.featureSubtypes.xplog",
}
BOL.fightOptionTypes = {
@ -285,17 +351,17 @@ BOL.fightOptionTypes = {
}
BOL.itemIcons = {
"item": "icons/containers/chest/chest-worn-oak-tan.webp",
"capacity": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
"species": "icons/environment/people/group.webp",
"profile": "icons/sundries/documents/blueprint-axe.webp",
"path": "icons/sundries/books/book-embossed-gold-red.webp"
"item": "icons/containers/chest/chest-worn-oak-tan.webp",
"feature": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
"species": "icons/environment/people/group.webp",
"profile": "icons/sundries/documents/blueprint-axe.webp",
"path": "icons/sundries/books/book-embossed-gold-red.webp"
}
BOL.actorIcons = {
"npc": "icons/environment/people/commoner.webp",
"encounter": "icons/svg/mystery-man-black.svg",
"loot": "icons/containers/bags/sack-simple-leather-brown.webp"
"npc": "icons/environment/people/commoner.webp",
"encounter": "icons/svg/mystery-man-black.svg",
"loot": "icons/containers/bags/sack-simple-leather-brown.webp"
}
BOL.bougetteState = {
@ -314,18 +380,18 @@ BOL.bougetteDice = {
}
BOL.creatureSize = {
"tiny": {order: 1, label: "BOL.size.tiny"},
"verysmall": {order: 2, label: "BOL.size.verysmall"},
"small": {order: 3, label: "BOL.size.small"},
"medium": {order: 4, label: "BOL.size.medium"},
"large": {order: 5, label: "BOL.size.large"},
"verylarge": {order: 6, label: "BOL.size.verylarge"},
"huge": {order: 7, label: "BOL.size.huge"},
"massive": {order: 8, label: "BOL.size.massive"},
"enormous": {order: 9, label: "BOL.size.enormous"},
"gigantic": {order: 10, label: "BOL.size.gigantic"},
"immense": {order: 11, label: "BOL.size.immense"},
"colossal": {order: 12, label: "BOL.size.colossal"}
"tiny": { order: 1, label: "BOL.size.tiny" },
"verysmall": { order: 2, label: "BOL.size.verysmall" },
"small": { order: 3, label: "BOL.size.small" },
"medium": { order: 4, label: "BOL.size.medium" },
"large": { order: 5, label: "BOL.size.large" },
"verylarge": { order: 6, label: "BOL.size.verylarge" },
"huge": { order: 7, label: "BOL.size.huge" },
"massive": { order: 8, label: "BOL.size.massive" },
"enormous": { order: 9, label: "BOL.size.enormous" },
"gigantic": { order: 10, label: "BOL.size.gigantic" },
"immense": { order: 11, label: "BOL.size.immense" },
"colossal": { order: 12, label: "BOL.size.colossal" }
}
BOL.horoscopeAnswer = {
@ -352,110 +418,251 @@ BOL.bolEffectModifier = {
BOL.statusEffects = [
{
"id": "dead",
"label": "EFFECT.StatusDead",
"icon": "icons/svg/skull.svg"
"id": "dead",
"label": "EFFECT.StatusDead",
"icon": "icons/svg/skull.svg"
},
{
"id": "unconscious",
"label": "EFFECT.StatusUnconscious",
"icon": "icons/svg/unconscious.svg"
"id": "unconscious",
"label": "EFFECT.StatusUnconscious",
"icon": "icons/svg/unconscious.svg"
},
{
"id": "sleep",
"label": "EFFECT.StatusAsleep",
"icon": "icons/svg/sleep.svg"
"id": "sleep",
"label": "EFFECT.StatusAsleep",
"icon": "icons/svg/sleep.svg"
},
{
"id": "stun",
"label": "EFFECT.StatusStunned",
"icon": "icons/svg/daze.svg"
"id": "stun",
"label": "EFFECT.StatusStunned",
"icon": "icons/svg/daze.svg"
},
{
"id": "prone",
"label": "EFFECT.StatusProne",
"icon": "icons/svg/falling.svg"
"id": "prone",
"label": "EFFECT.StatusProne",
"icon": "icons/svg/falling.svg"
},
{
"id": "restrain",
"label": "EFFECT.StatusRestrained",
"icon": "icons/svg/net.svg"
"id": "restrain",
"label": "EFFECT.StatusRestrained",
"icon": "icons/svg/net.svg"
},
{
"id": "paralysis",
"label": "EFFECT.StatusParalysis",
"icon": "icons/svg/paralysis.svg"
"id": "paralysis",
"label": "EFFECT.StatusParalysis",
"icon": "icons/svg/paralysis.svg"
},
{
"id": "fly",
"label": "EFFECT.StatusFlying",
"icon": "icons/svg/wing.svg"
"id": "fly",
"label": "EFFECT.StatusFlying",
"icon": "icons/svg/wing.svg"
},
{
"id": "blind",
"label": "EFFECT.StatusBlind",
"icon": "icons/svg/blind.svg"
"id": "blind",
"label": "EFFECT.StatusBlind",
"icon": "icons/svg/blind.svg"
},
{
"id": "deaf",
"label": "EFFECT.StatusDeaf",
"icon": "icons/svg/deaf.svg"
"id": "deaf",
"label": "EFFECT.StatusDeaf",
"icon": "icons/svg/deaf.svg"
},
{
"id": "silence",
"label": "EFFECT.StatusSilenced",
"icon": "icons/svg/silenced.svg"
"id": "silence",
"label": "EFFECT.StatusSilenced",
"icon": "icons/svg/silenced.svg"
},
{
"id": "fear",
"label": "EFFECT.StatusFear",
"icon": "icons/svg/terror.svg"
"id": "fear",
"label": "EFFECT.StatusFear",
"icon": "icons/svg/terror.svg"
},
{
"id": "burning",
"label": "EFFECT.StatusBurning",
"icon": "icons/svg/fire.svg"
"id": "burning",
"label": "EFFECT.StatusBurning",
"icon": "icons/svg/fire.svg"
},
{
"id": "frozen",
"label": "EFFECT.StatusFrozen",
"icon": "icons/svg/frozen.svg"
"id": "frozen",
"label": "EFFECT.StatusFrozen",
"icon": "icons/svg/frozen.svg"
},
{
"id": "shock",
"label": "EFFECT.StatusShocked",
"icon": "icons/svg/lightning.svg"
"id": "shock",
"label": "EFFECT.StatusShocked",
"icon": "icons/svg/lightning.svg"
},
{
"id": "disease",
"label": "EFFECT.StatusDisease",
"icon": "icons/svg/biohazard.svg"
"id": "disease",
"label": "EFFECT.StatusDisease",
"icon": "icons/svg/biohazard.svg"
},
{
"id": "poison",
"label": "EFFECT.StatusPoison",
"icon": "icons/svg/poison.svg"
"id": "poison",
"label": "EFFECT.StatusPoison",
"icon": "icons/svg/poison.svg"
},
{
"id": "curse",
"label": "EFFECT.StatusCursed",
"icon": "icons/svg/sun.svg"
"id": "curse",
"label": "EFFECT.StatusCursed",
"icon": "icons/svg/sun.svg"
},
{
"id": "invisible",
"label": "EFFECT.StatusInvisible",
"icon": "icons/svg/invisible.svg"
"id": "invisible",
"label": "EFFECT.StatusInvisible",
"icon": "icons/svg/invisible.svg"
},
{
"id": "target",
"label": "EFFECT.StatusTarget",
"icon": "icons/svg/target.svg"
"id": "target",
"label": "EFFECT.StatusTarget",
"icon": "icons/svg/target.svg"
},
{
"id": "eye",
"label": "EFFECT.StatusMarked",
"icon": "icons/svg/eye.svg"
"id": "eye",
"label": "EFFECT.StatusMarked",
"icon": "icons/svg/eye.svg"
}
]
BOL.defaultNaturalWeapon = {
"category": "equipment",
"subtype": "weapon",
"description": "",
"properties": {
"ranged": false,
"melee": false,
"spell": false,
"protection": false,
"weapon": true,
"armor": false,
"helm": false,
"shield": false,
"equipable": false,
"consumable": false,
"magical": false,
"2H": false,
"reloadable": false,
"bow": false,
"crossbow": false,
"throwing": false,
"stackable": false,
"natural": true,
"concealable": false,
"ignoreshield": false,
"attackBonusDice": false,
"onlymodifier": true,
"attackAttribute": "vigor",
"attackAptitude": "melee",
"attackModifiers": 1,
"weaponSize": "unarmed",
"damage": "d6B",
"damageAttribute": "",
"damageModifiers": null,
"damageMultiplier": "1",
"damageReroll1": false
},
"quantity": 1,
"weight": 0,
"price": 0,
"worn": false
}
BOL.defaultHordeAttack = {
"category": "equipment",
"subtype": "weapon",
"description": "",
"properties": {
"ranged": false,
"melee": true,
"spell": false,
"protection": false,
"weapon": true,
"armor": false,
"helm": false,
"shield": false,
"equipable": false,
"consumable": false,
"magical": false,
"2H": false,
"reloadable": false,
"bow": false,
"crossbow": false,
"throwing": false,
"stackable": false,
"natural": true,
"concealable": false,
"ignoreshield": false,
"attackBonusDice": false,
"onlymodifier": true,
"attackAttribute": "vigor",
"attackAptitude": "melee",
"attackModifiers": 1,
"weaponSize": "unarmed",
"damage": "d6M",
"damageAttribute": "",
"damageModifiers": null,
"damageMultiplier": "1",
"damageReroll1": false
},
"quantity": 1,
"weight": 0,
"price": 0,
"worn": false
}
BOL.defaultNaturalProtection = {
"category": "equipment",
"subtype": "armor",
"description": "",
"properties": {
"ranged": false,
"melee": false,
"spell": false,
"protection": true,
"weapon": false,
"armor": true,
"helm": false,
"shield": false,
"equipable": true,
"consumable": false,
"magical": false,
"2H": false,
"reloadable": false,
"bow": false,
"crossbow": false,
"throwing": false,
"stackable": false,
"natural": true,
"concealable": false,
"ignoreshield": false,
"attackBonusDice": false,
"onlymodifier": true,
"attackAttribute": "vigor",
"attackAptitude": "melee",
"attackModifiers": 1,
"weaponSize": "unarmed",
"damage": "d6B",
"damageAttribute": "vigor",
"damageModifiers": null,
"damageMultiplier": "1",
"damageReroll1": false,
"modifiers": {
"init": null,
"agility": null,
"powercost": null,
"social": false
},
"armorQuality": "none",
"soak": {
"formula": "",
"value": 1
},
"slot": "none"
},
"quantity": 1,
"weight": 0,
"price": 0,
"worn": true
}
BOL.debug = false;

View File

@ -10,7 +10,7 @@ export const registerHandlebarsHelpers = function () {
Handlebars.registerHelper('isEmpty', function (list) {
if (list) return list.length == 0;
else return 0;
else return false;
});
Handlebars.registerHelper('notEmpty', function (list) {
@ -64,8 +64,8 @@ export const registerHandlebarsHelpers = function () {
})
Handlebars.registerHelper('for', function (from, to, incr, block) {
var accum = '';
for (var i = from; i < to; i += incr)
let accum = '';
for (let i = from; i < to; i += incr)
accum += block.fn(i);
return accum;
})
@ -79,7 +79,7 @@ export const registerHandlebarsHelpers = function () {
Handlebars.registerHelper('countKeys', function (obj) {
return Object.keys(obj).length;
})
Handlebars.registerHelper('isEnabled', function (configKey) {
return game.settings.get("bol", configKey);
})
@ -89,8 +89,8 @@ export const registerHandlebarsHelpers = function () {
// If you need to add Handlebars helpers, here are a few useful examples:
Handlebars.registerHelper('concat', function () {
var outStr = '';
for (var arg in arguments) {
let outStr = '';
for (let arg in arguments) {
if (typeof arguments[arg] != 'object') {
outStr += arguments[arg];
}
@ -108,16 +108,15 @@ export const registerHandlebarsHelpers = function () {
return parseInt(a) - parseInt(b);
})
Handlebars.registerHelper('abbrev2', function (a) {
return a.substring(0,2);
return a.substring(0, 2);
})
Handlebars.registerHelper('abbrev3', function (a) {
return a.substring(0,3);
return a.substring(0, 3);
})
Handlebars.registerHelper('valueAtIndex', function (arr, idx) {
return arr[idx];
})
Handlebars.registerHelper('includesKey', function (items, type, key) {
// console.log(items);
return items.filter(i => i.type === type).map(i => i.system.key).includes(key);
})
Handlebars.registerHelper('includes', function (array, val) {
@ -128,10 +127,7 @@ export const registerHandlebarsHelpers = function () {
})
Handlebars.registerHelper('isOwnerOrGM', function (actor) {
console.log("Testing actor", actor.isOwner, game.userId)
if (actor.isOwner || game.isGM) {
return true
}
return false
return actor.isOwner || game.isGM;
})
Handlebars.registerHelper('upperFirst', function (text) {
if (typeof text !== 'string') return text
@ -141,6 +137,16 @@ export const registerHandlebarsHelpers = function () {
if (typeof text !== 'string') return text
return text.charAt(0).toUpperCase()
})
Handlebars.registerHelper('isCreature', function (key) {
return key == "creature" || key == "daemon";
})
// Handle v12 removal of this helper
Handlebars.registerHelper('select', function (selected, options) {
const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected));
const rgx = new RegExp(' value=[\"\']' + escapedValue + '[\"\']');
const html = options.fn(this);
return html.replace(rgx, "$& selected");
});
}

View File

@ -29,18 +29,6 @@ export default function registerHooks() {
if (data.type == "Item") {
let item = data.data;
console.log(item);
// let command = `let onlyDamage = false;\nlet customLabel = "";\nlet skillDescription = "";\nlet dmgDescription = "";\n\nif (event) {\n if (event.shiftKey) onlyDamage = true;\n}\n\ngame.cof.macros.rollItemMacro("${item._id}", "${item.name}", "${item.type}", 0, 0, 0, onlyDamage, customLabel, skillDescription, dmgDescription);`;
// let macro = game.macros.entities.find(m => (m.name === item.name) && (m.command === command));
// if (!macro) {
// macro = await Macro.create({
// name: item.name,
// type : "script",
// img: item.img,
// command : command
// }, {displaySheet: false})
// }
// game.user.assignHotbarMacro(macro, slot);
}
// Create a macro to open the actor sheet of the actor dropped on the hotbar
else if (data.type == "Actor") {

View File

@ -22,6 +22,7 @@ export const preloadHandlebarsTemplates = async function () {
"systems/bol/templates/actor/parts/tabs/vehicle-stats.hbs",
"systems/bol/templates/actor/parts/tabs/vehicle-description.hbs",
"systems/bol/templates/actor/parts/tabs/vehicle-weapons.hbs",
"systems/bol/templates/actor/parts/tabs/horde-description.hbs",
// ITEMS
"systems/bol/templates/item/parts/item-header.hbs",
"systems/bol/templates/item/parts/properties/feature-properties.hbs",
@ -43,6 +44,7 @@ export const preloadHandlebarsTemplates = async function () {
"systems/bol/templates/item/parts/properties/feature/fightoption-properties.hbs",
"systems/bol/templates/item/parts/properties/item/weapon-vehicle-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/horoscope-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/xplog-properties.hbs",
// DIALOGS
"systems/bol/templates/chat/rolls/attack-damage-card.hbs",

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000124
MANIFEST-000476

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.177839 7f99f3fff6c0 Recovering log #121
2024/01/02-23:25:25.189308 7f99f3fff6c0 Delete type=3 #119
2024/01/02-23:25:25.189419 7f99f3fff6c0 Delete type=0 #121
2024/01/02-23:34:00.361361 7f9772fef6c0 Level-0 table #127: started
2024/01/02-23:34:00.361387 7f9772fef6c0 Level-0 table #127: 0 bytes OK
2024/01/02-23:34:00.367523 7f9772fef6c0 Delete type=0 #125
2024/01/02-23:34:00.389488 7f9772fef6c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.389531 7f9772fef6c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/11/02-18:11:52.801787 7fd4174006c0 Recovering log #474
2024/11/02-18:11:52.812594 7fd4174006c0 Delete type=3 #472
2024/11/02-18:11:52.812664 7fd4174006c0 Delete type=0 #474
2024/11/02-18:28:41.334703 7fd415a006c0 Level-0 table #479: started
2024/11/02-18:28:41.334730 7fd415a006c0 Level-0 table #479: 0 bytes OK
2024/11/02-18:28:41.340776 7fd415a006c0 Delete type=0 #477
2024/11/02-18:28:41.347610 7fd415a006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/11/02-18:28:41.347669 7fd415a006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/12/13-08:52:21.682896 7f61367fc6c0 Recovering log #117
2023/12/13-08:52:21.693810 7f61367fc6c0 Delete type=3 #115
2023/12/13-08:52:21.693981 7f61367fc6c0 Delete type=0 #117
2023/12/13-08:53:48.355543 7f6134ff96c0 Level-0 table #122: started
2023/12/13-08:53:48.359570 7f6134ff96c0 Level-0 table #122: 17814 bytes OK
2023/12/13-08:53:48.366596 7f6134ff96c0 Delete type=0 #120
2023/12/13-08:53:48.384645 7f6134ff96c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.384691 7f6134ff96c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 111 : 1
2023/12/13-08:53:48.384700 7f6134ff96c0 Compacting 1@1 + 1@2 files
2023/12/13-08:53:48.389527 7f6134ff96c0 Generated table #123@1: 24 keys, 26928 bytes
2023/12/13-08:53:48.389558 7f6134ff96c0 Compacted 1@1 + 1@2 files => 26928 bytes
2023/12/13-08:53:48.395755 7f6134ff96c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/12/13-08:53:48.395871 7f6134ff96c0 Delete type=2 #62
2023/12/13-08:53:48.396062 7f6134ff96c0 Delete type=2 #122
2023/12/13-08:53:48.421562 7f6134ff96c0 Manual compaction at level-1 from '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 111 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/11/02-16:12:38.910727 7fd417e006c0 Recovering log #470
2024/11/02-16:12:38.921033 7fd417e006c0 Delete type=3 #468
2024/11/02-16:12:38.921087 7fd417e006c0 Delete type=0 #470
2024/11/02-18:00:40.869808 7fd415a006c0 Level-0 table #475: started
2024/11/02-18:00:40.869830 7fd415a006c0 Level-0 table #475: 0 bytes OK
2024/11/02-18:00:40.875801 7fd415a006c0 Delete type=0 #473
2024/11/02-18:00:40.889720 7fd415a006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/11/02-18:00:40.889754 7fd415a006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/armors/000365.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000030
MANIFEST-000382

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.151493 7f99f37fe6c0 Recovering log #28
2024/01/02-23:25:25.161529 7f99f37fe6c0 Delete type=3 #26
2024/01/02-23:25:25.161581 7f99f37fe6c0 Delete type=0 #28
2024/01/02-23:34:00.375735 7f9772fef6c0 Level-0 table #33: started
2024/01/02-23:34:00.375759 7f9772fef6c0 Level-0 table #33: 0 bytes OK
2024/01/02-23:34:00.381825 7f9772fef6c0 Delete type=0 #31
2024/01/02-23:34:00.389510 7f9772fef6c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.389544 7f9772fef6c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/11/02-18:11:52.775827 7fd417e006c0 Recovering log #380
2024/11/02-18:11:52.785630 7fd417e006c0 Delete type=3 #378
2024/11/02-18:11:52.785785 7fd417e006c0 Delete type=0 #380
2024/11/02-18:28:41.340904 7fd415a006c0 Level-0 table #385: started
2024/11/02-18:28:41.340930 7fd415a006c0 Level-0 table #385: 0 bytes OK
2024/11/02-18:28:41.347249 7fd415a006c0 Delete type=0 #383
2024/11/02-18:28:41.347624 7fd415a006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/11/02-18:28:41.347658 7fd415a006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/12/13-08:52:21.618084 7f61357fa6c0 Recovering log #24
2023/12/13-08:52:21.629228 7f61357fa6c0 Delete type=3 #22
2023/12/13-08:52:21.629353 7f61357fa6c0 Delete type=0 #24
2023/12/13-08:53:48.340876 7f6134ff96c0 Level-0 table #29: started
2023/12/13-08:53:48.340949 7f6134ff96c0 Level-0 table #29: 0 bytes OK
2023/12/13-08:53:48.348214 7f6134ff96c0 Delete type=0 #27
2023/12/13-08:53:48.366756 7f6134ff96c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.384659 7f6134ff96c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/11/02-16:12:38.884173 7fd416a006c0 Recovering log #376
2024/11/02-16:12:38.894444 7fd416a006c0 Delete type=3 #374
2024/11/02-16:12:38.894501 7fd416a006c0 Delete type=0 #376
2024/11/02-18:00:40.875999 7fd415a006c0 Level-0 table #381: started
2024/11/02-18:00:40.876052 7fd415a006c0 Level-0 table #381: 0 bytes OK
2024/11/02-18:00:40.883214 7fd415a006c0 Delete type=0 #379
2024/11/02-18:00:40.889730 7fd415a006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/11/02-18:00:40.889763 7fd415a006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/boons/000294.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000123
MANIFEST-000475

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.045777 7f99f37fe6c0 Recovering log #120
2024/01/02-23:25:25.055383 7f99f37fe6c0 Delete type=3 #118
2024/01/02-23:25:25.055657 7f99f37fe6c0 Delete type=0 #120
2024/01/02-23:34:00.303015 7f9772fef6c0 Level-0 table #126: started
2024/01/02-23:34:00.303046 7f9772fef6c0 Level-0 table #126: 0 bytes OK
2024/01/02-23:34:00.309951 7f9772fef6c0 Delete type=0 #124
2024/01/02-23:34:00.316757 7f9772fef6c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.323992 7f9772fef6c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/11/02-18:11:52.669962 7fd417e006c0 Recovering log #473
2024/11/02-18:11:52.680307 7fd417e006c0 Delete type=3 #471
2024/11/02-18:11:52.680392 7fd417e006c0 Delete type=0 #473
2024/11/02-18:28:41.288914 7fd415a006c0 Level-0 table #478: started
2024/11/02-18:28:41.288941 7fd415a006c0 Level-0 table #478: 0 bytes OK
2024/11/02-18:28:41.294891 7fd415a006c0 Delete type=0 #476
2024/11/02-18:28:41.295081 7fd415a006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/11/02-18:28:41.295111 7fd415a006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/12/13-08:52:21.436244 7f61357fa6c0 Recovering log #116
2023/12/13-08:52:21.447788 7f61357fa6c0 Delete type=3 #114
2023/12/13-08:52:21.447917 7f61357fa6c0 Delete type=0 #116
2023/12/13-08:53:48.177402 7f6134ff96c0 Level-0 table #121: started
2023/12/13-08:53:48.181304 7f6134ff96c0 Level-0 table #121: 17449 bytes OK
2023/12/13-08:53:48.188376 7f6134ff96c0 Delete type=0 #119
2023/12/13-08:53:48.198764 7f6134ff96c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.198814 7f6134ff96c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at '!items!zgspy1QKaxdEetEw' @ 118 : 1
2023/12/13-08:53:48.198824 7f6134ff96c0 Compacting 1@1 + 1@2 files
2023/12/13-08:53:48.203066 7f6134ff96c0 Generated table #122@1: 59 keys, 17449 bytes
2023/12/13-08:53:48.203099 7f6134ff96c0 Compacted 1@1 + 1@2 files => 17449 bytes
2023/12/13-08:53:48.209650 7f6134ff96c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/12/13-08:53:48.209797 7f6134ff96c0 Delete type=2 #5
2023/12/13-08:53:48.209998 7f6134ff96c0 Delete type=2 #121
2023/12/13-08:53:48.242992 7f6134ff96c0 Manual compaction at level-1 from '!items!zgspy1QKaxdEetEw' @ 118 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/11/02-16:12:38.774517 7fd416a006c0 Recovering log #469
2024/11/02-16:12:38.784384 7fd416a006c0 Delete type=3 #467
2024/11/02-16:12:38.784438 7fd416a006c0 Delete type=0 #469
2024/11/02-18:00:40.818721 7fd415a006c0 Level-0 table #474: started
2024/11/02-18:00:40.818772 7fd415a006c0 Level-0 table #474: 0 bytes OK
2024/11/02-18:00:40.824834 7fd415a006c0 Delete type=0 #472
2024/11/02-18:00:40.837595 7fd415a006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/11/02-18:00:40.837641 7fd415a006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/boons/MANIFEST-000475 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000123
MANIFEST-000475

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.058623 7f9a097fa6c0 Recovering log #120
2024/01/02-23:25:25.068614 7f9a097fa6c0 Delete type=3 #118
2024/01/02-23:25:25.068662 7f9a097fa6c0 Delete type=0 #120
2024/01/02-23:34:00.310209 7f9772fef6c0 Level-0 table #126: started
2024/01/02-23:34:00.310260 7f9772fef6c0 Level-0 table #126: 0 bytes OK
2024/01/02-23:34:00.316663 7f9772fef6c0 Delete type=0 #124
2024/01/02-23:34:00.323982 7f9772fef6c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.333515 7f9772fef6c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/11/02-18:11:52.683312 7fd416a006c0 Recovering log #473
2024/11/02-18:11:52.693678 7fd416a006c0 Delete type=3 #471
2024/11/02-18:11:52.693735 7fd416a006c0 Delete type=0 #473
2024/11/02-18:28:41.269927 7fd415a006c0 Level-0 table #478: started
2024/11/02-18:28:41.270021 7fd415a006c0 Level-0 table #478: 0 bytes OK
2024/11/02-18:28:41.276102 7fd415a006c0 Delete type=0 #476
2024/11/02-18:28:41.295042 7fd415a006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/11/02-18:28:41.295089 7fd415a006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/12/13-08:52:21.471174 7f6135ffb6c0 Recovering log #116
2023/12/13-08:52:21.481262 7f6135ffb6c0 Delete type=3 #114
2023/12/13-08:52:21.481340 7f6135ffb6c0 Delete type=0 #116
2023/12/13-08:53:48.210111 7f6134ff96c0 Level-0 table #121: started
2023/12/13-08:53:48.213777 7f6134ff96c0 Level-0 table #121: 2253 bytes OK
2023/12/13-08:53:48.220546 7f6134ff96c0 Delete type=0 #119
2023/12/13-08:53:48.243008 7f6134ff96c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.243053 7f6134ff96c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at '!items!yofwG0YrsL902G77' @ 16 : 1
2023/12/13-08:53:48.243061 7f6134ff96c0 Compacting 1@1 + 1@2 files
2023/12/13-08:53:48.246547 7f6134ff96c0 Generated table #122@1: 8 keys, 2253 bytes
2023/12/13-08:53:48.246574 7f6134ff96c0 Compacted 1@1 + 1@2 files => 2253 bytes
2023/12/13-08:53:48.252819 7f6134ff96c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/12/13-08:53:48.252934 7f6134ff96c0 Delete type=2 #5
2023/12/13-08:53:48.253082 7f6134ff96c0 Delete type=2 #121
2023/12/13-08:53:48.292770 7f6134ff96c0 Manual compaction at level-1 from '!items!yofwG0YrsL902G77' @ 16 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/11/02-16:12:38.787439 7fd4174006c0 Recovering log #469
2024/11/02-16:12:38.798191 7fd4174006c0 Delete type=3 #467
2024/11/02-16:12:38.798313 7fd4174006c0 Delete type=0 #469
2024/11/02-18:00:40.824934 7fd415a006c0 Level-0 table #474: started
2024/11/02-18:00:40.824955 7fd415a006c0 Level-0 table #474: 0 bytes OK
2024/11/02-18:00:40.831123 7fd415a006c0 Delete type=0 #472
2024/11/02-18:00:40.837604 7fd415a006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/11/02-18:00:40.837649 7fd415a006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/careers/000294.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000123
MANIFEST-000475

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.085234 7f9a08ff96c0 Recovering log #120
2024/01/02-23:25:25.095129 7f9a08ff96c0 Delete type=3 #118
2024/01/02-23:25:25.095182 7f9a08ff96c0 Delete type=0 #120
2024/01/02-23:34:00.333534 7f9772fef6c0 Level-0 table #126: started
2024/01/02-23:34:00.333589 7f9772fef6c0 Level-0 table #126: 0 bytes OK
2024/01/02-23:34:00.340506 7f9772fef6c0 Delete type=0 #124
2024/01/02-23:34:00.347405 7f9772fef6c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.361237 7f9772fef6c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/11/02-18:11:52.709120 7fd41ce006c0 Recovering log #473
2024/11/02-18:11:52.718878 7fd41ce006c0 Delete type=3 #471
2024/11/02-18:11:52.718948 7fd41ce006c0 Delete type=0 #473
2024/11/02-18:28:41.282575 7fd415a006c0 Level-0 table #478: started
2024/11/02-18:28:41.282601 7fd415a006c0 Level-0 table #478: 0 bytes OK
2024/11/02-18:28:41.288788 7fd415a006c0 Delete type=0 #476
2024/11/02-18:28:41.295070 7fd415a006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/11/02-18:28:41.295104 7fd415a006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/12/13-08:52:21.514750 7f61357fa6c0 Recovering log #116
2023/12/13-08:52:21.525064 7f61357fa6c0 Delete type=3 #114
2023/12/13-08:52:21.525155 7f61357fa6c0 Delete type=0 #116
2023/12/13-08:53:48.232135 7f6134ff96c0 Level-0 table #121: started
2023/12/13-08:53:48.236265 7f6134ff96c0 Level-0 table #121: 37626 bytes OK
2023/12/13-08:53:48.242838 7f6134ff96c0 Delete type=0 #119
2023/12/13-08:53:48.243037 7f6134ff96c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.253259 7f6134ff96c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at '!items!wUUDR1XCrwdFCzIe' @ 53 : 1
2023/12/13-08:53:48.253273 7f6134ff96c0 Compacting 1@1 + 1@2 files
2023/12/13-08:53:48.258675 7f6134ff96c0 Generated table #122@1: 27 keys, 40640 bytes
2023/12/13-08:53:48.258693 7f6134ff96c0 Compacted 1@1 + 1@2 files => 40640 bytes
2023/12/13-08:53:48.265674 7f6134ff96c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/12/13-08:53:48.265771 7f6134ff96c0 Delete type=2 #5
2023/12/13-08:53:48.265917 7f6134ff96c0 Delete type=2 #121
2023/12/13-08:53:48.292787 7f6134ff96c0 Manual compaction at level-1 from '!items!wUUDR1XCrwdFCzIe' @ 53 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/11/02-16:12:38.813973 7fd41ce006c0 Recovering log #469
2024/11/02-16:12:38.823781 7fd41ce006c0 Delete type=3 #467
2024/11/02-16:12:38.823877 7fd41ce006c0 Delete type=0 #469
2024/11/02-18:00:40.831252 7fd415a006c0 Level-0 table #474: started
2024/11/02-18:00:40.831277 7fd415a006c0 Level-0 table #474: 0 bytes OK
2024/11/02-18:00:40.837490 7fd415a006c0 Delete type=0 #472
2024/11/02-18:00:40.837613 7fd415a006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/11/02-18:00:40.837633 7fd415a006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000123
MANIFEST-000283

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.195583 7f9a08ff96c0 Recovering log #120
2024/01/02-23:25:25.205411 7f9a08ff96c0 Delete type=3 #118
2024/01/02-23:25:25.205482 7f9a08ff96c0 Delete type=0 #120
2024/01/02-23:34:00.403828 7f9772fef6c0 Level-0 table #126: started
2024/01/02-23:34:00.403852 7f9772fef6c0 Level-0 table #126: 0 bytes OK
2024/01/02-23:34:00.410648 7f9772fef6c0 Delete type=0 #124
2024/01/02-23:34:00.417684 7f9772fef6c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.417728 7f9772fef6c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:24:33.833224 7fb8320006c0 Recovering log #281
2024/07/08-22:24:33.895807 7fb8320006c0 Delete type=3 #279
2024/07/08-22:24:33.895934 7fb8320006c0 Delete type=0 #281
2024/07/08-22:24:52.466387 7fb82be006c0 Level-0 table #286: started
2024/07/08-22:24:52.466440 7fb82be006c0 Level-0 table #286: 0 bytes OK
2024/07/08-22:24:52.472857 7fb82be006c0 Delete type=0 #284
2024/07/08-22:24:52.480332 7fb82be006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:24:52.480427 7fb82be006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/12/13-08:52:21.708212 7f61357fa6c0 Recovering log #116
2023/12/13-08:52:21.719348 7f61357fa6c0 Delete type=3 #114
2023/12/13-08:52:21.719497 7f61357fa6c0 Delete type=0 #116
2023/12/13-08:53:48.366771 7f6134ff96c0 Level-0 table #121: started
2023/12/13-08:53:48.377927 7f6134ff96c0 Level-0 table #121: 1212746 bytes OK
2023/12/13-08:53:48.384205 7f6134ff96c0 Delete type=0 #119
2023/12/13-08:53:48.384673 7f6134ff96c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.396179 7f6134ff96c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 44 : 1
2023/12/13-08:53:48.396189 7f6134ff96c0 Compacting 1@1 + 1@2 files
2023/12/13-08:53:48.406257 7f6134ff96c0 Generated table #122@1: 37 keys, 1212746 bytes
2023/12/13-08:53:48.406287 7f6134ff96c0 Compacted 1@1 + 1@2 files => 1212746 bytes
2023/12/13-08:53:48.413572 7f6134ff96c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/12/13-08:53:48.413789 7f6134ff96c0 Delete type=2 #5
2023/12/13-08:53:48.414456 7f6134ff96c0 Delete type=2 #121
2023/12/13-08:53:48.421585 7f6134ff96c0 Manual compaction at level-1 from '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 44 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:22:58.298438 7fb832a006c0 Recovering log #277
2024/07/08-22:22:58.309146 7fb832a006c0 Delete type=3 #275
2024/07/08-22:22:58.309315 7fb832a006c0 Delete type=0 #277
2024/07/08-22:24:02.597516 7fb82be006c0 Level-0 table #282: started
2024/07/08-22:24:02.597563 7fb82be006c0 Level-0 table #282: 0 bytes OK
2024/07/08-22:24:02.685456 7fb82be006c0 Delete type=0 #280
2024/07/08-22:24:02.775806 7fb82be006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:24:02.775850 7fb82be006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/creatures/000203.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000123
MANIFEST-000208

View File

@ -1,8 +1,8 @@
2024/01/02-23:25:25.310347 7f9a097fa6c0 Recovering log #120
2024/01/02-23:25:25.319646 7f9a097fa6c0 Delete type=3 #118
2024/01/02-23:25:25.319693 7f9a097fa6c0 Delete type=0 #120
2024/01/02-23:34:00.445149 7f9772fef6c0 Level-0 table #126: started
2024/01/02-23:34:00.445172 7f9772fef6c0 Level-0 table #126: 0 bytes OK
2024/01/02-23:34:00.451743 7f9772fef6c0 Delete type=0 #124
2024/01/02-23:34:00.451918 7f9772fef6c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/01/02-23:34:00.451974 7f9772fef6c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/23-23:05:36.345111 7fe93a0006c0 Recovering log #206
2024/02/23-23:05:36.355350 7fe93a0006c0 Delete type=3 #204
2024/02/23-23:05:36.355397 7fe93a0006c0 Delete type=0 #206
2024/02/23-23:11:16.411887 7fe9336006c0 Level-0 table #211: started
2024/02/23-23:11:16.411923 7fe9336006c0 Level-0 table #211: 0 bytes OK
2024/02/23-23:11:16.418695 7fe9336006c0 Delete type=0 #209
2024/02/23-23:11:16.419070 7fe9336006c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/23-23:11:16.419088 7fe9336006c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/12/13-08:52:21.905098 7f6136ffd6c0 Recovering log #116
2023/12/13-08:52:21.921828 7f6136ffd6c0 Delete type=3 #114
2023/12/13-08:52:21.921979 7f6136ffd6c0 Delete type=0 #116
2023/12/13-08:53:48.524634 7f6134ff96c0 Level-0 table #121: started
2023/12/13-08:53:48.529685 7f6134ff96c0 Level-0 table #121: 90965 bytes OK
2023/12/13-08:53:48.536056 7f6134ff96c0 Delete type=0 #119
2023/12/13-08:53:48.536363 7f6134ff96c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2023/12/13-08:53:48.536410 7f6134ff96c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 307 : 1
2023/12/13-08:53:48.536421 7f6134ff96c0 Compacting 1@1 + 1@2 files
2023/12/13-08:53:48.543445 7f6134ff96c0 Generated table #122@1: 155 keys, 90965 bytes
2023/12/13-08:53:48.543490 7f6134ff96c0 Compacted 1@1 + 1@2 files => 90965 bytes
2023/12/13-08:53:48.549818 7f6134ff96c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/12/13-08:53:48.549934 7f6134ff96c0 Delete type=2 #5
2023/12/13-08:53:48.550099 7f6134ff96c0 Delete type=2 #121
2023/12/13-08:53:48.550408 7f6134ff96c0 Manual compaction at level-1 from '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 307 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/22-16:41:06.582756 7fe93be006c0 Recovering log #201
2024/02/22-16:41:06.592273 7fe93be006c0 Delete type=3 #199
2024/02/22-16:41:06.592326 7fe93be006c0 Delete type=0 #201
2024/02/22-17:53:02.294923 7fe9336006c0 Level-0 table #207: started
2024/02/22-17:53:02.294959 7fe9336006c0 Level-0 table #207: 0 bytes OK
2024/02/22-17:53:02.313594 7fe9336006c0 Delete type=0 #205
2024/02/22-17:53:02.322132 7fe9336006c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.322180 7fe9336006c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000122
MANIFEST-000473

Some files were not shown because too many files have changed in this diff Show More