Compare commits
No commits in common. "v10" and "fix-defense-request-card" have entirely different histories.
v10
...
fix-defens
4
.gitignore
vendored
4
.gitignore
vendored
@ -8,3 +8,7 @@ todo.md
|
||||
/jsconfig.json
|
||||
/package.json
|
||||
/package-lock.json
|
||||
/packs/*/
|
||||
/packs/*/CURRENT
|
||||
/packs/*/LOG
|
||||
/packs/*/LOCK
|
||||
|
@ -24,7 +24,6 @@ Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http:/
|
||||
Barbarians of Lemuria, Mythic edition, est un jeu de Simon Washbourne
|
||||
|
||||
Auteur : Simon Washbourne.
|
||||
|
||||
## Crédits de la version française
|
||||
|
||||
Barbarians of Lemuria, le jeu de rôle de Sword & Sorcery, est une publication des éditions Ludospherik, tous droits réservés.
|
||||
|
40
changelog.md
40
changelog.md
@ -1,47 +1,7 @@
|
||||
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
|
||||
|
||||
# v11.1.1
|
||||
|
||||
- Re-organisation des compendiums + ajouts de nouveaux equipements
|
||||
- Correction sur la langue Démonique (1 Parlé, 1 Lu/Ecrit)
|
||||
|
||||
# v11.1.0
|
||||
|
||||
- Foundry v11 seulement
|
||||
- Re-organisation des compendiums
|
||||
- Correction sur les créatures
|
||||
- Correction sur l'encaissement sans armure
|
||||
- Ajout d'une note d'explication sur l'initiative
|
||||
|
||||
# v11.0.8
|
||||
|
||||
- Correction sur les malus de bouclier (blocage)
|
||||
- Corrrection sur le malus d'init des boucliers qui était mal affiché dans la fiche d'item
|
||||
|
||||
# v10.4.0
|
||||
|
||||
- Ajout de la gestion d'effets
|
||||
|
22
css/bol.css
22
css/bol.css
@ -1,6 +1,7 @@
|
||||
/* ----------------------------------------- */
|
||||
/* LOCAL FONTS */
|
||||
/* ----------------------------------------- */
|
||||
@import "../node_modules/rpg-awesome/css/rpg-awesome.min.css";
|
||||
@font-face {
|
||||
font-family: 'Contrail One';
|
||||
font-style: normal;
|
||||
@ -803,18 +804,6 @@ 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;
|
||||
}
|
||||
@ -949,7 +938,6 @@ 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 {
|
||||
@ -1050,7 +1038,7 @@ body.system-bol img#logo {
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 2.75rem;
|
||||
right: 16rem;
|
||||
right: 4rem;
|
||||
}
|
||||
.tokenhudext.right {
|
||||
justify-content: flex-start;
|
||||
@ -1064,10 +1052,9 @@ body.system-bol img#logo {
|
||||
.tokenhudext.right2 {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
/*transform: translate(0, -30%);*/
|
||||
position: absolute;
|
||||
top: -4rem;
|
||||
left: 11rem;
|
||||
left: 12rem;
|
||||
}
|
||||
.control-icon.tokenhudicon {
|
||||
width: fit-content;
|
||||
@ -1097,6 +1084,3 @@ body.system-bol img#logo {
|
||||
.character-summary-rollable {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.activated-green {
|
||||
color: darkgreen;
|
||||
}
|
23
lang/de.json
23
lang/de.json
@ -157,7 +157,6 @@
|
||||
"BOL.ui.armorInitMalus": "Rüstungsmalus (Init)",
|
||||
"BOL.ui.attackValue": "Angriffswert",
|
||||
"BOL.ui.initMalus": "Init malus",
|
||||
"BOL.ui.createEquipment": "Create Equipment",
|
||||
|
||||
"BOL.featureCategory.origins": "Herkünfte",
|
||||
"BOL.featureCategory.races": "Rassen",
|
||||
@ -466,25 +465,5 @@
|
||||
"BOL.chat.welcome2": "Zum Spielen werden zwingend die passenden BoL Bücher benötigt. Die französischen Originalbücher für dieses System gibt es hier: http://www.ludospherik.fr/content/14-barbarians-of-lemuria<br>Die deutsche Übersetzung gibt es bei Truant Spiele: https://truant.com/produkt/barbarians-of-lemuria-2",
|
||||
"BOL.chat.welcome3": "Die enthaltenen Karten wurden von Guillaume Tavernier und Ludospherik zur Verfügung gestellt. Vielen Dank dafür!",
|
||||
"BOL.chat.welcome4": "Im Discord findet ihr Support für die FoundryVTT-Implementierung dieses Systems: https://discord.gg/pPSDNJk",
|
||||
"BOL.chat.welcome5": "Auf ein gutes Spiel in Lemuria!",
|
||||
"BOL.chat.welcome6": "",
|
||||
|
||||
"BOL.settings.rollArmor": "Roll for armor",
|
||||
"BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked",
|
||||
"BOL.settings.useBougette": "Use Bougette (fan-made French rule)",
|
||||
"BOL.settings.useBougetteTooltip": "Use the Bougette value, as described in Annales Lemurienne from LeRatierBretonnien (https://www.lahiette.com/leratierbretonnien/)",
|
||||
"BOL.settings.removeDead": "Automatically remove dead NPCs by end of the round",
|
||||
"BOL.settings.removeDeadTooltip": "Remove NPCs Automatically when HP are 0 or less, at the end of each round",
|
||||
"BOL.settings.diceFormula": "Dice Formula",
|
||||
"BOL.settings.diceFormulaTooltip": "Main dice formula (2d6 per default)",
|
||||
"BOL.settings.diceSuccessValue" : "Success value",
|
||||
"BOL.settings.diceSuccessValueTooltip": "Value of the success threshold (9 per default for 2d6)",
|
||||
"BOL.settings.diceCriticalValue" : "Critical success value",
|
||||
"BOL.settings.diceCriticalValueTooltip": "Minimum value for critical success (12 per default for 2d6)",
|
||||
"BOL.settings.diceCriticalFailure" : "Critical failure value",
|
||||
"BOL.settings.diceCriticalFailureTooltip": "Maximum value for critical failure (2 per default for 2d6)",
|
||||
"BOL.settings.defaultLogoActorSheetPath" : "Path for Actor sheet logo",
|
||||
"BOL.settings.defaultLogoPathActorSheetTooltip": "Path of the Actor sheet logo (346 x 200, default : /systems/bol/ui/logo.webp)",
|
||||
"BOL.settings.defaultLogoTopLeftPath" : "Path for main top left logo",
|
||||
"BOL.settings.defaultLogoTopLeftPathTooltip": "Path of the logo in the top left window (718 x 416, default : /systems/bol/ui/logo2.webp)"
|
||||
"BOL.chat.welcome5": "Auf ein gutes Spiel in Lemuria!"
|
||||
}
|
||||
|
153
lang/en.json
153
lang/en.json
@ -1,22 +1,13 @@
|
||||
{
|
||||
"TYPES": {
|
||||
"Actor": {
|
||||
"character": "PC",
|
||||
"encounter": "NPC",
|
||||
"npc": "NPC",
|
||||
"vehicle": "Vehicle",
|
||||
"horde": "Horde"
|
||||
},
|
||||
"Item": {
|
||||
"item": "Object",
|
||||
"feature": "Trait",
|
||||
"weapon": "Weapon",
|
||||
"armure": "Armor"
|
||||
}
|
||||
},
|
||||
"ACTOR.TypeCharacter": "Character",
|
||||
"ACTOR.TypeEncounter": "Encounter",
|
||||
"ITEM.TypeItem": "Item",
|
||||
"ITEM.TypeFeature": "Feature",
|
||||
"ITEM.TypeWeapon": "Weapon",
|
||||
"ITEM.TypeArmor": "Armor",
|
||||
|
||||
"BOL.attributes.vigor": "Strength",
|
||||
"BOL.attributes.halfvigor" : "Half-Strength",
|
||||
"BOL.attributes.vigor": "Vigor",
|
||||
"BOL.attributes.halfvigor" : "Half-Vigor",
|
||||
"BOL.attributes.agility": "Agility",
|
||||
"BOL.attributes.mind": "Mind",
|
||||
"BOL.attributes.appeal": "Appeal",
|
||||
@ -55,9 +46,6 @@
|
||||
"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",
|
||||
@ -176,57 +164,9 @@
|
||||
"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.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.ui.isspecial": "Spécial ?",
|
||||
|
||||
"BOL.featureCategory.origins": "Origins",
|
||||
"BOL.featureCategory.races": "Races",
|
||||
@ -244,11 +184,6 @@
|
||||
"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",
|
||||
@ -273,7 +208,6 @@
|
||||
"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",
|
||||
@ -473,14 +407,11 @@
|
||||
"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 !",
|
||||
@ -498,51 +429,6 @@
|
||||
"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)",
|
||||
@ -581,25 +467,6 @@
|
||||
"BOL.chat.welcome2": "Books are necessary to play, and ca be found here : http://www.ludospherik.fr/content/14-barbarians-of-lemuria",
|
||||
"BOL.chat.welcome3": "The integrated maps are authorized by Guillaume Tavernier and Ludospherik. Thanks to them !.",
|
||||
"BOL.chat.welcome4": "All support for this system is available on this Discord server : https://discord.gg/pPSDNJk",
|
||||
"BOL.chat.welcome5": "Good game in Lemuria !",
|
||||
"BOL.chat.welcome6": "",
|
||||
"BOL.chat.welcome5": "Good game in Lemuria !"
|
||||
|
||||
"BOL.settings.rollArmor": "Roll for armor",
|
||||
"BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked",
|
||||
"BOL.settings.useBougette": "Use Bougette (fan-made French rule)",
|
||||
"BOL.settings.useBougetteTooltip": "Use the Bougette value, as described in Annales Lemurienne from LeRatierBretonnien (https://www.lahiette.com/leratierbretonnien/)",
|
||||
"BOL.settings.removeDead": "Automatically remove dead NPCs by end of the round",
|
||||
"BOL.settings.removeDeadTooltip": "Remove NPCs Automatically when HP are 0 or less, at the end of each round",
|
||||
"BOL.settings.diceFormula": "Dice Formula",
|
||||
"BOL.settings.diceFormulaTooltip": "Main dice formula (2d6 per default)",
|
||||
"BOL.settings.diceSuccessValue" : "Success value",
|
||||
"BOL.settings.diceSuccessValueTooltip": "Value of the success threshold (9 per default for 2d6)",
|
||||
"BOL.settings.diceCriticalValue" : "Critical success value",
|
||||
"BOL.settings.diceCriticalValueTooltip": "Minimum value for critical success (12 per default for 2d6)",
|
||||
"BOL.settings.diceCriticalFailure" : "Critical failure value",
|
||||
"BOL.settings.diceCriticalFailureTooltip": "Maximum value for critical failure (2 per default for 2d6)",
|
||||
"BOL.settings.defaultLogoActorSheetPath" : "Path for Actor sheet logo",
|
||||
"BOL.settings.defaultLogoPathActorSheetTooltip": "Path of the Actor sheet logo (346 x 200, default : /systems/bol/ui/logo.webp)",
|
||||
"BOL.settings.defaultLogoTopLeftPath" : "Path for main top left logo",
|
||||
"BOL.settings.defaultLogoTopLeftPathTooltip": "Path of the logo in the top left window (718 x 416, default : /systems/bol/ui/logo2.webp)"
|
||||
}
|
596
lang/es.json
596
lang/es.json
@ -1,596 +0,0 @@
|
||||
{
|
||||
"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)"
|
||||
}
|
576
lang/fr-honor.json
Normal file
576
lang/fr-honor.json
Normal file
@ -0,0 +1,576 @@
|
||||
{
|
||||
"ACTOR.TypeCharacter": "Personnage",
|
||||
"ACTOR.TypeEncounter": "Rencontre",
|
||||
"ACTOR.TypeVehicle": "Véhicule",
|
||||
"ITEM.TypeItem": "Objet",
|
||||
"ITEM.TypeFeature": "Trait",
|
||||
"ITEM.TypeWeapon": "Arme",
|
||||
"ITEM.TypeArmor": "Armure",
|
||||
|
||||
"BOL.attributes.vigor": "Vigueur",
|
||||
"BOL.attributes.halfvigor": "Demi-vigueur",
|
||||
"BOL.attributes.agility": "Agilité",
|
||||
"BOL.attributes.mind": "Esprit",
|
||||
"BOL.attributes.appeal": "Aura",
|
||||
"BOL.attributes.hull": "Coque",
|
||||
"BOL.attributes.crew": "Equipage",
|
||||
"BOL.attributes.resources": "Resources",
|
||||
"BOL.attributes.row": "Rames",
|
||||
"BOL.aptitudes.init": "Initiative",
|
||||
"BOL.aptitudes.melee": "Mêlée",
|
||||
"BOL.aptitudes.ranged": "Tir",
|
||||
"BOL.aptitudes.def": "Défense",
|
||||
"BOL.aptitudes.prot": "Protection",
|
||||
"BOL.resources.hp": "Vitalité",
|
||||
"BOL.resources.hero": "Héroïsme",
|
||||
"BOL.resources.faith": "Foi",
|
||||
"BOL.resources.creation": "Création",
|
||||
"BOL.resources.power": "Pouvoir",
|
||||
"BOL.resources.villainy": "Vilénie",
|
||||
"BOL.resources.alchemypoints": "Points de Creation",
|
||||
"BOL.resources.astrologypoints": "Points d'Astrologie",
|
||||
"BOL.traits.xp": "Expérience",
|
||||
|
||||
"BOL.ui.tab.stats": "Attributs",
|
||||
"BOL.ui.tab.combat": "Combat",
|
||||
"BOL.ui.tab.actions": "Actions",
|
||||
"BOL.ui.tab.features": "Traits",
|
||||
"BOL.ui.tab.equipment": "Equipement",
|
||||
"BOL.ui.tab.description": "Description",
|
||||
"BOL.ui.tab.details": "Details",
|
||||
"BOL.ui.tab.spellalchemy": "Mystères",
|
||||
|
||||
"BOL.ui.astrologerPoints": "Points d'Astrologie",
|
||||
"BOL.ui.astrologerPointsLabel": "Points d'Astrologie actuels",
|
||||
"BOL.ui.ishoroscopemajor": "Horoscope Majeur (ie de groupe) ?",
|
||||
"BOL.ui.answer": "Réponse",
|
||||
"BOL.ui.horoscopefavorable": "Favorable (1dB)",
|
||||
"BOL.ui.horoscopeunfavorable": "Défavorable (1dM)",
|
||||
"BOL.ui.horoscopes": "Horoscopes",
|
||||
"BOL.ui.horoscopesBonus": "Horoscopes (Bonus)",
|
||||
"BOL.ui.horoscopesMalus": "Horoscopes (Malus)",
|
||||
"BOL.ui.groupHoroscope": "Horoscrope de Groupe de ",
|
||||
|
||||
"BOL.ui.properties": "Propriétés",
|
||||
"BOL.ui.description": "Description",
|
||||
"BOL.ui.actions": "Actions",
|
||||
"BOL.ui.capacities": "Capacités",
|
||||
"BOL.ui.damages": "Dommages",
|
||||
"BOL.ui.details": "Détails",
|
||||
"BOL.ui.category": "Catégorie",
|
||||
"BOL.ui.subcategory": "Sous-catégorie",
|
||||
"BOL.ui.type": "Type",
|
||||
"BOL.ui.subtype": "Sous-type",
|
||||
"BOL.ui.attribute": "Attribut",
|
||||
"BOL.ui.aptitude": "Aptitude",
|
||||
"BOL.ui.advantages": "Avantages/Désavantages",
|
||||
"BOL.ui.modifiers": "Modificateurs",
|
||||
"BOL.ui.item": "Objet",
|
||||
"BOL.ui.edit": "Editer",
|
||||
"BOL.ui.unequip": "Déséquiper",
|
||||
"BOL.ui.equip": "Équiper",
|
||||
"BOL.ui.delete": "Supprimer",
|
||||
"BOL.ui.roll": "Utiliser",
|
||||
"BOL.ui.equipment": "Équipement",
|
||||
"BOL.ui.equipmentProperties": "Propriétés d'équipement",
|
||||
"BOL.ui.weaponAttack": "Attaque d'arme",
|
||||
"BOL.ui.weaponProperties": "Propriétés offensives",
|
||||
"BOL.ui.protectionProperties": "Protection",
|
||||
"BOL.ui.magicalProperties": "Propriétés magiques",
|
||||
"BOL.ui.capacityProperties": "Propriétés de capacité",
|
||||
"BOL.ui.alchemyProperties": "Propriétés des Préparations Alchimiques",
|
||||
"BOL.ui.armor": "Armure",
|
||||
"BOL.ui.reach": "Allonge",
|
||||
"BOL.ui.weapon": "Arme",
|
||||
"BOL.ui.melee": "Arme de contact",
|
||||
"BOL.ui.ranged": "Arme à distance",
|
||||
"BOL.ui.protection": "Protection",
|
||||
"BOL.ui.shield": "Bouclier",
|
||||
"BOL.ui.blocking": "Blocage",
|
||||
"BOL.ui.range": "Portée",
|
||||
"BOL.ui.quantity": "Quantité",
|
||||
"BOL.ui.qty": "Qté",
|
||||
"BOL.ui.slot": "Empl.",
|
||||
"BOL.ui.weight": "Poids",
|
||||
"BOL.ui.price": "Prix",
|
||||
"BOL.ui.cancel": "Annuler",
|
||||
"BOL.ui.submit": "OK",
|
||||
"BOL.ui.attributeCheck": "Test d'attribut",
|
||||
"BOL.ui.aptitudeCheck": "Test d'aptitude",
|
||||
"BOL.ui.weaponCheck": "Jet d'attaque",
|
||||
"BOL.ui.spellCheck": "Jet de sort",
|
||||
"BOL.ui.careers": "Carrières",
|
||||
"BOL.ui.boons": "Avantages",
|
||||
"BOL.ui.flaws": "Désavantages",
|
||||
"BOL.ui.rank": "Rang",
|
||||
"BOL.ui.success": "Succès",
|
||||
"BOL.ui.failure": "Échec",
|
||||
"BOL.ui.fumble": "Échec critique",
|
||||
"BOL.ui.critical": "Succès Héroïque",
|
||||
"BOL.ui.criticallegend": "Succès Légendaire !",
|
||||
"BOL.ui.maneuvers": "Actions de combat",
|
||||
"BOL.ui.stacksize": "Taille de pile (max)",
|
||||
"BOL.ui.weapons": "Armes",
|
||||
"BOL.ui.protections": "Protections",
|
||||
"BOL.ui.ammos": "Munitions",
|
||||
"BOL.ui.containers": "Conteneurs",
|
||||
"BOL.ui.treasure": "Trésor",
|
||||
"BOL.ui.vehicles": "Véhicules/Montures",
|
||||
"BOL.ui.misc": "Divers",
|
||||
"BOL.ui.vehicleProperties": " Propriétés de véhicule",
|
||||
"BOL.ui.speed": "Vitesse",
|
||||
"BOL.ui.noWeaponName": "Arme Inconnue",
|
||||
"BOL.ui.targetDefence": "Défense",
|
||||
"BOL.ui.applyShieldMalus": "Appliquer le Malus de Petit Bouclier",
|
||||
"BOL.ui.shieldMalus": "Malus de Bouclier",
|
||||
"BOL.ui.defenseScore": "Score de Defense",
|
||||
"BOL.ui.defender": "Défenseur",
|
||||
"BOL.ui.difficulty": "Difficulté",
|
||||
"BOL.ui.spellProperties": "Propriétés du Sort",
|
||||
"BOL.ui.duration": "Durée",
|
||||
"BOL.ui.spellkeep": "Prolongation",
|
||||
"BOL.ui.concentrate": "Concentration",
|
||||
"BOL.ui.registerInit": "Enregistrer comme Init. de combat",
|
||||
|
||||
"BOL.ui.isSorcerer": "Carrière de Sorcier ?",
|
||||
"BOL.ui.isAlchemist": "Carrière d'Alchimiste ?",
|
||||
"BOL.ui.isPriest": "Carrière de Prêtre/Druide ?",
|
||||
"BOL.ui.isAstrologer": "Carrière d'Astrologue?",
|
||||
"BOL.ui.circle": "Cercle",
|
||||
"BOL.ui.spells": "Sorts",
|
||||
"BOL.ui.focusSpell": "Lance un sort",
|
||||
"BOL.ui.sorcererRank": "Rang du Sorcier",
|
||||
"BOL.ui.alchemistRank": "Rang de l'Alchimiste",
|
||||
"BOL.ui.mandatoryconditions": "Conditions obligatoires",
|
||||
"BOL.ui.optionnalconditions": "Conditions optionnelles",
|
||||
"BOL.ui.ppcost": "Cout en Points de Pouvoir",
|
||||
"BOL.ui.ppAvailable": "Points de Pouvoir actuels",
|
||||
"BOL.ui.pccost": "Coût en Points de Création",
|
||||
"BOL.ui.pcnow": "Points de Création actuels",
|
||||
"BOL.ui.alchemyType": "Type",
|
||||
"BOL.ui.alchemy": "Préparations Alchimiques",
|
||||
"BOL.ui.makeAlchemy": "Réaliser une Préparation Alchmique",
|
||||
"BOL.ui.alchemyCostTotal": "Points de Création nécessaires pour la Préparation",
|
||||
"BOL.ui.alchemyInvest": "Points de Création investis",
|
||||
"BOL.ui.alchemyCurrent": "Points de Création actuel dans la Préparation",
|
||||
"BOL.ui.astrology": "Astrologie et Horoscopes",
|
||||
"BOL.ui.astrologyMinor": "Etablir un Horoscope Mineur",
|
||||
"BOL.ui.astrologyMajor": "Etablir un Horoscope Majeur",
|
||||
"BOL.ui.astrologyMajorGroup": "Etablir un Horoscope Majeur de Groupe",
|
||||
"BOL.ui.makeHoroscope": "Etablir un Horoscope",
|
||||
"BOL.ui.astrologerRank": "Rang de l'Astrologue",
|
||||
"BOL.ui.horoscopeCost": "Cout en Points d'Astrologie",
|
||||
"BOL.ui.minor": "Mineur",
|
||||
"BOL.ui.major": "Majeur",
|
||||
"BOL.ui.majorgroup": "Majeur de Groupe",
|
||||
"BOL.ui.horoscopeGroup": "Horoscopes de Groupe",
|
||||
"BOL.ui.horoscopeDiceRemaining": "Dés restants",
|
||||
"BOL.ui.horoscopeDiceMax": "Dés Max",
|
||||
"BOL.ui.astrologyNoPoints": "Vous n'avez pas assez de Points d'Astrologie!",
|
||||
|
||||
"BOL.ui.advance": "Avancement",
|
||||
"BOL.ui.isbonusdice": "Fourni un dé bonus?",
|
||||
"BOL.ui.ismalusdice": "Fourni un dé malus?",
|
||||
"BOL.ui.bonusmalus": "Dés Bonus/Malus additionnels",
|
||||
"BOL.ui.nbdices": "Nombre de dés",
|
||||
"BOL.ui.totalmod": "Total Mod.",
|
||||
"BOL.ui.rangeModifiers": "Mod. de Portée",
|
||||
"BOL.ui.money": "Bougette",
|
||||
"BOL.ui.moneyTitle": "Or et Piecettes",
|
||||
"BOL.ui.fightOption": "Options de Combat",
|
||||
"BOL.ui.none": "Aucune",
|
||||
"BOL.ui.fightOptionType": "Types d'options de Combat",
|
||||
"BOL.ui.activated": "Active",
|
||||
"BOL.ui.deactivated": "Inactive",
|
||||
"BOL.ui.toactivated": "Active (>Désactiver)",
|
||||
"BOL.ui.todeactivated": "Inactive (>Activer)",
|
||||
"BOL.ui.status": "Statut",
|
||||
"BOL.ui.armorAgiMalus": "Malus d'Armure+Bouclier (Agi)",
|
||||
"BOL.ui.armorInitMalus": "Malus d'Armure (Init)",
|
||||
"BOL.ui.attackValue": "Valeur d'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.rabble": "Piétaille",
|
||||
"BOL.ui.tough": "Coriace",
|
||||
"BOL.ui.villain": "Rival",
|
||||
"BOL.ui.attributaptitude": "Attribut ou Aptitude",
|
||||
"BOL.ui.always": "Tout les jets (ie toujours)",
|
||||
"BOL.ui.effectbonusmalus": "Bonus ou Malus à appliquer",
|
||||
"BOL.ui.boleffects": "Effets (automatiques)",
|
||||
"BOL.ui.modifier": "Modificateur",
|
||||
"BOL.ui.effects": "Effets en cours",
|
||||
"BOL.ui.pcname": "PJs",
|
||||
"BOL.ui.npcname": "PNJs",
|
||||
"BOL.ui.pclistbutton": "Vue compacte",
|
||||
"BOL.ui.noactorfound": "PNJ inconnu, le PNJ doit être présent dans le monde pour s'afficher ici.",
|
||||
"BOL.ui.deletetitle": "Suppression",
|
||||
"BOL.ui.confirmdelete": "Vous êtes sûr de vouloir supprimer cet item ?",
|
||||
"BOL.ui.nomorealchemypoints": "Plus assez de Points de Création !",
|
||||
"BOL.ui.armornoformula": "L'armure {protect.name} n'a pas de formule pour la protection !",
|
||||
"BOL.ui.selectactor": "Selectionnez votre personnage pour utiliser la macro",
|
||||
"BOL.ui.itemnotfound": "Impossible de trouver l'objet de cette macro",
|
||||
"BOL.ui.noinit": "Pas d'initiative trouvée, veuillez en enregistrer une.",
|
||||
"BOL.ui.warninitiative": "Votre initiative n'est pas disponible. Effectuez un jet d'Initiative pour ce combat.",
|
||||
|
||||
"BOL.featureCategory.origins": "Origines",
|
||||
"BOL.featureCategory.races": "Races",
|
||||
"BOL.featureCategory.careers": "Carrières",
|
||||
"BOL.featureCategory.boons": "Avantages",
|
||||
"BOL.featureCategory.flaws": "Désavantages",
|
||||
"BOL.featureCategory.languages": "Langues",
|
||||
"BOL.featureCategory.fightoptions": "Options de Combat",
|
||||
"BOL.bougette.nomoney": "A sec",
|
||||
"BOL.bougette.tolive": "De quoi vivre",
|
||||
"BOL.bougette.easylife": "A l'aise",
|
||||
"BOL.bougette.luxury": "Luxe&Volupté",
|
||||
"BOL.bougette.rich": "Richissime",
|
||||
|
||||
"BOL.featureSubtypes.origin": "Origine",
|
||||
"BOL.featureSubtypes.race": "Race",
|
||||
"BOL.featureSubtypes.career": "Carrière",
|
||||
"BOL.featureSubtypes.boon": "Avantage",
|
||||
"BOL.featureSubtypes.flaw": "Désavantage",
|
||||
"BOL.featureSubtypes.language": "Langue",
|
||||
"BOL.featureSubtypes.gods": "Dieux & Foi",
|
||||
"BOL.featureSubtypes.fightOption": "Option de Combat",
|
||||
"BOL.featureSubtypes.effect": "Effet",
|
||||
"BOL.featureSubtypes.effects": "Effets",
|
||||
"BOL.featureSubtypes.boleffect": "Effet",
|
||||
"BOL.featureSubtypes.horoscope": "Horoscope",
|
||||
|
||||
"BOL.fightOptionTypes.armor": "Attaque au défaut d'armure",
|
||||
"BOL.fightOptionTypes.intrepid": "Attaque intrépide",
|
||||
"BOL.fightOptionTypes.twoweaponsdef": "Combat à 2 armes (Défense)",
|
||||
"BOL.fightOptionTypes.twoweaponsatt": "Combat à 2 armes (Attaque)",
|
||||
"BOL.fightOptionTypes.fulldefense": "Défense totale",
|
||||
"BOL.fightOptionTypes.defense": "Posture défensive",
|
||||
"BOL.fightOptionTypes.attack": "Posture offensive",
|
||||
|
||||
"BOL.itemCategory.object": "Objet",
|
||||
"BOL.itemCategory.equipment": "Équipement",
|
||||
"BOL.itemCategory.consumable": "Consommable",
|
||||
"BOL.itemCategory.spell": "Sort",
|
||||
"BOL.itemCategory.vehicle": "Monture/Véhicule",
|
||||
"BOL.itemCategory.other": "Autre",
|
||||
"BOL.itemCategory.capacity": "Capacité",
|
||||
"BOL.itemCategory.alchemy": "Préparation Alchimique",
|
||||
"BOL.itemCategory.vehicleweapon": "Armes de Véhicule",
|
||||
|
||||
"BOL.combatCategory.protections": "Protections",
|
||||
"BOL.combatCategory.shields": "Boucliers",
|
||||
"BOL.combatCategory.melee": "Armes de contact",
|
||||
"BOL.combatCategory.ranged": "Armes à distance",
|
||||
"BOL.combatCategory.fightOptions": "Options de combat",
|
||||
"BOL.combatCategory.natural": "Armes Naturelless",
|
||||
|
||||
"BOL.equipmentCategory.weapon": "Arme",
|
||||
"BOL.equipmentCategory.armor": "Armure",
|
||||
"BOL.equipmentCategory.protection": "Protection",
|
||||
"BOL.equipmentCategory.shield": "Bouclier",
|
||||
"BOL.equipmentCategory.helm": "Casque",
|
||||
"BOL.equipmentCategory.jewel": "Bijou",
|
||||
"BOL.equipmentCategory.scroll": "Parchemin",
|
||||
"BOL.equipmentCategory.ammunition": "Munition",
|
||||
"BOL.equipmentCategory.container": "Conteneur",
|
||||
"BOL.equipmentCategory.currency": "Monnaie",
|
||||
"BOL.equipmentCategory.other": "Autre",
|
||||
|
||||
"BOL.protectionCategory.armor": "Armure",
|
||||
"BOL.protectionCategory.shield": "Bouclier",
|
||||
"BOL.protectionCategory.helm": "Casque",
|
||||
"BOL.protectionCategory.other": "Autre",
|
||||
|
||||
"BOL.spellItem.charm": "Charme",
|
||||
"BOL.spellItem.circle1": "Premier Cercle",
|
||||
"BOL.spellItem.circle2": "Second Cercle",
|
||||
"BOL.spellItem.circle3": "Troisième Cercle",
|
||||
|
||||
"BOL.alchemyItem.common": "Courante",
|
||||
"BOL.alchemyItem.scarce": "Rare",
|
||||
"BOL.alchemyItem.legend": "Légendaire",
|
||||
"BOL.alchemyItem.mythic": "Mythique",
|
||||
|
||||
"BOL.weaponCategory.melee": "Arme de mêlée",
|
||||
"BOL.weaponCategory.ranged": "Arme de tir",
|
||||
"BOL.weaponCategory.other": "Autre",
|
||||
|
||||
"BOL.itemProperty.damageMultiplier": "Multiplicateur de dommages",
|
||||
"BOL.itemProperty.attackBonusDice": "Dé de Bonus d'attaque",
|
||||
"BOL.itemProperty.equipable": "Équipable",
|
||||
"BOL.itemProperty.protection": "Protection",
|
||||
"BOL.itemProperty.blocking": "Blocage",
|
||||
"BOL.itemProperty.magical": "Magique",
|
||||
"BOL.itemProperty.concealable": "Dissimulable",
|
||||
"BOL.itemProperty.2H": "Arme à 2 mains",
|
||||
"BOL.itemProperty.helm": "Casque",
|
||||
"BOL.itemProperty.improvised": "Improvisée",
|
||||
"BOL.itemProperty.shield": "Bouclier",
|
||||
"BOL.itemProperty.melee": "Arme de contact",
|
||||
"BOL.itemProperty.throwable": "Peut être lancée",
|
||||
"BOL.itemProperty.ignoreshield": "Ignore les boucliers",
|
||||
"BOL.itemProperty.bashing": "Dégâts non létaux",
|
||||
"BOL.itemProperty.stackable": "Empilable",
|
||||
"BOL.itemProperty.ranged": "A distance",
|
||||
"BOL.itemProperty.weapon": "Offensive",
|
||||
"BOL.itemProperty.reloadable": "Rechargeable",
|
||||
"BOL.itemProperty.worn": "Équipé",
|
||||
"BOL.itemProperty.spell": "Sort",
|
||||
"BOL.itemProperty.armor": "Armure",
|
||||
"BOL.itemProperty.consumable": "Consommable",
|
||||
"BOL.itemProperty.bow": "Arc",
|
||||
"BOL.itemProperty.crossbow": "Arbalète",
|
||||
"BOL.itemProperty.throwing": "Arme de jet",
|
||||
"BOL.itemProperty.activable": "Activable",
|
||||
"BOL.itemProperty.powder": "Arme à poudre",
|
||||
"BOL.itemProperty.attackAttribute": "Attaque (Attribut)",
|
||||
"BOL.itemProperty.attackAptitude": "Attaque (Aptitude)",
|
||||
"BOL.itemProperty.attackModifiers": "Attaque (Modificateurs)",
|
||||
"BOL.itemProperty.attackReroll1": "Attaque (Relancer les 1)",
|
||||
"BOL.itemProperty.damage": "Dommages (Dés)",
|
||||
"BOL.itemProperty.damageModifiers": "Dommages (Modificateurs)",
|
||||
"BOL.itemProperty.damageAttribute": "Dommages (Attribut)",
|
||||
"BOL.itemProperty.damageSpecial": "Dommages (Spécial)",
|
||||
"BOL.itemProperty.damageReroll1": "Relancer les 1",
|
||||
"BOL.itemProperty.range": "Portée (en m)",
|
||||
"BOL.itemProperty.soakFormula": "Encaissement (Formule)",
|
||||
"BOL.itemProperty.soakModifiers": "Encaissement (Modificateur)",
|
||||
"BOL.itemProperty.soakValue": "Encaissement (Valeur par défaut)",
|
||||
"BOL.itemProperty.armorQuality": "Qualité d'armure",
|
||||
"BOL.itemProperty.blockingMalus": "Malus de blocage",
|
||||
"BOL.itemProperty.blockingAttacksBlocked": "Attaques bloquée",
|
||||
"BOL.itemProperty.blocking1Attack": "Bloque 1 attaque",
|
||||
"BOL.itemProperty.blockingAllAttacks": "Bloque toutes les attaques",
|
||||
"BOL.itemProperty.slot": "Emplacement utilisé",
|
||||
"BOL.itemProperty.reload": "Rechargement (Actions)",
|
||||
"BOL.itemProperty.weaponSize": "Classe d'arme",
|
||||
"BOL.itemProperty.difficulty": "Difficulté",
|
||||
"BOL.itemProperty.natural": "Arme naturelle",
|
||||
"BOL.itemProperty.onlymodifier": "Modificateur uniquement (ie attaques de créatures)",
|
||||
"BOL.itemProperty.vehicleDamageType": "Type de dommages de véhicules",
|
||||
"BOL.itemProperty.isfiredamage": "Dommages de Feu",
|
||||
"BOL.itemProperty.ishulldamage": "Dommages à la coque",
|
||||
"BOL.itemProperty.iscrewdamage": "Dommages à l'équipage",
|
||||
"BOL.itemProperty.hulldamage": "Valeur des dommages à la coque",
|
||||
"BOL.itemProperty.crewdamage": "Valeur des dommages à l'équipage",
|
||||
"BOL.itemProperty.hullDamageMultiplier": "Multiplicateur",
|
||||
"BOL.itemProperty.crewDamageMultiplier": "Multiplicateur",
|
||||
"BOL.itemProperty.isboarding": "Abordage",
|
||||
"BOL.itemProperty.isspur": "Eperonnage",
|
||||
"BOL.itemProperty.isbreakrow": "Briser les rames",
|
||||
|
||||
"BOL.itemStat.quantity": "Quantité",
|
||||
"BOL.itemStat.weight": "Poids",
|
||||
"BOL.itemStat.price": "Prix",
|
||||
"BOL.itemStat.range": "Portée",
|
||||
"BOL.itemStat.damage": "Dommages",
|
||||
"BOL.itemStat.reload": "Rechargement (Actions)",
|
||||
"BOL.itemStat.soak": "Valeur de protection",
|
||||
"BOL.itemStat.blocking": "Bloquage",
|
||||
"BOL.itemStat.modifiers": "Modificateurs",
|
||||
|
||||
"BOL.weaponSize.unarmed": "Mains nues",
|
||||
"BOL.weaponSize.improvised": "Arme improvisée",
|
||||
"BOL.weaponSize.light": "Légère",
|
||||
"BOL.weaponSize.medium": "Moyenne",
|
||||
"BOL.weaponSize.heavy": "Lourde",
|
||||
|
||||
"BOL.itemModifiers.init": "Malus (Initiative)",
|
||||
"BOL.itemModifiers.social": "Malus (Social)",
|
||||
"BOL.itemModifiers.agility": "Malus (Agilité)",
|
||||
"BOL.itemModifiers.powercost": "Malus (Coût supplémentaire en PP)",
|
||||
|
||||
"BOL.itemBlocking.malus": "Social",
|
||||
"BOL.itemBlocking.nbAttacksPerRound": "Agilité",
|
||||
|
||||
"BOL.soakFormula.none": "-",
|
||||
"BOL.soakFormula.light": "Légère (Annule d6-3 dégâts subis)",
|
||||
"BOL.soakFormula.medium": "Moyenne (Annule d6-2 dégâts subis)",
|
||||
"BOL.soakFormula.heavy": "Lourde (Annule d6-1 dégâts subis)",
|
||||
|
||||
"BOL.armorQuality.none": "-",
|
||||
"BOL.armorQuality.light": "Légère",
|
||||
"BOL.armorQuality.lightQ": "Légère de qualité",
|
||||
"BOL.armorQuality.lightSup": "Légère Supérieure",
|
||||
"BOL.armorQuality.lightLeg": "Légère Légendaire",
|
||||
"BOL.armorQuality.medium": "Moyenne",
|
||||
"BOL.armorQuality.mediumQ": "Moyenne de qualité",
|
||||
"BOL.armorQuality.mediumSup": "Moyenne Supérieure",
|
||||
"BOL.armorQuality.mediumLeg": "Moyenne Légendaire",
|
||||
"BOL.armorQuality.heavy": "Lourde",
|
||||
"BOL.armorQuality.heavyQ": "Lourde de qualité",
|
||||
"BOL.armorQuality.heavySup": "Lourde Supérieure",
|
||||
"BOL.armorQuality.heavyLeg": "Lourde Légendaire",
|
||||
|
||||
"BOL.equipmentSlots.none": "-",
|
||||
"BOL.equipmentSlots.head": "Tête",
|
||||
"BOL.equipmentSlots.neck": "Cou",
|
||||
"BOL.equipmentSlots.shoulders": "Épaules",
|
||||
"BOL.equipmentSlots.body": "Corps",
|
||||
"BOL.equipmentSlots.rhand": "Main droite",
|
||||
"BOL.equipmentSlots.lhand": "Main gauche",
|
||||
"BOL.equipmentSlots.2hands": "2 mains",
|
||||
"BOL.equipmentSlots.rarm": "Bras droit",
|
||||
"BOL.equipmentSlots.larm": "Bras gauche",
|
||||
"BOL.equipmentSlots.chest": "Torse",
|
||||
"BOL.equipmentSlots.belt": "Ceinture",
|
||||
"BOL.equipmentSlots.legs": "Jambes",
|
||||
"BOL.equipmentSlots.feet": "Pieds",
|
||||
"BOL.equipmentSlots.finder": "Doigt",
|
||||
"BOL.equipmentSlots.ear": "Oreille",
|
||||
|
||||
"BOL.vehicleCategory.mount": "Monture terrestre",
|
||||
"BOL.vehicleCategory.flying": "Monture volante",
|
||||
"BOL.vehicleCategory.boat": "Bateau",
|
||||
"BOL.vehicleCategory.other": "Autre",
|
||||
|
||||
"BOL.range.PointBlank": "Bout portant",
|
||||
"BOL.range.Short": "Courte",
|
||||
"BOL.range.Medium": "Moyenne",
|
||||
"BOL.range.Long": "Long",
|
||||
"BOL.range.VeryLong": "Très longue",
|
||||
"BOL.range.Extreme": "Extrême",
|
||||
"BOL.range.Maximum": "Maximale",
|
||||
|
||||
"BOL.notification.MacroMultipleTokensSelected": "Vous avez sélectionné plusieurs tokens",
|
||||
"BOL.notification.MacroNoActorAvailable": "Aucun acteur n'a pu être ciblé",
|
||||
"BOL.notification.MacroNoTokenSelected": "Vous devez sélectionner un token",
|
||||
|
||||
"BOL.size.tiny": "Minuscule",
|
||||
"BOL.size.verysmall": "Très petite",
|
||||
"BOL.size.small": "Petite",
|
||||
"BOL.size.medium": "Moyenne",
|
||||
"BOL.size.large": "Grande",
|
||||
"BOL.size.verylarge": "Très grande",
|
||||
"BOL.size.huge": "Enorme",
|
||||
"BOL.size.massive": "Massive",
|
||||
"BOL.size.enormous": "Colossale",
|
||||
"BOL.size.gigantic": "Gigantesque",
|
||||
"BOL.size.immense": "Immense",
|
||||
"BOL.size.colossal": "Monstrueuse",
|
||||
|
||||
"BOL.chat.fightactive": "{name} active son option de combat {foName} pour ce round !",
|
||||
"BOL.chat.fightunactive": "{name} désactive son option de combat {foName} pour ce round !",
|
||||
"BOL.chat.isdead": "{name} est mort !",
|
||||
"BOL.chat.epitaph": "Que son nom soit honoré sur les champs de batailles de Lémurie !",
|
||||
"BOL.chat.vitalityzero": "La Vitalité de {name} est {hp} : il va s'écrouler au sol et sombrer dans l'inconscience !",
|
||||
"BOL.chat.vitalityheroism": "Vous pouvez dépenser 1 Point d'Héroisme pour reprendre vos esprits pendant 1 round.",
|
||||
"BOL.chat.vitalityheroismhint": "Dans ce cas votre vitalité remonte à son maximum divisé par 2 (arrondi au supérieur).",
|
||||
"BOL.chat.vitalitydying": "La Vitalité de {name} est de {hp} ! Il est mourant ...",
|
||||
"BOL.chat.vitalitydyingheroism": "Vous pouvez cependant dépenser 1 Point d'Héroisme pour Défier la Mort (cf. page 58).",
|
||||
"BOL.chat.alchemytitle": "Préparation Alchimique : {name}",
|
||||
"BOL.chat.alchemypoints": "Points de Création Investis : {pcCostCurrent}",
|
||||
"BOL.chat.alchemysuccess": "La préparation alchimique a été réalisée avec succès !<br>Créez l'item ou l'effet correspondant dans votre Inventaire.<br>L'avancement dans la préparation a été remis à 0.",
|
||||
"BOL.chat.alchemyfailure": "La préparation alchimique a échouée !<br>L'avancement dans la préparation a été remis à 0.",
|
||||
"BOL.chat.rolldamage": "Lancer les dommages",
|
||||
"BOL.chat.rolldamage6": "Lancer les dommages +6",
|
||||
"BOL.chat.rolldamage12": "Dommages +12 (1 Pt. d'Heroisme)",
|
||||
"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.toheroic": "Transformer en succés Héroïque (1 P. Héroisme)",
|
||||
"BOL.chat.tolegend": "Transformer en succes Légendaire (1 P. Heroisme)",
|
||||
"BOL.chat.hurttitle": "{name} va encaisser {damageTotal} dégats !",
|
||||
"BOL.chat.armordefault": "C'est une attaque au défaut de l'armure : vous devez encaisser SANS la protection de l'armure !",
|
||||
"BOL.chat.witharmor": "Encaisser avec la protection de l'armure",
|
||||
"BOL.chat.withoutarmor": "Encaisser sans la protection de l'armure",
|
||||
"BOL.chat.shakeoff": "Juste une égratignure (1 Point d'Héroisme)",
|
||||
"BOL.chat.splinteredshield": "Parade in Extremis avec {name} (1 Point d'Héroisme)",
|
||||
"BOL.chat.damagesummary": "Dégats subis par {name}",
|
||||
"BOL.chat.protectvalue": "Protection de l'armure",
|
||||
"BOL.chat.noprotectvalue": "Aucune protection d'armure !",
|
||||
"BOL.chat.heroreducedamage": "Un point d'héroisme dépensé, pour une réduction des dommages supplémentaire de {total}.",
|
||||
"BOL.chat.herosplintered": "Aucun dommage encaissé, grâce à la parade in-extremis avec {weaponHero.name}. L'arme a été détruite pendant cette parade ! Un point d'héroisme a également été dépensé.",
|
||||
"BOL.chat.finaldamage": "Encaissement final : {finalDamage} dégats !",
|
||||
"BOL.chat.spell": "Sort",
|
||||
"BOL.chat.spellcost": "Cout en Points de Pouvoir",
|
||||
"BOL.chat.spellremaining": "Points de Pouvoir restants",
|
||||
"BOL.chat.nodamagesummary": "Aucun dégats n'a été subi ....",
|
||||
"BOL.chat.damageresume": "{name} a subi des blessures ...",
|
||||
"BOL.chat.fumblemessage": "Si vous acceptez les conséquences d'un echec catastrophique (au choix du MJ), vous pourrez bénéficier d'1 point d'Héroïsme supplémentaire",
|
||||
"BOL.chat.rangeinfo": "Tir/Lancer de {attackerName} vers {defenderName}",
|
||||
"BOL.chat.rangeweaponinfo": "Arme : {weaponName} - Portée de base {weaponRange}",
|
||||
"BOL.chat.rangeout": "Modificateur : Hors de portée",
|
||||
"BOL.chat.range0": "Modificateur : Bout portant (+1)",
|
||||
"BOL.chat.range1": "Modificateur : Portée courte (0)",
|
||||
"BOL.chat.range2": "Modificateur : Portée moyenne (-1)",
|
||||
"BOL.chat.range3": "Modificateur : Portée longue (-2)",
|
||||
"BOL.chat.range4": "Modificateur : Portée très longue (-4)",
|
||||
"BOL.chat.range5": "Modificateur : Portée extrême (-6)",
|
||||
"BOL.chat.range6": "Modificateur : Portée maximale (-8)",
|
||||
"BOL.chat.rangeprefix": "Distance évaluée : ",
|
||||
"BOL.chat.rangevisible": "La ligne de vue est dégagée entre les protagonistes.",
|
||||
"BOL.chat.rangenotvisible": "La ligne de vue est bloquée entre les protagonistes.",
|
||||
"BOL.chat.rangetitle": "Information MJ",
|
||||
"BOL.chat.weaponreroll1": "Pour information, cette arme relance les 1 sur ses dégâts.",
|
||||
"BOL.chat.rollbougette": "Jet de Bougette",
|
||||
"BOL.chat.bougettesuccess": "Votre bougette reste inchangée !",
|
||||
"BOL.chat.bougettefailure": "Vous avez trop dépensé, votre bougette s'est réduite...",
|
||||
"BOL.chat.initiative": "Rang d'intiative (10 à 1)",
|
||||
"BOL.chat.horoscope": "Horoscope",
|
||||
"BOL.chat.horoscopepoints": "Coût : {points} Points d'Astrologie",
|
||||
"BOL.chat.horoscopeminorsuccess": "Votre horoscope mineur est un succès : éditez le nom de l'horoscope sur votre fiche. Vous bénéficiez d'1 dé Bonus pour cette situation.",
|
||||
"BOL.chat.horoscopeminorfailure": "Votre horoscope mineur est un échec : éditez le nom de l'horoscope sur votre fiche. Vous souffrez d'1 dé Malus pour cette situation.",
|
||||
"BOL.chat.horoscopemajorsuccess": "Votre horoscope majeur est un succès : vous bénéficiez d'1 point d'Héroisme pour cette aventure. Ce point a été ajouté automatiquement.",
|
||||
"BOL.chat.horoscopemajorfailure": "Votre horoscope majeur est un échec : vous perdez 1 point d'Héroisme pour cette aventure. Ce point a été enlevé automatiquement.",
|
||||
"BOL.chat.horoscopemajorgroupsuccess": "Votre horoscope majeur de groupe est un succès. Vous et vos amis bénéficiez de {careerBonus} dés bonus pendant cette aventure.",
|
||||
"BOL.chat.horoscopemajorgroupfailure": "Votre horoscope majeur de groupe est un échec. Vous et vos amis souffrez de {careerBonus} dés malus pendant cette aventure.",
|
||||
"BOL.chat.usedhoroscope": "Horoscope utilisé",
|
||||
"BOL.chat.horoscopedeleted": "Le(s) Horoscopes utilisé(s) a/ont été supprimé(s) automatiquement.",
|
||||
"BOL.chat.criticaloptions": "Succès critique !! Vous pouvez faire (1 option au choix) :",
|
||||
"BOL.chat.criticalcarnage": "Faire un Carnage : vous avez une attaque gratuite supplémentaire. Cette seconde attaque ne peut bénéficier d'un Point d'Héroisme.",
|
||||
"BOL.chat.criticalplus6": "Coup Dévastateur : +6 aux dommages (cf bouton ci-dessous).",
|
||||
"BOL.chat.criticalprecise": "Coup Précis : Vous frappez pour diminuer les capacités de votre adversaire. Décrivez ce que vous faites, et si le MJ l'accepte, votre opposant subira un Dé de Malus pour les actions concernées.",
|
||||
"BOL.chat.criticalunarm": "Désarmement : Si votre adversaire a une arme en main, vous le désarmez.",
|
||||
"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, 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.criticalbuttonjournal": "Succès Héroïque/Légendaire",
|
||||
|
||||
"BOL.dialog.soeasy": "Inmanquable (+4)",
|
||||
"BOL.dialog.veryeasy": "Trés Facile (+2)",
|
||||
"BOL.dialog.easy": "Facile (+1)",
|
||||
"BOL.dialog.moderate": "Moyenne (0)",
|
||||
"BOL.dialog.hard": "Ardue (-1)",
|
||||
"BOL.dialog.tough": "Difficile (-2)",
|
||||
"BOL.dialog.demanding": "Très Difficile (-4)",
|
||||
"BOL.dialog.formidable": "Impossible (-6)",
|
||||
"BOL.dialog.heroic": "Héroïque (-8)",
|
||||
"BOL.dialog.mythic": "Mythique (-10)",
|
||||
"BOL.dialog.divine": "Divine (-12)",
|
||||
|
||||
"BOL.dialog.pointblank": "Bout portant (+1)",
|
||||
"BOL.dialog.close": "Courte (0)",
|
||||
"BOL.dialog.medium": "Moyenne (-1))",
|
||||
"BOL.dialog.long": "Longue (-2)",
|
||||
"BOL.dialog.distant": "Très longue (-4)",
|
||||
"BOL.dialog.extreme": "Extrême (-6)",
|
||||
"BOL.dialog.utmost": "Maximale (-8)",
|
||||
|
||||
"BOL.ui.name": "Nom",
|
||||
"BOL.ui.xp": "Experience",
|
||||
"BOL.ui.xpspent": "Dépensée",
|
||||
"BOL.ui.xptotal": "Totale",
|
||||
"BOL.ui.biosize": "Taille",
|
||||
"BOL.ui.bioweight": "Poids",
|
||||
"BOL.ui.bioage": "Age",
|
||||
"BOL.ui.biohair": "Cheveux",
|
||||
"BOL.ui.bioeyes": "Yeux",
|
||||
"BOL.ui.biosigns": "Signes distinctifs",
|
||||
"BOL.ui.biodescription": "Description",
|
||||
"BOL.ui.bionotes": "Notes",
|
||||
|
||||
"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.welcome6": "Bon jeu en Lemurie !"
|
||||
|
||||
}
|
90
lang/fr.json
90
lang/fr.json
@ -1,19 +1,12 @@
|
||||
{
|
||||
"TYPES": {
|
||||
"Actor": {
|
||||
"character": "Personnage",
|
||||
"encounter": "PNJ",
|
||||
"npc": "PNJ",
|
||||
"vehicle": "Véhicule",
|
||||
"horde": "Horde"
|
||||
},
|
||||
"Item": {
|
||||
"item": "Objet",
|
||||
"feature": "Trait",
|
||||
"weapon": "Arme",
|
||||
"armure": "Armure"
|
||||
}
|
||||
},
|
||||
"ACTOR.TypeCharacter": "Personnage",
|
||||
"ACTOR.TypeEncounter": "Rencontre",
|
||||
"ACTOR.TypeVehicle": "Véhicule",
|
||||
"ITEM.TypeItem": "Objet",
|
||||
"ITEM.TypeFeature": "Trait",
|
||||
"ITEM.TypeWeapon": "Arme",
|
||||
"ITEM.TypeArmor": "Armure",
|
||||
|
||||
"BOL.attributes.vigor": "Vigueur",
|
||||
"BOL.attributes.halfvigor": "Demi-vigueur",
|
||||
"BOL.attributes.agility": "Agilité",
|
||||
@ -141,12 +134,6 @@
|
||||
"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 ?",
|
||||
@ -204,15 +191,12 @@
|
||||
"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": "Créature",
|
||||
"BOL.ui.undead": "Mort vivant",
|
||||
"BOL.ui.daemon": "Démon",
|
||||
"BOL.ui.creature": "Creature",
|
||||
"BOL.ui.rabble": "Piétaille",
|
||||
"BOL.ui.tough": "Coriace",
|
||||
"BOL.ui.villain": "Rival",
|
||||
@ -235,18 +219,7 @@
|
||||
"BOL.ui.noinit": "Pas d'initiative trouvée, veuillez en enregistrer une.",
|
||||
"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",
|
||||
@ -272,7 +245,6 @@
|
||||
"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",
|
||||
@ -501,14 +473,12 @@
|
||||
"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.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 dh'Eheoisme en plus, tout ces effets peuvent être doublés",
|
||||
"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 !",
|
||||
@ -566,11 +536,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 ! Choisissez vos options et effets !",
|
||||
"BOL.chat.criticallegendaryinfo": "C'est un succès Légendaire ! Choisissez vos options et effets !",
|
||||
"BOL.chat.criticalinfo": "C'est un succès Héroïque ou 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.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.",
|
||||
|
||||
@ -606,8 +575,6 @@
|
||||
"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>",
|
||||
@ -615,32 +582,5 @@
|
||||
"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.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é)",
|
||||
"BOL.settings.useBougette": "Utiliser la Bougette (règle fan-made)",
|
||||
"BOL.settings.useBougetteTooltip": "Utilise un indicateur de Bougette, comme décrit dans l'aide de jeu Annales Lemurienne du RatierBretonnien (https://www.lahiette.com/leratierbretonnien/)",
|
||||
"BOL.settings.removeDead": "Enlever les PNJs morts automatiquement au round suivant",
|
||||
"BOL.settings.removeDeadTooltip": "Supprime les PNJ (piétaille, créatures, coriaces) automatiquement du combat lorsqu'ils sont à 0 Vitalité ou moins, lors du passage au round suivant",
|
||||
"BOL.settings.diceFormula": "Formule de dés",
|
||||
"BOL.settings.diceFormulaTooltip": "Formule de dés utilisée pour les jets de dés (par défaut 2d6)",
|
||||
"BOL.settings.diceSuccessValue" : "Seuil de succès",
|
||||
"BOL.settings.diceSuccessValueTooltip": "Seuil de succès pour les jets de dés (par défaut 9 pour 2d6)",
|
||||
"BOL.settings.diceCriticalValue" : "Seuil de succès critique",
|
||||
"BOL.settings.diceCriticalValueTooltip": "Seuil de succès critique pour les jets de dés (par défaut 12 pour 2d6)",
|
||||
"BOL.settings.diceCriticalFailure" : "Valeur max d'échec critique",
|
||||
"BOL.settings.diceCriticalFailureTooltip": "Valeur max d'échec critique pour les jets de dés (par défaut 2 pour 2d6)",
|
||||
"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)",
|
||||
|
||||
"EFFECT.StatusProne": "A terre",
|
||||
"EFFECT.StatusDead": "Mort"
|
||||
"BOL.chat.nodamage": "Ne pas appliquer les dommages"
|
||||
}
|
@ -9,7 +9,7 @@ export class BoLActorSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
return 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,19 +47,10 @@ 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: game.i18n.localize("BOL.ui.newEquipment"), type: "item" }], { renderSheet: true });
|
||||
html.find('.create_item').click(ev => {
|
||||
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvel Equipement", 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"))
|
||||
@ -131,8 +122,8 @@ export class BoLActorSheet extends ActorSheet {
|
||||
/** @override */
|
||||
async getData(options) {
|
||||
const data = super.getData(options)
|
||||
const actorData = foundry.utils.duplicate(data)
|
||||
let formData = foundry.utils.duplicate(data)
|
||||
const actorData = duplicate(data)
|
||||
let formData = duplicate(data)
|
||||
|
||||
formData.config = game.bol.config
|
||||
formData.data = actorData
|
||||
@ -156,7 +147,6 @@ 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()
|
||||
@ -165,13 +155,12 @@ 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.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.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.isSorcerer = this.actor.isSorcerer()
|
||||
formData.isAlchemist = this.actor.isAlchemist()
|
||||
formData.isAstrologer = this.actor.isAstrologer()
|
||||
@ -197,7 +186,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 = foundry.utils.duplicate(header.dataset);
|
||||
const data = duplicate(header.dataset);
|
||||
// Initialize a default name.
|
||||
const name = `New ${type.capitalize()}`;
|
||||
// Prepare the item object.
|
||||
@ -259,22 +248,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
|
||||
case "bougette":
|
||||
this.actor.rollBougette()
|
||||
break;
|
||||
|
||||
break
|
||||
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
@ -7,35 +7,6 @@ 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 == '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() {
|
||||
|
||||
@ -47,44 +18,19 @@ export class BoLActor extends Actor {
|
||||
this.chartype = 'tough'
|
||||
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 });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -92,7 +38,10 @@ export class BoLActor extends Actor {
|
||||
if (this.type === 'character') {
|
||||
return true
|
||||
}
|
||||
return (this.type === 'encounter' && this.chartype == "adversary")
|
||||
if (this.type === 'encounter' && this.chartype == "adversary") {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -105,10 +54,10 @@ export class BoLActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getVillainy() {
|
||||
return (this.type === 'encounter' && this.chartype == "adversary")
|
||||
}
|
||||
isUndead() {
|
||||
return (this.type == "encounter" && this.system.isundead)
|
||||
if (this.type === 'encounter' && this.chartype == "adversary") {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getInitiativeMalus() {
|
||||
@ -120,7 +69,7 @@ export class BoLActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
getBougette() {
|
||||
if (this.type == "character") {
|
||||
let b = foundry.utils.duplicate(this.system.bougette)
|
||||
let b = 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
|
||||
@ -131,7 +80,7 @@ export class BoLActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async rollBougette() {
|
||||
if (this.type == "character") {
|
||||
let attribute = foundry.utils.duplicate(this.system.attributes.vigor)
|
||||
let attribute = 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)
|
||||
@ -142,7 +91,7 @@ export class BoLActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
decBougette() {
|
||||
if (this.type == "character") {
|
||||
let bougette = foundry.utils.duplicate(this.system.bougette)
|
||||
let bougette = duplicate(this.system.bougette)
|
||||
bougette.value = Math.max(Number(bougette.value) - 1, 0)
|
||||
this.update({ 'system.bougette': bougette })
|
||||
}
|
||||
@ -196,7 +145,7 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
}
|
||||
get attributes() {
|
||||
let attrList = foundry.utils.duplicate(Object.values(this.system.attributes))
|
||||
let attrList = duplicate(Object.values(this.system.attributes))
|
||||
this.addEffectModifiers(attrList, "system.attributes.")
|
||||
return attrList
|
||||
}
|
||||
@ -250,40 +199,21 @@ 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 foundry.utils.duplicate(it)
|
||||
return 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 = foundry.utils.duplicate(this.system.attributes[key])
|
||||
let attr = duplicate(this.system.attributes[key])
|
||||
if (attr) {
|
||||
let nextXP = (attr.value == -1) ? 2 : attr.value + (attr.value + 1)
|
||||
let xp = foundry.utils.duplicate(this.system.xp)
|
||||
let xp = 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 !")
|
||||
}
|
||||
@ -292,15 +222,14 @@ export class BoLActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
incAptitudeXP(key) {
|
||||
let apt = foundry.utils.duplicate(this.system.aptitudes[key])
|
||||
let apt = duplicate(this.system.aptitudes[key])
|
||||
if (apt) {
|
||||
let nextXP = (apt.value == -1) ? 1 : apt.value + 2
|
||||
let xp = foundry.utils.duplicate(this.system.xp)
|
||||
let xp = 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 !")
|
||||
}
|
||||
@ -310,14 +239,13 @@ export class BoLActor extends Actor {
|
||||
incCareerXP(itemId) {
|
||||
let career = this.items.get(itemId)
|
||||
if (career) {
|
||||
career = foundry.utils.duplicate(career)
|
||||
career = duplicate(career)
|
||||
let nextXP = career.system.rank + 1
|
||||
let xp = foundry.utils.duplicate(this.system.xp)
|
||||
let xp = 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 !")
|
||||
}
|
||||
@ -331,7 +259,7 @@ export class BoLActor extends Actor {
|
||||
let updates = []
|
||||
|
||||
if (fightOption) {
|
||||
fightOption = foundry.utils.duplicate(fightOption)
|
||||
fightOption = duplicate(fightOption)
|
||||
if (fightOption.system.properties.activated) {
|
||||
state = false
|
||||
} else {
|
||||
@ -370,20 +298,17 @@ 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 foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "boon") || []);
|
||||
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "boon") || []);
|
||||
}
|
||||
get flaws() {
|
||||
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw") || []);
|
||||
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw") || []);
|
||||
}
|
||||
get careers() {
|
||||
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "career") || [])
|
||||
return 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");
|
||||
@ -465,23 +390,31 @@ 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 foundry.utils.duplicate(boons || [])
|
||||
return duplicate(boons || [])
|
||||
}
|
||||
get malusFlaws() {
|
||||
return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw" && i.system.properties.ismalusdice) || []);
|
||||
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw" && i.system.properties.ismalusdice) || []);
|
||||
}
|
||||
|
||||
isSorcerer() {
|
||||
return (this.careers.find(item => item.system.properties.sorcerer))
|
||||
if (this.careers.find(item => item.system.properties.sorcerer == true))
|
||||
return true
|
||||
return false
|
||||
}
|
||||
isAlchemist() {
|
||||
return (this.careers.find(item => item.system.properties.alchemist))
|
||||
if (this.careers.find(item => item.system.properties.alchemist == true))
|
||||
return true
|
||||
return false
|
||||
}
|
||||
isAstrologer() {
|
||||
return (this.careers.find(item => item.system.properties.astrologer))
|
||||
if (this.careers.find(item => item.system.properties.astrologer == true))
|
||||
return true
|
||||
return false
|
||||
}
|
||||
isPriest() {
|
||||
return (this.careers.find(item => item.system.properties.priest))
|
||||
if (this.careers.find(item => item.system.properties.priest == true))
|
||||
return true
|
||||
return false
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
@ -551,7 +484,7 @@ export class BoLActor extends Actor {
|
||||
|
||||
/*-------------------------------------------- */
|
||||
spentAstrologyPoints(points) {
|
||||
let astrology = foundry.utils.duplicate(this.system.resources.astrologypoints)
|
||||
let astrology = duplicate(this.system.resources.astrologypoints)
|
||||
astrology.value -= points
|
||||
astrology.value = Math.max(astrology.value, 0)
|
||||
this.update({ 'system.resources.astrologypoints': astrology })
|
||||
@ -602,8 +535,8 @@ export class BoLActor extends Actor {
|
||||
rollData.horoscopeName = actorHoroscope.name
|
||||
}
|
||||
if (rollData.horoscopeType == "majorgroup") {
|
||||
let rID = foundry.utils.randomID(16)
|
||||
let horoscopes = foundry.utils.duplicate(game.settings.get("bol", "horoscope-group"))
|
||||
let rID = randomID(16)
|
||||
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
|
||||
horoscopes[rID] = {
|
||||
id: rID,
|
||||
name: game.i18n.localize("BOL.ui.groupHoroscope") + this.name,
|
||||
@ -635,7 +568,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
|
||||
@ -649,7 +582,7 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
getAstrologerBonus() {
|
||||
let astrologer = this.careers.find(item => item.system.properties.astrologer)
|
||||
let astrologer = this.careers.find(item => item.system.properties.astrologer == true)
|
||||
if (astrologer) {
|
||||
return astrologer.system.rank
|
||||
}
|
||||
@ -657,7 +590,7 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
getAlchemistBonus() {
|
||||
let sorcerer = this.careers.find(item => item.system.properties.alchemist)
|
||||
let sorcerer = this.careers.find(item => item.system.properties.alchemist == true)
|
||||
if (sorcerer) {
|
||||
return sorcerer.system.rank
|
||||
}
|
||||
@ -665,7 +598,7 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
getSorcererBonus() {
|
||||
let sorcerer = this.careers.find(item => item.system.properties.sorcerer)
|
||||
let sorcerer = this.careers.find(item => item.system.properties.sorcerer == true)
|
||||
if (sorcerer) {
|
||||
return sorcerer.system.rank
|
||||
}
|
||||
@ -696,7 +629,7 @@ export class BoLActor extends Actor {
|
||||
resources['power'] = this.system.resources.power
|
||||
}
|
||||
if (this.system.chartype == 'adversary') {
|
||||
resources['hero'] = foundry.utils.duplicate(this.system.resources.hero)
|
||||
resources['hero'] = duplicate(this.system.resources.hero)
|
||||
resources['hero'].label = "BOL.resources.villainy"
|
||||
}
|
||||
} else {
|
||||
@ -842,17 +775,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.name == game.i18n.localize("EFFECT.StatusProne"))
|
||||
let dead = this.effects.find(ef => ef.name == game.i18n.localize("EFFECT.StatusDead"))
|
||||
let prone = this.effects.find(ef => ef.label == "EFFECT.StatusProne")
|
||||
let dead = this.effects.find(ef => ef.label == "EFFECT.StatusDead")
|
||||
if (this.system.resources.hp.value <= 0) {
|
||||
if (!prone) {
|
||||
await this.createEmbeddedDocuments("ActiveEffect", [
|
||||
{ name: game.i18n.localize('EFFECT.StatusProne'), icon: 'icons/svg/falling.svg', statuses: 'prone' }
|
||||
{ label: 'EFFECT.StatusProne', icon: 'icons/svg/falling.svg', flags: { core: { statusId: 'prone' } } }
|
||||
])
|
||||
}
|
||||
if (this.system.resources.hp.value < -5 && !dead) {
|
||||
await this.createEmbeddedDocuments("ActiveEffect", [
|
||||
{ name: game.i18n.localize('EFFECT.StatusDead'), icon: 'icons/svg/skull.svg', statuses: 'dead' }
|
||||
{ label: 'EFFECT.StatusDead', icon: 'icons/svg/skull.svg', flags: { core: { statusId: 'dead' } } }
|
||||
])
|
||||
}
|
||||
ChatMessage.create({
|
||||
@ -879,7 +812,7 @@ export class BoLActor extends Actor {
|
||||
|
||||
/*-------------------------------------------- */
|
||||
storeVitaliteCombat() {
|
||||
this.setFlag("world", "vitalite-before-combat", foundry.utils.duplicate(this.system.resources.hp))
|
||||
this.setFlag("world", "vitalite-before-combat", duplicate(this.system.resources.hp))
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
async displayRecuperation() {
|
||||
@ -903,7 +836,7 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
async applyRecuperation(recupHP) {
|
||||
let hp = foundry.utils.duplicate(this.system.resources.hp)
|
||||
let hp = duplicate(this.system.resources.hp)
|
||||
//console.log("RECUP !!!!", hp, recupHP)
|
||||
hp.value += Number(recupHP)
|
||||
hp.value = Math.min(hp.value, hp.max)
|
||||
@ -931,7 +864,10 @@ export class BoLActor extends Actor {
|
||||
checkNumeric(myObject) {
|
||||
if (myObject) {
|
||||
for (let key in myObject) {
|
||||
if (myObject[key].value === null || isNaN(myObject[key].value)) {
|
||||
if (myObject[key].value === null) {
|
||||
myObject[key].value = 0
|
||||
}
|
||||
if (myObject[key].value === NaN) {
|
||||
myObject[key].value = 0
|
||||
}
|
||||
}
|
||||
@ -949,39 +885,11 @@ 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 = undefined) {
|
||||
getInitiativeRank(rollData = undefined, isCombat = false, combatData) {
|
||||
let fvttInit = 4 // Pietaille par defaut
|
||||
if (this.type == 'character') {
|
||||
fvttInit = 5
|
||||
@ -1047,15 +955,8 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
async sufferDamage(damage) {
|
||||
let updates = {}
|
||||
let newHP = this.system.resources.hp.value - damage
|
||||
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)
|
||||
|
||||
await this.update({ 'system.resources.hp.value': newHP })
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -1086,21 +987,20 @@ export class BoLActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollProtection(itemId) {
|
||||
let armor = foundry.utils.duplicate(this.items.get(itemId))
|
||||
rollProtection(itemId) {
|
||||
let armor = duplicate(this.items.get(itemId))
|
||||
if (armor) {
|
||||
let armorFormula = "max(" + armor.system.properties.soak.formula + ", 0)"
|
||||
let rollArmor = new Roll(armorFormula)
|
||||
await rollArmor.roll()
|
||||
rollArmor.toMessage()
|
||||
rollArmor.roll({ async: false }).toMessage()
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
rollWeaponDamage(itemId) {
|
||||
let weapon = foundry.utils.duplicate(this.items.get(itemId))
|
||||
let weapon = duplicate(this.items.get(itemId))
|
||||
if (weapon) {
|
||||
let r = new BoLDefaultRoll({ id: foundry.utils.randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this })
|
||||
let r = new BoLDefaultRoll({ id: randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this })
|
||||
r.setSuccess(true)
|
||||
r.rollDamage()
|
||||
}
|
||||
@ -1110,7 +1010,7 @@ export class BoLActor extends Actor {
|
||||
toggleEquipItem(item) {
|
||||
const equipable = item.system.properties.equipable;
|
||||
if (equipable) {
|
||||
let itemData = foundry.utils.duplicate(item);
|
||||
let itemData = duplicate(item);
|
||||
itemData.system.worn = !itemData.system.worn;
|
||||
return item.update(itemData);
|
||||
}
|
||||
|
@ -1,217 +0,0 @@
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ export class BoLVehicleSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["bol", "sheet", "actor"],
|
||||
template: "systems/bol/templates/actor/vehicle-sheet.hbs",
|
||||
width: 860,
|
||||
@ -116,12 +116,13 @@ export class BoLVehicleSheet extends ActorSheet {
|
||||
/** @override */
|
||||
async getData(options) {
|
||||
const data = super.getData(options)
|
||||
let formData = foundry.utils.duplicate(data)
|
||||
const actorData = duplicate(data)
|
||||
let formData = 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.system = duplicate(this.actor.system)
|
||||
formData.weapons = this.actor.vehicleWeapons
|
||||
formData.isGM = game.user.isGM
|
||||
formData.options = this.options
|
||||
@ -147,7 +148,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 = foundry.utils.duplicate(header.dataset);
|
||||
const data = duplicate(header.dataset);
|
||||
// Initialize a default name.
|
||||
const name = `New ${type.capitalize()}`;
|
||||
// Prepare the item object.
|
||||
|
@ -3,7 +3,6 @@
|
||||
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"
|
||||
@ -15,8 +14,9 @@ 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 { BoLCommands } from "./system/bol-commands.js"
|
||||
import { BoLRoll } from "./controllers/bol-rolls.js"
|
||||
import { BoLAdventureGenerator } from "./system/bol-adventure-generator.js"
|
||||
import { BoLCommands} from "./system/bol-commands.js"
|
||||
import { BoLCharacterSummary} from "./system/bol-character-summary.js"
|
||||
|
||||
/* -------------------------------------------- */
|
||||
Hooks.once('init', async function () {
|
||||
@ -25,12 +25,10 @@ Hooks.once('init', async function () {
|
||||
BoLActor,
|
||||
BoLItem,
|
||||
BoLHotbar,
|
||||
BoLRoll,
|
||||
BoLUtility,
|
||||
macros: Macros,
|
||||
config: BOL
|
||||
};
|
||||
|
||||
|
||||
// Game socket
|
||||
game.socket.on("system.bol", sockmsg => {
|
||||
BoLUtility.onSocketMessage(sockmsg);
|
||||
@ -55,7 +53,6 @@ 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 });
|
||||
@ -65,7 +62,8 @@ Hooks.once('init', async function () {
|
||||
BoLTokenHud.init()
|
||||
BoLHotbar.init()
|
||||
BoLCommands.init()
|
||||
|
||||
BoLAdventureGenerator.init()
|
||||
|
||||
// Preload Handlebars Templates
|
||||
await preloadHandlebarsTemplates();
|
||||
|
||||
@ -77,52 +75,57 @@ Hooks.once('init', async function () {
|
||||
|
||||
});
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// 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-bol"><span class="rdd-roll-part">
|
||||
content: `<div id="welcome-message-pegasus"><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
|
||||
});
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
@ -19,9 +19,11 @@ export class BoLRoll {
|
||||
static updateApplicableEffects(rollData) {
|
||||
let appEffects = []
|
||||
for (let effect of rollData.bolEffects) {
|
||||
if ( (effect.system.properties.identifier == "always") ||
|
||||
(effect.system.properties.identifier.includes(rollData.attribute.key)) ||
|
||||
(rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key)) ){
|
||||
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)) {
|
||||
appEffects.push(effect)
|
||||
}
|
||||
}
|
||||
@ -60,10 +62,10 @@ export class BoLRoll {
|
||||
armorInitMalus: actor.getArmorInitMalus(),
|
||||
horoscopeBonusList: actor.getHoroscopesBonus(),
|
||||
horoscopeMalusList: actor.getHoroscopesMalus(),
|
||||
config: game.bol.config,
|
||||
adv: "0",
|
||||
mod: 0,
|
||||
modRanged: 0,
|
||||
aptValue: 0,
|
||||
bolEffects: actor.boleffects,
|
||||
horoscopeGroupList: this.buildHoroscopeGroupList()
|
||||
}
|
||||
@ -76,7 +78,7 @@ export class BoLRoll {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static attributeCheck(actor, key="vigor", event=undefined, combatData=undefined) {
|
||||
static attributeCheck(actor, key, event, combatData) {
|
||||
|
||||
let attribute = eval(`actor.system.attributes.${key}`)
|
||||
|
||||
@ -89,7 +91,7 @@ export class BoLRoll {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static aptitudeCheck(actor, key="init", event=undefined, combatData=undefined) {
|
||||
static aptitudeCheck(actor, key, event, combatData) {
|
||||
|
||||
let aptitude = eval(`actor.system.aptitudes.${key}`)
|
||||
let attrKey = this.getDefaultAttribute(key)
|
||||
@ -183,7 +185,7 @@ export class BoLRoll {
|
||||
ui.notifications.warn("Unable to find weapon !")
|
||||
return
|
||||
}
|
||||
weapon = foundry.utils.duplicate(weapon)
|
||||
weapon = duplicate(weapon)
|
||||
return this.weaponCheckWithWeapon(actor, weapon)
|
||||
}
|
||||
|
||||
@ -195,7 +197,7 @@ export class BoLRoll {
|
||||
ui.notifications.warn("Unable to find Alchemy !");
|
||||
return;
|
||||
}
|
||||
alchemy = foundry.utils.duplicate(alchemy)
|
||||
alchemy = 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 !")
|
||||
@ -269,7 +271,7 @@ export class BoLRoll {
|
||||
ui.notifications.warn("Impossible de trouver ce sort !")
|
||||
return
|
||||
}
|
||||
spell = foundry.utils.duplicate(spell)
|
||||
spell = duplicate(spell)
|
||||
return this.spellCheckWithSpell(actor, spell)
|
||||
}
|
||||
|
||||
@ -402,7 +404,7 @@ export class BoLRoll {
|
||||
html.find('#attr').change((event) => {
|
||||
let attrKey = event.currentTarget.value
|
||||
let actor = BoLUtility.getActorFromRollData(this.rollData)
|
||||
this.rollData.attribute = foundry.utils.duplicate(actor.system.attributes[attrKey])
|
||||
this.rollData.attribute = duplicate(actor.system.attributes[attrKey])
|
||||
this.rollData.attrValue = actor.system.attributes[attrKey].value
|
||||
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
|
||||
this.updateTotalDice()
|
||||
@ -410,7 +412,7 @@ export class BoLRoll {
|
||||
html.find('#apt').change((event) => {
|
||||
let aptKey = event.currentTarget.value
|
||||
let actor = BoLUtility.getActorFromRollData(this.rollData)
|
||||
this.rollData.aptitude = foundry.utils.duplicate(actor.system.aptitudes[aptKey])
|
||||
this.rollData.aptitude = duplicate(actor.system.aptitudes[aptKey])
|
||||
this.rollData.aptValue = actor.system.aptitudes[aptKey].value
|
||||
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
|
||||
this.updateTotalDice()
|
||||
@ -453,7 +455,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(foundry.utils.duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
|
||||
this.rollData.selectedHoroscope.push(duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
|
||||
}
|
||||
let horoscopes = $('#horoscope-bonus-applied').val()
|
||||
this.rollData.horoscopeBonus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length
|
||||
@ -463,7 +465,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(foundry.utils.duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
|
||||
this.rollData.selectedHoroscope.push(duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
|
||||
}
|
||||
let horoscopes = $('#horoscope-malus-applied').val()
|
||||
this.rollData.horoscopeMalus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length
|
||||
@ -531,7 +533,7 @@ export class BoLRoll {
|
||||
rollData.careerBonus = rollData.careerBonus ?? 0
|
||||
rollData.modRanged = rollData.modRanged ?? 0
|
||||
rollData.mod = rollData.mod ?? 0
|
||||
rollData.id = foundry.utils.randomID(16)
|
||||
rollData.id = randomID(16)
|
||||
rollData.weaponModifier = 0
|
||||
rollData.attackBonusDice = false
|
||||
rollData.armorMalus = 0
|
||||
@ -568,7 +570,6 @@ 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,40 +619,29 @@ export class BoLDefaultRoll {
|
||||
if (this.rollData.applyId) {
|
||||
BoLUtility.cleanupButtons(this.rollData.applyId)
|
||||
}
|
||||
this.rollData.optionsId = foundry.utils.randomID(16)
|
||||
this.rollData.applyId = foundry.utils.randomID(16)
|
||||
this.rollData.optionsId = randomID(16)
|
||||
this.rollData.applyId = randomID(16)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async roll() {
|
||||
|
||||
const r = new Roll(this.rollData.formula)
|
||||
await r.roll()
|
||||
//console.log("Roll formula", this.rollData.formula)
|
||||
await r.roll({ "async": false })
|
||||
|
||||
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.isFumble = (diceTotal <= diceData.criticalFailureValue)
|
||||
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.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
|
||||
|
||||
let actor = BoLUtility.getActorFromRollData(this.rollData)
|
||||
if (this.rollData.reroll == undefined) {
|
||||
@ -662,7 +652,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)
|
||||
}
|
||||
}
|
||||
@ -701,7 +691,7 @@ export class BoLDefaultRoll {
|
||||
flavor: msgFlavor,
|
||||
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||
})
|
||||
this.rollData.roll = foundry.utils.duplicate(this.rollData.roll) // Remove object, keep data (v111 ready)
|
||||
this.rollData.roll = duplicate(this.rollData.roll) // Remove object, keep data (v111 ready)
|
||||
msg.setFlag("world", "bol-roll-data", this.rollData)
|
||||
})
|
||||
}
|
||||
@ -754,7 +744,7 @@ export class BoLDefaultRoll {
|
||||
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||
flags: { msgType: "default" }
|
||||
})
|
||||
this.rollData.damageRoll = foundry.utils.duplicate(this.rollData.damageRoll)
|
||||
this.rollData.damageRoll = duplicate(this.rollData.damageRoll)
|
||||
this.rollData.actor = undefined // Cleanup
|
||||
msg.setFlag("world", "bol-roll-data", this.rollData)
|
||||
})
|
||||
@ -778,12 +768,8 @@ export class BoLDefaultRoll {
|
||||
if (this.rollData.damageMode == 'damage-plus-6') {
|
||||
bonusDmg = 6
|
||||
}
|
||||
if (this.rollData.damageMode == 'damage-plus-12' || this.rollData.damageMode == 'damage-plus-12-legend') {
|
||||
if (this.rollData.damageMode == 'damage-plus-12') {
|
||||
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)
|
||||
@ -793,7 +779,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()
|
||||
await this.rollData.damageRoll.roll({ "async": false })
|
||||
this.rollData.damageTotal = this.rollData.damageRoll.total
|
||||
console.log("DAMAGE !!!", damageFormula, attrDamageValue, this.rollData)
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ export class BoLItemSheet extends ItemSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["bol", "sheet", "item"],
|
||||
template: "systems/bol/templates/item/item-sheet.hbs",
|
||||
width: 650,
|
||||
@ -21,16 +21,14 @@ export class BoLItemSheet extends ItemSheet {
|
||||
/** @override */
|
||||
async getData(options) {
|
||||
const data = super.getData(options)
|
||||
let itemData = foundry.utils.duplicate(data.document)
|
||||
let itemData = 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) {
|
||||
@ -78,7 +76,7 @@ export class BoLItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
postItem() {
|
||||
let chatData = foundry.utils.duplicate(this.item)
|
||||
let chatData = duplicate(this.item)
|
||||
if (this.actor) {
|
||||
chatData.actor = { id: this.actor.id };
|
||||
}
|
||||
|
620
module/system/adventure_data.json
Normal file
620
module/system/adventure_data.json
Normal file
@ -0,0 +1,620 @@
|
||||
{
|
||||
"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": "d’attaquer un lieu."
|
||||
},
|
||||
{
|
||||
"name": "de détruire un certain objet."
|
||||
},
|
||||
{
|
||||
"name": "de kidnapper quelqu’un."
|
||||
},
|
||||
{
|
||||
"name": "d’obtenir une certaine chose."
|
||||
},
|
||||
{
|
||||
"name": "d’explorer un lieu."
|
||||
},
|
||||
{
|
||||
"name": "de sauver une personne."
|
||||
},
|
||||
{
|
||||
"name": "d’échapper à quelqu’un."
|
||||
},
|
||||
{
|
||||
"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": "d’escorter 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": [
|
||||
"c’est le genre de choses que fait Krongar.",
|
||||
"sinon il finira en prison.",
|
||||
"il est victime d’un 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",
|
||||
"Sa’Tel",
|
||||
"Morgazzon",
|
||||
"Hurm",
|
||||
"Afyra",
|
||||
"Grondil",
|
||||
"Zaggath",
|
||||
"Zalkyr",
|
||||
"Fillana",
|
||||
"Lilandra",
|
||||
"Zylidith",
|
||||
"Quathoomar",
|
||||
"Iondal",
|
||||
"Piandra",
|
||||
"Nemmereth",
|
||||
"Charkond",
|
||||
"Karyzon",
|
||||
"Zarymphyxos",
|
||||
"Kryphondus"
|
||||
],
|
||||
"complique1": [
|
||||
"c’est 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 d’un 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 à l’accomplissement 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": [
|
||||
"d’un ancien secret.",
|
||||
"d’un long voyage.",
|
||||
"d’une malédiction.",
|
||||
"d’un voleur rusé.",
|
||||
"d’une forte troupe de soldats.",
|
||||
"d’un énorme monstre.",
|
||||
"d’une horde de monstres.",
|
||||
"d’un manque de temps.",
|
||||
"de gardes et de pièges magiques.",
|
||||
"d’une catastrophe naturelle sur le point de se produire.",
|
||||
"d’une énigme à résoudre.",
|
||||
"d’une bataille à gagner."
|
||||
],
|
||||
"retournement": [
|
||||
"L’ennemi est en fait Krongar lui-même, venu d’une autre réalité !",
|
||||
"Toute cette histoire était un piège machiavélique !",
|
||||
"L’ennemi est en fait un vieil ami ou un allié qui a comploté dans l’ombre !",
|
||||
"Krongar est contraint de s’associer à un rival pour accomplir la mission !",
|
||||
"Tout ce qui semblait ordinaire se révèle en fait surnaturel !",
|
||||
"L’ennemi 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 n’y a pas de retournement de situation !",
|
||||
"i la mission est accomplie, cela entraînera de terribles répercussions !",
|
||||
"Le destin offre à Krongar une chance d’améliorer les choses, et il est renvoyé dans le temps au début de l’aventure. 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 s’est joué de lui !",
|
||||
"Beaucoup moins qu’escompté.",
|
||||
"Beaucoup moins qu’escompté, mais il gagne au moins la reconnaissance d’une personne haut placée.",
|
||||
"Beaucoup moins qu’escompté, 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 d’une personne haut placée.",
|
||||
"Plus qu’escompté.",
|
||||
"Plus qu’escompté, ainsi que la reconnaissance d’une personne haut placée.",
|
||||
"Plus qu’escompté, et il est marqué par les dieux (avantage).",
|
||||
"Plus qu’escompté, ainsi que la reconnaissance d’une personne haut placée, et il est marqué par les dieux (avantage).",
|
||||
"Une promotion... Longue vie au roi Krongar !"
|
||||
]
|
||||
}
|
@ -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, foundry.utils.duplicate(actionItem))
|
||||
BoLRoll.weaponCheckWithWeapon(hudData.actor, duplicate(actionItem))
|
||||
} else if (actionItem.system.subtype == "fightoption") {
|
||||
let chatData = foundry.utils.duplicate(actionItem)
|
||||
let chatData = duplicate(actionItem)
|
||||
if (actionItem.actor) {
|
||||
chatData.actor = { id: actionItem.actor._id };
|
||||
}
|
||||
|
86
module/system/bol-adventure-generator.js
Normal file
86
module/system/bol-adventure-generator.js
Normal file
@ -0,0 +1,86 @@
|
||||
/* -------------------------------------------- */
|
||||
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})
|
||||
})
|
||||
|
||||
}
|
||||
}
|
@ -40,14 +40,14 @@ export class BoLCalendar extends Application {
|
||||
constructor() {
|
||||
super();
|
||||
// position
|
||||
this.calendarPos = foundry.utils.duplicate(game.settings.get("bol", "calendar-pos"));
|
||||
this.calendarPos = 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 = foundry.utils.duplicate(game.settings.get("bol", "calendar") ?? BoLCalendar.getCalendar(0));
|
||||
this.calendar = 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 foundry.utils.mergeObject(super.defaultOptions, {
|
||||
return 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", foundry.utils.duplicate(this.calendar));
|
||||
game.settings.set("bol", "calendar", 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: foundry.utils.duplicate(this.calendrier)
|
||||
data: duplicate(this.calendrier)
|
||||
});
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ export class BoLCalendar extends Application {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
syncPlayerTime(calendrier) {
|
||||
this.calendrier = foundry.utils.duplicate(calendrier); // Local copy update
|
||||
this.calendrier = 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", foundry.utils.duplicate(this.calendrier));
|
||||
game.settings.set(SYSTEM_RDD, "calendrier", 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", foundry.utils.duplicate(this.calendrier));
|
||||
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier));
|
||||
|
||||
await this.rebuildListeNombreAstral();
|
||||
|
||||
game.socket.emit(SYSTEM_SOCKET_ID, {
|
||||
msg: "msg_sync_time",
|
||||
data: foundry.utils.duplicate(this.calendrier)
|
||||
data: duplicate(this.calendrier)
|
||||
});
|
||||
|
||||
this.updateDisplay();
|
||||
@ -326,7 +326,7 @@ export class BoLCalendar extends Application {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async showCalendarEditor() {
|
||||
let calendrierData = foundry.utils.duplicate(this.fillCalendrierData());
|
||||
let calendrierData = 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 = foundry.utils.duplicate(this.fillCalendrierData());
|
||||
let calendrierData = 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(foundry.utils.duplicate(astralData));
|
||||
astrologieArray.push(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", foundry.utils.duplicate(game.system.rdd.calendrier.calendrierPos));
|
||||
game.settings.set(SYSTEM_RDD, "calendrier-pos", 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", foundry.utils.duplicate(game.system.rdd.calendrier.calendrierPos));
|
||||
game.settings.set(SYSTEM_RDD, "calendrier-pos", duplicate(game.system.rdd.calendrier.calendrierPos));
|
||||
}
|
||||
this.setPos(game.system.rdd.calendrier.calendrierPos);
|
||||
}
|
||||
|
162
module/system/bol-character-summary.js
Normal file
162
module/system/bol-character-summary.js
Normal file
@ -0,0 +1,162 @@
|
||||
/* -------------------------------------------- */
|
||||
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 )
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
@ -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,25 +39,17 @@ 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) {
|
||||
if (c.actor.type == "horde") {
|
||||
let actor = game.actors.get(c.actorId)
|
||||
updates.push({ _id: c.id, name: actor.name + " (" + actor.system.hordesize + ")" })
|
||||
}
|
||||
//let actor = game.actors.get(c.actorId)
|
||||
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()
|
||||
@ -66,19 +58,11 @@ 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()
|
||||
}
|
||||
|
@ -1,3 +1,6 @@
|
||||
/* -------------------------------------------- */
|
||||
import { BoLAdventureGenerator } from "./bol-adventure-generator.js"
|
||||
import { BoLCharacterSummary } from "./bol-character-summary.js"
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class BoLCommands {
|
||||
@ -5,6 +8,8 @@ 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
|
||||
}
|
||||
|
||||
@ -83,7 +88,7 @@ export class BoLCommands {
|
||||
console.log("===> Processing command")
|
||||
let command = commandsTable[name];
|
||||
path = path + name + " ";
|
||||
if (command?.subTable) {
|
||||
if (command && command.subTable) {
|
||||
if (params[0]) {
|
||||
return this._processCommand(command.subTable, params[0], params.slice(1), content, msg, path)
|
||||
}
|
||||
@ -92,9 +97,9 @@ export class BoLCommands {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (command?.func) {
|
||||
if (command && command.func) {
|
||||
const result = command.func(content, msg, params);
|
||||
if (!result) {
|
||||
if (result == false) {
|
||||
BoLCommands._chatAnswer(msg, command.descr);
|
||||
}
|
||||
return true;
|
||||
|
@ -9,8 +9,8 @@ export class BoLUtility {
|
||||
/* -------------------------------------------- */
|
||||
static init() {
|
||||
game.settings.register("bol", "rollArmor", {
|
||||
name: game.i18n.localize("BOL.settings.rollArmor"),
|
||||
hint: game.i18n.localize("BOL.settings.rollArmorTooltip"),
|
||||
name: "Effectuer des jets pour les armures",
|
||||
hint: "Effectue un jet de dés pour les armures (valeur fixe si désactivé)",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: true,
|
||||
@ -18,8 +18,8 @@ export class BoLUtility {
|
||||
onChange: lang => window.location.reload()
|
||||
})
|
||||
game.settings.register("bol", "useBougette", {
|
||||
name: game.i18n.localize("BOL.settings.useBougette"),
|
||||
hint: game.i18n.localize("BOL.settings.useBougetteTooltip"),
|
||||
name: "Utiliser la Bougette (règle fan-made)",
|
||||
hint: "Utilise un indicateur de Bougette, comme décrit dans l'aide de jeu Gold&Glory du RatierBretonnien (https://www.lahiette.com/leratierbretonnien/)",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: false,
|
||||
@ -27,16 +27,16 @@ export class BoLUtility {
|
||||
onChange: lang => window.location.reload()
|
||||
})
|
||||
game.settings.register("bol", "auto-remove-dead", {
|
||||
name: game.i18n.localize("BOL.settings.removeDead"),
|
||||
hint: game.i18n.localize("BOL.settings.removeDeadTooltip"),
|
||||
name: "Enlever les PNJs morts automatiquement au round suivant",
|
||||
hint: "Supprime les PNJ (piétaille, créatures, coriaces) automatiquement du combat lorsqu'ils sont à 0 Vitalité ou moins, lors du passage au round suivant",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: false,
|
||||
type: Boolean
|
||||
})
|
||||
game.settings.register("bol", "dice-formula", {
|
||||
name: game.i18n.localize("BOL.settings.diceFormula"),
|
||||
hint: game.i18n.localize("BOL.settings.diceFormulaTooltip"),
|
||||
name: "Formule de dés",
|
||||
hint: "Sélectionne la formule de dés (par défaut 2d6)",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: "6",
|
||||
@ -47,8 +47,8 @@ export class BoLUtility {
|
||||
}
|
||||
})
|
||||
game.settings.register("bol", "dice-success-value", {
|
||||
name: game.i18n.localize("BOL.settings.diceSuccessValue"),
|
||||
hint: game.i18n.localize("BOL.settings.diceSuccessValueTooltip"),
|
||||
name: "Seuil de succès",
|
||||
hint: "Sélectionne le seuil de succès (9 par défaut pour 2d6)",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: 9,
|
||||
@ -63,8 +63,8 @@ export class BoLUtility {
|
||||
}
|
||||
})
|
||||
game.settings.register("bol", "dice-critical-success-value", {
|
||||
name: game.i18n.localize("BOL.settings.diceCriticalValue"),
|
||||
hint: game.i18n.localize("BOL.settings.diceCriticalValueTooltip"),
|
||||
name: "Valeur min de réussite critique",
|
||||
hint: "Indique le seuil minimum de réussite critique (12 par défaut pour 2d6). Si les réussites critiques sont sur 19 et 20, alors indiquez 19.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: 12,
|
||||
@ -79,8 +79,8 @@ export class BoLUtility {
|
||||
}
|
||||
})
|
||||
game.settings.register("bol", "dice-critical-failure-value", {
|
||||
name: game.i18n.localize("BOL.settings.diceCriticalFailure"),
|
||||
hint: game.i18n.localize("BOL.settings.diceCriticalFailureTooltip"),
|
||||
name: "Valeur max d'échec critique",
|
||||
hint: "Indique le seuil maximum d'échec critique (2 par défaut pour 2d6). Si les échecs critiques sont sur 2 et 3, alors indiquez 3.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: 2,
|
||||
@ -102,8 +102,8 @@ export class BoLUtility {
|
||||
type: Object
|
||||
})
|
||||
game.settings.register("bol", "logoActorSheet", {
|
||||
name: game.i18n.localize("BOL.settings.defaultLogoActorSheetPath"),
|
||||
hint: game.i18n.localize("BOL.settings.defaultLogoPathActorSheetTooltip"),
|
||||
name: "Chemin du logo des fiches de perso",
|
||||
hint: "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)",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: "/systems/bol/ui/logo.webp",
|
||||
@ -111,8 +111,8 @@ export class BoLUtility {
|
||||
onChange: lang => window.location.reload()
|
||||
})
|
||||
game.settings.register("bol", "logoTopLeft", {
|
||||
name: game.i18n.localize("BOL.settings.defaultLogoTopLeftPath"),
|
||||
hint: game.i18n.localize("BOL.settings.defaultLogoTopLeftPathTooltip"),
|
||||
name: "Chemin du logo haut gauche",
|
||||
hint: "Vous pouvez changer le logo BoL en haut à gauche de chaque écran (idéalement 718 x 416, défaut : /systems/bol/ui/logo2.webp)",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: "/systems/bol/ui/logo2.webp",
|
||||
@ -136,10 +136,6 @@ 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)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -197,10 +193,10 @@ export class BoLUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async ready() {
|
||||
//$("#logo").attr("src", this.getLogoTopLeft() )
|
||||
//$("#logo").attr("src", this.getLogoTopLeft() )
|
||||
$("#logo").css("content", `url(${this.getLogoTopLeft()})`)
|
||||
|
||||
CONFIG.statusEffects = foundry.utils.duplicate(game.bol.config.statusEffects)
|
||||
CONFIG.statusEffects = duplicate(game.bol.config.statusEffects)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -238,7 +234,7 @@ export class BoLUtility {
|
||||
|
||||
renderTemplate('systems/bol/templates/item/post-item.hbs', chatData).then(html => {
|
||||
let chatOptions = BoLUtility.chatDataSetup(html);
|
||||
ChatMessage.create(chatOptions)
|
||||
ChatMessage.create(chatOptions, "selfroll")
|
||||
});
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@ -315,7 +311,7 @@ export class BoLUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static blindMessageToGM(chatOptions) {
|
||||
let chatGM = foundry.utils.duplicate(chatOptions);
|
||||
let chatGM = duplicate(chatOptions);
|
||||
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||
chatGM.content = "Blind message of " + game.user.name + "<br>" + chatOptions.content;
|
||||
console.log("blindMessageToGM", chatGM);
|
||||
@ -327,7 +323,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: foundry.utils.duplicate(rollData) })
|
||||
game.socket.emit("system.bol", { name: "msg_attack_success", data: duplicate(rollData) })
|
||||
} else {
|
||||
BoLUtility.processAttackSuccess(rollData)
|
||||
}
|
||||
@ -341,7 +337,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?.isOwner) return
|
||||
if (actor && actor.isOwner) return
|
||||
else if (game.user.isGM || data.author.id === game.user.id) return
|
||||
|
||||
const divButtons = chatCard.find('.actions-section')
|
||||
@ -358,7 +354,7 @@ export class BoLUtility {
|
||||
/* -------------------------------------------- */
|
||||
static requestInitRoll(actorId, combatData) {
|
||||
let actor = game.actors.get(actorId)
|
||||
if (actor?.isOwner) {
|
||||
if (actor && actor.isOwner) {
|
||||
ui.notifications.info(game.i18n.localize("BOL.ui.warninitiative"))
|
||||
BoLRoll.aptitudeCheck(actor, "init", undefined, combatData)
|
||||
}
|
||||
@ -418,11 +414,6 @@ export class BoLUtility {
|
||||
|
||||
html.on("click", '.damage-handling', event => {
|
||||
event.preventDefault()
|
||||
let attr = event.currentTarget.attributes['data-attack-id']
|
||||
if ( !attr) {
|
||||
ui.notifications.warn("Impossible de trouver l'attaque correspondante, erreur de suivi de combat.")
|
||||
return
|
||||
}
|
||||
let attackId = event.currentTarget.attributes['data-attack-id'].value
|
||||
let defenseMode = event.currentTarget.attributes['data-defense-mode'].value
|
||||
let weaponId = (event.currentTarget.attributes['data-weapon-id']) ? event.currentTarget.attributes['data-weapon-id'].value : -1
|
||||
@ -451,7 +442,7 @@ export class BoLUtility {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async processDamageHandling(attackId, defenseMode, weaponId, msgId) {
|
||||
static async processDamageHandling(attackId, defenseMode, weaponId = -1, msgId) {
|
||||
if (!game.user.isGM) {
|
||||
return
|
||||
}
|
||||
@ -460,8 +451,8 @@ export class BoLUtility {
|
||||
BoLUtility.removeChatMessageId(msgId)
|
||||
|
||||
console.log("Damage Handling", attackId, defenseMode, weaponId)
|
||||
// Only GM process this
|
||||
if (rollData?.defenderId) {
|
||||
// Only GM process this
|
||||
if (rollData && rollData.defenderId) {
|
||||
if (rollData.defenseDone || defenseMode == 'damage-not-applied') {
|
||||
return
|
||||
} // ?? Why ???
|
||||
@ -473,37 +464,33 @@ export class BoLUtility {
|
||||
if (defenseMode == 'damage-with-armor') {
|
||||
let armorFormula = defender.getArmorFormula()
|
||||
rollData.rollArmor = new Roll(armorFormula)
|
||||
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.rollArmor.roll({ async: false })
|
||||
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
|
||||
rollData.finalDamage = rollData.damageTotal - rollData.armorProtect
|
||||
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
|
||||
await defender.sufferDamage(rollData.finalDamage)
|
||||
defender.sufferDamage(rollData.finalDamage)
|
||||
console.log("Armor roll -> result ", rollData)
|
||||
}
|
||||
if (defenseMode == 'damage-without-armor') {
|
||||
rollData.finalDamage = rollData.damageTotal
|
||||
rollData.finalDamage = atrollDatatackDef.damageTotal
|
||||
defender.sufferDamage(rollData.finalDamage)
|
||||
}
|
||||
if (defenseMode == 'hero-reduce-damage') {
|
||||
let armorFormula = defender.getArmorFormula()
|
||||
rollData.rollArmor = new Roll(armorFormula)
|
||||
await rollData.rollArmor.roll()
|
||||
rollData.rollArmor.roll({ async: false })
|
||||
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
|
||||
rollData.rollHero = new Roll("1d6")
|
||||
await rollData.rollHero.roll()
|
||||
rollData.rollHero.roll({ async: false })
|
||||
rollData.finalDamage = rollData.damageTotal - rollData.rollHero.total - rollData.armorProtect
|
||||
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
|
||||
await defender.sufferDamage(rollData.finalDamage)
|
||||
defender.sufferDamage(rollData.finalDamage)
|
||||
defender.subHeroPoints(1)
|
||||
}
|
||||
if (defenseMode == 'hero-in-extremis') {
|
||||
rollData.finalDamage = 0;
|
||||
rollData.weaponHero = defender.weapons.find(item => item._id == weaponId);
|
||||
await defender.deleteEmbeddedDocuments("Item", [weaponId]);
|
||||
defender.deleteEmbeddedDocuments("Item", [weaponId]);
|
||||
}
|
||||
|
||||
let defenderUser
|
||||
@ -624,7 +611,7 @@ export class BoLUtility {
|
||||
attackId: rollData.id,
|
||||
attacker: rollData.attacker,
|
||||
defender: defender,
|
||||
defenderHeroPoints:defender.getHeroPoints(),
|
||||
defenderHeroPoints:defender.getHeroPoints(),
|
||||
defenderWeapons: defenderWeapons,
|
||||
damageTotal: rollData.damageTotal,
|
||||
damagesIgnoresArmor: rollData.damagesIgnoresArmor,
|
||||
@ -676,6 +663,7 @@ 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
|
||||
@ -687,18 +675,22 @@ 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
|
||||
@ -745,8 +737,8 @@ export class BoLUtility {
|
||||
/* -------------------------------------------- */
|
||||
static removeGroupHoroscope(rollData) {
|
||||
let horo = rollData.horoscopeGroupList[rollData.selectedGroupHoroscopeIndex]
|
||||
let horoscopes = foundry.utils.duplicate(game.settings.get("bol", "horoscope-group"))
|
||||
let toChange = foundry.utils.duplicate(horoscopes[horo.id])
|
||||
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
|
||||
let toChange = duplicate(horoscopes[horo.id])
|
||||
toChange.availableDice -= horo.nbDice // Remove the dice
|
||||
if (toChange.availableDice <= 0) {
|
||||
horoscopes[horo.id] = undefined
|
||||
|
@ -10,15 +10,14 @@ System.debugMode = true;
|
||||
export const BOL = {};
|
||||
|
||||
BOL.damageValues = {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"d3": "d3",
|
||||
"d6M": "d6M (Malus)",
|
||||
"d6": "d6",
|
||||
"d6B": "d6B (Bonus)",
|
||||
"d6BB": "d6B + dé bonus",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"d3" : "d3",
|
||||
"d6M" : "d6M (Malus)",
|
||||
"d6" : "d6",
|
||||
"d6B" : "d6B (Bonus)",
|
||||
"d6BB" : "d6B + dé bonus",
|
||||
}
|
||||
|
||||
BOL.damageMultiplier = {
|
||||
@ -32,15 +31,6 @@ 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",
|
||||
@ -56,125 +46,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 = {
|
||||
@ -190,153 +180,97 @@ 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",
|
||||
"xplog": "BOL.featureSubtypes.xplog",
|
||||
"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",
|
||||
}
|
||||
|
||||
BOL.fightOptionTypes = {
|
||||
@ -351,17 +285,17 @@ BOL.fightOptionTypes = {
|
||||
}
|
||||
|
||||
BOL.itemIcons = {
|
||||
"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"
|
||||
"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"
|
||||
}
|
||||
|
||||
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 = {
|
||||
@ -380,18 +314,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 = {
|
||||
@ -418,251 +352,110 @@ 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;
|
@ -10,7 +10,7 @@ export const registerHandlebarsHelpers = function () {
|
||||
|
||||
Handlebars.registerHelper('isEmpty', function (list) {
|
||||
if (list) return list.length == 0;
|
||||
else return false;
|
||||
else return 0;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper('notEmpty', function (list) {
|
||||
@ -64,8 +64,8 @@ export const registerHandlebarsHelpers = function () {
|
||||
})
|
||||
|
||||
Handlebars.registerHelper('for', function (from, to, incr, block) {
|
||||
let accum = '';
|
||||
for (let i = from; i < to; i += incr)
|
||||
var accum = '';
|
||||
for (var 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 () {
|
||||
let outStr = '';
|
||||
for (let arg in arguments) {
|
||||
var outStr = '';
|
||||
for (var arg in arguments) {
|
||||
if (typeof arguments[arg] != 'object') {
|
||||
outStr += arguments[arg];
|
||||
}
|
||||
@ -108,15 +108,16 @@ 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) {
|
||||
@ -127,7 +128,10 @@ export const registerHandlebarsHelpers = function () {
|
||||
})
|
||||
Handlebars.registerHelper('isOwnerOrGM', function (actor) {
|
||||
console.log("Testing actor", actor.isOwner, game.userId)
|
||||
return actor.isOwner || game.isGM;
|
||||
if (actor.isOwner || game.isGM) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
})
|
||||
Handlebars.registerHelper('upperFirst', function (text) {
|
||||
if (typeof text !== 'string') return text
|
||||
@ -137,16 +141,6 @@ 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");
|
||||
});
|
||||
|
||||
}
|
@ -29,6 +29,18 @@ 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") {
|
||||
|
@ -22,7 +22,6 @@ 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",
|
||||
@ -44,7 +43,6 @@ 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",
|
||||
|
8
packs/aides-de-jeu.db
Normal file
8
packs/aides-de-jeu.db
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000407
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:53.970077 7f25eea006c0 Recovering log #405
|
||||
2024/09/12-22:38:53.982296 7f25eea006c0 Delete type=3 #403
|
||||
2024/09/12-22:38:53.982396 7f25eea006c0 Delete type=0 #405
|
||||
2024/09/12-22:42:42.719126 7f25eda006c0 Level-0 table #410: started
|
||||
2024/09/12-22:42:42.719171 7f25eda006c0 Level-0 table #410: 0 bytes OK
|
||||
2024/09/12-22:42:42.725570 7f25eda006c0 Delete type=0 #408
|
||||
2024/09/12-22:42:42.725738 7f25eda006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.725784 7f25eda006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.427852 7f25eea006c0 Recovering log #401
|
||||
2024/09/12-09:45:32.437849 7f25eea006c0 Delete type=3 #399
|
||||
2024/09/12-09:45:32.437908 7f25eea006c0 Delete type=0 #401
|
||||
2024/09/12-09:50:36.103159 7f25eda006c0 Level-0 table #406: started
|
||||
2024/09/12-09:50:36.103188 7f25eda006c0 Level-0 table #406: 0 bytes OK
|
||||
2024/09/12-09:50:36.110495 7f25eda006c0 Delete type=0 #404
|
||||
2024/09/12-09:50:36.110872 7f25eda006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.110976 7f25eda006c0 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.
@ -1 +0,0 @@
|
||||
MANIFEST-000313
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:53.934728 7f25f4c006c0 Recovering log #311
|
||||
2024/09/12-22:38:53.947433 7f25f4c006c0 Delete type=3 #309
|
||||
2024/09/12-22:38:53.947544 7f25f4c006c0 Delete type=0 #311
|
||||
2024/09/12-22:42:42.699365 7f25eda006c0 Level-0 table #316: started
|
||||
2024/09/12-22:42:42.699403 7f25eda006c0 Level-0 table #316: 0 bytes OK
|
||||
2024/09/12-22:42:42.705522 7f25eda006c0 Delete type=0 #314
|
||||
2024/09/12-22:42:42.725703 7f25eda006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.725745 7f25eda006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.401300 7f25efe006c0 Recovering log #307
|
||||
2024/09/12-09:45:32.411529 7f25efe006c0 Delete type=3 #305
|
||||
2024/09/12-09:45:32.411608 7f25efe006c0 Delete type=0 #307
|
||||
2024/09/12-09:50:36.082865 7f25eda006c0 Level-0 table #312: started
|
||||
2024/09/12-09:50:36.082893 7f25eda006c0 Level-0 table #312: 0 bytes OK
|
||||
2024/09/12-09:50:36.090233 7f25eda006c0 Delete type=0 #310
|
||||
2024/09/12-09:50:36.110780 7f25eda006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.110897 7f25eda006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
|
Binary file not shown.
59
packs/boons.db
Normal file
59
packs/boons.db
Normal file
@ -0,0 +1,59 @@
|
||||
{"_id":"039ZF3E3MtAGwbiX","name":"Intrépide","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Intrépide</h1><p>votre personnage est insensible à la peur. Même une peur magiquement induite n’a aucune prise sur lui.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"2bSL4HJMu8Zh8UKq","name":"Attirant","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Attirant</h1><p>vous êtes particulièrement beau ou séduisant. Vous bénéficiez d’un dé de bonus dans les situations où l’apparence peut jouer un rôle.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"3fRMKd0xX0NL0kxO","name":"Vigueur céruléenne","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"3jxkJo7vakII1kw0","name":"Renard du désert","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Renard du désert</h1><p>lorsque vous vous trouvez dans un désert, vous bénéficiez d’un dé de bonus pour pister, piéger ou chasser, ainsi que pour d’autres activités similaires de survie (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"44bJY4xBP9ICdxrR","name":"Vue perçante","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Vue perçante</h1><p>à chaque fois que vous effectuez un jet d’action sous esprit pour percevoir quelque chose grâce à votre vue, vous bénéficiez d’un dé de bonus.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"4eCfIflrqYcQMQEE","name":"Laboratoire fourni","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Laboratoire fourni</h1><p>vous disposez d’un laboratoire de qualité pour mener vos expériences. Vous bénéficiez d’un 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 à l’aventure pour trouver les moyens financiers et matériels de refaire vos stocks.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"4j27jk1sauYKXUUY","name":"Magie des Rois-Sorciers","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus pour lancer des sortilèges. Si vous choisissez cet avantage, vous devez prendre un désavantage supplémentaire.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"76IT7lAHNjPHvoxu","name":"Savant","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"7iHc6ZbgRDTcWx1x","name":"Poings d’acier","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Poings d’acier</h1><p>vous avez les poings durs comme la pierre après des années d’entraî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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"88DKwHbEHNr2zkb4","name":"Gamin des rues","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Gamin des rues</h1><p>vous êtes un enfant des rues. Vous bénéficiez d’un dé de bonus quand vous interagissez avec les gens des bas-fonds de la cité, ou pour des activités comme filer quelqu’un ou remarquer un détail dans la rue (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"8LbWRVmpo2byaOae","name":"Colosse","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Colosse</h1><p>vous savez mobiliser votre vigueur pour accomplir de véritables tours de force. Vous bénéficiez d’un dé de bonus pour briser, lever, tirer ou pousser des objets.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"8TKFwebDXkT4r3TW","name":"Dur à cuire","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Dur à cuire</h1><p>vous avez la robustesse d’un bronyx. Ajoutez 2 points à votre vitalité.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"969U7SVd2JSBkHDq","name":"Artiste","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Artiste</h1><p>vous avez une sensibilité d’artiste. Vous bénéficiez d’un dé de bonus pour créer ou estimer des objets d’art.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"DTZhsPUxseKuahCa","name":"Amis dans la pègre","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"DpO9z1NEg9C8MHGY","name":"Amis haut placés","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Amis haut placés</h1><p>vous jouissez de contacts au sein des plus hauts échelons de la société. Même s’ils ne seront pas en général disposés à risquer leur tête pour vous, ils pourront vous apporter de l’aide (comme vous obtenir une audience auprès d’un 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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"DxCf9WsPm4tGRGri","name":"Athlète","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Athlète</h1><p>vous bénéficiez d’un dé de bonus quand vous entreprenez des activités athlétiques (autres que le combat) comme courir, nager, grimper ou sauter.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"FaACBPxznjBInrNN","name":"Doigts de fée","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Doigts de fée</h1><p>vous bénéficiez d’un dé de bonus pour toutes les tâches exigeant une grande dextérité, comme le vol à la tire, la fabrication d’objets, le jonglage ou la triche aux cartes et aux dés.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"GyNOCPaFw7bfjDUE","name":"Tireur puissant","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Tireur puissant</h1><p>avec un type d’arme à distance choisi (arc, fronde, javelot, etc.), vous ajoutez votre vigueur aux dégâts.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"HiD90AY8nD7OXXmr","name":"Bien né","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus pour agir selon les règles de l’étiquette et de la courtoisie.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"HkJU2TaccPnBtZPh","name":"Montagnard","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Montagnard</h1><p>vous avez grandi dans les montagnes. Lorsque vous vous trouvez dans un paysage montagneux, vous bénéficiez d’un dé de bonus pour pister, piéger ou chasser, ainsi que pour d’autres activités similaires de survie (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"IQdY6CJwUpXofsbM","name":"Ami des céruléens","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus quand vous interagissez avec les nomades bleus.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"J08pVCsXzQYKijOF","name":"Résistant à la magie","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 n’a aucun effet sur vous.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"JrxFjMUc9emmaiJe","name":"Ouïe fine","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Ouïe fine</h1><p>à chaque fois que vous effectuez un jet d’action sous esprit pour percevoir quelque chose grâce à votre ouïe, vous bénéficiez d’un dé de bonus.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"JxFxp2CS8dluwC16","name":"Bagarreur","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Bagarreur</h1><p>vous êtes un boxeur et un lutteur compétent. Vous bénéficiez d’un dé de bonus à l’attaque quand vous combattez à mains nues.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"LNP6F8z4j15HuuNC","name":"Fêtard","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Fêtard</h1><p>vous connaissez bien les auberges et les tavernes, et vous n’êtes pas le dernier quand il s’agit de lever le coude. Vous bénéficiez d’un 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 l’alcool et bénéficiez également d’un dé de bonus pour résister aux effets de la boisson.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"Ota12xlPiqDfM3te","name":"Maître du déguisement","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Maître du déguisement</h1><p>vous bénéficiez d’un 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 d’hé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>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"Td0r46VMDXd5Z65z","name":"Tigre des neiges","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus pour pister, piéger ou chasser, ainsi que pour d’autres activités similaires de survie (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"VXVu8CTas4nhfUST","name":"Sentir la magie","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Sentir la magie</h1><p>vous bénéficiez d’un dé de bonus quand vous essayez de reconnaître (ou de traquer) un sorcier, un effet ou un artefact magique.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"W4onU67kbMUL3WVa","name":"Résistant aux poisons","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Résistant aux poisons</h1><p>vous bénéficiez d’un dé de bonus pour résister aux effets des drogues, des venins, des toxines, ainsi que de l’alcool.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"WSXuMtTEvjC2qOH7","name":"Pied marin","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Pied marin</h1><p>vous avez grandi dans un environnement de navires et de bateaux. Vous bénéficiez d’un dé de bonus pour manœuvrer une embarcation ou entreprendre des activités physiques à bord d’un navire (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"WTl5A8SbC6o2bRna","name":"Fortuné","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Fortuné</h1><p>vous disposez d’une source de revenus ou d’un héritage. Vous bénéficiez d’un dé de bonus quand vous cherchez à acquérir des biens ou des services dans votre cité d’origine.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"XXaAGtAadv5Ltlht","name":"Santé de fer","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Santé de fer</h1><p>vous êtes immunisé à toutes les maladies, y compris celles d’origine magique.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"XfGnKJU87Tv9AKtL","name":"Bibliothèque savante","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Bibliothèque savante</h1><p>vous disposez d’une bibliothèque de qualité pour mener vos recherches. Vous bénéficiez d’un 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 à l’aventure pour trouver les moyens d’acquérir de nouveaux manuscrits.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"XiUi4LnrOswsEpXR","name":"Vigilant","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Vigilant</h1><p>vous jouissez d’une excellente capacité de réaction face au danger. Vous bénéficiez d’un dé de bonus à vos jets de réaction.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"aYv5FEDWzYRwIwRm","name":"Né en selle","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Né en selle</h1><p>vous bénéficiez d’un dé de bonus pour chevaucher des montures et agir en selle (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"cDe8mZ7vjpI1o1lZ","name":"Mains guérisseuses","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Mains guérisseuses</h1><p>vous bénéficiez d’un dé de bonus sur les tests destinés à aider un blessé à récupérer de ses blessures, d’un empoisonnement, etc. Vous devez posséder la carrière médecin pour prendre cet avantage.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"dpS4VXHUGddCq7FY","name":"Intimidant","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Intimidant</h1><p>vous bénéficiez d’un dé de bonus à chaque fois que vous essayez de forcer quelqu’un à vous donner une information ou à faire une chose à laquelle il répugne.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"dslHEmEqSZN8IsPa","name":"Fils des plaines","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus pour pister, piéger ou chasser, ainsi que pour d’autres activités similaires de survie (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"eH6ER2AVPrhzZGn1","name":"Combat à l’aveugle","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Combat à l’aveugle</h1><p>pas de lumière ? Aucun problème. En vous basant sur les odeurs, les bruits, les déplacements d’air, vous ne faites plus qu’un avec le monde qui vous entoure. Votre personnage ignore les malus imposés par le MJ pour combattre dans l’obscurité.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"ft3lNO5aDd9eK40k","name":"Roi de la jungle","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus pour pister, piéger ou chasser, ainsi que pour d’autres activités similaires de survie (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"fzsDuaqZtvt4wue4","name":"Arme favorite","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Arme favorite</h1><p>vous disposez d’une arme de qualité (une grande épée valgardienne, un arc long de Tyrus, une fronde d’Axos, un kriss halakhi, un khastok de Malakut, une hache d’abordage 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 l’enfance. Vous bénéficiez d’un 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>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"giB7dYrcKv12m13K","name":"Peau dure","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’armure.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"glCazKBiZ4TA5Tnt","name":"Inspirateur","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Inspirateur</h1><p>vous savez motiver vos amis et vos partisans. Cela peut se faire au moyen d’une invocation aux dieux, d’un discours enflammé ou d’une musique inspirante, à moins que cela ne vienne simplement de votre présence charismatique. Pour le round qui suit l’utilisation de cet avantage, vos compagnons bénéficient d’un dé de bonus à tous leurs jets d’attaque (à condition d’être à portée de voix). Cet avantage ne peut être utilisé gratuitement qu’une fois par jour ; toute utilisation supplémentaire exigera la dépense de 1 point d’héroïsme.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"jkgnvC8cAK7K5Ck9","name":"Récupération rapide","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Récupération rapide</h1><p>vous jouissiez d’une constitution hors norme. Lorsque vous récupérez après un combat, vous regagnez 1 point de vitalité supplémentaire (qui s’ajoute à 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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"lDSYZ54BnXt4VYlE","name":"Cri de guerre","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’attaque durant le round qui suit le cri de guerre. Cet avantage ne peut être utilisé gratuitement qu’une fois par jour ; toute utilisation supplémentaire exigera la dépense de 1 point d’héroïsme.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"mwK667DIyh2QGqPV","name":"Beau parleur","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Beau parleur</h1><p>vous êtes très persuasif et excellent menteur. Vous bénéficiez d’un dé de bonus quand vous voulez mentir, escroquer, baratiner ou tromper quelqu’un.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"nl7sgrsCy0T0P127","name":"Pouvoir du Néant","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Pouvoir du Néant</h1><p>vous avez porté le regard sur l’abî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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"oFnXU6VPTG5QypMz","name":"Agilité de l’homme-oiseau","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Agilité de l’homme-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>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"oiASQBPLrFXYEVuP","name":"Ami des bêtes","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Ami des bêtes</h1><p>vous possédez une affinité naturelle avec les animaux. Vous bénéficiez d’un 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>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"qGI3aI5xA0mqHXdU","name":"Discret","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Discret</h1>\n<p>vous êtes vif et agile. Vous bénéficiez d’un dé de bonus dans les situations où vous essayez de faire preuve de discrétion.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"sggncrizxp9b84sY","name":"Érudit","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Érudit</h1><p>quand vous cherchez à vous souvenir d’un fait relevant de votre domaine de compétence, vous bénéficiez d’un dé de bonus.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"snSCU6lBKz8nzqeQ","name":"Baudrier de guerre","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Baudrier de guerre</h1><p>cet avantage autorise votre personnage à ne porter qu’un pagne ou un bikini en cotte de mailles et un simple baudrier (l’équivalent d’une armure légère au mieux), tout en considérant qu’il s’agit d’une armure moyenne en terme de protection, et ce sans subir le moindre malus d’armure.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"wZjOWMREZRw1tLO0","name":"Marqué par les dieux","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Marqué par les dieux</h1><p>les dieux vous accordent leur faveur. Vous gagnez 1 point d’héroïsme supplémentaire.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"xAyqso8n6MaJNTJs","name":"Perspicace","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Perspicace</h1><p>vous êtes doué pour percer à jour les menteurs. Quand quelqu’un tente de vous mentir ou de vous entourlouper, vous bénéficiez d’un 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 qu’on est en train de vous mentir.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"yEsGuSGUDVYFdzRV","name":"Roi de l’évasion","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus lorsque vous tentez de vous évader ou de vous libérer de vos liens.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"ywZsgCLCszvZWzfB","name":"Odorat développé","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Odorat développé</h1><p>à chaque fois que vous effectuez un jet d’action sous esprit pour percevoir quelque chose grâce à votre odorat, vous bénéficiez d’un dé de bonus.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"yxkhtcJA6ziEBsHa","name":"Pisteur des marais","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","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 d’un dé de bonus pour pister, piéger ou chasser, ainsi que pour d’autres activités similaires de survie (mais pas pour combattre).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"yy7b6rYzyXTXAc5K","name":"Outillage","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Outillage</h1><p>vous possédez un jeu d’outils adaptés à votre métier ou votre artisanat. Vous bénéficiez d’un dé de bonus quand vous entreprenez une action où l’emploi de ces outils peut se révéler efficace.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||
{"_id":"zgspy1QKaxdEetEw","name":"Vision nocturne","type":"feature","img":"/systems/bol/ui/icons/boon.webp","data":{"category":null,"subtype":"boon","description":"<h1>Vision nocturne</h1><p>vous bénéficiez d’un dé de bonus quand l’obscurité impose un malus à la vision.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000407
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:53.788249 7f25f4c006c0 Recovering log #405
|
||||
2024/09/12-22:38:53.800311 7f25f4c006c0 Delete type=3 #403
|
||||
2024/09/12-22:38:53.800582 7f25f4c006c0 Delete type=0 #405
|
||||
2024/09/12-22:42:42.640434 7f25eda006c0 Level-0 table #410: started
|
||||
2024/09/12-22:42:42.640516 7f25eda006c0 Level-0 table #410: 0 bytes OK
|
||||
2024/09/12-22:42:42.647688 7f25eda006c0 Delete type=0 #408
|
||||
2024/09/12-22:42:42.668731 7f25eda006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.668779 7f25eda006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.295259 7f25efe006c0 Recovering log #401
|
||||
2024/09/12-09:45:32.306146 7f25efe006c0 Delete type=3 #399
|
||||
2024/09/12-09:45:32.306221 7f25efe006c0 Delete type=0 #401
|
||||
2024/09/12-09:50:36.045097 7f25eda006c0 Level-0 table #406: started
|
||||
2024/09/12-09:50:36.045124 7f25eda006c0 Level-0 table #406: 0 bytes OK
|
||||
2024/09/12-09:50:36.051371 7f25eda006c0 Delete type=0 #404
|
||||
2024/09/12-09:50:36.057645 7f25eda006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.057725 7f25eda006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
|
Binary file not shown.
8
packs/boonsflawscreatures.db
Normal file
8
packs/boonsflawscreatures.db
Normal file
@ -0,0 +1,8 @@
|
||||
{"name":"Attaque Timide","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"flaw","description":"<p>Attaque timide : la créature subit un dé de malus aux jets d’attaque.</p>","properties":{"isbonusdice":true,"ismalusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{},"_id":"CoqlfsDV1gL5swbK"}
|
||||
{"name":"Prédateur","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"boon","description":"<p> la créature lance un dé de bonus pour tout ce qui concerne le pistage d’une proie.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{},"_id":"DFdLY7fkVZDIf7rU"}
|
||||
{"name":"Camouflage","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"boon","description":"<p>Camouflage : la créature est difficile à repérer en raison de la coloration ou de la texture de sa peau ou de son pelage (dé de bonus pour se cacher).</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.b0PsoNEd8a0dN2Wm"}},"_id":"P2pgGD4FVKzOZ4uM"}
|
||||
{"name":"Attaque féroce","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"boon","description":"<p> la créature bénéficie d’un dé de bonus aux jets d’attaque.</p>","properties":{"isbonusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.b0PsoNEd8a0dN2Wm"}},"_id":"RqEO7ELH72MZBZFV"}
|
||||
{"name":"Attaque Venimeuse","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"boon","description":"<p>Attaque venimeuse : la description de la créature indique les effets de son venin</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.b0PsoNEd8a0dN2Wm"}},"_id":"U77iMP7V529zbJt9"}
|
||||
{"name":"Attaque Multiple","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"boon","description":"<p>Attaques multiples : la créature possède <span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\"> deux types d’attaque totalement différents qui </span>nécessitent deux jets d’attaque séparés.</p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.b0PsoNEd8a0dN2Wm"}},"_id":"USkChPye9J4sZxwC"}
|
||||
{"name":"Déficience","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"flaw","description":"<p>Déficience : la créature est affligée d’un odorat, d’une audition ou d’une vision déficiente et subit un dé de malus quand elle doit y faire appel.</p>","properties":{"isbonusdice":true,"ismalusdice":true},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.P0r8grkVY7xu5HOS"}},"_id":"htSqR7I7F5GVIelK"}
|
||||
{"name":"Attaque Spéciale","type":"feature","img":"icons/svg/item-bag.svg","data":{"category":null,"subtype":"boon","description":"<p>Attaque spéciale : la créature attaque selon une méthode inhabituelle. La nature de cette attaque est expliquée dans sa description.</p>\n<p> </p>","properties":{"isbonusdice":false},"rank":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.b0PsoNEd8a0dN2Wm"}},"_id":"yofwG0YrsL902G77"}
|
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000407
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:53.805528 7f25ef4006c0 Recovering log #405
|
||||
2024/09/12-22:38:53.816302 7f25ef4006c0 Delete type=3 #403
|
||||
2024/09/12-22:38:53.816406 7f25ef4006c0 Delete type=0 #405
|
||||
2024/09/12-22:42:42.654478 7f25eda006c0 Level-0 table #410: started
|
||||
2024/09/12-22:42:42.654519 7f25eda006c0 Level-0 table #410: 0 bytes OK
|
||||
2024/09/12-22:42:42.660807 7f25eda006c0 Delete type=0 #408
|
||||
2024/09/12-22:42:42.668759 7f25eda006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.668796 7f25eda006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.310129 7f25f4c006c0 Recovering log #401
|
||||
2024/09/12-09:45:32.320731 7f25f4c006c0 Delete type=3 #399
|
||||
2024/09/12-09:45:32.320830 7f25f4c006c0 Delete type=0 #401
|
||||
2024/09/12-09:50:36.033550 7f25eda006c0 Level-0 table #406: started
|
||||
2024/09/12-09:50:36.033588 7f25eda006c0 Level-0 table #406: 0 bytes OK
|
||||
2024/09/12-09:50:36.039266 7f25eda006c0 Delete type=0 #404
|
||||
2024/09/12-09:50:36.057599 7f25eda006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.057695 7f25eda006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
|
Binary file not shown.
27
packs/careers.db
Normal file
27
packs/careers.db
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000407
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:53.840310 7f25efe006c0 Recovering log #405
|
||||
2024/09/12-22:38:53.852677 7f25efe006c0 Delete type=3 #403
|
||||
2024/09/12-22:38:53.852769 7f25efe006c0 Delete type=0 #405
|
||||
2024/09/12-22:42:42.660981 7f25eda006c0 Level-0 table #410: started
|
||||
2024/09/12-22:42:42.661021 7f25eda006c0 Level-0 table #410: 0 bytes OK
|
||||
2024/09/12-22:42:42.668582 7f25eda006c0 Delete type=0 #408
|
||||
2024/09/12-22:42:42.668771 7f25eda006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.668804 7f25eda006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.336593 7f25ef4006c0 Recovering log #401
|
||||
2024/09/12-09:45:32.347205 7f25ef4006c0 Delete type=3 #399
|
||||
2024/09/12-09:45:32.347263 7f25ef4006c0 Delete type=0 #401
|
||||
2024/09/12-09:50:36.039384 7f25eda006c0 Level-0 table #406: started
|
||||
2024/09/12-09:50:36.039412 7f25eda006c0 Level-0 table #406: 0 bytes OK
|
||||
2024/09/12-09:50:36.044990 7f25eda006c0 Delete type=0 #404
|
||||
2024/09/12-09:50:36.057626 7f25eda006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.057710 7f25eda006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
|
Binary file not shown.
25
packs/cartes.db
Normal file
25
packs/cartes.db
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000283
|
@ -1,8 +0,0 @@
|
||||
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)
|
@ -1,8 +0,0 @@
|
||||
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.
47
packs/creatures.db
Normal file
47
packs/creatures.db
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000208
|
@ -1,8 +0,0 @@
|
||||
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)
|
@ -1,8 +0,0 @@
|
||||
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.
4
packs/effets-exemples.db
Normal file
4
packs/effets-exemples.db
Normal file
@ -0,0 +1,4 @@
|
||||
{"name":"Vigueur -1","type":"feature","img":"icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp","system":{"category":null,"subtype":"boleffect","description":"","properties":{"ismalusdice":false,"bonusmalus":-2,"identifier":"system.attributes.vigor","modifier":"-1"},"rank":0},"effects":[],"flags":{"core":{"sourceId":"Item.6fTZ6hOKR4pWbWOe"}},"_stats":{"systemId":"bol","systemVersion":"10.3.3","coreVersion":"10.290","createdTime":1669218607632,"modifiedTime":1669234720255,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"6fTZ6hOKR4pWbWOe","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Esprit -1","type":"feature","img":"icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp","system":{"category":null,"subtype":"boleffect","description":"","properties":{"ismalusdice":false,"bonusmalus":-2,"identifier":"system.attributes.mind","modifier":"-1"},"rank":0},"effects":[],"flags":{"core":{"sourceId":"Item.6fTZ6hOKR4pWbWOe"}},"_stats":{"systemId":"bol","systemVersion":"10.3.3","coreVersion":"10.290","createdTime":1669218607632,"modifiedTime":1669234720255,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"V2geomwPtTBnBeQW","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Agilité -1","type":"feature","img":"icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp","system":{"category":null,"subtype":"boleffect","description":"","properties":{"ismalusdice":false,"bonusmalus":-2,"identifier":"system.attributes.agility","modifier":"-1"},"rank":0},"effects":[],"flags":{"core":{"sourceId":"Item.6fTZ6hOKR4pWbWOe"}},"_stats":{"systemId":"bol","systemVersion":"10.3.3","coreVersion":"10.290","createdTime":1669218607632,"modifiedTime":1669234720255,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"eXPNwGQiwnIiGYaK","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Aura -1","type":"feature","img":"icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp","system":{"category":null,"subtype":"boleffect","description":"","properties":{"ismalusdice":false,"bonusmalus":-2,"identifier":"system.attributes.appeal","modifier":"-1"},"rank":0},"effects":[],"flags":{"core":{"sourceId":"Item.6fTZ6hOKR4pWbWOe"}},"_stats":{"systemId":"bol","systemVersion":"10.3.3","coreVersion":"10.290","createdTime":1669218607632,"modifiedTime":1669234720256,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"zwSNMO9HpiqUCMt8","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000405
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:54.083170 7f25ef4006c0 Recovering log #403
|
||||
2024/09/12-22:38:54.094709 7f25ef4006c0 Delete type=3 #401
|
||||
2024/09/12-22:38:54.094800 7f25ef4006c0 Delete type=0 #403
|
||||
2024/09/12-22:42:42.762852 7f25eda006c0 Level-0 table #408: started
|
||||
2024/09/12-22:42:42.762884 7f25eda006c0 Level-0 table #408: 0 bytes OK
|
||||
2024/09/12-22:42:42.770096 7f25eda006c0 Delete type=0 #406
|
||||
2024/09/12-22:42:42.787677 7f25eda006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.787711 7f25eda006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.520585 7f25f4c006c0 Recovering log #399
|
||||
2024/09/12-09:45:32.540463 7f25f4c006c0 Delete type=3 #397
|
||||
2024/09/12-09:45:32.540543 7f25f4c006c0 Delete type=0 #399
|
||||
2024/09/12-09:50:36.138195 7f25eda006c0 Level-0 table #404: started
|
||||
2024/09/12-09:50:36.138235 7f25eda006c0 Level-0 table #404: 0 bytes OK
|
||||
2024/09/12-09:50:36.145251 7f25eda006c0 Delete type=0 #402
|
||||
2024/09/12-09:50:36.168914 7f25eda006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.168987 7f25eda006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
|
Binary file not shown.
54
packs/equipment.db
Normal file
54
packs/equipment.db
Normal file
@ -0,0 +1,54 @@
|
||||
{"_id":"19p4FnLRVdw6cx7Y","name":"Arbalète","type":"item","img":"icons/weapons/crossbows/crossbow-blue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.19p4FnLRVdw6cx7Y"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Arbalète</h1><p>une arme de tir qui nécessite peu d’entraî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>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":true,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"2h":true,"damage":"d6","range":30,"reload":1,"slot":"2hands","attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"damageAttribute":"half-vigor","damageModifiers":null,"damageReroll1":false,"weaponSize":"medium","attackBonusDice":false,"damageMultiplier":"1","natural":false,"onlymodifier":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093877,"modifiedTime":1676829219958,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"3U9Gl7g8D5Ih72HQ","name":"Hache","type":"item","img":"icons/weapons/axes/axe-broad-engraved.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.3U9Gl7g8D5Ih72HQ"}},"system":{"category":"equipment","subtype":"weapon","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>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"medium","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093877,"modifiedTime":1676829219963,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"3UUZjuD4Esgj4ENP","name":"Épée","type":"item","img":"icons/weapons/swords/greatsword-guard-gem-blue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.3UUZjuD4Esgj4ENP"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Épée</h1><p>l’arme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres d’abordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de l’arme que vous voulez sur la fiche de votre personnage en fonction de l’image que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer l’ennemi.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093877,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"3xSSlnw9CDhwg67c","name":"Lance","type":"item","img":"icons/weapons/polearms/glaive-simple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.3xSSlnw9CDhwg67c"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue d’une pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":6,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"medium","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093877,"modifiedTime":1676829219964,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"42mZZxenOD5tDtog","name":"Javelot","type":"item","img":"icons/weapons/polearms/javelin-simple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.42mZZxenOD5tDtog"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Javelot</h1><p>une arme de jet constituée d’une courte hampe surmontée d’une 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 l’Axos.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":true,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":true,"damage":"d6M","range":6,"slot":"none","stacksize":null,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"light","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093877,"modifiedTime":1676829219964,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"4GyTrBGnvlyqoh38","name":"Dague","type":"item","img":"icons/weapons/daggers/dagger-jeweled-purple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.4GyTrBGnvlyqoh38"}},"system":{"category":"equipment","subtype":"weapon","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 qu’utilisées au corps à corps. Facilement dissimulable, la dague est l’arme favorite des truands et des assassins.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":true,"activable":false,"concealable":true,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6M","slot":"none","stacksize":null,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093878,"modifiedTime":1676829219961,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"4NEaikxe0k1vzeqI","name":"Morgenstern","type":"item","img":"icons/weapons/maces/flail-spiked-grey.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.4NEaikxe0k1vzeqI"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Morgenstern</h1><p>une grosse boule de métal hérissée de pointes, montée à l’extrémité d’une longue hampe de 1,20 à 1,50 m de long. Rudimentaire, mais efficace.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6B","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"heavy","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093878,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Lance (Lancer)","type":"item","img":"icons/weapons/polearms/glaive-simple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.3xSSlnw9CDhwg67c"}},"_id":"4k3SUYYCnqc9uNCm","system":{"category":"equipment","subtype":"weapon","description":"<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue d’une pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":6,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"medium","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093878,"modifiedTime":1676829219964,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Projectiles","type":"item","img":"icons/weapons/artillery/ballista-wood-green.webp","system":{"category":"vehicleweapon","subtype":"armor","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>","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":false,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"isfiredamage":false,"ishulldamage":false,"iscrewdamage":true,"hulldamage":"d6","hullDamageMultiplier":"1","crewdamage":"d6","crewDamageMultiplier":"1"},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.55CWxwKSYgBCbLrG"}},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1665332723905,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"55CWxwKSYgBCbLrG","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Cimeterre","type":"item","img":"icons/weapons/swords/scimitar-guard-red.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.3UUZjuD4Esgj4ENP"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Épée</h1><p>l’arme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres d’abordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de l’arme que vous voulez sur la fiche de votre personnage en fonction de l’image que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer l’ennemi.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":1,"damageMultiplier":"1","damageReroll1":false,"natural":false,"onlymodifier":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1669206284323,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"9WkrG0m6w04nq2CG"}
|
||||
{"name":"Massue (Lancer)","type":"item","img":"icons/weapons/clubs/club-simple-stone-purple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.pncWIrD5z7mk6dbc"}},"_id":"9dk1DqMpZXCgvS2r","system":{"category":"equipment","subtype":"weapon","description":"<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont l’extrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, d’où son autre nom de casse-tête.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":true,"range":3,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"medium","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093879,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"9mDDJnPsOCZRGPJN","name":"Gourdin","type":"item","img":"icons/weapons/clubs/club-barbed-square-black.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.9mDDJnPsOCZRGPJN"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Gourdin</h1><p>c’est l’arme 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 d’utiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":true,"damage":"d6M","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093879,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"AMDFMOvMhdapUJJF","name":"Dague (Lancer)","type":"item","img":"icons/weapons/daggers/dagger-jeweled-purple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.4GyTrBGnvlyqoh38"}},"system":{"category":"equipment","subtype":"weapon","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 qu’utilisées au corps à corps. Facilement dissimulable, la dague est l’arme favorite des truands et des assassins.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":true,"activable":false,"concealable":true,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6M","slot":"none","stacksize":null,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"light","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093879,"modifiedTime":1676829219961,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"AQu9KVm0hAdwUBWV","name":"Fouet","type":"item","img":"icons/weapons/misc/whip-red-yellow.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.3skum93qKmROU62c"}},"system":{"category":"equipment","subtype":"weapon","description":"<p><span dir=\"ltr\" style=\"left: 609.197px; top: 442.965px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.92363);\" role=\"presentation\">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);\" role=\"presentation\">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);\" role=\"presentation\">de</span><span dir=\"ltr\" style=\"left: 610.059px; top: 489.642px; font-size: 18.3333px; font-family: serif;\" role=\"presentation\"> </span><span dir=\"ltr\" style=\"left: 621.719px; top: 489.642px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.924893);\" role=\"presentation\">guerre</span><span dir=\"ltr\" style=\"left: 665.004px; top: 489.642px; font-size: 18.3333px; font-family: serif;\" role=\"presentation\"> </span><span dir=\"ltr\" style=\"left: 676.664px; top: 489.642px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.954368);\" role=\"presentation\">entre</span><span dir=\"ltr\" style=\"left: 711.626px; top: 489.642px; font-size: 18.3333px; font-family: serif;\" role=\"presentation\"> </span><span dir=\"ltr\" style=\"left: 723.286px; top: 489.642px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.83588);\" role=\"presentation\">des</span><span dir=\"ltr\" style=\"left: 743.709px; top: 489.642px; font-size: 18.3333px; font-family: serif;\" role=\"presentation\"> </span><span dir=\"ltr\" style=\"left: 755.369px; top: 489.642px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.956849);\" role=\"presentation\">mains</span><span dir=\"ltr\" style=\"left: 797.279px; top: 489.642px; font-size: 18.3333px; font-family: serif;\" role=\"presentation\"> </span><span dir=\"ltr\" style=\"left: 808.939px; top: 489.642px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.889718);\" role=\"presentation\">expertes. </span><span dir=\"ltr\" style=\"left: 595.026px; top: 512.98px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.955811);\" role=\"presentation\">Certains cavaliers ghataï s’en sont fait </span><span dir=\"ltr\" style=\"left: 595.026px; top: 536.319px; font-size: 18.3333px; font-family: serif; transform: scaleX(0.901031);\" role=\"presentation\">une spécialité.</span></p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"concealable":false,"ignoreshield":false,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damage":"d6M","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"slot":"none","bashing":false,"throwable":false},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"vpqjUad9wWS9Gk5R":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093879,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"ASQ7aSeqgUqKubY2","name":"Armure lourde","type":"item","img":"icons/equipment/chest/breastplate-metal-scaled-grey.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.ASQ7aSeqgUqKubY2"}},"system":{"category":"equipment","subtype":"armor","description":"<h1>Armure lourde</h1><p>Ce type d’armure 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 l’on peut porter la journée entière, et encore moins pour voyager ou s’adonner aux activités ordinaires du quotidien. Il peut s’agir d’un haubert de mailles descendant jusqu’aux genoux ou d’une cuirasse en acier, complétée de grèves et de gantelets, ou encore d’une 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 s’il le souhaite.</p><p>Les personnages ayant moins de 0 en vigueur ne peuvent pas porter d’armure 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 d’une armure lourde s’accompagne d’un malus de -2 en agilité du fait de l’ encombrement ;</li><li>le port d’une armure lourde handicape un sorcier et augmente de 3 points de pouvoir le coût de ses sorts.</li></ul>","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,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"modifiers":{"social":true,"agility":-2,"powercost":3,"init":0},"soak":{"formula":"1d6-1","value":1},"slot":"none","armorQuality":"heavy"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"AUqk1SXktM4iDXvr","name":"Masse d’armes","type":"item","img":"icons/weapons/maces/mace-flanged-steel.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.AUqk1SXktM4iDXvr"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Masse d’armes</h1><p>cette arme a la même forme qu’un gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou d’ailettes pour plus d’efficacité. Les masses d’armes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":1.5,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"medium","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Masse d’armes (Lancer)","type":"item","img":"icons/weapons/maces/mace-flanged-steel.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.AUqk1SXktM4iDXvr"}},"_id":"BcYQ4pigZSXp1jWb","system":{"category":"equipment","subtype":"weapon","description":"<h1>Masse d’armes</h1><p>cette arme a la même forme qu’un gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou d’ailettes pour plus d’efficacité. Les masses d’armes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":1.5,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"medium","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"D1UjDptdZGFg6Ggx","name":"Hache (Lancer)","type":"item","img":"icons/weapons/axes/axe-broad-engraved.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.3U9Gl7g8D5Ih72HQ"}},"system":{"category":"equipment","subtype":"weapon","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>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"medium","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219963,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"E8XHWMpwVHjPZV3M","name":"Hâche à deux mains","type":"item","img":"icons/weapons/axes/axe-double-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.E8XHWMpwVHjPZV3M"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Hâche à deux mains</h1><p>Une lourde hache s’utilisant à deux mains.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6B","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"heavy","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219964,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Kriss","type":"item","img":"icons/weapons/daggers/dagger-jeweled-purple.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.4GyTrBGnvlyqoh38"}},"system":{"category":"equipment","subtype":"weapon","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 qu’utilisées au corps à corps. Facilement dissimulable, la dague est l’arme favorite des truands et des assassins.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":true,"activable":false,"concealable":true,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6M","slot":"none","stacksize":null,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":1,"damageMultiplier":"1","damageReroll1":false,"natural":false,"onlymodifier":false},"quantity":null,"weight":null,"price":0,"worn":true},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1662130019228,"modifiedTime":1676829219964,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"EbvPPc9hFGudZYeP"}
|
||||
{"name":"Catapulte (Pierre)","type":"item","img":"icons/weapons/artillery/catapult-simple.webp","system":{"category":"vehicleweapon","subtype":"armor","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 l’incendie soit maîtrisé.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":false,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"isfiredamage":false,"ishulldamage":true,"iscrewdamage":true,"hulldamage":"d6","hullDamageMultiplier":"1","crewdamage":"d3","crewDamageMultiplier":"1"},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.FEEgNQr54HLmbxb4"}},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1665332723905,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"FEEgNQr54HLmbxb4","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"_id":"G0qpJmjQPSJshPsC","name":"Bâton-Fronde","type":"item","img":"icons/weapons/slings/slingshot-wood.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.G0qpJmjQPSJshPsC"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Bâton-Fronde</h1><p>Version plus puissante de la fronde, montée au bout d’un bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"2h":true,"damage":"d6M","range":18,"reload":0,"slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"light","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"natural":false,"onlymodifier":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"Gm8Qpfuay4hu2ihq","name":"Grand bouclier","type":"item","img":"icons/equipment/shield/wardoor-wooden-boss-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.Gm8Qpfuay4hu2ihq"}},"system":{"category":"equipment","subtype":"shield","description":"<h1>Grand bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que s’il est conscient de l’attaque qui le vise, et donc s’il est prêt à la parer.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":false,"helm":false,"shield":true,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"modifiers":{"agility":-1,"init":0,"powercost":0,"social":false},"blocking":{"malus":-1,"nbAttacksPerRound":"1","blocking1":false,"blockingAll":true},"slot":"none"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093880,"modifiedTime":1676829219963,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Outils de Crochetage","type":"item","img":"icons/sundries/misc/key-angular-white.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"HZpsorw1Okd07bvh","system":{"category":"equipment","subtype":"other","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093881,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"LDklxAUh1IPNPnyi","name":"Mains Nues","type":"item","img":"icons/skills/melee/unarmed-punch-fist.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}},"system":{"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,"concealable":false,"ignoreshield":false,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"unarmed","damage":"d3","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"bashing":true,"throwable":false},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093881,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Corde + Grappin","type":"item","img":"icons/sundries/survival/rope-wrapped-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"NRBT2VmdzhjDL4fW","system":{"category":"equipment","subtype":"other","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093882,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Abordage","type":"item","img":"icons/weapons/swords/scimitar-guard-gold.webp","system":{"category":"vehicleweapon","subtype":"weapon","description":"<p>Une action d’Abordage peut être tentée si deux navires sont bloqués l’un contre l’autre suite à une action réussie d’Éperonner ou de Lancer les grappins. L’Abordage est la seule action pour laquelle il n’y a pas de limite aux points de ressources que vous pouvez engager afin d’avoir un bonus au jet d’attaque. L’Abordage est aussi l’occasion pour des héros d’entreprendre des Actions héroïques en mer, de la même façon qu’ils 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>","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":false,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"isfiredamage":false,"ishulldamage":false,"iscrewdamage":true,"hulldamage":"d6","hullDamageMultiplier":"1","crewdamage":"d6","crewDamageMultiplier":"1","isboarding":true,"isspur":false,"isbreakrow":false},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.Oyz8RcFNq6MzDUBO"}},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1665332723905,"modifiedTime":1676829219957,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"Oyz8RcFNq6MzDUBO","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Armes Improvisée","type":"item","img":"icons/tools/hand/shovel-spade-steel-grey.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}},"_id":"RNHBCCGlpPNIkbFu","system":{"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,"concealable":false,"ignoreshield":false,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"improvised","damage":"d3","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"bashing":true,"throwable":false,"natural":false,"onlymodifier":false},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093882,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Armes Improvisée (Lancer)","type":"item","img":"icons/tools/cooking/knife-cleaver-steel-grey.webp","effects":[],"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}},"system":{"category":"equipment","subtype":"weapon","description":"","properties":{"ranged":true,"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":true,"stackable":false,"concealable":false,"ignoreshield":false,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"improvised","damage":"d3","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"bashing":true,"throwable":false,"range":null},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1669197361967,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"URCyzJr7vFAIuN3b"}
|
||||
{"name":"Couteau de Lancer","type":"item","img":"icons/weapons/daggers/dagger-twin-curved-black.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.4GyTrBGnvlyqoh38"}},"system":{"category":"equipment","subtype":"weapon","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 qu’utilisées au corps à corps. Facilement dissimulable, la dague est l’arme favorite des truands et des assassins.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":true,"stackable":true,"activable":false,"concealable":true,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6M","slot":"none","stacksize":null,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"light","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"natural":false,"onlymodifier":false},"quantity":2,"weight":null,"price":0,"worn":false},"ownership":{"kQghu0tL1dft5xLu":3,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1669209202825,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"W3q72Hop6XYopxpU"}
|
||||
{"name":"Gourdin Clouté","type":"item","img":"icons/weapons/clubs/club-barbed-square-black.webp","effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.9mDDJnPsOCZRGPJN"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Gourdin</h1><p>c’est l’arme 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 d’utiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":true,"damage":"d6","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":2,"damageMultiplier":"1","damageReroll1":false,"natural":false,"onlymodifier":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1669208789210,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"Wq2zN2XVbYwqw2ki"}
|
||||
{"name":"Bottes","type":"item","img":"icons/equipment/feet/boots-collared-leather-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"X3AR5En9mQhGUrOA","system":{"category":"equipment","subtype":"other","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093882,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"Z2AaQKweMljBAgt6","name":"Arc","type":"item","img":"icons/weapons/bows/longbow-leather-green.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.Z2AaQKweMljBAgt6"}},"system":{"category":"equipment","subtype":"weapon","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 d’arcs.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"2h":true,"damage":"d6","range":22,"reload":0,"slot":"none","attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"damageAttribute":"half-vigor","damageModifiers":null,"damageReroll1":false,"attackBonusDice":false,"weaponSize":"medium","damageMultiplier":"1"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093882,"modifiedTime":1676829219958,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Sac","type":"item","img":"icons/containers/bags/pack-leather-black-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"aclqGClakTbXVwAK","system":{"category":"equipment","subtype":"container","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093882,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Briser les Rames","type":"item","img":"icons/tools/nautical/steering-wheel.webp","system":{"category":"vehicleweapon","subtype":"armor","description":"<p>Le navire attaquant frôle le navire ennemi dans le but de briser ses rangées de rames afin de<br>l’immobiliser sans le couler. Pour cette manœuvre, les navires doivent commencer le round à Bout<br>portant ou à portée Courte. L’attaquant effectue un jet d’action. Le défenseur peut utiliser ses<br>ressources pour éviter l’attaque (ce qui lui octroie un bonus en défense).</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":false,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"isfiredamage":false,"ishulldamage":true,"iscrewdamage":false,"hulldamage":"d6","hullDamageMultiplier":"1","crewdamage":"d6","crewDamageMultiplier":"1","isboarding":false,"isspur":false,"isbreakrow":true},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.c8XSKMNX8hFr1Lgf"}},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1665332723905,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"c8XSKMNX8hFr1Lgf","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"_id":"cS2LGlXLZegvRGOo","name":"Arbalète lourde","type":"item","img":"icons/weapons/crossbows/crossbow-golden-bolt.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.cS2LGlXLZegvRGOo"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Arbalète lourde</h1><p>plus lourde et plus puissante qu’une arbalète normale, l’arbalè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>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":true,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"2h":true,"damage":"d6B","range":45,"reload":2,"slot":"none","attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"damageAttribute":"half-vigor","damageModifiers":null,"damageReroll1":false,"attackBonusDice":false,"weaponSize":"heavy","damageMultiplier":"1"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219958,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"d7UV55xQXXfMiGQI","name":"Fronde","type":"item","img":"icons/weapons/slings/slingshot-wood.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.d7UV55xQXXfMiGQI"}},"system":{"category":"equipment","subtype":"weapon","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. C’est une arme peu coûteuse et facile à fabriquer. Il existe une version plus puissante, montée au bout d’un bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6M","range":9,"reload":0,"slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"unarmed","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"gCbETPg0ROGdDfHS","name":"Arc Ghataï","type":"item","img":"icons/weapons/bows/longbow-recurve-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.ltAvk5pqfNeqF8gO"}},"system":{"category":"equipment","subtype":"weapon","description":"<p>L’arme 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>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"concealable":false,"ignoreshield":false,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"unarmed","damage":"d6","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false,"slot":"2hands","bashing":false,"throwable":false,"range":22},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"vpqjUad9wWS9Gk5R":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219958,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"jjdzMgx8zru2A28V","name":"Armure moyenne","type":"item","img":"icons/equipment/chest/breastplate-layered-leather-studded-black.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.jjdzMgx8zru2A28V"}},"system":{"category":"equipment","subtype":"armor","description":"<h1>Armure moyenne</h1><p>Ce type d’armure, compromis entre la maniabilité de l’armure légère et la protection de l’armure lourde, est le choix favori des aventuriers qui s’attendent à affronter des combats de manière régulière. Il peut s’agir d’une armure de cuir couvrant la majeure partie du corps, avec des parties en cuir bouilli pour protéger les points vitaux, ou d’une armure mêlant le cuir et la cotte de mailles, ou encore d’une 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 s’il 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 d’une armure moyenne s’accompagne d’un malus de -1 en agilité du fait de l’encombrement ;</li><li>le port d’une armure moyenne handicape un sorcier et augmente de 2 points de pouvoir le coût de ses sorts.</li></ul>","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,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"modifiers":{"social":true,"agility":-1,"powercost":2,"init":0},"soak":{"formula":"1d6-2","value":2},"slot":"none","armorQuality":"medium"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"me4GVat8gcs94hri","name":"Armure légère","type":"item","img":"icons/equipment/chest/shirt-simple-grey.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.me4GVat8gcs94hri"}},"system":{"category":"equipment","subtype":"armor","description":"<h1>Amure légère</h1><p>Si votre personnage préfère éviter les combats mais sait qu’il risque de ne pas y couper, vous souhaiterez peut-être qu’il bénéficie au moins d’une petite protection. La catégorie des armures légères comprend les différentes sortes d’armures 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 qu’il soit vêtu d’une légère chemise de mailles et de rien d’autre.</p><p>Une armure légère est généralement dissimulable (à moins d’être inspecté de près ou d’avoir affaire à l’œil exercé d’un 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 d’une armure légère handicape un sorcier et augmente de 1 point de pouvoir le coût de ses sorts.</li></ul>","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,"d6B":false,"d6M":false,"stackable":false,"activable":false,"concealable":true,"ignoreshield":false,"powder":false,"bashing":false,"modifiers":{"social":true,"agility":0,"powercost":1,"init":0},"soak":{"formula":"1d6-3","value":1},"slot":"none","armorQuality":"light"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Tenue de Marchand","type":"item","img":"icons/equipment/shoulder/cloak-plain-leather-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"oRhIBU041D3QEYaX","system":{"category":"equipment","subtype":"other","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"obNHhN1wvcWFaVrS","name":"Petit bouclier","type":"item","img":"icons/equipment/shield/buckler-wooden-boss-brown.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.obNHhN1wvcWFaVrS"}},"system":{"category":"equipment","subtype":"shield","description":"<h1>Petit bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que s’il est conscient de l’attaque qui le vise, et donc s’il est prêt à la parer.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":false,"helm":false,"shield":true,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"blocking":{"malus":-1,"nbAttacksPerRound":"1","blocking1":true,"blockingAll":false},"slot":"none","modifiers":{"init":null,"agility":null,"powercost":null,"social":false}},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093883,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"pncWIrD5z7mk6dbc","name":"Massue","type":"item","img":"icons/weapons/clubs/club-simple-stone-purple.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.pncWIrD5z7mk6dbc"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont l’extrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, d’où son autre nom de casse-tête.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":false,"range":3,"damage":"d6","slot":"none","attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"medium","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093884,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"qG5Jlhjjh7vDtBB1","name":"Fléau","type":"item","img":"icons/weapons/maces/flail-triple-grey.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.qG5Jlhjjh7vDtBB1"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Fléau</h1><p>un fléau consiste en un manche de bois prolongé d’une chaîne, à l’extré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 l’emploi d’un bouclier.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":true,"powder":false,"bashing":false,"damage":"d6","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"medium","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093884,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"rVLqiqxtfsZ7z6Hw","name":"Rapière","type":"item","img":"icons/weapons/swords/greatsword-flamberge.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.rVLqiqxtfsZ7z6Hw"}},"system":{"category":"equipment","subtype":"weapon","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 l’escrime a été élevé au rang d’art. La rapière s’utilise 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>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6M","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"light","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093884,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Crache Feu","type":"item","img":"icons/weapons/artillery/cannon-engraved-gold.webp","system":{"category":"vehicleweapon","subtype":"armor","description":"<p>L’usage de cet appareil d’alchimiste exige des compétences particulières. Sa conception comme<br>la formule du produit qui l’alimente sont des secrets jalousement gardés. Le crache-feu est un<br>gros réservoir pressurisé équipé d’un 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>","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":false,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"isfiredamage":true,"ishulldamage":true,"iscrewdamage":true,"hulldamage":"d6","hullDamageMultiplier":"1","crewdamage":"d6","crewDamageMultiplier":"1","isboarding":false,"isspur":false,"isbreakrow":false},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.uBTjNOW9I8dAJPdv"}},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1665332723905,"modifiedTime":1676829219961,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"uBTjNOW9I8dAJPdv","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"_id":"vN3CHxyOrXuXHQRY","name":"Bâton","type":"item","img":"icons/weapons/staves/staff-simple-gold.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.vN3CHxyOrXuXHQRY"}},"system":{"category":"equipment","subtype":"weapon","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 d’arme.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":true,"damage":"d6","slot":"none","throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"damageAttribute":"vigor","damageModifiers":null,"damageReroll1":false,"attackBonusDice":false,"weaponSize":"unarmed","damageMultiplier":"1"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093884,"modifiedTime":1676829219959,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Somnifère","type":"item","img":"icons/consumables/potions/bottle-bulb-corked-labeled-blue.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"vgJSyqc6VVxfbWsC","system":{"category":"equipment","subtype":"other","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093884,"modifiedTime":1676829219966,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"name":"Catapulte (Feu)","type":"item","img":"icons/weapons/artillery/catapult-simple.webp","system":{"category":"vehicleweapon","subtype":"armor","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 l’incendie soit maîtrisé.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":false,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"isfiredamage":true,"ishulldamage":true,"iscrewdamage":true,"hulldamage":"d3","hullDamageMultiplier":"1","crewdamage":"d3","crewDamageMultiplier":"1"},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"flags":{"core":{"sourceId":"Compendium.bol.equipment.vgyGk9PEKJOqfZH2"}},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1665332723905,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"vgyGk9PEKJOqfZH2","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Lanterne + Huile + Silex","type":"item","img":"icons/sundries/lights/lantern-iron-yellow.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"x86khXdimiKSujjy","system":{"category":"equipment","subtype":"other","description":"","properties":{"ranged":false,"melee":false,"spell":false,"protection":false,"weapon":false,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"slot":"chest"},"quantity":1,"weight":0,"price":0,"worn":false},"ownership":{"default":0,"zN9ZZg5J7XzNELjd":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093885,"modifiedTime":1676829219965,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"xH95daHpPAQWuiYp","name":"Arme d’hast","type":"item","img":"icons/weapons/polearms/halberd-crescent-small-spiked.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.xH95daHpPAQWuiYp"}},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Arme d’hast</h1><p>ce nom recouvre une catégorie d’armes possédant toutes un fer destiné à frapper, fixé au bout d’une 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>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6B","slot":"none","throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"damageAttribute":"vigor","damageModifiers":null,"damageReroll1":false,"attackBonusDice":false,"weaponSize":"unarmed","damageMultiplier":"1"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093885,"modifiedTime":1676829219958,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"xYWeGSCfnPwTq0rV","name":"Épée à deux mains","type":"item","img":"icons/weapons/swords/greatsword-crossguard-silver.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.xYWeGSCfnPwTq0rV"}},"system":{"category":"equipment","subtype":"weapon","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 s’utilisant à deux mains. Elle peut porter différents noms selon les modèles : claymore, espadon, épée bâtarde…</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":true,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"damage":"d6B","slot":"none","attackBonusDice":false,"throwable":false,"attackAttribute":"agility","attackAptitude":"melee","attackModifiers":null,"weaponSize":"heavy","damageAttribute":"vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093885,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"yDmQXkTLeaPTF44S","name":"Fléchettes","type":"item","img":"icons/weapons/thrown/dart-feathered.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.yDmQXkTLeaPTF44S"}},"system":{"category":"equipment","subtype":"weapon","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>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":true,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"throwable":true,"damage":"d6M","range":6,"slot":"none","stacksize":null,"attackBonusDice":false,"attackAttribute":"agility","attackAptitude":"ranged","attackModifiers":null,"weaponSize":"light","damageAttribute":"half-vigor","damageModifiers":null,"damageMultiplier":"1","damageReroll1":false},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093885,"modifiedTime":1676829219962,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
||||
{"_id":"zAuda7upJnZW8EZf","name":"Casque","type":"item","img":"icons/equipment/head/helm-barbute-horned-grey.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Compendium.bol.equipment.zAuda7upJnZW8EZf"}},"system":{"category":"equipment","subtype":"helm","description":"<h1>Casque</h1><p>Si vous êtes équipé d’un 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 à l’initiative (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 lorsqu’il se prépare au combat.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":false,"helm":true,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":false,"ignoreshield":false,"powder":false,"bashing":false,"modifiers":{"social":true,"init":null,"agility":0,"powercost":0},"soak":{"formula":"+1","value":1,"modifier":null},"slot":"none"},"quantity":null,"weight":null,"price":0,"worn":false},"ownership":{"default":0,"EEnCVoPAR7pMjRym":3},"_stats":{"systemId":"bol","systemVersion":"10.5.6","coreVersion":"10.291","createdTime":1676829093886,"modifiedTime":1676829219960,"lastModifiedBy":"kQghu0tL1dft5xLu"}}
|
Binary file not shown.
@ -1 +0,0 @@
|
||||
MANIFEST-000408
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-22:38:53.895694 7f25eea006c0 Recovering log #406
|
||||
2024/09/12-22:38:53.908795 7f25eea006c0 Delete type=3 #404
|
||||
2024/09/12-22:38:53.908936 7f25eea006c0 Delete type=0 #406
|
||||
2024/09/12-22:42:42.683293 7f25eda006c0 Level-0 table #411: started
|
||||
2024/09/12-22:42:42.683318 7f25eda006c0 Level-0 table #411: 0 bytes OK
|
||||
2024/09/12-22:42:42.690892 7f25eda006c0 Delete type=0 #409
|
||||
2024/09/12-22:42:42.699091 7f25eda006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-22:42:42.699149 7f25eda006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
|
@ -1,8 +0,0 @@
|
||||
2024/09/12-09:45:32.374751 7f25eea006c0 Recovering log #402
|
||||
2024/09/12-09:45:32.385764 7f25eea006c0 Delete type=3 #400
|
||||
2024/09/12-09:45:32.385832 7f25eea006c0 Delete type=0 #402
|
||||
2024/09/12-09:50:36.070382 7f25eda006c0 Level-0 table #407: started
|
||||
2024/09/12-09:50:36.070408 7f25eda006c0 Level-0 table #407: 0 bytes OK
|
||||
2024/09/12-09:50:36.076675 7f25eda006c0 Delete type=0 #405
|
||||
2024/09/12-09:50:36.082735 7f25eda006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
|
||||
2024/09/12-09:50:36.082778 7f25eda006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
|
Binary file not shown.
30
packs/fightoptions.db
Normal file
30
packs/fightoptions.db
Normal file
@ -0,0 +1,30 @@
|
||||
{"name":"La Passe du Khastok","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un Khastok de Malakut. Vous fauchez les jambes (ou les membres inférieurs) de<br>votre adversaire.</p>\n<p>Votre attaque souffre d’un malus de -2, mais si elle occasionne des dégâts, la cible doit réussir un test d’Agilité, avec votre score de Mêlée en malus ou tomber au sol.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965170,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"4EmWdK1cv7EX0X3E"}
|
||||
{"name":"Le Saut du Voleur (Distraire)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous faites une manœuvre ayant pour objectif de distraire l’adversaire. Vous ne portez pas<br>d’attaque.</p>\n<p>Si vous réussissez un test de Réaction (Esprit+Initiative) avec l’Esprit de votre cible en malus, elle<br>subit un malus de -1 pour toutes ses actions dans le round en cours.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"5L42okgdCMC8MZb6"}
|
||||
{"name":"La Fureur de Charkond (Intimider)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous faites une manœuvre physique dans l’objectif d’impressionner votre adversaire en lieu et place de votre attaque.</p>\n<p>Si vous réussissez un test de Vigueur+Mêlée, avec l’Esprit de votre cible en malus, elle subit un malus de -2 sur tout ses tests d’attaque pour le reste du round. Ne fonctionne que sur un adversaire sur lequel l’Intimidation est applicable, donc en général ne fonctionne pas sur les créatures.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"6D42OgoKxwtV5tDD"}
|
||||
{"name":"Les Poignards de Karyzon (Lancer x2)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec deux Couteaux ou Poignards de lancer. Armé d’un Poignard dans chaque main, vous<br>les lancez sur 2 cibles différentes en même temps</p>\n<p>Chaque attaque est résolue séparément et souffre d’un malus de -2.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965173,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"6tiu12ROxOPE31qU"}
|
||||
{"name":"Le Halakh-Kriss (Spéciale Kriss)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un Kriss d’Halakh. Vous portez un coup vicieux à votre adversaire.</p>\n<p>Votre attaque souffre d’un malus de -1, mais si elle réussit, vous augmentez les dégâts de 1 point.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"6zSkgyYkk7EV4BGU"}
|
||||
{"name":"Le Plomb de l’Axos (Fronde Axos)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec une Fronde de l’Axos. Vous faites tournoyer votre fronde à grande vitesse.</p>\n<p>Votre tir souffre d’un malus de -2, mais vos dégâts bénéficient de la vigueur entière à la place de la moitié de la Vigueur.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"8p1EsWyLxvmrXc7p"}
|
||||
{"name":"Le Coup de Mangaï (Entraver - Fouet)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un fouet. Vous fouettez votre adversaire pour le gêner et l’entraver.</p>\n<p>Votre attaque souffre d’un malus de -2, mais si elle réussit, votre fouet s’enroule autour d’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éfense. En lieu et place d’une attaque, la cible peut tenter de se libérer en réussissant un jet de Vigueur+Initiative, avec votre Vigueur en malus.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"9My3kH5KeAdFmF1F"}
|
||||
{"name":"Le Trait du Beshaar (Javelot)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un Javelot. Vous lancez votre javelot à une distance plus grande que la plupart des<br>autres aventuriers.</p>\n<p>Votre tir souffre d’un malus de -1, mais la portée du javelot est doublée (12m au lieu de 6m).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"9d4rHBS7CMZI0t4E","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La pose de l’Esclave (Posture Défensive)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.CS1fCtHTxp5v1krr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous choisissez d’adopter une attitude prudente, en restant toujours prêt à parer ou à esquiver l’attaque de votre adversaire. Combattre en posture défensive vous confère un bonus de +1 en défense, mais vous subissez un malus de -1 à votre jet d’attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"defense","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"defense"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310228,"modifiedTime":1687457965159,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"AoT2c0af4lY6aBsx"}
|
||||
{"name":"La Passe de Charkond (Feinte)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous placez une botte spéciale, pour tromper et profiter de la défense de votre adversaire. Uniquement possible avec un dague ou une arme de type épée (sabre, cimeterre, etc.).</p>\n<p>Si vous réussissez un jet d’Esprit +Carrière guerrière (mercenaire, soldat, etc.) en plus de votre<br>attaque, la défense de votre adversaire s’ajoute à vos dégâts.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965167,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"Cs2yV3V8D7kHBTmT"}
|
||||
{"name":"Le Coup du Soldat (Désarmer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes légères ou moyennes. Vous visez l’arme de votre adversaire<br>pour la faire tomber.</p>\n<p>Vous portez une attaque sur l’arme, avec pour malus l’Agilité+Mêlée de votre adversaire. En cas de réussite, l’arme visée tombe au sol à 1d6-2 mètres de votre opposant.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"EN3xW64gAAj6GxZs","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La Main d’Afyra (Se Reposer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous restez au contact de votre adversaire, mais vous vous concentrez sur vous-même. Vous<br>ne pouvez pas attaquer ce round.</p>\n<p>Si vous réussissez un jet de Vigueur, vous récupérez 2 Points de Vitalité, 4 sur un succès Héroïque. Ces points ne peuvent être récupérés que si ils ont été perdus lors du combat en cours.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"EvADUhFjuz7G7ts9","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Le Doigt de Karyzon (Tir x2)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous enchaînez 2 tirs au lieu d’un, sans précision. Uniquement avec armes de jet et arcs.</p>\n<p>Vous tirez (ou lancer) très rapidement, sans précision, sur la même cible. Chaque tir/lancer souffre d’un malus de -2.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"FMJGgMYdXztCBTtc"}
|
||||
{"name":"La Rage du Barbare (Posture Offensive)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.BF7F5WvL1pbWVHNq"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous vous concentrez sur l’attaque, au détriment de votre défense. Cette option vous confère un bonus de +1 au jet d’attaque, mais vous subissez un malus de -1 en défense.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"attack","activated":false},"rank":0,"fightoptiontype":"attack"},"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"11.0.2","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687467695919,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"MMcnWBowztvbmXgN"}
|
||||
{"name":"La Passe de l’Assassin (Avantage)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous vous placez de manière à obtenir une position plus avantageuse pour portez vos attaques.</p>\n<p>En plus de votre attaque normale, vous devez réussir un jet de Réaction (Esprit+Initiative). Sur une<br>réussite, vous bénéficiez d’un dé bonus pour votre prochaine attaque. Si vous renoncez à votre attaque, vous bénéficiez d’un bonus de +2 pour le jet de Réaction. Sur un échec, c’est votre adversaire qui bénéficie d’un dé bonus pour sa prochaine attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"PCa0SQruR9VZUbPh","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La Folie de Dyr (Occuper)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous faites tournoyer votre arme dans tout les sens, pour faire reculer votre adversaire.</p>\n<p>Votre attaque reçoit un malus supplémentaire de -1 et n’occasionne pas de dégâts. En cas<br>de succès, votre adversaire ne peut pas attaquer ce round. Uniquement sur des adversaires au maximum de de taille supérieure d’un cran à la vôtre.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"PENp7jlG0DirTQeo","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Le Dit de Iondal (Moquer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous moquez votre adversaire avec une phrase bien sentie.</p>\n<p>Si vous réussissez un test d’Esprit+Carrière appropriée, avec l’Esprit de votre cible en malus, elle<br>subit un malus de -2 en défense pour le reste du round.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"VSOjm28jhFhyWk6b","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"Le Tranchant de Parsool (Hache de Parsool)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec une Hache d’Abordage de Parsool. Vous placez une attaque visant l’armure de votre adversaire pour la détruire.</p>\n<p>Votre attaque souffre d’un malus de -1, mais si elle réussit, vous faites sauter une pièce d’armure de votre adversaire au lieu de faire des dégâts. L’armure touchée se dégrade d’un rang de protection. Uniquement valable sur des adversaires portant une armure artificielle.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"VfTa073U4xhs1JWp","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La Corde de Tyrus (Arc de Tyrus)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un arc long de Tyrus. Vous tendez la corde si fort que votre flèche porte plus loin.</p>\n<p>Votre attaque souffre d’un malus de -2, mais si elle réussit, vous doublez la distance de tir de l’Arc (44m au lieu de 22m).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"WQkzlwaww7KgarAt","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"L’oeil du Mercenaire (Observer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous observez attentivement l’un des adversaires ou un groupe d’adversaires similaires. Vous ne<br>portez pas d’attaque.</p>\n<p>Si vous réussissez un jet d’Esprit + Carrière guerrière (mercenaire, soldat, etc.) en observant l’adversaire, vous pouvez donner un bonus de +2 à l’attaque ou à la défense à l’un de vos allié contre ce même adversaire pour sa prochaine action de ce type. Une seule assistance peut être obtenue pour un même adversaire.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687458428494,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"X7mIyzm1ad543fLY","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La Force de Grondil (Frappe Brutale)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous placez une attaque brutale, sans finesse, mais avec toute votre force. Uniquement avec des armes moyenne ou plus (minimum d6 dégâts).</p>\n<p>Votre attaque souffre d’un malus de -2, mais si elle réussit, vous pouvez ajouter la moitié de votre Vigueur pour le calcul des dégâts (minimum 1). Ce bonus vient en plus du bonus de Vigueur de base déjà applicable.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965167,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"Xeoqf4YtG7Yh9GUz"}
|
||||
{"name":"La Ruade de l’Axos (Déséquilibrer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous cherchez à déséquilibrer votre adversaire. Vous ne portez pas d’attaque.</p>\n<p>Si vous réussissez un jet de Réaction (Esprit+Initiative) avec l’Agilité de votre cible comme malus, elle reçoit un dé malus pour sa prochaine action et un malus de -1 en défense sur la prochaine attaque. Sur un succès héroïque et que votre cible est de la piétaille ou un coriace, elle tombe au sol.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"aYGjdR5eWrIEq842","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La Feinte du Druide (Attaque au Défaut d'armure)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.3nzfQvMvkK4ujRqI"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous visez une zone du corps non protégée ou un point faible de l’armure de votre adversaire.</p>\n<p>Appliquez la valeur de protection fixe de l’armure comme malus à votre jet d’attaque (-1 pour une armure légère, -2 pour une armure moyenne et -3 pour une armure lourde). Si votre attaque passe malgré ce malus, les dégâts de votre coup ignorent la protection de l’armure.</p>\n<p>Si le MJ l’accepte, cette option de combat pourra également permettre de trouver le défaut de l’armure naturelle d’une créature.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"armordefault","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"armordefault"},"_stats":{"systemId":"bol","systemVersion":"11.0.1","coreVersion":"10.291","createdTime":1687456310227,"modifiedTime":1687458575673,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"bfQMXfvqS236M0OJ"}
|
||||
{"name":"La Frappe Lémurienne (Attaque Standard)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous portez une attaque à votre adversaire, avec votre arme. Au contact ou à distance.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"cqvDDFdlc6oOICxl","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"La Folie du Gladiateur (Attaque Intrépide)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.589BS9KBGnUazrFA"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous attaquez avec la plus extrême témérité.</p>\n<p>Vous ne bénéficiez pas de l’éventuel bonus d’un bouclier ou d’une arme secondaire de parade et subissez un malus de -2 à la défense. En revanche, vous bénéficiez d’un bonus de +2 au jet d’attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"intrepid","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"intrepid"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310230,"modifiedTime":1687457965158,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"fTNUNRlUmfoNTkil"}
|
||||
{"name":"Le Coup du Gladiateur (Combat à Deux Armes - Offensif)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes légères 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’effectuez qu’un seul jet d’attaque avec un </span>malus de -1, mais vous infligez des dégâts comme si vous maniez une arme moyenne (si vous utilisez deux armes légères) ou une arme lourde (si vous utilisez une arme moyenne et une arme légère, ou deux armes moyennes).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"twoweaponsatt","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965160,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"iWIttyo2UIafVsRB"}
|
||||
{"name":"La Vengeance du Valgard (Epee Valgardienne)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec une épée Valgardienne. Si vous avez subit des dégâts lors de l’attaque précédente, vous profitez du poids de votre arme pour appuyer votre coup.</p>\n<p>Si vous avez perdu des Points de Vitalité lors de l’attaque précédente, vous pouvez faire un<br>jet de Vigueur+Barbare en plus de votre attaque. Si les deux jets sont réussis, vous augmentez les dégâts de 2 points. Si seule l’attaque est réussi, appliquez les dégâts normaux.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"ixpHCL4Uc9DUoBJ4","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
|
||||
{"name":"L’Oeil du Chasseur (Viser)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Armes de jet ou de tir uniquement. Vous passez le round à viser. Vous bénéficiez d’un bonus de +2 à votre prochain jet de tir ou de lancer.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.2","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687458793253,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"leslYWbb3hfGHPlX"}
|
||||
{"name":"La Danseuse (Combat à Deux Armes - Défensif)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes légères ou moyennes.</p>\n<p>Vous attaquez avec une arme et parez avec l’autre. Vous considérez l’arme de parade comme l’équivalent d’un petit bouclier (+1 en défense contre une attaque), mais vous subissez un malus de -1 sur votre jet d’attaque avec votre autre arme.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"twoweaponsdef","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310229,"modifiedTime":1687457965157,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"uRuOskeAALWwxDEM"}
|
||||
{"name":"La Parade de l’Erudit (Défense Totale)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.t8v7isBpnFzAbmUI"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous consacrez votre round à esquiver, parer et vous protéger des coups. Vous n’ effectuez pas d’attaque durant le round, mais bénéficiez d’un bonus de +2 en défense, qui s’ajoute éventuellement à celui que pourrait vous apporter un bouclier ou une arme secondaire de parade.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"fulldefense","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"fulldefense"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310229,"modifiedTime":1687457965159,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"vGydqADwTsHZ9B3j"}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user