Compare commits

..

7 Commits

Author SHA1 Message Date
5e7dc3ad9d Display effects in main sheet (left) and manage it for defense and damages 2022-11-25 08:49:37 +01:00
add6893864 Logo is rotating again 2022-11-25 07:37:44 +01:00
3a591e750a Ajout aide + effets 2022-11-23 21:37:46 +01:00
fe1cda67c4 Ajout aide + effets 2022-11-23 21:34:51 +01:00
985aba0318 Various enhancements 2022-11-23 15:30:31 +01:00
5d8cc300e9 Various enhancements 2022-11-23 15:27:08 +01:00
aa27168c2b fix flaws usage 2022-11-19 22:00:14 +01:00
28 changed files with 361 additions and 132 deletions

BIN
assets/bol_monnaies_v1_1.pdf Executable file

Binary file not shown.

14
changelog.md Normal file
View File

@ -0,0 +1,14 @@
# v10.4.0
- Ajout de la gestion d'effets
- Aide intégré
- Intégration du PDF de la bougette
# v10.3.3
- Nouvelles clés de traduction
- Lorsqu'une arme a un dé bonus, prise en compte plus claire du dé bonus et affichage de l'information dans la fenêtre de jet
- Lorsqu'une arme relance les 1 sur ses dégats, l'information est affichée dans le tchat
- Termes corrects pour les PNJs (ie rival)
- Nouveaux équipements issus du Dieu Voilé

View File

@ -59,8 +59,6 @@ a:hover {
top: -50px; top: -50px;
left: calc(50% - 100px); left: calc(50% - 100px);
opacity: 0.7; opacity: 0.7;
-webkit-animation: rotation 10s infinite linear;
animation: rotation 10s infinite linear;
} }
#pause h3 { #pause h3 {
font-family: "IMFellDWPicaSC-Regular", serif; font-family: "IMFellDWPicaSC-Regular", serif;

View File

@ -151,6 +151,7 @@
"BOL.ui.armorAgiMalus": "Armor+Shield Modifier (Agi)", "BOL.ui.armorAgiMalus": "Armor+Shield Modifier (Agi)",
"BOL.ui.armorInitMalus": "Armor Modifier (Init)", "BOL.ui.armorInitMalus": "Armor Modifier (Init)",
"BOL.ui.attackValue": "Attack Value", "BOL.ui.attackValue": "Attack Value",
"BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)",
"BOL.featureCategory.origins": "Origins", "BOL.featureCategory.origins": "Origins",
"BOL.featureCategory.races": "Races", "BOL.featureCategory.races": "Races",

View File

@ -6,6 +6,7 @@
"ITEM.TypeFeature": "Trait", "ITEM.TypeFeature": "Trait",
"ITEM.TypeWeapon": "Arme", "ITEM.TypeWeapon": "Arme",
"ITEM.TypeArmor": "Armure", "ITEM.TypeArmor": "Armure",
"BOL.attributes.vigor": "Vigueur", "BOL.attributes.vigor": "Vigueur",
"BOL.attributes.halfvigor": "Demi-vigueur", "BOL.attributes.halfvigor": "Demi-vigueur",
"BOL.attributes.agility": "Agilité", "BOL.attributes.agility": "Agilité",
@ -160,6 +161,18 @@
"BOL.ui.hullDamage": "D.coque", "BOL.ui.hullDamage": "D.coque",
"BOL.ui.crewDamage": "D.équipage", "BOL.ui.crewDamage": "D.équipage",
"BOL.ui.fireDamage": "Feu ?", "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.featureCategory.origins": "Origines", "BOL.featureCategory.origins": "Origines",
"BOL.featureCategory.races": "Races", "BOL.featureCategory.races": "Races",
"BOL.featureCategory.careers": "Carrières", "BOL.featureCategory.careers": "Carrières",
@ -172,6 +185,7 @@
"BOL.bougette.easylife": "A l'aise", "BOL.bougette.easylife": "A l'aise",
"BOL.bougette.luxury": "Luxe&Volupté", "BOL.bougette.luxury": "Luxe&Volupté",
"BOL.bougette.rich": "Richissime", "BOL.bougette.rich": "Richissime",
"BOL.featureSubtypes.origin": "Origine", "BOL.featureSubtypes.origin": "Origine",
"BOL.featureSubtypes.race": "Race", "BOL.featureSubtypes.race": "Race",
"BOL.featureSubtypes.career": "Carrière", "BOL.featureSubtypes.career": "Carrière",
@ -180,6 +194,10 @@
"BOL.featureSubtypes.language": "Langue", "BOL.featureSubtypes.language": "Langue",
"BOL.featureSubtypes.gods": "Dieux & Foi", "BOL.featureSubtypes.gods": "Dieux & Foi",
"BOL.featureSubtypes.fightOption": "Option de Combat", "BOL.featureSubtypes.fightOption": "Option de Combat",
"BOL.featureSubtypes.effect": "Effet",
"BOL.featureSubtypes.effects": "Effets",
"BOL.featureSubtypes.boleffect": "Effet",
"BOL.fightOptionTypes.armor": "Attaque au défaut d'armure", "BOL.fightOptionTypes.armor": "Attaque au défaut d'armure",
"BOL.fightOptionTypes.intrepid": "Attaque intrépide", "BOL.fightOptionTypes.intrepid": "Attaque intrépide",
"BOL.fightOptionTypes.twoweaponsdef": "Combat à 2 armes (Défense)", "BOL.fightOptionTypes.twoweaponsdef": "Combat à 2 armes (Défense)",
@ -187,6 +205,7 @@
"BOL.fightOptionTypes.fulldefense": "Défense totale", "BOL.fightOptionTypes.fulldefense": "Défense totale",
"BOL.fightOptionTypes.defense": "Posture défensive", "BOL.fightOptionTypes.defense": "Posture défensive",
"BOL.fightOptionTypes.attack": "Posture offensive", "BOL.fightOptionTypes.attack": "Posture offensive",
"BOL.itemCategory.object": "Objet", "BOL.itemCategory.object": "Objet",
"BOL.itemCategory.equipment": "Équipement", "BOL.itemCategory.equipment": "Équipement",
"BOL.itemCategory.consumable": "Consommable", "BOL.itemCategory.consumable": "Consommable",
@ -196,12 +215,14 @@
"BOL.itemCategory.capacity": "Capacité", "BOL.itemCategory.capacity": "Capacité",
"BOL.itemCategory.alchemy": "Préparation Alchimique", "BOL.itemCategory.alchemy": "Préparation Alchimique",
"BOL.itemCategory.vehicleweapon": "Armes de Véhicule", "BOL.itemCategory.vehicleweapon": "Armes de Véhicule",
"BOL.combatCategory.protections": "Protections", "BOL.combatCategory.protections": "Protections",
"BOL.combatCategory.shields": "Boucliers", "BOL.combatCategory.shields": "Boucliers",
"BOL.combatCategory.melee": "Armes de contact", "BOL.combatCategory.melee": "Armes de contact",
"BOL.combatCategory.ranged": "Armes à distance", "BOL.combatCategory.ranged": "Armes à distance",
"BOL.combatCategory.fightOptions": "Options de combat", "BOL.combatCategory.fightOptions": "Options de combat",
"BOL.combatCategory.natural": "Armes Naturelless", "BOL.combatCategory.natural": "Armes Naturelless",
"BOL.equipmentCategory.weapon": "Arme", "BOL.equipmentCategory.weapon": "Arme",
"BOL.equipmentCategory.armor": "Armure", "BOL.equipmentCategory.armor": "Armure",
"BOL.equipmentCategory.protection": "Protection", "BOL.equipmentCategory.protection": "Protection",
@ -213,21 +234,26 @@
"BOL.equipmentCategory.container": "Conteneur", "BOL.equipmentCategory.container": "Conteneur",
"BOL.equipmentCategory.currency": "Monnaie", "BOL.equipmentCategory.currency": "Monnaie",
"BOL.equipmentCategory.other": "Autre", "BOL.equipmentCategory.other": "Autre",
"BOL.protectionCategory.armor": "Armure", "BOL.protectionCategory.armor": "Armure",
"BOL.protectionCategory.shield": "Bouclier", "BOL.protectionCategory.shield": "Bouclier",
"BOL.protectionCategory.helm": "Casque", "BOL.protectionCategory.helm": "Casque",
"BOL.protectionCategory.other": "Autre", "BOL.protectionCategory.other": "Autre",
"BOL.spellItem.charm": "Charme", "BOL.spellItem.charm": "Charme",
"BOL.spellItem.circle1": "Premier Cercle", "BOL.spellItem.circle1": "Premier Cercle",
"BOL.spellItem.circle2": "Second Cercle", "BOL.spellItem.circle2": "Second Cercle",
"BOL.spellItem.circle3": "Troisième Cercle", "BOL.spellItem.circle3": "Troisième Cercle",
"BOL.alchemyItem.common": "Courante", "BOL.alchemyItem.common": "Courante",
"BOL.alchemyItem.scarce": "Rare", "BOL.alchemyItem.scarce": "Rare",
"BOL.alchemyItem.legend": "Légendaire", "BOL.alchemyItem.legend": "Légendaire",
"BOL.alchemyItem.mythic": "Mythique", "BOL.alchemyItem.mythic": "Mythique",
"BOL.weaponCategory.melee": "Arme de mêlée", "BOL.weaponCategory.melee": "Arme de mêlée",
"BOL.weaponCategory.ranged": "Arme de tir", "BOL.weaponCategory.ranged": "Arme de tir",
"BOL.weaponCategory.other": "Autre", "BOL.weaponCategory.other": "Autre",
"BOL.itemProperty.damageMultiplier": "Multiplicateur de dommages", "BOL.itemProperty.damageMultiplier": "Multiplicateur de dommages",
"BOL.itemProperty.attackBonusDice": "Dé de Bonus d'attaque", "BOL.itemProperty.attackBonusDice": "Dé de Bonus d'attaque",
"BOL.itemProperty.equipable": "Équipable", "BOL.itemProperty.equipable": "Équipable",
@ -291,6 +317,7 @@
"BOL.itemProperty.isboarding": "Abordage", "BOL.itemProperty.isboarding": "Abordage",
"BOL.itemProperty.isspur": "Eperonnage", "BOL.itemProperty.isspur": "Eperonnage",
"BOL.itemProperty.isbreakrow": "Briser les rames", "BOL.itemProperty.isbreakrow": "Briser les rames",
"BOL.itemStat.quantity": "Quantité", "BOL.itemStat.quantity": "Quantité",
"BOL.itemStat.weight": "Poids", "BOL.itemStat.weight": "Poids",
"BOL.itemStat.price": "Prix", "BOL.itemStat.price": "Prix",
@ -300,21 +327,26 @@
"BOL.itemStat.soak": "Valeur de protection", "BOL.itemStat.soak": "Valeur de protection",
"BOL.itemStat.blocking": "Bloquage", "BOL.itemStat.blocking": "Bloquage",
"BOL.itemStat.modifiers": "Modificateurs", "BOL.itemStat.modifiers": "Modificateurs",
"BOL.weaponSize.unarmed": "Mains nues", "BOL.weaponSize.unarmed": "Mains nues",
"BOL.weaponSize.improvised": "Arme improvisée", "BOL.weaponSize.improvised": "Arme improvisée",
"BOL.weaponSize.light": "Légère", "BOL.weaponSize.light": "Légère",
"BOL.weaponSize.medium": "Moyenne", "BOL.weaponSize.medium": "Moyenne",
"BOL.weaponSize.heavy": "Lourde", "BOL.weaponSize.heavy": "Lourde",
"BOL.itemModifiers.init": "Malus (Initiative)", "BOL.itemModifiers.init": "Malus (Initiative)",
"BOL.itemModifiers.social": "Malus (Social)", "BOL.itemModifiers.social": "Malus (Social)",
"BOL.itemModifiers.agility": "Malus (Agilité)", "BOL.itemModifiers.agility": "Malus (Agilité)",
"BOL.itemModifiers.powercost": "Malus (Coût supplémentaire en PP)", "BOL.itemModifiers.powercost": "Malus (Coût supplémentaire en PP)",
"BOL.itemBlocking.malus": "Social", "BOL.itemBlocking.malus": "Social",
"BOL.itemBlocking.nbAttacksPerRound": "Agilité", "BOL.itemBlocking.nbAttacksPerRound": "Agilité",
"BOL.soakFormula.none": "-", "BOL.soakFormula.none": "-",
"BOL.soakFormula.light": "Légère (Annule d6-3 dégâts subis)", "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.medium": "Moyenne (Annule d6-2 dégâts subis)",
"BOL.soakFormula.heavy": "Lourde (Annule d6-1 dégâts subis)", "BOL.soakFormula.heavy": "Lourde (Annule d6-1 dégâts subis)",
"BOL.armorQuality.none": "-", "BOL.armorQuality.none": "-",
"BOL.armorQuality.light": "Légère", "BOL.armorQuality.light": "Légère",
"BOL.armorQuality.lightQ": "Légère de qualité", "BOL.armorQuality.lightQ": "Légère de qualité",
@ -328,6 +360,7 @@
"BOL.armorQuality.heavyQ": "Lourde de qualité", "BOL.armorQuality.heavyQ": "Lourde de qualité",
"BOL.armorQuality.heavySup": "Lourde Supérieure", "BOL.armorQuality.heavySup": "Lourde Supérieure",
"BOL.armorQuality.heavyLeg": "Lourde Légendaire", "BOL.armorQuality.heavyLeg": "Lourde Légendaire",
"BOL.equipmentSlots.none": "-", "BOL.equipmentSlots.none": "-",
"BOL.equipmentSlots.head": "Tête", "BOL.equipmentSlots.head": "Tête",
"BOL.equipmentSlots.neck": "Cou", "BOL.equipmentSlots.neck": "Cou",
@ -344,10 +377,12 @@
"BOL.equipmentSlots.feet": "Pieds", "BOL.equipmentSlots.feet": "Pieds",
"BOL.equipmentSlots.finder": "Doigt", "BOL.equipmentSlots.finder": "Doigt",
"BOL.equipmentSlots.ear": "Oreille", "BOL.equipmentSlots.ear": "Oreille",
"BOL.vehicleCategory.mount": "Monture terrestre", "BOL.vehicleCategory.mount": "Monture terrestre",
"BOL.vehicleCategory.flying": "Monture volante", "BOL.vehicleCategory.flying": "Monture volante",
"BOL.vehicleCategory.boat": "Bateau", "BOL.vehicleCategory.boat": "Bateau",
"BOL.vehicleCategory.other": "Autre", "BOL.vehicleCategory.other": "Autre",
"BOL.range.PointBlank": "Bout portant", "BOL.range.PointBlank": "Bout portant",
"BOL.range.Short": "Courte", "BOL.range.Short": "Courte",
"BOL.range.Medium": "Moyenne", "BOL.range.Medium": "Moyenne",
@ -355,6 +390,7 @@
"BOL.range.VeryLong": "Très longue", "BOL.range.VeryLong": "Très longue",
"BOL.range.Extreme": "Extrême", "BOL.range.Extreme": "Extrême",
"BOL.range.Maximum": "Maximale", "BOL.range.Maximum": "Maximale",
"BOL.notification.MacroMultipleTokensSelected": "Vous avez sélectionné plusieurs tokens", "BOL.notification.MacroMultipleTokensSelected": "Vous avez sélectionné plusieurs tokens",
"BOL.notification.MacroNoActorAvailable": "Aucun acteur n'a pu être ciblé", "BOL.notification.MacroNoActorAvailable": "Aucun acteur n'a pu être ciblé",
"BOL.notification.MacroNoTokenSelected": "Vous devez sélectionner un token", "BOL.notification.MacroNoTokenSelected": "Vous devez sélectionner un token",
@ -427,7 +463,8 @@
"BOL.chat.rangevisible": "La ligne de vue est dégagée entre les protagonistes.", "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.rangenotvisible": "La ligne de vue est bloquée entre les protagonistes.",
"BOL.chat.rangetitle": "Information MJ", "BOL.chat.rangetitle": "Information MJ",
"BOL.chat.weaponreroll1": "Pour information, cette arme relance les 1 sur ses dégâts.",
"BOL.dialog.soeasy": "Inmanquable (+4)", "BOL.dialog.soeasy": "Inmanquable (+4)",
"BOL.dialog.veryeasy": "Trés Facile (+2)", "BOL.dialog.veryeasy": "Trés Facile (+2)",
"BOL.dialog.easy": "Facile (+1)", "BOL.dialog.easy": "Facile (+1)",
@ -462,9 +499,10 @@
"BOL.ui.bionotes": "Notes", "BOL.ui.bionotes": "Notes",
"BOL.chat.welcome1": "Bienvenue dans Barbarians of Lemuria (Ludospherik version)", "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 l'éditeur : http://www.ludospherik.fr/content/14-barbarians-of-lemuria", "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.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 Discord Foundry FR : https://discord.gg/pPSDNJk", "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": "Bon jeu en Lemurie !" "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 !"
} }

View File

@ -134,6 +134,7 @@ export class BoLActorSheet extends ActorSheet {
formData.alchemy = this.actor.alchemy formData.alchemy = this.actor.alchemy
formData.containers = this.actor.containers formData.containers = this.actor.containers
formData.treasure = this.actor.treasure formData.treasure = this.actor.treasure
formData.boleffects = this.actor.boleffects
formData.alchemyrecipe = this.actor.alchemyrecipe formData.alchemyrecipe = this.actor.alchemyrecipe
formData.vehicles = this.actor.vehicles formData.vehicles = this.actor.vehicles
formData.fightoptions = this.actor.fightoptions formData.fightoptions = this.actor.fightoptions

View File

@ -28,6 +28,7 @@ export class BoLActor extends Actor {
} }
return this.system.chartype return this.system.chartype
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getVillainy() { getVillainy() {
if (this.type === 'character') { if (this.type === 'character') {
@ -52,7 +53,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareDerivedData() { prepareDerivedData() {
if ( this.type == "vehicle") { if (this.type == "vehicle") {
} else { } else {
super.prepareDerivedData() super.prepareDerivedData()
@ -102,6 +103,13 @@ export class BoLActor extends Actor {
if (fo && fo.system.properties.fightoptiontype == "attack") { if (fo && fo.system.properties.fightoptiontype == "attack") {
defMod += -1 defMod += -1
} }
// Apply defense effects
for (let i of this.items) {
if (i.type === "feature" && i.system.subtype === "boleffect" && i.system.properties.identifier.includes("aptitudes.def") ) {
defMod += Number(i.system.properties.modifier)
}
}
console.log("Defense : ", defMod)
return this.system.aptitudes.def.value + defMod return this.system.aptitudes.def.value + defMod
} }
@ -206,6 +214,9 @@ export class BoLActor extends Actor {
get resources() { get resources() {
return Object.values(this.system.resources) return Object.values(this.system.resources)
} }
get boleffects() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "boleffect")
}
get boons() { get boons() {
return 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") || []);
} }
@ -213,7 +224,7 @@ export class BoLActor extends Actor {
return 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() { get careers() {
return 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() { get origins() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "origin"); return this.items.filter(i => i.type === "feature" && i.system.subtype === "origin");
@ -237,7 +248,7 @@ export class BoLActor extends Actor {
return this.items.filter(i => i.type === "item") return this.items.filter(i => i.type === "item")
} }
get equipmentCreature() { get equipmentCreature() {
return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && (( i.system.subtype === "weapon" && i.system.properties.natural === true) || (i.system.subtype === "armor")) ) return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && ((i.system.subtype === "weapon" && i.system.properties.natural === true) || (i.system.subtype === "armor")))
} }
get armors() { get armors() {
return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && i.system.subtype === "armor"); return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && i.system.subtype === "armor");
@ -249,7 +260,7 @@ export class BoLActor extends Actor {
return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && i.system.subtype === "shield"); return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && i.system.subtype === "shield");
} }
get vehicleWeapons() { get vehicleWeapons() {
return this.items.filter(i => i.type === "item" && i.system.category === "vehicleweapon" ) return this.items.filter(i => i.type === "item" && i.system.category === "vehicleweapon")
} }
get weapons() { get weapons() {
return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && i.system.subtype === "weapon") return this.items.filter(i => i.type === "item" && i.system.category === "equipment" && i.system.subtype === "weapon")
@ -295,10 +306,10 @@ export class BoLActor extends Actor {
get bonusBoons() { get bonusBoons() {
let boons = this.items.filter(i => i.type === "feature" && i.system.subtype === "boon" && i.system.properties.isbonusdice) let boons = this.items.filter(i => i.type === "feature" && i.system.subtype === "boon" && i.system.properties.isbonusdice)
return duplicate( boons || []) return duplicate(boons || [])
} }
get malusFlaws() { get malusFlaws() {
return 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() { isSorcerer() {
@ -329,6 +340,23 @@ export class BoLActor extends Actor {
return ppCostArmor return ppCostArmor
} }
/*-------------------------------------------- */ /*-------------------------------------------- */
getDamageAttributeValue(attrDamage) {
let attrDamageValue = 0
if (attrDamage.includes("vigor")) {
attrDamageValue = actor.system.attributes.vigor.value
if (attrDamage.includes("half")) {
attrDamageValue = Math.floor(attrDamageValue / 2)
}
// Apply vigor effects
for (let i of this.items) {
if (i.type === "feature" && i.system.subtype === "boleffect" && i.system.properties.identifier.includes("vigor") ) {
attrDamageValue += Number(i.system.properties.modifier)
}
}
}
return attrDamageValue
}
/*-------------------------------------------- */
getArmorAgiMalus() { getArmorAgiMalus() {
let malusAgi = 0 let malusAgi = 0
for (let armor of this.protections) { for (let armor of this.protections) {
@ -471,6 +499,11 @@ export class BoLActor extends Actor {
"label": "BOL.featureSubtypes.gods", "label": "BOL.featureSubtypes.gods",
"ranked": false, "ranked": false,
"items": this.godsfaith "items": this.godsfaith
},
"boleffects": {
"label": "BOL.featureSubtypes.effects",
"ranked": false,
"items": this.boleffects
} }
} }
} }
@ -560,7 +593,7 @@ export class BoLActor extends Actor {
async manageHealthState() { async manageHealthState() {
let hpID = "lastHP" + this.id let hpID = "lastHP" + this.id
let lastHP = await this.getFlag("world", hpID) let lastHP = await this.getFlag("world", hpID)
if (lastHP != this.system.resources.hp.value && game.user.isGM ) { // Only GM sends this if (lastHP != this.system.resources.hp.value && game.user.isGM) { // Only GM sends this
await this.setFlag("world", hpID, this.system.resources.hp.value) await this.setFlag("world", hpID, this.system.resources.hp.value)
if (this.system.resources.hp.value <= 0) { if (this.system.resources.hp.value <= 0) {
ChatMessage.create({ ChatMessage.create({
@ -592,7 +625,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */ /*-------------------------------------------- */
async sufferDamage(damage) { async sufferDamage(damage) {
let newHP = this.system.resources.hp.value - damage let newHP = this.system.resources.hp.value - damage
await this.update({ 'system.resources.hp.value': newHP }) await this.update({ 'system.resources.hp.value': newHP })
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -607,7 +640,7 @@ export class BoLActor extends Actor {
if (!protect.system.properties.soak.formula || protect.system.properties.soak.formula == "") { if (!protect.system.properties.soak.formula || protect.system.properties.soak.formula == "") {
ui.notifications.warn(`L'armure ${protect.name} n'a pas de formule pour la protection !`) ui.notifications.warn(`L'armure ${protect.name} n'a pas de formule pour la protection !`)
} else { } else {
formula += "+" + " max(" + protect.system.properties.soak.formula +",0)" formula += "+" + " max(" + protect.system.properties.soak.formula + ",0)"
} }
} else { } else {
if (protect.system.properties.soak.value == undefined) { if (protect.system.properties.soak.value == undefined) {
@ -626,7 +659,7 @@ export class BoLActor extends Actor {
rollProtection(itemId) { rollProtection(itemId) {
let armor = duplicate(this.items.get(itemId)) let armor = duplicate(this.items.get(itemId))
if (armor) { if (armor) {
let armorFormula = "max("+armor.system.properties.soak.formula + ", 0)" let armorFormula = "max(" + armor.system.properties.soak.formula + ", 0)"
let rollArmor = new Roll(armorFormula) let rollArmor = new Roll(armorFormula)
rollArmor.roll({ async: false }).toMessage() rollArmor.roll({ async: false }).toMessage()
} }

View File

@ -110,7 +110,8 @@ function welcomeMessage() {
game.i18n.localize("BOL.chat.welcome2") + "<p>" + game.i18n.localize("BOL.chat.welcome2") + "<p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" + game.i18n.localize("BOL.chat.welcome3") + "<p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p>" + game.i18n.localize("BOL.chat.welcome4") + "</p>" +
game.i18n.localize("BOL.chat.welcome5") + "</p>" game.i18n.localize("BOL.chat.welcome5") + "<br>" +
game.i18n.localize("BOL.chat.welcome6")
} ) } )
} }

View File

@ -16,26 +16,56 @@ export class BoLRoll {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static attributeCheck(actor, key) { static updateApplicableEffects(rollData) {
let appEffects = []
for( let effect of rollData.bolEffects) {
if(effect.system.properties.identifier =="always") {
appEffects.push(effect)
} else if (effect.system.properties.identifier.includes(rollData.attribute.key)) {
appEffects.push(effect)
} else if ( rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key)) {
appEffects.push(effect)
}
}
return appEffects
}
let attribute = eval(`actor.system.attributes.${key}`) /* -------------------------------------------- */
let label = (attribute.label) ? game.i18n.localize(attribute.label) : null static getCommonRollData(actor, mode, attribute, aptitude = undefined ) {
let description = game.i18n.localize('BOL.ui.attributeCheck') + " - " + game.i18n.localize(attribute.label)
let rollData = { let rollData = {
mode: "attribute", mode: mode,
actorId: actor.id, actorId: actor.id,
img: actor.img, img: actor.img,
attribute: attribute, attribute: attribute,
attrValue: attribute.value, attrValue: attribute.value,
aptValue: 0, aptValue: 0,
label: label,
careerBonus: 0, careerBonus: 0,
description: description,
armorAgiMalus: actor.getArmorAgiMalus(), armorAgiMalus: actor.getArmorAgiMalus(),
armorInitMalus: actor.getArmorInitMalus(), armorInitMalus: actor.getArmorInitMalus(),
mod: 0 adv: "0",
mod: 0,
modRanged: 0,
aptValue: 0,
bolEffects: actor.boleffects
} }
if (aptitude) {
rollData.aptitude = aptitude
rollData.aptValue = aptitude.value
}
rollData.bolApplicableEffects = this.updateApplicableEffects(rollData)
return rollData
}
/* -------------------------------------------- */
static attributeCheck(actor, key) {
let attribute = eval(`actor.system.attributes.${key}`)
let rollData = this.getCommonRollData(actor, "attribute", attribute)
rollData.description = game.i18n.localize('BOL.ui.attributeCheck') + " - " + game.i18n.localize(attribute.label)
rollData.label = (attribute.label) ? game.i18n.localize(attribute.label) : null
console.log(">>>>>>>>>>", rollData, actor) console.log(">>>>>>>>>>", rollData, actor)
return this.displayRollDialog(rollData) return this.displayRollDialog(rollData)
} }
@ -47,24 +77,12 @@ export class BoLRoll {
let attrKey = this.getDefaultAttribute(key) let attrKey = this.getDefaultAttribute(key)
let attribute = eval(`actor.system.attributes.${attrKey}`) let attribute = eval(`actor.system.attributes.${attrKey}`)
let label = (aptitude.label) ? game.i18n.localize(aptitude.label) : null; let rollData = this.getCommonRollData(actor, "aptitude", attribute, aptitude)
let description = game.i18n.localize('BOL.ui.aptitudeCheck') + " - " + game.i18n.localize(aptitude.label);
return this.displayRollDialog( rollData.label = (aptitude.label) ? game.i18n.localize(aptitude.label) : null
{ rollData.description = game.i18n.localize('BOL.ui.aptitudeCheck') + " - " + game.i18n.localize(aptitude.label)
mode: "aptitude",
actorId: actor.id, return this.displayRollDialog( rollData)
img: actor.img,
attribute: attribute,
aptitude: aptitude,
attrValue: attribute.value,
aptValue: aptitude.value,
armorAgiMalus: actor.getArmorAgiMalus(),
armorInitMalus: actor.getArmorInitMalus(),
label: label,
careerBonus: 0,
description: description,
mod: 0
})
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -114,6 +132,8 @@ export class BoLRoll {
let attribute = eval(`actor.system.attributes.${weaponData.properties.attackAttribute}`) let attribute = eval(`actor.system.attributes.${weaponData.properties.attackAttribute}`)
let aptitude = eval(`actor.system.aptitudes.${weaponData.properties.attackAptitude}`) let aptitude = eval(`actor.system.aptitudes.${weaponData.properties.attackAptitude}`)
let rollData = this.getCommonRollData(actor, "weapon", attribute, aptitude)
// Compute distance // Compute distance
this.detectDistance( weapon, target) this.detectDistance( weapon, target)
@ -123,30 +143,19 @@ export class BoLRoll {
ui.notifications.warn(`{{actor.name}} est en Défense Totale ! Il ne peut pas attaquer ce round.`) ui.notifications.warn(`{{actor.name}} est en Défense Totale ! Il ne peut pas attaquer ce round.`)
return return
} }
// Build the roll structure
let rolldata = { // Update the roll structure
mode: "weapon", rollData.weapon = weapon
actorId: actor.id, rollData.isRanged = weaponData.properties.ranged || weaponData.properties.throwing
img: actor.img, rollData.targetId = target?.id
weapon: weapon, rollData.fightOption = fightOption
isRanged: weaponData.properties.ranged || weaponData.properties.throwing, rollData.defenderId = target?.actor.id
targetId: target?.id, rollData.label = (weapon.name) ? weapon.name : game.i18n.localize('BOL.ui.noWeaponName')
fightOption: fightOption, rollData.description = game.i18n.localize('BOL.ui.weaponAttack') + " : " + weapon.name
careerBonus: 0,
defenderId: target?.actor.id, return this.displayRollDialog(rollData)
attribute: attribute,
aptitude: aptitude,
attrValue: attribute.value,
aptValue: aptitude.value,
armorAgiMalus: actor.getArmorAgiMalus(),
armorInitMalus: actor.getArmorInitMalus(),
mod: 0,
modRanged: 0,
label: (weapon.name) ? weapon.name : game.i18n.localize('BOL.ui.noWeaponName'),
description: game.i18n.localize('BOL.ui.weaponAttack') + " : " + weapon.name,
}
return this.displayRollDialog(rolldata)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static weaponCheck(actor, event) { static weaponCheck(actor, event) {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
@ -170,53 +179,39 @@ export class BoLRoll {
alchemy = duplicate(alchemy) alchemy = duplicate(alchemy)
let alchemyData = alchemy.system let alchemyData = alchemy.system
if (alchemyData.properties.pccurrent < alchemyData.properties.pccost) { if (alchemyData.properties.pccurrent < alchemyData.properties.pccost) {
ui.notifications.warn("Pas assez de Points de Cration investis dans la Préparation !") ui.notifications.warn("Pas assez de Points de Création investis dans la Préparation !")
return return
} }
let alchemyDef = { let rollData = this.getCommonRollData(actor, "alchemy", actor.system.attributes.mind)
mode: "alchemy",
actorId: actor.id, rollData.alchemy = alchemy
img: actor.img, rollData.careerBonus = actor.getAlchemistBonus()
alchemy: alchemy, rollData.pcCost = Number(alchemyData.properties.pccost)
attribute: actor.system.attributes.mind, rollData.pcCostCurrent = Number(alchemyData.properties.pccurrent)
attrValue: actor.system.attributes.mind.value, rollData.mod = Number(alchemyData.properties.difficulty)
aptValue: 0, rollData.label = alchemy.name
careerBonus: actor.getAlchemistBonus(), rollData.description = game.i18n.localize('BOL.ui.makeAlchemy') + "+" + alchemy.name
pcCost: Number(alchemyData.properties.pccost),
pcCostCurrent: Number(alchemyData.properties.pccurrent),
mod: Number(alchemyData.properties.difficulty),
armorAgiMalus: actor.getArmorAgiMalus(),
armorInitMalus: actor.getArmorInitMalus(),
label: alchemy.name,
description: game.i18n.localize('BOL.ui.makeAlchemy') + "+" + alchemy.name,
}
console.log("ALCHEMY!", alchemyDef); console.log("ALCHEMY!", alchemyDef);
return this.displayRollDialog(alchemyDef); return this.displayRollDialog(alchemyDef);
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static spellCheckWithSpell( actor, spell ) { static spellCheckWithSpell( actor, spell ) {
let spellDef = { let rollData = this.getCommonRollData(actor, "spell", actor.system.attributes.mind)
mode: "spell",
actorId: actor.id, rollData.spell = spell
img: actor.img, rollData.ppCurrent = Number(actor.system.resources.power.value),
spell: spell, rollData.careerBonus = actor.getSorcererBonus(),
attribute: actor.system.attributes.mind, rollData.ppCostArmor = actor.getPPCostArmor(),
attrValue: actor.system.attributes.mind.value, rollData.ppCost = Number(spell.system.properties.ppcost),
aptValue: 0, rollData.mod = Number(spell.system.properties.difficulty),
ppCurrent: Number(actor.system.resources.power.value), rollData.label = spell.name,
careerBonus: actor.getSorcererBonus(), rollData.description = game.i18n.localize('BOL.ui.focusSpell') + " : " + spell.name
ppCostArmor: actor.getPPCostArmor(),
ppCost: Number(spell.system.properties.ppcost),
mod: Number(spell.system.properties.difficulty),
armorAgiMalus: actor.getArmorAgiMalus(),
armorInitMalus: actor.getArmorInitMalus(),
label: spell.name,
description: game.i18n.localize('BOL.ui.focusSpell') + " : " + spell.name,
}
//console.log("SPELL!", spellDef) //console.log("SPELL!", spellDef)
return this.displayRollDialog(spellDef) return this.displayRollDialog(rollData)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -241,8 +236,29 @@ export class BoLRoll {
this.updateArmorMalus(this.rollData) this.updateArmorMalus(this.rollData)
this.updatePPCost(this.rollData) this.updatePPCost(this.rollData)
// get basic dices from boons/flaws
let effectModifier = 0
this.rollData.bmDice = this.rollData.nbBoons - this.rollData.nbFlaws + this.rollData.bDice - this.rollData.mDice this.rollData.bmDice = this.rollData.nbBoons - this.rollData.nbFlaws + this.rollData.bDice - this.rollData.mDice
// add applicable bonus/malus dices effects
for (let effect of this.rollData.bolApplicableEffects) {
if (effect.system.properties.modifier == "1B") {
this.rollData.bmDice++;
} else if (effect.system.properties.modifier == "1B") {
this.rollData.bmDice+=2;
} else if (effect.system.properties.modifier == "1M") {
this.rollData.bmDice--;
} else if (effect.system.properties.modifier == "2M") {
this.rollData.bmDice-=2;
} else {
effectModifier += Number(effect.system.properties.modifier)
}
}
// Keep track of the final effect modifier
this.rollData.effectModifier = effectModifier
// Final number of dices
this.rollData.nbDice = 2 + Math.abs(this.rollData.bmDice) this.rollData.nbDice = 2 + Math.abs(this.rollData.bmDice)
// Bonus or Malus ?
if (this.rollData.bmDice == 0) { if (this.rollData.bmDice == 0) {
$('#roll-nbdice').val("2") $('#roll-nbdice').val("2")
} else { } else {
@ -255,7 +271,14 @@ export class BoLRoll {
} }
$('#roll-modifier').val(rollbase + "+" + this.rollData.careerBonus + "+" + this.rollData.mod + "+" + $('#roll-modifier').val(rollbase + "+" + this.rollData.careerBonus + "+" + this.rollData.mod + "+" +
this.rollData.modRanged + "+" + this.rollData.weaponModifier + "-" + this.rollData.defence + "-" + this.rollData.modArmorMalus + "-" + this.rollData.modRanged + "+" + this.rollData.weaponModifier + "-" + this.rollData.defence + "-" + this.rollData.modArmorMalus + "-" +
this.rollData.shieldMalus + "+" + this.rollData.attackModifier + "+" + this.rollData.appliedArmorMalus) this.rollData.shieldMalus + "+" + this.rollData.attackModifier + "+" + this.rollData.appliedArmorMalus + "+" + effectModifier)
// Rebuild lits of applicable effects
let selectEffects = ""
for(let effect of this.rollData.bolApplicableEffects) {
selectEffects += `<option value="${effect.id}" selected>${effect.name}</option>`
}
$('#applicable-effects').html(selectEffects)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -332,6 +355,7 @@ export class BoLRoll {
let actor = game.actors.get( this.rollData.actorId) let actor = game.actors.get( this.rollData.actorId)
this.rollData.attribute = duplicate(actor.system.attributes[attrKey]) this.rollData.attribute = duplicate(actor.system.attributes[attrKey])
this.rollData.attrValue = actor.system.attributes[attrKey].value this.rollData.attrValue = actor.system.attributes[attrKey].value
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
this.updateTotalDice() this.updateTotalDice()
}) })
html.find('#apt').change((event) => { html.find('#apt').change((event) => {
@ -339,6 +363,7 @@ export class BoLRoll {
let actor = game.actors.get( this.rollData.actorId) let actor = game.actors.get( this.rollData.actorId)
this.rollData.aptitude = duplicate(actor.system.aptitudes[aptKey]) this.rollData.aptitude = duplicate(actor.system.aptitudes[aptKey])
this.rollData.aptValue = actor.system.aptitudes[aptKey].value this.rollData.aptValue = actor.system.aptitudes[aptKey].value
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
this.updateTotalDice() this.updateTotalDice()
}) })
@ -380,8 +405,12 @@ export class BoLRoll {
/* -------------------------------------------- */ /* -------------------------------------------- */
static preProcessWeapon(rollData, defender) { static preProcessWeapon(rollData, defender) {
if (rollData.mode == "weapon") { if (rollData.mode == "weapon") {
rollData.weaponModifier = rollData.weapon.system.properties.attackModifiers ?? 0; rollData.weaponModifier = rollData.weapon.system.properties.attackModifiers ?? 0
rollData.attackBonusDice = rollData.weapon.system.properties.attackBonusDice rollData.attackBonusDice = rollData.weapon.system.properties.attackBonusDice
if ( rollData.attackBonusDice) {
rollData.adv = "1B"
rollData.bDice = 1
}
if (defender) { // If target is selected if (defender) { // If target is selected
rollData.defence = defender.defenseValue rollData.defence = defender.defenseValue
rollData.armorMalus = defender.armorMalusValue rollData.armorMalus = defender.armorMalusValue
@ -465,18 +494,18 @@ export class BoLRoll {
ui.notifications.warn("Pas assez de Points de Pouvoir !") ui.notifications.warn("Pas assez de Points de Pouvoir !")
return return
} }
console.log("ROLLMALUS", rollData) //console.log("ROLLMALUS", rollData)
rollData.registerInit = (rollData.aptitude && rollData.aptitude.key == 'init') ? $('#register-init').is(":checked") : false; rollData.registerInit = (rollData.aptitude && rollData.aptitude.key == 'init') ? $('#register-init').is(":checked") : false;
const isMalus = rollData.nbFlaws > rollData.nbBoons const isMalus = rollData.nbFlaws > rollData.nbBoons
rollData.nbDice += (rollData.attackBonusDice) ? 1 : 0 //rollData.nbDice += (rollData.attackBonusDice) ? 1 : 0
let rollbase = rollData.attrValue + rollData.aptValue let rollbase = rollData.attrValue + rollData.aptValue
if ( rollData.weapon && rollData.weapon.system.properties.onlymodifier ) { if ( rollData.weapon && rollData.weapon.system.properties.onlymodifier ) {
rollbase = 0 rollbase = 0
} }
const modifiers = rollbase + rollData.careerBonus + rollData.mod + rollData.weaponModifier - rollData.defence - rollData.modArmorMalus + rollData.shieldMalus + rollData.attackModifier + rollData.appliedArmorMalus const modifiers = rollbase + rollData.careerBonus + rollData.mod + rollData.weaponModifier - rollData.defence - rollData.modArmorMalus + rollData.shieldMalus + rollData.attackModifier + rollData.appliedArmorMalus + rollData.effectModifier
const formula = (isMalus) ? rollData.nbDice + "d6kl2 + " + modifiers : rollData.nbDice + "d6kh2 + " + modifiers const formula = (isMalus) ? rollData.nbDice + "d6kl2 + " + modifiers : rollData.nbDice + "d6kh2 + " + modifiers
rollData.formula = formula rollData.formula = formula
rollData.modifiers = modifiers rollData.modifiers = modifiers
@ -616,16 +645,8 @@ export class BoLDefaultRoll {
/* -------------------------------------------- */ /* -------------------------------------------- */
getDamageAttributeValue(attrDamage, actorId = undefined) { getDamageAttributeValue(attrDamage, actorId = undefined) {
let attrDamageValue = 0
let actor = game.actors.get( (actorId) ? actorId: this.rollData.actorId) let actor = game.actors.get( (actorId) ? actorId: this.rollData.actorId)
if (attrDamage.includes("vigor")) { return actor.getDamageAttributeValue( attrDamage )
attrDamageValue = actor.system.attributes.vigor.value
if (attrDamage.includes("half")) {
attrDamageValue = Math.floor(attrDamageValue / 2)
}
}
return attrDamageValue
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@ -260,7 +260,8 @@ BOL.featureSubtypes = {
"flaw" : "BOL.featureSubtypes.flaw", "flaw" : "BOL.featureSubtypes.flaw",
"language" : "BOL.featureSubtypes.language", "language" : "BOL.featureSubtypes.language",
"godsfaith" : "BOL.featureSubtypes.gods", "godsfaith" : "BOL.featureSubtypes.gods",
"fightoption" : "BOL.featureSubtypes.fightOption" "fightoption" : "BOL.featureSubtypes.fightOption",
"boleffect": "BOL.featureSubtypes.effect",
} }
BOL.fightOptionTypes = { BOL.fightOptionTypes = {
@ -310,4 +311,20 @@ BOL.creatureSize = {
"colossal": "BOL.size.colossal" "colossal": "BOL.size.colossal"
} }
BOL.bolEffectModifier = {
"-8": "-8",
"-6": "-6",
"-4": "-4",
"-2": "-2",
"-1": "-1",
"1B": "1B",
"2B": "2B",
"1M": "1M",
"2M": "2M",
"+1": "+1",
"+2": "+2",
"+4": "+4",
"+6": "+6",
"+8": "+8",
}
BOL.debug = false; BOL.debug = false;

View File

@ -36,6 +36,7 @@ export const preloadHandlebarsTemplates = async function () {
"systems/bol/templates/item/parts/properties/feature/career-properties.hbs", "systems/bol/templates/item/parts/properties/feature/career-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/boon-properties.hbs", "systems/bol/templates/item/parts/properties/feature/boon-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/flaw-properties.hbs", "systems/bol/templates/item/parts/properties/feature/flaw-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/effect-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/origin-properties.hbs", "systems/bol/templates/item/parts/properties/feature/origin-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/race-properties.hbs", "systems/bol/templates/item/parts/properties/feature/race-properties.hbs",
"systems/bol/templates/item/parts/properties/feature/fightoption-properties.hbs", "systems/bol/templates/item/parts/properties/feature/fightoption-properties.hbs",
@ -50,6 +51,7 @@ export const preloadHandlebarsTemplates = async function () {
"systems/bol/templates/dialogs/mod-roll-part.hbs", "systems/bol/templates/dialogs/mod-roll-part.hbs",
"systems/bol/templates/dialogs/adv-roll-part.hbs", "systems/bol/templates/dialogs/adv-roll-part.hbs",
"systems/bol/templates/dialogs/career-roll-part.hbs", "systems/bol/templates/dialogs/career-roll-part.hbs",
"systems/bol/templates/dialogs/effect-roll-part.hbs",
"systems/bol/templates/dialogs/boons-roll-part.hbs", "systems/bol/templates/dialogs/boons-roll-part.hbs",
"systems/bol/templates/dialogs/flaws-roll-part.hbs", "systems/bol/templates/dialogs/flaws-roll-part.hbs",
"systems/bol/templates/dialogs/total-roll-part.hbs", "systems/bol/templates/dialogs/total-roll-part.hbs",

File diff suppressed because one or more lines are too long

4
packs/effets-exemples.db Normal file
View 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}}

View File

@ -1,4 +1,4 @@
{"_id":"19p4FnLRVdw6cx7Y","name":"Arbalète","type":"item","img":"icons/weapons/crossbows/crossbow-blue.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Arbalète</h1><p>une arme de tir qui nécessite peu dentraînement et offre beaucoup de puissance. Les lourds projectiles tirés par une arbalète portent le nom de carreaux. Il faut un round complet pour charger une arbalète.</p>","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"},"quantity":null,"weight":null,"price":0,"worn":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"19p4FnLRVdw6cx7Y","name":"Arbalète","type":"item","img":"icons/weapons/crossbows/crossbow-blue.webp","effects":[],"folder":null,"sort":0,"flags":{},"system":{"category":"equipment","subtype":"weapon","description":"<h1>Arbalète</h1><p>une arme de tir qui nécessite peu dentraînement et offre beaucoup de puissance. Les lourds projectiles tirés par une arbalète portent le nom de carreaux. Il faut un round complet pour charger une arbalète.</p>","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.3.2","coreVersion":"10.290","createdTime":null,"modifiedTime":1669209273712,"lastModifiedBy":"zN9ZZg5J7XzNELjd"}}
{"_id":"3U9Gl7g8D5Ih72HQ","name":"Hache","type":"item","img":"icons/weapons/axes/axe-broad-engraved.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"3U9Gl7g8D5Ih72HQ","name":"Hache","type":"item","img":"icons/weapons/axes/axe-broad-engraved.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"_id":"3UUZjuD4Esgj4ENP","name":"Épée","type":"item","img":"icons/weapons/swords/greatsword-guard-gem-blue.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Épée</h1><p>larme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres dabordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de larme que vous voulez sur la fiche de votre personnage en fonction de limage que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer lennemi.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"3UUZjuD4Esgj4ENP","name":"Épée","type":"item","img":"icons/weapons/swords/greatsword-guard-gem-blue.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Épée</h1><p>larme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres dabordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de larme que vous voulez sur la fiche de votre personnage en fonction de limage que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer lennemi.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"_id":"3xSSlnw9CDhwg67c","name":"Lance","type":"item","img":"icons/weapons/polearms/glaive-simple.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue dune pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"3xSSlnw9CDhwg67c","name":"Lance","type":"item","img":"icons/weapons/polearms/glaive-simple.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue dune pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
@ -7,6 +7,7 @@
{"_id":"4NEaikxe0k1vzeqI","name":"Morgenstern","type":"item","img":"icons/weapons/maces/flail-spiked-grey.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Morgenstern</h1><p>une grosse boule de métal hérissée de pointes, montée à lextrémité dune longue hampe de 1,20 à 1,50 m de long. Rudimentaire, mais efficace.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"4NEaikxe0k1vzeqI","name":"Morgenstern","type":"item","img":"icons/weapons/maces/flail-spiked-grey.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Morgenstern</h1><p>une grosse boule de métal hérissée de pointes, montée à lextrémité dune longue hampe de 1,20 à 1,50 m de long. Rudimentaire, mais efficace.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"name":"Lance (Lancer)","type":"item","img":"icons/weapons/polearms/glaive-simple.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue dune pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.3xSSlnw9CDhwg67c"}},"_id":"4k3SUYYCnqc9uNCm"} {"name":"Lance (Lancer)","type":"item","img":"icons/weapons/polearms/glaive-simple.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Lance</h1><p>une hampe de bois de 1,80 m de long (parfois davantage), pourvue dune pointe, qui peut être lancée ou utilisée au corps à corps, notamment contre des adversaires montés.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.3xSSlnw9CDhwg67c"}},"_id":"4k3SUYYCnqc9uNCm"}
{"name":"Projectiles","type":"item","img":"icons/weapons/artillery/ballista-wood-green.webp","system":{"category":"vehicleweapon","subtype":"armor","description":"<p>L&rsquo;&eacute;quipage du navire envoie une vol&eacute;e de projectiles (javelines, fl&egrave;ches, billes de fronde) sur le vaisseau ennemi, &agrave; condition que ce dernier se trouve au maximum &agrave; port&eacute;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":{},"_stats":{"systemId":"bol","systemVersion":"10.2.1","coreVersion":"10.287","createdTime":1665332723905,"modifiedTime":1665384335829,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"55CWxwKSYgBCbLrG","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}} {"name":"Projectiles","type":"item","img":"icons/weapons/artillery/ballista-wood-green.webp","system":{"category":"vehicleweapon","subtype":"armor","description":"<p>L&rsquo;&eacute;quipage du navire envoie une vol&eacute;e de projectiles (javelines, fl&egrave;ches, billes de fronde) sur le vaisseau ennemi, &agrave; condition que ce dernier se trouve au maximum &agrave; port&eacute;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":{},"_stats":{"systemId":"bol","systemVersion":"10.2.1","coreVersion":"10.287","createdTime":1665332723905,"modifiedTime":1665384335829,"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>larme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres dabordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de larme que vous voulez sur la fiche de votre personnage en fonction de limage que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer lennemi.</p>","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.3.2","coreVersion":"10.290","createdTime":1669206284323,"modifiedTime":1669206324202,"lastModifiedBy":"zN9ZZg5J7XzNELjd"},"folder":null,"sort":0,"_id":"9WkrG0m6w04nq2CG"}
{"name":"Massue (Lancer)","type":"item","img":"icons/weapons/clubs/club-simple-stone-purple.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont lextrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, doù son autre nom de casse-tête.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.pncWIrD5z7mk6dbc"}},"_id":"9dk1DqMpZXCgvS2r"} {"name":"Massue (Lancer)","type":"item","img":"icons/weapons/clubs/club-simple-stone-purple.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont lextrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, doù son autre nom de casse-tête.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.pncWIrD5z7mk6dbc"}},"_id":"9dk1DqMpZXCgvS2r"}
{"_id":"9mDDJnPsOCZRGPJN","name":"Gourdin","type":"item","img":"icons/weapons/clubs/club-barbed-square-black.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Gourdin</h1><p>cest larme la plus rudimentaire qui soit. Un gourdin consiste généralement en un bâton de bois noueux, extrêmement dur et mesurant moins de 90 cm de long. Par commodité, on regroupe sous ce terme toute autre arme contondante du même genre (matraque, etc.). Il est possible dutiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"9mDDJnPsOCZRGPJN","name":"Gourdin","type":"item","img":"icons/weapons/clubs/club-barbed-square-black.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Gourdin</h1><p>cest larme la plus rudimentaire qui soit. Un gourdin consiste généralement en un bâton de bois noueux, extrêmement dur et mesurant moins de 90 cm de long. Par commodité, on regroupe sous ce terme toute autre arme contondante du même genre (matraque, etc.). Il est possible dutiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"_id":"AMDFMOvMhdapUJJF","name":"Dague (Lancer)","type":"item","img":"icons/weapons/daggers/dagger-jeweled-purple.webp","data":{"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 quutilisées au corps à corps. Facilement dissimulable, la dague est larme 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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.4GyTrBGnvlyqoh38"}}} {"_id":"AMDFMOvMhdapUJJF","name":"Dague (Lancer)","type":"item","img":"icons/weapons/daggers/dagger-jeweled-purple.webp","data":{"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 quutilisées au corps à corps. Facilement dissimulable, la dague est larme 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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.4GyTrBGnvlyqoh38"}}}
@ -16,15 +17,18 @@
{"name":"Masse darmes (Lancer)","type":"item","img":"icons/weapons/maces/mace-flanged-steel.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Masse darmes</h1><p>cette arme a la même forme quun gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou dailettes pour plus defficacité. Les masses darmes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.AUqk1SXktM4iDXvr"}},"_id":"BcYQ4pigZSXp1jWb"} {"name":"Masse darmes (Lancer)","type":"item","img":"icons/weapons/maces/mace-flanged-steel.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Masse darmes</h1><p>cette arme a la même forme quun gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou dailettes pour plus defficacité. Les masses darmes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.AUqk1SXktM4iDXvr"}},"_id":"BcYQ4pigZSXp1jWb"}
{"_id":"D1UjDptdZGFg6Ggx","name":"Hache (Lancer)","type":"item","img":"icons/weapons/axes/axe-broad-engraved.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.3U9Gl7g8D5Ih72HQ"}}} {"_id":"D1UjDptdZGFg6Ggx","name":"Hache (Lancer)","type":"item","img":"icons/weapons/axes/axe-broad-engraved.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Compendium.bol.equipment.3U9Gl7g8D5Ih72HQ"}}}
{"_id":"E8XHWMpwVHjPZV3M","name":"Hâche à deux mains","type":"item","img":"icons/weapons/axes/axe-double-brown.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Hâche à deux mains</h1><p>Une lourde hache sutilisant à 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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"E8XHWMpwVHjPZV3M","name":"Hâche à deux mains","type":"item","img":"icons/weapons/axes/axe-double-brown.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Hâche à deux mains</h1><p>Une lourde hache sutilisant à 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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"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 quutilisées au corps à corps. Facilement dissimulable, la dague est larme 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.3.2","coreVersion":"10.290","createdTime":1662130019228,"modifiedTime":1669197345576,"lastModifiedBy":"zN9ZZg5J7XzNELjd"},"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&eacute; jusqu&rsquo;&agrave; une port&eacute;e<br>Extr&ecirc;me. Les pierres font des d&eacute;g&acirc;ts &agrave; la coque et au gr&eacute;ement du navire, mais peuvent aussi<br>tuer des matelots. Un pot &agrave; feu qui explose sur le pont arrose la coque et l&rsquo;&eacute;quipage de goudron<br>enflamm&eacute;, qui continue &agrave; br&ucirc;ler jusqu&rsquo;&agrave; ce que l&rsquo;incendie soit ma&icirc;tris&eacute;.</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":{},"_stats":{"systemId":"bol","systemVersion":"10.2.1","coreVersion":"10.287","createdTime":1665332723905,"modifiedTime":1665384335828,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"FEEgNQr54HLmbxb4","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}} {"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&eacute; jusqu&rsquo;&agrave; une port&eacute;e<br>Extr&ecirc;me. Les pierres font des d&eacute;g&acirc;ts &agrave; la coque et au gr&eacute;ement du navire, mais peuvent aussi<br>tuer des matelots. Un pot &agrave; feu qui explose sur le pont arrose la coque et l&rsquo;&eacute;quipage de goudron<br>enflamm&eacute;, qui continue &agrave; br&ucirc;ler jusqu&rsquo;&agrave; ce que l&rsquo;incendie soit ma&icirc;tris&eacute;.</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":{},"_stats":{"systemId":"bol","systemVersion":"10.2.1","coreVersion":"10.287","createdTime":1665332723905,"modifiedTime":1665384335828,"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","data":{"category":"equipment","subtype":"weapon","description":"<h1>Bâton-Fronde</h1><p>Version plus puissante de la fronde, montée au bout dun bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>","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},"quantity":null,"weight":null,"price":0,"worn":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"G0qpJmjQPSJshPsC","name":"Bâton-Fronde","type":"item","img":"icons/weapons/slings/slingshot-wood.webp","data":{"category":"equipment","subtype":"weapon","description":"<h1>Bâton-Fronde</h1><p>Version plus puissante de la fronde, montée au bout dun bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>","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},"quantity":null,"weight":null,"price":0,"worn":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"_id":"Gm8Qpfuay4hu2ihq","name":"Grand bouclier","type":"item","img":"icons/equipment/shield/wardoor-wooden-boss-brown.webp","data":{"category":"equipment","subtype":"shield","description":"<h1>Grand bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que sil est conscient de lattaque qui le vise, et donc sil est prêt à la parer.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"Gm8Qpfuay4hu2ihq","name":"Grand bouclier","type":"item","img":"icons/equipment/shield/wardoor-wooden-boss-brown.webp","data":{"category":"equipment","subtype":"shield","description":"<h1>Grand bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que sil est conscient de lattaque qui le vise, et donc sil est prêt à la parer.</p>","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"name":"Outils de Crochetage","type":"item","img":"icons/sundries/misc/key-angular-white.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"HZpsorw1Okd07bvh"} {"name":"Outils de Crochetage","type":"item","img":"icons/sundries/misc/key-angular-white.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"HZpsorw1Okd07bvh"}
{"_id":"LDklxAUh1IPNPnyi","name":"Mains Nues","type":"item","img":"icons/skills/melee/unarmed-punch-fist.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}}} {"_id":"LDklxAUh1IPNPnyi","name":"Mains Nues","type":"item","img":"icons/skills/melee/unarmed-punch-fist.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}}}
{"name":"Corde + Grappin","type":"item","img":"icons/sundries/survival/rope-wrapped-brown.webp","data":{"category":"equipment","subtype":"armor","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"NRBT2VmdzhjDL4fW"} {"name":"Corde + Grappin","type":"item","img":"icons/sundries/survival/rope-wrapped-brown.webp","data":{"category":"equipment","subtype":"armor","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"NRBT2VmdzhjDL4fW"}
{"name":"Armes Improvisée (Lancer)","type":"item","img":"icons/tools/cooking/knife-cleaver-steel-grey.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}},"_id":"Oe330qkRSJAQ88mX"} {"name":"Abordage","type":"item","img":"icons/weapons/swords/scimitar-guard-gold.webp","system":{"category":"vehicleweapon","subtype":"weapon","description":"<p>Une action d&rsquo;Abordage peut &ecirc;tre tent&eacute;e si deux navires sont bloqu&eacute;s l&rsquo;un contre l&rsquo;autre suite &agrave; une action r&eacute;ussie d&rsquo;&Eacute;peronner ou de Lancer les grappins. L&rsquo;Abordage est la seule action pour laquelle il n&rsquo;y a pas de limite aux points de ressources que vous pouvez engager afin d&rsquo;avoir un bonus au jet d&rsquo;attaque. L&rsquo;Abordage est aussi l&rsquo;occasion pour des h&eacute;ros d&rsquo;entreprendre des Actions h&eacute;ro&iuml;ques en mer, de la m&ecirc;me fa&ccedil;on qu&rsquo;ils peuvent le faire lors de batailles terrestres. Ces actions formeront une petite aventure &agrave; part enti&egrave;re, par exemple si les h&eacute;ros doivent fouiller le navire ennemi tout en affrontant son &eacute;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":{},"_stats":{"systemId":"bol","systemVersion":"10.3.2","coreVersion":"10.290","createdTime":1665332723905,"modifiedTime":1669197331084,"lastModifiedBy":"zN9ZZg5J7XzNELjd"},"_id":"Oyz8RcFNq6MzDUBO","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"Abordage","type":"item","img":"icons/weapons/swords/scimitar-guard-gold.webp","system":{"category":"vehicleweapon","subtype":"armor","description":"<p>Une action d&rsquo;Abordage peut &ecirc;tre tent&eacute;e si deux navires sont bloqu&eacute;s l&rsquo;un contre l&rsquo;autre suite &agrave; une action r&eacute;ussie d&rsquo;&Eacute;peronner ou de Lancer les grappins. L&rsquo;Abordage est la seule action pour laquelle il n&rsquo;y a pas de limite aux points de ressources que vous pouvez engager afin d&rsquo;avoir un bonus au jet d&rsquo;attaque. L&rsquo;Abordage est aussi l&rsquo;occasion pour des h&eacute;ros d&rsquo;entreprendre des Actions h&eacute;ro&iuml;ques en mer, de la m&ecirc;me fa&ccedil;on qu&rsquo;ils peuvent le faire lors de batailles terrestres. Ces actions formeront une petite aventure &agrave; part enti&egrave;re, par exemple si les h&eacute;ros doivent fouiller le navire ennemi tout en affrontant son &eacute;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":{},"_stats":{"systemId":"bol","systemVersion":"10.2.1","coreVersion":"10.287","createdTime":1665332723905,"modifiedTime":1665384335827,"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","data":{"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},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}},"_id":"RNHBCCGlpPNIkbFu"} {"name":"Armes Improvisée","type":"item","img":"icons/tools/hand/shovel-spade-steel-grey.webp","data":{"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},"quantity":1,"weight":0,"price":0,"worn":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.BSoDfbLMBtwZllDb"}},"_id":"RNHBCCGlpPNIkbFu"}
{"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.3.2","coreVersion":"10.290","createdTime":1669197361967,"modifiedTime":1669197361967,"lastModifiedBy":"zN9ZZg5J7XzNELjd"},"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 quutilisées au corps à corps. Facilement dissimulable, la dague est larme 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.3.2","coreVersion":"10.290","createdTime":1669209202825,"modifiedTime":1669209256671,"lastModifiedBy":"zN9ZZg5J7XzNELjd"},"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>cest larme la plus rudimentaire qui soit. Un gourdin consiste généralement en un bâton de bois noueux, extrêmement dur et mesurant moins de 90 cm de long. Par commodité, on regroupe sous ce terme toute autre arme contondante du même genre (matraque, etc.). Il est possible dutiliser un gourdin pour infliger des dégâts non létaux et assommer son ennemi plutôt que de le tuer.</p>","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.3.2","coreVersion":"10.290","createdTime":1669208789210,"modifiedTime":1669208814086,"lastModifiedBy":"zN9ZZg5J7XzNELjd"},"folder":null,"sort":0,"_id":"Wq2zN2XVbYwqw2ki"}
{"name":"Bottes","type":"item","img":"icons/equipment/feet/boots-collared-leather-brown.webp","data":{"category":"equipment","subtype":"armor","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"X3AR5En9mQhGUrOA"} {"name":"Bottes","type":"item","img":"icons/equipment/feet/boots-collared-leather-brown.webp","data":{"category":"equipment","subtype":"armor","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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"X3AR5En9mQhGUrOA"}
{"_id":"Z2AaQKweMljBAgt6","name":"Arc","type":"item","img":"icons/weapons/bows/longbow-leather-green.webp","data":{"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 darcs.</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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}} {"_id":"Z2AaQKweMljBAgt6","name":"Arc","type":"item","img":"icons/weapons/bows/longbow-leather-green.webp","data":{"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 darcs.</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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
{"name":"Sac","type":"item","img":"icons/containers/bags/pack-leather-black-brown.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"aclqGClakTbXVwAK"} {"name":"Sac","type":"item","img":"icons/containers/bags/pack-leather-black-brown.webp","data":{"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},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"zN9ZZg5J7XzNELjd":3},"flags":{"core":{"sourceId":"Item.rk4tvTBFlLe87mRM"}},"_id":"aclqGClakTbXVwAK"}

View File

@ -14,10 +14,11 @@
], ],
"url": "https://www.uberwald.me/gitea/public/bol", "url": "https://www.uberwald.me/gitea/public/bol",
"license": "LICENSE.txt", "license": "LICENSE.txt",
"version": "10.3.2", "version": "10.4.1",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10.287" "verified": "10",
"maximum": "10"
}, },
"esmodules": [ "esmodules": [
"module/bol.js" "module/bol.js"
@ -181,6 +182,15 @@
"private": false, "private": false,
"flags": {} "flags": {}
}, },
{
"label": "Effets - Exemples",
"type": "Item",
"name": "effets-exemples",
"path": "packs/effets-exemples.db",
"system": "bol",
"private": false,
"flags": {}
},
{ {
"label": "Créatures", "label": "Créatures",
"type": "Actor", "type": "Actor",
@ -193,7 +203,7 @@
], ],
"socket": true, "socket": true,
"manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json", "manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json",
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.3.2.zip", "download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.4.1.zip",
"background": "systems/images/map_lemurie.webp", "background": "systems/images/map_lemurie.webp",
"gridDistance": 1.5, "gridDistance": 1.5,
"gridUnits": "m", "gridUnits": "m",

View File

@ -102,10 +102,10 @@
"hp": { "hp": {
"key": "hp", "key": "hp",
"label": "BOL.resources.hp", "label": "BOL.resources.hp",
"base": 0, "base": 1,
"value": 0, "value": 1,
"bonus": 0, "bonus": 0,
"max": 0 "max": 1
}, },
"hero": { "hero": {
"key": "hero", "key": "hero",

View File

@ -7,6 +7,23 @@
<div class="sidebar flex0 bol-actor-sidebar"> <div class="sidebar flex0 bol-actor-sidebar">
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100" <img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100"
style="border:1px outset lightgray; box-shadow: 5px 5px 5px gray" /> style="border:1px outset lightgray; box-shadow: 5px 5px 5px gray" />
<div></div>
{{#if (count boleffects)}}
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-name flex2">{{localize "BOL.ui.effects"}}</div>
</li>
{{#each boleffects as |effect keyEffect|}}
<li class="item flexrow" data-item-id="{{effect.id}}">
<div class="item-image roll-weapon"><img src="{{effect.img}}" title="{{effect.name}}"/></div>
<h4 class="item-name flex2"><a class="item-edit">{{effect.name}}</a></h4>
</li>
{{/each}}
</ol>
{{/if}}
</div> </div>
<div class="main flex1"> <div class="main flex1">

View File

@ -23,10 +23,10 @@
<label class="header-field-label flex2">Type : </label><br/> <label class="header-field-label flex2">Type : </label><br/>
<select class="field-value" name="system.chartype" data-dtype="String"> <select class="field-value" name="system.chartype" data-dtype="String">
{{#select charType}} {{#select charType}}
<option value="creature">Créature</option> <option value="creature">{{localize "BOL.ui.creature"}}</option>
<option value="base">Piétaille</option> <option value="base">{{localize "BOL.ui.rabble"}}</option>
<option value="tough">Coriace</option> <option value="tough">{{localize "BOL.ui.tough"}}</option>
<option value="adversary">Adversaire</option> <option value="adversary">{{localize "BOL.ui.villain"}}</option>
{{/select}} {{/select}}
</select> </select>
</div> </div>

View File

@ -4,6 +4,12 @@
<h3><strong>{{localize "BOL.chat.damagetarget" target=defender.name}}</strong></h3> <h3><strong>{{localize "BOL.chat.damagetarget" target=defender.name}}</strong></h3>
{{/if}} {{/if}}
{{#if weapon.system.properties.damageReroll1}}
<div>
<label>{{localize "BOL.chat.weaponreroll1"}}</label>
</div>
{{/if}}
<div class="actions-section"> <div class="actions-section">
{{#if targetId}} {{#if targetId}}
<div id="{{applyId}}"> <div id="{{applyId}}">

View File

@ -5,7 +5,15 @@
<div class="flex1 center cell"> <div class="flex1 center cell">
<input type="radio" class="bdice" name="adv" value="1" {{#if (eq adv "1B")}}checked{{/if}}/>+1dB<br /> <input type="radio" class="bdice" name="adv" value="1" {{#if (eq adv "1B")}}checked{{/if}}/>+1dB<br />
<input type="radio" class="bdice" name="adv" value="2" {{#if (eq adv "2B")}}checked{{/if}}/>+2dB<br /> <input type="radio" class="bdice" name="adv" value="2" {{#if (eq adv "2B")}}checked{{/if}}/>+2dB<br />
<input type="radio" class="bdice" name="adv" value="0" {{#if (eq adv "0")}}checked{{/if}}/>0<br />
<input type="radio" class="mdice" name="adv" value="1" {{#if (eq adv "1M")}}checked{{/if}}/>+1dM<br /> <input type="radio" class="mdice" name="adv" value="1" {{#if (eq adv "1M")}}checked{{/if}}/>+1dM<br />
<input type="radio" class="mdice" name="adv" value="2" {{#if (eq adv "2M")}}checked{{/if}}/>+2dM<br /> <input type="radio" class="mdice" name="adv" value="2" {{#if (eq adv "2M")}}checked{{/if}}/>+2dM<br />
</div> </div>
</div> </div>
{{#if attackBonusDice}}
<div class="flexrow" style="margin-bottom: 1px;">
<label class="flex-group-center">{{localize 'BOL.ui.weaponbonus'}}</label>
</div>
{{/if}}

View File

@ -35,6 +35,8 @@
{{> "systems/bol/templates/dialogs/flaws-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/flaws-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/effect-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}}

View File

@ -32,6 +32,8 @@
{{> "systems/bol/templates/dialogs/flaws-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/flaws-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/effect-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}}

View File

@ -16,6 +16,8 @@
{{> "systems/bol/templates/dialogs/flaws-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/flaws-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/effect-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}}

View File

@ -0,0 +1,14 @@
{{#if (count bolEffects)}}
<div class="flexrow roll-box" >
<div class="flex1 center bg-darkred">
<label for="mod">{{localize 'BOL.ui.boleffects'}}</label>
</div>
<div class="flex1 center cell">
<select disabled class="flex1" name="applicable-effects" id="applicable-effects" data-type="String" multiple>
{{#each bolApplicableEffects as |effect id|}}
<option value="{{id}}" selected >{{effect.name}} ({{effect.system.properties.modifier}})</option>
{{/each}}
</select>
</div>
</div>
{{/if}}

View File

@ -56,6 +56,8 @@
{{> "systems/bol/templates/dialogs/fightoptions-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/fightoptions-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/effect-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/adv-roll-part.hbs"}}
{{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}} {{> "systems/bol/templates/dialogs/mod-roll-part.hbs"}}

View File

@ -24,3 +24,6 @@
{{#if (equals item.system.subtype "flaw")}} {{#if (equals item.system.subtype "flaw")}}
{{> "systems/bol/templates/item/parts/properties/feature/flaw-properties.hbs"}} {{> "systems/bol/templates/item/parts/properties/feature/flaw-properties.hbs"}}
{{/if}} {{/if}}
{{#if (equals item.system.subtype "boleffect")}}
{{> "systems/bol/templates/item/parts/properties/feature/effect-properties.hbs"}}
{{/if}}

View File

@ -0,0 +1,27 @@
<h3 class="form-header">{{localize 'BOL.featureSubtypes.effect'}}</h3>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.attributaptitude"}}</label>
<select name="system.properties.identifier" value="{{item.system.properties.identifier}}">
{{#select item.system.properties.identifier}}
<option value="always">{{localize "BOL.ui.always"}}</option>
{{#each config.attackAttributes as |value id|}}
<option value="system.attributes.{{id}}">{{localize value}}</option>
{{/each}}
{{#each config.aptitudes as |value id|}}
<option value="system.aptitudes.{{id}}">{{localize value}}</option>
{{/each}}
{{/select}}
</select>
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.modifier"}}</label>
<select name="system.properties.modifier" value="{{item.system.properties.modifier}}">
{{#select item.system.properties.modifier}}
{{#each config.bolEffectModifier as |modifier id|}}
<option value="{{id}}">{{localize modifier}}</option>
{{/each}}
{{/select}}
</select>
</div>