Compare commits

..

29 Commits

Author SHA1 Message Date
ef5cf6f393 BoL Migration 2022-05-24 23:27:33 +02:00
3e50a9135f Various fixes 2022-05-23 18:38:51 +02:00
82c902099f Fix sur points de creation 2022-05-23 16:12:53 +02:00
c26e43bac7 Fix files 2022-05-21 17:57:04 +02:00
4159b6b181 Fix files 2022-05-21 17:56:52 +02:00
45cb082d8e Start adv generator 2022-05-20 21:54:17 +02:00
2637f698ad Start adv generator 2022-05-20 21:50:18 +02:00
9b8762300e Start adv generator 2022-05-20 00:00:49 +02:00
dfac102925 Start adv generator 2022-05-19 23:30:29 +02:00
fad281a7b3 Sync german translations + some fixes in compendium 2022-05-13 16:20:45 +02:00
1191442f04 Merge pull request #17 from gsterling/master
German welcome message
2022-05-13 16:15:36 +02:00
fe93888c1b add mentions for truant spiele for the the german version 2022-05-13 15:38:16 +02:00
127f200c27 add german welcome message 2022-05-13 15:34:04 +02:00
b078ffa992 Translate welcome message 2022-05-12 23:21:00 +02:00
d713066b5c update De translation 2022-05-12 19:38:41 +02:00
7adfbfe148 Merge pull request #15 from gsterling/master
Add newest german translations.
2022-05-12 19:37:59 +02:00
2186d986ca Merge branch 'master' of https://github.com/ZigmundKreud/bol 2022-05-12 19:31:11 +02:00
590fba0cbd add german char bio translations 2022-05-12 19:26:16 +02:00
0c9e598958 add additional german translations 2022-05-12 19:18:55 +02:00
049604ce98 Add new translation keys 2022-05-12 10:15:21 +02:00
471a18cd14 Enhance localization stuff 2022-05-12 08:25:55 +02:00
58c781f2f2 Enhance localization stuff 2022-05-11 22:07:03 +02:00
c9722b9b04 Enhance localization stuff 2022-05-11 22:05:35 +02:00
44ce88dd17 Enhance localization stuff 2022-05-11 19:29:32 +02:00
a31fe251e0 Add german translation 2022-05-11 15:20:02 +02:00
76a050b023 Merge pull request #13 from gsterling/master
add german translation
2022-05-11 15:19:37 +02:00
b68a6dbd23 add german translation 2022-05-11 13:14:58 +02:00
34c7024191 Advantage! 2022-05-10 23:04:04 +02:00
33da01707d Advantage! 2022-05-10 22:27:21 +02:00
31 changed files with 1985 additions and 468 deletions

View File

@ -855,11 +855,30 @@ body.system-bol img#logo {
font-weight: bold;
color: #4b4a44;
}
.bol.sheet.actor .bonus-text {
margin-top: 7px;
}
.bol.sheet.actor .stat-value {
font-size: 1.5rem;
font-weight: bold;
color: darkred;
}
.bol.sheet.actor .resource-bonus {
font-weight: bold;
color: darkred;
}
.bol.sheet.actor .resources-value {
background-color:#2a2a2a30;
border-color: #003c1e;
margin-top: 4px;
border-radius: 0.5rem;
}
.bol.sheet.actor .resources-novalue {
background-color:#2a2a2a00;
border-color: #003c1e;
margin-top: 4px;
border-radius: 0.5rem;
}
.bol.sheet.actor .stat-roll {
font-size: 1.5rem;
color: #4b4a44;

458
lang/de.json Normal file
View File

@ -0,0 +1,458 @@
{
"ACTOR.TypeCharacter": "Charakter",
"ACTOR.TypeEncounter": "NSC",
"ITEM.TypeItem": "Objekt",
"ITEM.TypeFeature": "Eigenschaft",
"ITEM.TypeWeapon": "Waffe",
"ITEM.TypeArmor": "Rüstung",
"BOL.attributes.vigor": "Stärke",
"BOL.attributes.halfvigor" : "Demi-vigueur",
"BOL.attributes.agility": "Geschicklichkeit",
"BOL.attributes.mind": "Verstand",
"BOL.attributes.appeal": "Auftreten",
"BOL.aptitudes.init": "Initiative",
"BOL.aptitudes.melee": "Nahkampf",
"BOL.aptitudes.ranged": "Fernkampf",
"BOL.aptitudes.def": "Verteidigung",
"BOL.aptitudes.prot": "Schutz",
"BOL.resources.hp": "Lebensblut",
"BOL.resources.hero": "Heldenpunkte",
"BOL.resources.faith": "Glaube",
"BOL.resources.creation": "Erschaffung",
"BOL.resources.power": "Arkane Macht",
"BOL.resources.villainy": "Boshaftigkeit",
"BOL.resources.alchemypoints": "Alchemiepunkte",
"BOL.traits.xp": "Erfahrung",
"BOL.ui.tab.stats": "Attribute",
"BOL.ui.tab.combat": "Kampf",
"BOL.ui.tab.actions": "Aktionen",
"BOL.ui.tab.features": "Eigenschaften",
"BOL.ui.tab.equipment": "Ausrüstung",
"BOL.ui.tab.description": "Beschreibung",
"BOL.ui.tab.details": "Details",
"BOL.ui.tab.spellalchemy": "Zaubersprüche & Alchemie",
"BOL.ui.properties": "Eigenschaften",
"BOL.ui.description": "Beschreibung",
"BOL.ui.actions": "Aktionen",
"BOL.ui.capacities": "Fähigkeiten",
"BOL.ui.capacityProperties": "Fähigkeitenseigenschaften",
"BOL.ui.damages": "Schaden",
"BOL.ui.details": "Details",
"BOL.ui.category": "Kategorie",
"BOL.ui.subcategory": "Unterkategorie",
"BOL.ui.type": "Typ",
"BOL.ui.subtype": "Untertyp",
"BOL.ui.attribute" : "Attribut",
"BOL.ui.aptitude" : "Einstellungen",
"BOL.ui.advantages" : "Vorteile/Nachteile",
"BOL.ui.modifiers": "Modifikatoren",
"BOL.ui.item": "Objekt",
"BOL.ui.edit": "Ändern",
"BOL.ui.unequip": "Ablegen",
"BOL.ui.equip": "Anlegen",
"BOL.ui.delete": "Löschen",
"BOL.ui.roll" : "Würfeln",
"BOL.ui.equipment" : "Ausrüstung",
"BOL.ui.equipmentProperties" : "Ausrüstungseigenschaften",
"BOL.ui.weaponAttack" : "Waffenangriff",
"BOL.ui.weaponProperties" : "Waffeneigenschaften",
"BOL.ui.protectionProperties" : "Schutzeigenschaften",
"BOL.ui.magicalProperties" : "Magieeigenschaften",
"BOL.ui.capacatyProperties" : "Fähigkeiteneigenschaften",
"BOL.ui.alchemyProperties": "Alchemieeigenschaften",
"BOL.ui.armor" : "Rüstung",
"BOL.ui.reach" : "Reichweite",
"BOL.ui.weapon" : "Waffe",
"BOL.ui.melee" : "Nahkampf",
"BOL.ui.ranged" : "Fernkampf",
"BOL.ui.protection" : "Schutz",
"BOL.ui.shield" : "Schild",
"BOL.ui.blocking" : "Blocken",
"BOL.ui.range" : "Reichweite",
"BOL.ui.quantity" : "Menge",
"BOL.ui.qty" : "Anz.",
"BOL.ui.slot" : "Slot",
"BOL.ui.weight" : "Gewicht",
"BOL.ui.price": "Preis",
"BOL.ui.cancel": "Abbrechen",
"BOL.ui.submit": "OK",
"BOL.ui.attributeCheck" : "Attributsprobe",
"BOL.ui.aptitudeCheck" : "Fähigkeitsprobe",
"BOL.ui.weaponCheck" : "Waffenprobe",
"BOL.ui.spellCheck" : "Zauberprobe",
"BOL.ui.careers" : "Laufbahnen",
"BOL.ui.boons" : "Gaben",
"BOL.ui.flaws" : "Schwächen",
"BOL.ui.rank" : "Rang",
"BOL.ui.success" : "Erfolg",
"BOL.ui.failure" : "Fehlschlag",
"BOL.ui.fumble" : "Kritischer Fehlschlag",
"BOL.ui.critical" : "Mächtiger Erfolg",
"BOL.ui.criticallegend" : "Legendärer Erfolg",
"BOL.ui.maneuvers" : "Kampfmanöver",
"BOL.ui.stacksize" : "Stapelgröße (max)",
"BOL.ui.weapons" : "Waffen",
"BOL.ui.protections" : "Schutz",
"BOL.ui.ammos" : "Munition",
"BOL.ui.containers" : "Behälter",
"BOL.ui.treasure" : "Schätze",
"BOL.ui.vehicles" : "Fahrzeuge/Reittiere",
"BOL.ui.misc" : "Verschiedenes",
"BOL.ui.vehicleProperties" : "Fahrzeugeigenschaften",
"BOL.ui.speed" : "Geschwindigkeit",
"BOL.ui.noWeaponName" : "Unbekannte Waffe",
"BOL.ui.targetDefence": "Verteidigung",
"BOL.ui.applyShieldMalus": "Schildmalus anwenden",
"BOL.ui.shieldMalus": "Schildmalus",
"BOL.ui.defenseScore": "Verteidigungswert",
"BOL.ui.defender": "Verteidiger",
"BOL.ui.difficulty": "Schwierigkeit",
"BOL.ui.spellProperties": "Zaubereigenschaften",
"BOL.ui.duration": "Dauer",
"BOL.ui.spellkeep": "Aufrechterhalten",
"BOL.ui.concentrate": "Konzentrieren",
"BOL.ui.registerInit": "Register Init.",
"BOL.ui.isSorcerer": "Ist Zauberer?",
"BOL.ui.isAlchemist": "Ist Alchemist?",
"BOL.ui.isPriest": "Ist Priester/Druide?",
"BOL.ui.circle": "Kreis",
"BOL.ui.spells": "Zaubersprüche",
"BOL.ui.focusSpell": "Zauberspruch wirken",
"BOL.ui.sorcererRank" : "Zaubererrang",
"BOL.ui.alchemistRank": "Alchemistenrang",
"BOL.ui.mandatoryconditions": "Benötigte Vorraussetzungen",
"BOL.ui.optionnalconditions": "Optionale Vorraussetzungen",
"BOL.ui.ppcost": "Arkane Macht-Kosten",
"BOL.ui.ppAvailable": "Verfügbare Arkane Macht",
"BOL.ui.pccost": "Creation Points cost",
"BOL.ui.pcnow": "Actual Creation Points",
"BOL.ui.alchemyType": "Typ",
"BOL.ui.alchemy": "Alchemie",
"BOL.ui.makeAlchemy": "Alchemika herstellen",
"BOL.ui.alchemyCostTotal": "Alchemiepunkte ingesamt",
"BOL.ui.alchemyInvest": "Alchemiepunkte investieren",
"BOL.ui.alchemyCurrent": "Aktuelle Alchemiepunkte in Objekten",
"BOL.ui.advance": "Status",
"BOL.ui.isadvantage": "Gibt zusätzlichen Würfel?",
"BOL.ui.isbonusdice": "Gibt zusätzlichen Würfel?",
"BOL.ui.ismalusdice": "Gibt zusätzlichen Würfel?",
"BOL.ui.bonusmalus": "Zusätzliche Boni/Mali?",
"BOL.ui.nbdices": "Anzahl der Würfel",
"BOL.ui.totalmod": "Kompletter Mod.",
"BOL.ui.rangeModifiers": "Reichweitenmodifikator",
"BOL.ui.money": "Gold",
"BOL.ui.moneyTitle": "Gold & Schätze",
"BOL.ui.fightOption": "Kampfoptionen",
"BOL.ui.none": "Nichts",
"BOL.ui.fightOptionType": "Kampfoptionstypen",
"BOL.ui.activated": "Aktiviert",
"BOL.ui.deactivated": "Deaktiviert",
"BOL.ui.status": "Status",
"BOL.ui.toactivated": "Aktiv (>Deaktivieren)",
"BOL.ui.todeactivated": "Inaktiv (>Aktivieren)",
"BOL.ui.armorAgiMalus": "Rüschtung+Schild-Malus (Geschick)",
"BOL.ui.armorInitMalus": "Rüstungsmalus (Init)",
"BOL.ui.attackValue": "Angriffswert",
"BOL.featureCategory.origins": "Herkünfte",
"BOL.featureCategory.races": "Rassen",
"BOL.featureCategory.careers": "Laufbahnen",
"BOL.featureCategory.boons": "Gaben",
"BOL.featureCategory.flaws": "Schwächen",
"BOL.featureCategory.languages": "Sprachen",
"BOL.featureCategory.fightoptions": "Kampfoptionen",
"BOL.featureSubtypes.origin": "Herkunft",
"BOL.featureSubtypes.race": "Rasse",
"BOL.featureSubtypes.career": "Laufbahn",
"BOL.featureSubtypes.boon": "Gabe",
"BOL.featureSubtypes.flaw": "Schwäche",
"BOL.featureSubtypes.language": "Sprache",
"BOL.featureSubtypes.gods": "Glauben & Götter",
"BOL.featureSubtypes.fightOption": "Kampfoption",
"BOL.bougette.nomoney": "Mittellos",
"BOL.bougette.tolive": "Zum Überleben",
"BOL.bougette.easylife": "Einfaches Leben",
"BOL.bougette.luxury" : "Luxuriöses Leben",
"BOL.bougette.rich": "Reich!",
"BOL.fightOptionTypes.armor": "Angriff um die Rüstung zu umgehen",
"BOL.fightOptionTypes.intrepid": "Rücksichtsloser Angriff",
"BOL.fightOptionTypes.twoweaponsdef": "Kampf mit zwei Waffen (Verteidigung)",
"BOL.fightOptionTypes.twoweaponsatt": "Kampf mit zwei Waffen (Angriff)",
"BOL.fightOptionTypes.fulldefense": "Volle Verteidigung",
"BOL.fightOptionTypes.defense": "Verteidigungshaltung",
"BOL.fightOptionTypes.attack": "Angriffshaltung",
"BOL.itemCategory.object": "Objekt",
"BOL.itemCategory.equipment": "Ausrüstung",
"BOL.itemCategory.consumable": "Verbrauchsgut",
"BOL.itemCategory.spell": "Zauber",
"BOL.itemCategory.vehicle": "Fahrzeug/Reittier",
"BOL.itemCategory.other": "Verschiedenes",
"BOL.itemCategory.capacity" : "Fähigkeiten",
"BOL.itemCategory.alchemy": "Alchemie",
"BOL.combatCategory.protections": "Schutz",
"BOL.combatCategory.shields": "Schilde",
"BOL.combatCategory.melee": "Nahkampfwaffen",
"BOL.combatCategory.ranged": "Fernkampfwaffen",
"BOL.combatCategory.fightOptions": "Kampfoptionen",
"BOL.combatCategory.natural": "Natürliche Waffen",
"BOL.equipmentCategory.weapon": "Waffe",
"BOL.equipmentCategory.armor": "Rüstung",
"BOL.equipmentCategory.protection": "Schutz",
"BOL.equipmentCategory.shield": "Schild",
"BOL.equipmentCategory.helm": "Helm",
"BOL.equipmentCategory.jewel": "Schmuck",
"BOL.equipmentCategory.scroll": "Schriftrolle",
"BOL.equipmentCategory.ammunition": "Munition",
"BOL.equipmentCategory.container": "Behälter",
"BOL.equipmentCategory.currency": "Gold",
"BOL.equipmentCategory.other": "Verschiedenes",
"BOL.protectionCategory.armor": "Rüstung",
"BOL.protectionCategory.shield": "Schild",
"BOL.protectionCategory.helm": "Helm",
"BOL.protectionCategory.other": "Verschiedenes",
"BOL.spellItem.charm": "Zauber",
"BOL.spellItem.circle1": "Erster Kreis",
"BOL.spellItem.circle2": "Zweiter Kreis",
"BOL.spellItem.circle3": "Dritter Kreis",
"BOL.alchemyItem.common": "Häufig",
"BOL.alchemyItem.scarce": "Selten",
"BOL.alchemyItem.legend": "Legendär",
"BOL.alchemyItem.mythic": "Mystisch",
"BOL.weaponCategory.melee": "Nahkampf",
"BOL.weaponCategory.ranged": "Fernkampf",
"BOL.weaponCategory.other": "Verschiedenes",
"BOL.itemProperty.damageMultiplier": "Schadensmultiplikator",
"BOL.itemProperty.attackBonusDice": "Angriffsbonuswürfel",
"BOL.itemProperty.equipable": "Ausrüstbar",
"BOL.itemProperty.protection": "Schutz",
"BOL.itemProperty.blocking": "Blocken",
"BOL.itemProperty.magical": "Magisch",
"BOL.itemProperty.magicalProperties": "Magische Eigenschaften",
"BOL.itemProperty.concealable": "Versteckbar",
"BOL.itemProperty.2H": "Zweihändig",
"BOL.itemProperty.helm": "Helm",
"BOL.itemProperty.improvised": "Improvisiert",
"BOL.itemProperty.shield": "Schild",
"BOL.itemProperty.melee": "Nahkampf",
"BOL.itemProperty.throwable": "Werfbar",
"BOL.itemProperty.ignoreshield": "Ignoriert Schilde",
"BOL.itemProperty.bashing": "Nicht-tödlicher Schaden",
"BOL.itemProperty.stackable": "Stapelbar",
"BOL.itemProperty.ranged": "Fernkampf",
"BOL.itemProperty.weapon": "Waffe",
"BOL.itemProperty.reloadable": "Nachladbar",
"BOL.itemProperty.worn": "Angelegt",
"BOL.itemProperty.spell" : "Zauber",
"BOL.itemProperty.armor" : "Rüstung",
"BOL.itemProperty.consumable" : "Verbrauchsgut",
"BOL.itemProperty.bow" : "Bogen",
"BOL.itemProperty.crossbow" : "Armbrust",
"BOL.itemProperty.throwing" : "Wurfwaffe",
"BOL.itemProperty.activable" : "Aktivierbar",
"BOL.itemProperty.powder" : "Schießpulverwaffe",
"BOL.itemProperty.attackAttribute" : "Angriff (Attribut)",
"BOL.itemProperty.attackAptitude" : "Angriff (Fähigkeit)",
"BOL.itemProperty.attackModifiers" : "Angriff (Modifikatoren)",
"BOL.itemProperty.attackReroll1" : "Angriff (bei 1 erneut würfeln)",
"BOL.itemProperty.damage" : "Schaden (Sch)",
"BOL.itemProperty.damageModifiers" : "Schaden (Modifikatoren)",
"BOL.itemProperty.damageAttribute" : "Schaden (Attribut)",
"BOL.itemProperty.damageSpecial" : "Schaden (Spezial)",
"BOL.itemProperty.damageReroll1" : "bei 1 erneut würfeln",
"BOL.itemProperty.range" : "Reichweite (in m)",
"BOL.itemProperty.soakFormula": "Auslösen (Formel)",
"BOL.itemProperty.soakModifiers": "Auslösen (Modifikatoren)",
"BOL.itemProperty.soakValue": "Auslösen (Wert)",
"BOL.itemProperty.armorQuality": "Rüstungsqualität",
"BOL.itemProperty.blockingMalus" : "Blockmalus",
"BOL.itemProperty.blockingAttacksBlocked" : "Angriff geblockt",
"BOL.itemProperty.blocking1Attack" : "Ein Angriff blocken",
"BOL.itemProperty.blockingAllAttacks" : "Alle Angriffe blocken",
"BOL.itemProperty.slot" : "Slotplatz",
"BOL.itemProperty.reload": "Nachladen (Aktion)",
"BOL.itemProperty.weaponSize" : "Waffengröße",
"BOL.itemProperty.difficulty": "Schwierigkeit",
"BOL.itemProperty.natural": "Natürliche Waffe",
"BOL.itemProperty.onlymodifier": "Nur Modifikator (d.h. Angriffe von Kreaturen)",
"BOL.itemStat.quantity": "Anzahl",
"BOL.itemStat.weight": "Gewicht",
"BOL.itemStat.price": "Preis",
"BOL.itemStat.range": "Reichweite",
"BOL.itemStat.damage": "Schaden",
"BOL.itemStat.reload": "Nachladen (Aktion)",
"BOL.itemStat.soak": "Auslösen",
"BOL.itemStat.blocking": "Blocken",
"BOL.itemStat.modifiers": "Modifikatoren",
"BOL.weaponSize.unarmed" : "Unbewaffnet",
"BOL.weaponSize.improvised" : "Improvisiert",
"BOL.weaponSize.light" : "Leicht",
"BOL.weaponSize.medium" : "Mittel",
"BOL.weaponSize.heavy" : "Schwer",
"BOL.itemModifiers.init": "Malus (Initiative)",
"BOL.itemModifiers.social": "Malus (Sozial)",
"BOL.itemModifiers.agility": "Malus (Geschick)",
"BOL.itemModifiers.powercost": "Malus (Zusatzkosten Arkane Macht)",
"BOL.itemBlocking.malus": "Sozial",
"BOL.itemBlocking.nbAttacksPerRound": "Beweglichkeit",
"BOL.soakFormula.none" : "-",
"BOL.soakFormula.light" : "Leicht (Verhindert d6-3 erlittenen Schaden)",
"BOL.soakFormula.medium" : "Mittel (Verhindert d6-2 erlittenen Schaden)",
"BOL.soakFormula.heavy" : "Schwer (Verhindert d6-1 erlittenen Schaden)",
"BOL.armorQuality.none" : "-",
"BOL.armorQuality.light" : "Leicht",
"BOL.armorQuality.lightQ" : "Leicht Qualität",
"BOL.armorQuality.lightSup" : "Leicht Überlegen",
"BOL.armorQuality.lightLeg" : "Leicht Legendär",
"BOL.armorQuality.medium" : "Mittel",
"BOL.armorQuality.mediumQ" : "Mittel Qualität",
"BOL.armorQuality.mediumSup" : "Mittel Überlegen",
"BOL.armorQuality.mediumLeg" : "Mittel Legendär",
"BOL.armorQuality.heavy" : "Schwer",
"BOL.armorQuality.heavyQ" : "Schwer Qualität",
"BOL.armorQuality.heavySup" : "Schwer Überlegen",
"BOL.armorQuality.heavyLeg" : "Schwer Legendär",
"BOL.equipmentSlots.none" : "-",
"BOL.equipmentSlots.head" : "Kopf",
"BOL.equipmentSlots.neck" : "Hals",
"BOL.equipmentSlots.shoulders" : "Schultern",
"BOL.equipmentSlots.body" : "Körper",
"BOL.equipmentSlots.rhand" : "Rechte Hand",
"BOL.equipmentSlots.lhand" : "Linke Hand",
"BOL.equipmentSlots.2hands" : "Zweihändig",
"BOL.equipmentSlots.rarm" : "Rechter Arm",
"BOL.equipmentSlots.larm" : "Linker Arm",
"BOL.equipmentSlots.chest" : "Torso",
"BOL.equipmentSlots.belt" : "Gürtel",
"BOL.equipmentSlots.legs" : "Beine",
"BOL.equipmentSlots.feet" : "Füße",
"BOL.equipmentSlots.finder" : "Finger",
"BOL.equipmentSlots.ear" : "Ohr",
"BOL.vehicleCategory.mount" : "Reittier",
"BOL.vehicleCategory.flying" : "Fluggerät",
"BOL.vehicleCategory.boat" : "Schiff",
"BOL.vehicleCategory.other" : "Anderes",
"BOL.range.PointBlank": "Direkt",
"BOL.range.Short": "Kurz",
"BOL.range.Medium": "Mittel",
"BOL.range.Long": "Weit",
"BOL.range.VeryLong": "Sehr weit",
"BOL.range.Extreme": "Extrem weit",
"BOL.range.Maximum": "Maximale Reichweite",
"BOL.notification.MacroMultipleTokensSelected": "Du hast mehrere Token ausgewählt",
"BOL.notification.MacroNoActorAvailable": "Es konnte kein Akteur gefunden werden",
"BOL.notification.MacroNoTokenSelected": "Du musst einen Token auswählen",
"BOL.size.tiny": "Winzig",
"BOL.size.verysmall": "Sehr klein",
"BOL.size.small" : "Klein",
"BOL.size.medium" : "Mittel",
"BOL.size.large" : "Groß",
"BOL.size.verylarge": "Sehr groß",
"BOL.size.huge" :"Riesig",
"BOL.size.massive" : "Massiv",
"BOL.size.enormous": "Enorm",
"BOL.size.gigantic": "Gigantisch",
"BOL.size.immense": "Immens",
"BOL.size.colossal": "Kolossal",
"BOL.chat.fightactive": "{name} aktiviert die Kampfoption {foName} für diese Runde!",
"BOL.chat.fightunactive": "{name} deaktiviert die Kampfoption {foName} für diese Runde!",
"BOL.chat.isdead": "{name} ist tot!",
"BOL.chat.epitaph": "Möge sein Name auf den Schlachtfeldern Lemurias in Ehren gehalten werden.!",
"BOL.chat.vitalityzero": "Das Lebensblut von {name} ist {hp}: {name} geht zu Boden und wird bewusstlos!",
"BOL.chat.vitalityheroism": "Gib einen Heldenpunkt aus um für eine Runde wieder auf die Beine zu kommen.",
"BOL.chat.vitalityheroismhint": "Dadurch steigt dein Lebensblut auf das Maximum geteilt durch 2 (aufgerundet).",
"BOL.chat.vitalitydying": "Das Lebensblut von {name} ist {hp}! {name} stirbt...",
"BOL.chat.vitalitydyingheroism": "Gib einen Heldenpunkt aus um den Tod herauszufordern.",
"BOL.chat.alchemytitle": "Alchemiepräparat: {name}",
"BOL.chat.alchemypoints": "Investierte Charaktererschaffungspunkte: {pcCostCurrent}",
"BOL.chat.alchemysuccess": "Das alchemistische Präparat wurde erfolgreich abgeschlossen!<br>Erstelle den entsprechenden Gegenstand oder Effekt in deinem Inventar.<br>Der Vorbereitungsfortschritt wurde auf 0 zurückgesetzt.",
"BOL.chat.alchemyfailure": "Das Alchemistische Präparat ist fehlgeschlagen!<br>Der Fortschritt wurde auf 0 zurückgesetzt.",
"BOL.chat.rolldamage": "Schaden auswürfeln",
"BOL.chat.rolldamage6": "Schaden auswürfeln +6",
"BOL.chat.rolldamage12": "Schaden auswürfeln +12 (1 Heldenpunkt)",
"BOL.chat.damageresult": "Schaden von {name}: {total}",
"BOL.chat.damagetarget": "Ziel: {target}",
"BOL.chat.applydamagetotarget": "Schaden auf Ziel anwenden",
"BOL.chat.fightoption": "Kampfoption",
"BOL.chat.reroll": "Erneut Würfeln (1 Heldenpunkt)",
"BOL.chat.toheroic": "In mächtigen Erfolg umwandeln (1 Heldenpunkt)",
"BOL.chat.tolegend": "In legendären Erfolg umwandeln (1 Heldenpunkt)",
"BOL.chat.hurttitle": "{name} wird {damageTotal} Schaden erleiden!",
"BOL.chat.armordefault": "Dieser Angriff richtet sich gegen Fehler in deiner Rüstung. Du musst den Schaden ohne den Schutz deiner Rüstung einstecken!",
"BOL.chat.witharmor": "Schaden MIT Rüstungsschutz anwenden",
"BOL.chat.withoutarmor": "Schaden OHNE Rüstungsschutz anwenden",
"BOL.chat.shakeoff": "Nur ein Kratzer (1 Heldenpunkt)",
"BOL.chat.splinteredshield": "Opfere dein Schild/Schwert {name} (1 Heldenpunkt)",
"BOL.chat.damagesummary": "Schaden durch {name} erlitten",
"BOL.chat.protectvalue": "Rüstungsschutz",
"BOL.chat.noprotectvalue": "Kein Rüstungsschutz!",
"BOL.chat.heroreducedamage": "Gib einen Heldenpunkt aus um eine zusätzliche Schadensreduktion von {total} zu bekommen.",
"BOL.chat.herosplintered": "Du hast keinen Schaden eingesteckt dank {weaponHero.name}. Leider wurde es während der Parade zerstört. Du hast einen Heldenpunkt verloren.",
"BOL.chat.finaldamage": "Endergebnis: {finalDamage} Schaden!",
"BOL.chat.spell": "Zauber",
"BOL.chat.spellcost": "Arkane Macht-Kosten",
"BOL.chat.spellremaining": "Verbleibende Arkane Macht",
"BOL.dialog.soeasy": "Trivial (+4)",
"BOL.dialog.veryeasy": "Sehr leicht (+2)",
"BOL.dialog.easy": "Leicht (+1)",
"BOL.dialog.moderate": "Normal (0)",
"BOL.dialog.hard": "Knifflig (-1)",
"BOL.dialog.tough": "Schwierig (-2)",
"BOL.dialog.demanding": "Sehr Schwierig (-4)",
"BOL.dialog.formidable": "Herausfordernd (-6)",
"BOL.dialog.heroic": "Heldenhaft (-8)",
"BOL.dialog.mythic": "Mystisch (-10)",
"BOL.dialog.divine": "Göttlich (-12)",
"BOL.dialog.pointblank": "Direkt (+1)",
"BOL.dialog.close": "Kurz (0)",
"BOL.dialog.medium": "Mittel (-1)",
"BOL.dialog.long": "Weit (-2)",
"BOL.dialog.distant": "Sehr Weit (-4)",
"BOL.dialog.extreme": "Extrem Weit (-6)",
"BOL.dialog.utmost": "Maximale Reichweite (-8)",
"BOL.ui.name": "Name",
"BOL.ui.xp": "Erfahrung",
"BOL.ui.xpspent": "Ausgegeben",
"BOL.ui.xptotal": "Insgesamt",
"BOL.ui.biosize": "Größe",
"BOL.ui.bioweight": "Gewicht",
"BOL.ui.bioage": "Alter",
"BOL.ui.biohair": "Haare",
"BOL.ui.bioeyes": "Augen",
"BOL.ui.biosigns": "Erkennungszeichen",
"BOL.ui.biodescription": "Beschreibung",
"BOL.ui.bionotes": "Notizen",
"BOL.chat.welcome1": "Willkommen zu Barbarians of Lemuria (französische Ludospherik-Version, deutsche Übersetzung von Truant Spiele)",
"BOL.chat.welcome2": "Zum Spielen werden zwingend die passenden BoL Bücher benötigt. Die französischen Originalbücher für dieses System gibt es hier: http://www.ludospherik.fr/content/14-barbarians-of-lemuria<br>Die deutsche Übersetzung gibt es bei Truant Spiele: https://truant.com/produkt/barbarians-of-lemuria-2",
"BOL.chat.welcome3": "Die enthaltenen Karten wurden von Guillaume Tavernier und Ludospherik zur Verfügung gestellt. Vielen Dank dafür!",
"BOL.chat.welcome4": "Im Discord findet ihr Support für die FoundryVTT-Implementierung dieses Systems: https://discord.gg/pPSDNJk",
"BOL.chat.welcome5": "Auf ein gutes Spiel in Lemuria!"
}

View File

@ -1,111 +1,111 @@
{
"ACTOR.TypeCharacter": "Personnage",
"ACTOR.TypeEncounter": "Rencontre",
"ITEM.TypeItem": "Objet",
"ITEM.TypeFeature": "Trait",
"ITEM.TypeWeapon": "Arme",
"ITEM.TypeArmor": "Armure",
"ACTOR.TypeCharacter": "Character",
"ACTOR.TypeEncounter": "Encounter",
"ITEM.TypeItem": "Item",
"ITEM.TypeFeature": "Feature",
"ITEM.TypeWeapon": "Weapon",
"ITEM.TypeArmor": "Armor",
"BOL.attributes.vigor": "Vigueur",
"BOL.attributes.halfvigor" : "Demi-vigueur",
"BOL.attributes.agility": "Agilité",
"BOL.attributes.mind": "Esprit",
"BOL.attributes.appeal": "Aura",
"BOL.attributes.vigor": "Vigor",
"BOL.attributes.halfvigor" : "Half-Vigor",
"BOL.attributes.agility": "Agility",
"BOL.attributes.mind": "Mind",
"BOL.attributes.appeal": "Appeal",
"BOL.aptitudes.init": "Initiative",
"BOL.aptitudes.melee": "Mêlée",
"BOL.aptitudes.ranged": "Tir",
"BOL.aptitudes.def": "Défense",
"BOL.aptitudes.melee": "Melee",
"BOL.aptitudes.ranged": "Ranged",
"BOL.aptitudes.def": "Defense",
"BOL.aptitudes.prot": "Protection",
"BOL.resources.hp": "Vitalité",
"BOL.resources.hero": "Héroïsme",
"BOL.resources.faith": "Foi",
"BOL.resources.creation": "Création",
"BOL.resources.power": "Pouvoir",
"BOL.resources.villainy": "Vilénie",
"BOL.resources.hp": "Vitality",
"BOL.resources.hero": "Hero",
"BOL.resources.faith": "Faith",
"BOL.resources.creation": "Creation",
"BOL.resources.power": "Power",
"BOL.resources.villainy": "Villany",
"BOL.resources.alchemypoints": "Alchemy Points",
"BOL.traits.xp": "Expérience",
"BOL.traits.xp": "Experience",
"BOL.ui.tab.stats": "Attributs",
"BOL.ui.tab.stats": "Attributes",
"BOL.ui.tab.combat": "Combat",
"BOL.ui.tab.actions": "Actions",
"BOL.ui.tab.features": "Traits",
"BOL.ui.tab.equipment": "Equipement",
"BOL.ui.tab.equipment": "Equipment",
"BOL.ui.tab.description": "Description",
"BOL.ui.tab.details": "Details",
"BOL.ui.tab.spellalchemy": "Spells & Alchemy",
"BOL.ui.properties": "Propriétés",
"BOL.ui.properties": "Properties",
"BOL.ui.description": "Description",
"BOL.ui.actions": "Actions",
"BOL.ui.capacities": "Capacités",
"BOL.ui.damages": "Dommages",
"BOL.ui.details": "Détails",
"BOL.ui.category": "Catégorie",
"BOL.ui.subcategory": "Sous-catégorie",
"BOL.ui.capacities": "Capacity",
"BOL.ui.damages": "Damage",
"BOL.ui.details": "Details",
"BOL.ui.category": "Category",
"BOL.ui.subcategory": "Sub-Category",
"BOL.ui.type": "Type",
"BOL.ui.subtype": "Sous-type",
"BOL.ui.attribute" : "Attribut",
"BOL.ui.subtype": "Subtype",
"BOL.ui.attribute" : "Attribute",
"BOL.ui.aptitude" : "Aptitude",
"BOL.ui.advantages" : "Avantages/Désavantages",
"BOL.ui.modifiers": "Modificateurs",
"BOL.ui.item": "Objet",
"BOL.ui.edit": "Editer",
"BOL.ui.unequip": "Déséquiper",
"BOL.ui.equip": "Équiper",
"BOL.ui.delete": "Supprimer",
"BOL.ui.roll" : "Utiliser",
"BOL.ui.equipment" : "Équipement",
"BOL.ui.equipmentProperties" : "Propiétés d'équipement",
"BOL.ui.advantages" : "Boons/Flaws",
"BOL.ui.modifiers": "Modifiers",
"BOL.ui.item": "Item",
"BOL.ui.edit": "Edit",
"BOL.ui.unequip": "Unequip",
"BOL.ui.equip": "Equip",
"BOL.ui.delete": "Delete",
"BOL.ui.roll" : "Roll",
"BOL.ui.equipment" : "Equipment",
"BOL.ui.equipmentProperties" : "Equipment properties",
"BOL.ui.weaponAttack" : "Weapon attack",
"BOL.ui.weaponProperties" : "Propiétés offensives",
"BOL.ui.protectionProperties" : "Protection",
"BOL.ui.magicalProperties" : "Propriétés magiques",
"BOL.ui.weaponProperties" : "Weapon properties",
"BOL.ui.protectionProperties" : "Protection properties",
"BOL.ui.magicalProperties" : "Magical properties",
"BOL.ui.alchemyProperties": "Alchemy properties",
"BOL.ui.armor" : "Armure",
"BOL.ui.reach" : "Allonge",
"BOL.ui.weapon" : "Arme",
"BOL.ui.melee" : "Arme de contact",
"BOL.ui.ranged" : "Arme à distance",
"BOL.ui.armor" : "Armor",
"BOL.ui.reach" : "Reach",
"BOL.ui.weapon" : "Weapon",
"BOL.ui.melee" : "Melee",
"BOL.ui.ranged" : "Ranged",
"BOL.ui.protection" : "Protection",
"BOL.ui.shield" : "Bouclier",
"BOL.ui.blocking" : "Blocage",
"BOL.ui.range" : "Portée",
"BOL.ui.quantity" : "Quantité",
"BOL.ui.qty" : "Qté",
"BOL.ui.slot" : "Empl.",
"BOL.ui.weight" : "Poids",
"BOL.ui.price": "Prix",
"BOL.ui.cancel": "Annuler",
"BOL.ui.shield" : "Shield",
"BOL.ui.blocking" : "Blocking",
"BOL.ui.range" : "Range",
"BOL.ui.quantity" : "Quantity",
"BOL.ui.qty" : "Qty",
"BOL.ui.slot" : "Slot",
"BOL.ui.weight" : "Weight",
"BOL.ui.price": "Price",
"BOL.ui.cancel": "Cancel",
"BOL.ui.submit": "OK",
"BOL.ui.attributeCheck" : "Test d'attribut",
"BOL.ui.aptitudeCheck" : "Test d'aptitude",
"BOL.ui.weaponCheck" : "Jet d'attaque",
"BOL.ui.spellCheck" : "Jet de sort",
"BOL.ui.careers" : "Carrières",
"BOL.ui.boons" : "Avantages",
"BOL.ui.flaws" : "Désavantages",
"BOL.ui.rank" : "Rang",
"BOL.ui.success" : "Succès",
"BOL.ui.failure" : "Échec",
"BOL.ui.fumble" : "Échec critique",
"BOL.ui.critical" : "Succès critique",
"BOL.ui.maneuvers" : "Actions de combat",
"BOL.ui.stacksize" : "Taille de pile (max)",
"BOL.ui.weapons" : "Armes",
"BOL.ui.protections" : "Protections",
"BOL.ui.ammos" : "Munitions",
"BOL.ui.containers" : "Conteneurs",
"BOL.ui.treasure" : "Trésor",
"BOL.ui.vehicles" : "Véhicules/Montures",
"BOL.ui.misc" : "Divers",
"BOL.ui.vehicleProperties" : " Propriétés de véhicule",
"BOL.ui.speed" : "Vitesse",
"BOL.ui.noWeaponName" : "Arme Inconnue",
"BOL.ui.targetDefence": "Défense",
"BOL.ui.applyShieldMalus": "Appliquer le Malus de Petit Bouclier",
"BOL.ui.shieldMalus": "Malus de Bouclier",
"BOL.ui.defenseScore": "Score de Defense",
"BOL.ui.defender": "Défenseur",
"BOL.ui.attributeCheck" : "Attribute Check",
"BOL.ui.aptitudeCheck" : "Aptitude Check",
"BOL.ui.weaponCheck" : "Weapon Check",
"BOL.ui.spellCheck" : "Spell Check",
"BOL.ui.careers" : "Careers",
"BOL.ui.boons" : "Boons",
"BOL.ui.flaws" : "Flaws",
"BOL.ui.rank" : "Rank",
"BOL.ui.success" : "Success",
"BOL.ui.failure" : "Failure",
"BOL.ui.fumble" : "Fumble",
"BOL.ui.critical" : "Critical Success",
"BOL.ui.maneuvers" : "Maneuvers",
"BOL.ui.stacksize" : "Stack Size (max)",
"BOL.ui.weapons" : "Weapons",
"BOL.ui.protections" : "Protection",
"BOL.ui.ammos" : "Ammo",
"BOL.ui.containers" : "Container",
"BOL.ui.treasure" : "Treasure",
"BOL.ui.vehicles" : "Vehicles/Mounts",
"BOL.ui.misc" : "Misc",
"BOL.ui.vehicleProperties" : "Vehicle properties",
"BOL.ui.speed" : "Speed",
"BOL.ui.noWeaponName" : "Weapon Name",
"BOL.ui.targetDefence": "Defense",
"BOL.ui.applyShieldMalus": "Apply Shield Modifier",
"BOL.ui.shieldMalus": "Shield Modifier",
"BOL.ui.defenseScore": "Defense Score",
"BOL.ui.defender": "Defender",
"BOL.ui.difficulty": "Difficulty",
"BOL.ui.spellProperties": "Spell Properties",
"BOL.ui.duration": "Duration",
@ -121,7 +121,7 @@
"BOL.ui.sorcererRank" : "Sorcerer Rank",
"BOL.ui.alchemistRank": "Alchemist Rank",
"BOL.ui.mandatoryconditions": "Mandatory conditions",
"BOL.ui.optionnalconditions": "Optionnal conditions",
"BOL.ui.optionnalconditions": "Optional conditions",
"BOL.ui.ppcost": "Power Points cost",
"BOL.ui.ppAvailable": "Available Power Points",
"BOL.ui.pccost": "Creation Points cost",
@ -134,38 +134,38 @@
"BOL.ui.alchemyCurrent": "Current Alchemy Points in Object",
"BOL.ui.advance": "Status",
"BOL.ui.isadvantage": "Provides a bonus dice?",
"BOL.ui.bonusmalus": "Additionnal bonus/malus",
"BOL.ui.nbdices": "Number of Dices",
"BOL.ui.bonusmalus": "Additional bonus/penalty",
"BOL.ui.nbdices": "Number of Dice",
"BOL.ui.totalmod": "Total Mod.",
"BOL.ui.rangeModifiers": "Range modifier",
"BOL.ui.money": "Bougette",
"BOL.ui.money": "Money",
"BOL.ui.moneyTitle": "Gold & Treasure",
"BOL.ui.fightOption": "Fight Options",
"BOL.ui.none": "None",
"BOL.ui.fightOptionType": "Fight Options types",
"BOL.ui.fightOptionType": "Fight Option types",
"BOL.ui.activated": "Activated",
"BOL.ui.deactivated": "Deactivated",
"BOL.ui.status": "Status",
"BOL.ui.toactivated": "Active (>Désactiver)",
"BOL.ui.todeactivated": "Inactive (>Activer)",
"BOL.ui.armorAgiMalus": "Armor+Shield Malus (Agi)",
"BOL.ui.armorInitMalus": "Armor Malus (Init)",
"BOL.ui.attackValue": "Attack value",
"BOL.ui.toactivated": "Active (>Deactivated)",
"BOL.ui.todeactivated": "Inactive (>Active)",
"BOL.ui.armorAgiMalus": "Armor+Shield Modifier (Agi)",
"BOL.ui.armorInitMalus": "Armor Modifier (Init)",
"BOL.ui.attackValue": "Attack Value",
"BOL.featureCategory.origins": "Origines",
"BOL.featureCategory.origins": "Origins",
"BOL.featureCategory.races": "Races",
"BOL.featureCategory.careers": "Carrières",
"BOL.featureCategory.boons": "Avantages",
"BOL.featureCategory.flaws": "Désavantages",
"BOL.featureCategory.languages": "Langages",
"BOL.featureCategory.careers": "Careers",
"BOL.featureCategory.boons": "Boons",
"BOL.featureCategory.flaws": "Flaws",
"BOL.featureCategory.languages": "Languages",
"BOL.featureCategory.fightoptions": "Fight Options",
"BOL.featureSubtypes.origin": "Origine",
"BOL.featureSubtypes.origin": "Origin",
"BOL.featureSubtypes.race": "Race",
"BOL.featureSubtypes.career": "Carrière",
"BOL.featureSubtypes.boon": "Avantage",
"BOL.featureSubtypes.flaw": "Désavantage",
"BOL.featureSubtypes.language": "Langage",
"BOL.featureSubtypes.career": "Career",
"BOL.featureSubtypes.boon": "Boon",
"BOL.featureSubtypes.flaw": "Flaw",
"BOL.featureSubtypes.language": "Language",
"BOL.featureSubtypes.gods": "Faith & Gods",
"BOL.featureSubtypes.fightOption": "Combat Option",
@ -175,46 +175,46 @@
"BOL.bougette.luxury" : "Luxury life",
"BOL.bougette.rich": "Rich!",
"BOL.fightOptionTypes.armor": "Attaque au défaut d'armure",
"BOL.fightOptionTypes.intrepid": "Attaque intrépide",
"BOL.fightOptionTypes.twoweaponsdef": "Combat à 2 armes (Défense)",
"BOL.fightOptionTypes.twoweaponsatt": "Combat à 2 armes (Attaque)",
"BOL.fightOptionTypes.fulldefense": "Défense totale",
"BOL.fightOptionTypes.defense": "Posture défensive",
"BOL.fightOptionTypes.attack": "Posture offensive",
"BOL.fightOptionTypes.armor": "Armor Attack Option",
"BOL.fightOptionTypes.intrepid": "Fearless Attack",
"BOL.fightOptionTypes.twoweaponsdef": "Two Weapon (Defense)",
"BOL.fightOptionTypes.twoweaponsatt": "Two Weapon (Attack)",
"BOL.fightOptionTypes.fulldefense": "Full Defense",
"BOL.fightOptionTypes.defense": "Defensive Posture",
"BOL.fightOptionTypes.attack": "Offensive Posture",
"BOL.itemCategory.object": "Objet",
"BOL.itemCategory.equipment": "Équipement",
"BOL.itemCategory.consumable": "Consommable",
"BOL.itemCategory.spell": "Sort",
"BOL.itemCategory.vehicle": "Monture/Véhicule",
"BOL.itemCategory.other": "Autre",
"BOL.itemCategory.capacity" : "Capacité",
"BOL.itemCategory.object": "Object",
"BOL.itemCategory.equipment": "Equipment",
"BOL.itemCategory.consumable": "Consumable",
"BOL.itemCategory.spell": "Spell",
"BOL.itemCategory.vehicle": "Mount/Vehicle",
"BOL.itemCategory.other": "Other",
"BOL.itemCategory.capacity" : "Capacity",
"BOL.itemCategory.alchemy": "Alchemy",
"BOL.combatCategory.protections": "Protections",
"BOL.combatCategory.shields": "Boucliers",
"BOL.combatCategory.melee": "Armes de contact",
"BOL.combatCategory.ranged": "Armes à distance",
"BOL.combatCategory.shields": "Shields",
"BOL.combatCategory.melee": "Melee",
"BOL.combatCategory.ranged": "Ranged",
"BOL.combatCategory.fightOptions": "Fight options",
"BOL.combatCategory.natural": "Natural Weapons",
"BOL.equipmentCategory.weapon": "Arme",
"BOL.equipmentCategory.armor": "Armure",
"BOL.equipmentCategory.weapon": "Weapon",
"BOL.equipmentCategory.armor": "Armor",
"BOL.equipmentCategory.protection": "Protection",
"BOL.equipmentCategory.shield": "Bouclier",
"BOL.equipmentCategory.helm": "Casque",
"BOL.equipmentCategory.jewel": "Bijou",
"BOL.equipmentCategory.scroll": "Parchemin",
"BOL.equipmentCategory.ammunition": "Munition",
"BOL.equipmentCategory.container": "Conteneur",
"BOL.equipmentCategory.currency": "Monnaie",
"BOL.equipmentCategory.other": "Autre",
"BOL.equipmentCategory.shield": "Shield",
"BOL.equipmentCategory.helm": "Helm",
"BOL.equipmentCategory.jewel": "Jewel",
"BOL.equipmentCategory.scroll": "Scroll",
"BOL.equipmentCategory.ammunition": "Ammunition",
"BOL.equipmentCategory.container": "Container",
"BOL.equipmentCategory.currency": "Money",
"BOL.equipmentCategory.other": "Other",
"BOL.protectionCategory.armor": "Armure",
"BOL.protectionCategory.shield": "Bouclier",
"BOL.protectionCategory.helm": "Casque",
"BOL.protectionCategory.other": "Autre",
"BOL.protectionCategory.armor": "Armor",
"BOL.protectionCategory.shield": "Shield",
"BOL.protectionCategory.helm": "Helm",
"BOL.protectionCategory.other": "Other",
"BOL.spellItem.charm": "Charm",
"BOL.spellItem.circle1": "First Circle",
@ -226,140 +226,140 @@
"BOL.alchemyItem.legend": "Legendary",
"BOL.alchemyItem.mythic": "Mythic",
"BOL.weaponCategory.melee": "Arme de mêlée",
"BOL.weaponCategory.ranged": "Arme de tir",
"BOL.weaponCategory.other": "Autre",
"BOL.weaponCategory.melee": "Melee",
"BOL.weaponCategory.ranged": "Ranged",
"BOL.weaponCategory.other": "Other",
"BOL.itemProperty.damageMultiplier": "Damages Multiplier",
"BOL.itemProperty.damageMultiplier": "Damage Multiplier",
"BOL.itemProperty.attackBonusDice": "Attack Bonus Dice",
"BOL.itemProperty.equipable": "Équipable",
"BOL.itemProperty.equipable": "Equipable",
"BOL.itemProperty.protection": "Protection",
"BOL.itemProperty.blocking": "Blocage",
"BOL.itemProperty.magical": "Magique",
"BOL.itemProperty.concealable": "Dissimulable",
"BOL.itemProperty.2H": "Arme à 2 mains",
"BOL.itemProperty.helm": "Casque",
"BOL.itemProperty.improvised": "Improvisée",
"BOL.itemProperty.shield": "Bouclier",
"BOL.itemProperty.melee": "Arme de contact",
"BOL.itemProperty.throwable": "Peut être lancée",
"BOL.itemProperty.ignoreshield": "Ignore les boucliers",
"BOL.itemProperty.bashing": "Dégâts non létaux",
"BOL.itemProperty.stackable": "Empilable",
"BOL.itemProperty.ranged": "A distance",
"BOL.itemProperty.weapon": "Offensive",
"BOL.itemProperty.reloadable": "Rechargeable",
"BOL.itemProperty.worn": "Équipé",
"BOL.itemProperty.spell" : "Sort",
"BOL.itemProperty.armor" : "Armure",
"BOL.itemProperty.consumable" : "Consommable",
"BOL.itemProperty.bow" : "Arc",
"BOL.itemProperty.crossbow" : "Arbalète",
"BOL.itemProperty.throwing" : "Arme de jet",
"BOL.itemProperty.blocking": "Blocking",
"BOL.itemProperty.magical": "Magical",
"BOL.itemProperty.concealable": "Concealable",
"BOL.itemProperty.2H": "2H Weapon",
"BOL.itemProperty.helm": "Helm",
"BOL.itemProperty.improvised": "Improvised",
"BOL.itemProperty.shield": "Shield",
"BOL.itemProperty.melee": "Melee",
"BOL.itemProperty.throwable": "Throwable",
"BOL.itemProperty.ignoreshield": "Ignore Shield",
"BOL.itemProperty.bashing": "Bashing",
"BOL.itemProperty.stackable": "Stackable",
"BOL.itemProperty.ranged": "Ranged",
"BOL.itemProperty.weapon": "Weapon",
"BOL.itemProperty.reloadable": "Reloadable",
"BOL.itemProperty.worn": "Equipped",
"BOL.itemProperty.spell" : "Spell",
"BOL.itemProperty.armor" : "Armor",
"BOL.itemProperty.consumable" : "Consumable",
"BOL.itemProperty.bow" : "Bow",
"BOL.itemProperty.crossbow" : "Crossbow",
"BOL.itemProperty.throwing" : "Throwing",
"BOL.itemProperty.activable" : "Activable",
"BOL.itemProperty.powder" : "Arme à poudre",
"BOL.itemProperty.attackAttribute" : "Attaque (Attribut)",
"BOL.itemProperty.attackAptitude" : "Attaque (Aptitude)",
"BOL.itemProperty.attackModifiers" : "Attaque (Modificateurs)",
"BOL.itemProperty.attackReroll1" : "Attaque (Relancer les 1)",
"BOL.itemProperty.damage" : "Dommages (Dés)",
"BOL.itemProperty.damageModifiers" : "Dommages (Modificateurs)",
"BOL.itemProperty.damageAttribute" : "Dommages (Attribut)",
"BOL.itemProperty.damageSpecial" : "Dommages (Spécial)",
"BOL.itemProperty.damageReroll1" : "Relancer les 1",
"BOL.itemProperty.range" : "Portée (en m)",
"BOL.itemProperty.soakFormula": "Encaissement (Formule)",
"BOL.itemProperty.soakModifiers": "Encaissement (Modificateur)",
"BOL.itemProperty.soakValue": "Encaissement (Valeur par défaut)",
"BOL.itemProperty.armorQuality": "Qualité d'armure",
"BOL.itemProperty.blockingMalus" : "Malus de blocage",
"BOL.itemProperty.blockingAttacksBlocked" : "Attaques bloquée",
"BOL.itemProperty.blocking1Attack" : "Bloque 1 attaque",
"BOL.itemProperty.blockingAllAttacks" : "Bloque toutes les attaques",
"BOL.itemProperty.slot" : "Emplacement utilisé",
"BOL.itemProperty.reload": "Rechargement (Actions)",
"BOL.itemProperty.weaponSize" : "Classe d'arme",
"BOL.itemProperty.powder" : "Powder",
"BOL.itemProperty.attackAttribute" : "Attack (Attribute)",
"BOL.itemProperty.attackAptitude" : "Attack (Aptitude)",
"BOL.itemProperty.attackModifiers" : "Attack (Modifiers)",
"BOL.itemProperty.attackReroll1" : "Attack (Reroll 1's)",
"BOL.itemProperty.damage" : "Damage (Dmg)",
"BOL.itemProperty.damageModifiers" : "Damage (Modifiers)",
"BOL.itemProperty.damageAttribute" : "Damage (Attribute)",
"BOL.itemProperty.damageSpecial" : "Damage (Special)",
"BOL.itemProperty.damageReroll1" : "Reroll 1's",
"BOL.itemProperty.range" : "Range (in m)",
"BOL.itemProperty.soakFormula": "Soak (Formula)",
"BOL.itemProperty.soakModifiers": "Soak (Modifiers)",
"BOL.itemProperty.soakValue": "Soak (Default Value)",
"BOL.itemProperty.armorQuality": "Armor Quality",
"BOL.itemProperty.blockingMalus" : "Blocking Modifier",
"BOL.itemProperty.blockingAttacksBlocked" : "Attacks blocked",
"BOL.itemProperty.blocking1Attack" : "Block 1 attack",
"BOL.itemProperty.blockingAllAttacks" : "Block all attacks",
"BOL.itemProperty.slot" : "Slot",
"BOL.itemProperty.reload": "Reload (Actions)",
"BOL.itemProperty.weaponSize" : "Weapon Size",
"BOL.itemProperty.difficulty": "Difficulty",
"BOL.itemProperty.natural": "Natural weapon",
"BOL.itemProperty.onlymodifier": "Modifier only (ie creatures attacks)",
"BOL.itemStat.quantity": "Quantité",
"BOL.itemStat.weight": "Poids",
"BOL.itemStat.price": "Prix",
"BOL.itemStat.range": "Portée",
"BOL.itemStat.damage": "Dommages",
"BOL.itemStat.reload": "Rechargement (Actions)",
"BOL.itemStat.soak": "Valeur de protection",
"BOL.itemStat.blocking": "Bloquage",
"BOL.itemStat.modifiers": "Modificateurs",
"BOL.itemStat.quantity": "Quantity",
"BOL.itemStat.weight": "Weight",
"BOL.itemStat.price": "Price",
"BOL.itemStat.range": "Range",
"BOL.itemStat.damage": "Damage",
"BOL.itemStat.reload": "Reload (Actions)",
"BOL.itemStat.soak": "Soak",
"BOL.itemStat.blocking": "Blocking",
"BOL.itemStat.modifiers": "Modifiers",
"BOL.weaponSize.unarmed" : "Mains nues",
"BOL.weaponSize.improvised" : "Arme improvisée",
"BOL.weaponSize.light" : "Légère",
"BOL.weaponSize.medium" : "Moyenne",
"BOL.weaponSize.heavy" : "Lourde",
"BOL.weaponSize.unarmed" : "Unarmed",
"BOL.weaponSize.improvised" : "Improvised",
"BOL.weaponSize.light" : "Light",
"BOL.weaponSize.medium" : "Medium",
"BOL.weaponSize.heavy" : "heavy",
"BOL.itemModifiers.init": "Malus (Initiative)",
"BOL.itemModifiers.social": "Malus (Social)",
"BOL.itemModifiers.agility": "Malus (Agilité)",
"BOL.itemModifiers.powercost": "Malus (Coût supplémentaire en PP)",
"BOL.itemModifiers.init": "Modifier (Initiative)",
"BOL.itemModifiers.social": "Modifier (Social)",
"BOL.itemModifiers.agility": "Modifier (Agility)",
"BOL.itemModifiers.powercost": "Modifier (Additional Cost in PP)",
"BOL.itemBlocking.malus": "Social",
"BOL.itemBlocking.nbAttacksPerRound": "Agilité",
"BOL.itemBlocking.malus": "Modifier",
"BOL.itemBlocking.nbAttacksPerRound": "Agility",
"BOL.soakFormula.none" : "-",
"BOL.soakFormula.light" : "Légère (Annule d6-3 dégâts subis)",
"BOL.soakFormula.medium" : "Moyenne (Annule d6-2 dégâts subis)",
"BOL.soakFormula.heavy" : "Lourde (Annule d6-1 dégâts subis)",
"BOL.soakFormula.light" : "Light (Cancels d6-3 damage)",
"BOL.soakFormula.medium" : "Medium (Cancels d6-2 damage)",
"BOL.soakFormula.heavy" : "Heavy (Cancels d6-1 damage)",
"BOL.armorQuality.none" : "-",
"BOL.armorQuality.light" : "Légère",
"BOL.armorQuality.lightQ" : "Légère de qualité",
"BOL.armorQuality.lightSup" : "Légère Supérieure",
"BOL.armorQuality.lightLeg" : "Légère Légendaire",
"BOL.armorQuality.medium" : "Moyenne",
"BOL.armorQuality.mediumQ" : "Moyenne de qualité",
"BOL.armorQuality.mediumSup" : "Moyenne Supérieure",
"BOL.armorQuality.mediumLeg" : "Moyenne Légendaire",
"BOL.armorQuality.heavy" : "Lourde",
"BOL.armorQuality.heavyQ" : "Lourde de qualité",
"BOL.armorQuality.heavySup" : "Lourde Supérieure",
"BOL.armorQuality.heavyLeg" : "Lourde Légendaire",
"BOL.armorQuality.light" : "Light",
"BOL.armorQuality.lightQ" : "Light Quality",
"BOL.armorQuality.lightSup" : "Light Superior",
"BOL.armorQuality.lightLeg" : "Light Legendary",
"BOL.armorQuality.medium" : "Medium",
"BOL.armorQuality.mediumQ" : "Medium Quality",
"BOL.armorQuality.mediumSup" : "Medium Superior",
"BOL.armorQuality.mediumLeg" : "Medium Legendary",
"BOL.armorQuality.heavy" : "Heavy",
"BOL.armorQuality.heavyQ" : "Heavy Quality",
"BOL.armorQuality.heavySup" : "Heavy Superior",
"BOL.armorQuality.heavyLeg" : "Heavy Legendary",
"BOL.equipmentSlots.none" : "-",
"BOL.equipmentSlots.head" : "Tête",
"BOL.equipmentSlots.neck" : "Cou",
"BOL.equipmentSlots.shoulders" : "Épaules",
"BOL.equipmentSlots.body" : "Corps",
"BOL.equipmentSlots.rhand" : "Main droite",
"BOL.equipmentSlots.lhand" : "Main gauche",
"BOL.equipmentSlots.2hands" : "2 mains",
"BOL.equipmentSlots.rarm" : "Bras droit",
"BOL.equipmentSlots.larm" : "Bras gauche",
"BOL.equipmentSlots.chest" : "Torse",
"BOL.equipmentSlots.belt" : "Ceinture",
"BOL.equipmentSlots.legs" : "Jambes",
"BOL.equipmentSlots.feet" : "Pieds",
"BOL.equipmentSlots.finder" : "Doigt",
"BOL.equipmentSlots.ear" : "Oreille",
"BOL.equipmentSlots.head" : "Head",
"BOL.equipmentSlots.neck" : "Neck",
"BOL.equipmentSlots.shoulders" : "Shoulders",
"BOL.equipmentSlots.body" : "Body",
"BOL.equipmentSlots.rhand" : "Right hand",
"BOL.equipmentSlots.lhand" : "Left hand",
"BOL.equipmentSlots.2hands" : "2 hands",
"BOL.equipmentSlots.rarm" : "Right arm",
"BOL.equipmentSlots.larm" : "Left arm",
"BOL.equipmentSlots.chest" : "Chest",
"BOL.equipmentSlots.belt" : "Belt",
"BOL.equipmentSlots.legs" : "Legs",
"BOL.equipmentSlots.feet" : "Feet",
"BOL.equipmentSlots.finder" : "Finger",
"BOL.equipmentSlots.ear" : "Ear",
"BOL.vehicleCategory.mount" : "Monture terrestre",
"BOL.vehicleCategory.flying" : "Monture volante",
"BOL.vehicleCategory.boat" : "Bateau",
"BOL.vehicleCategory.other" : "Autre",
"BOL.vehicleCategory.mount" : "Ground Mount",
"BOL.vehicleCategory.flying" : "Flying Mount",
"BOL.vehicleCategory.boat" : "Boat",
"BOL.vehicleCategory.other" : "Other",
"BOL.range.PointBlank": "Bout portant",
"BOL.range.Short": "Courte",
"BOL.range.Medium": "Moyenne",
"BOL.range.PointBlank": "Point Blank",
"BOL.range.Short": "Short",
"BOL.range.Medium": "Medium",
"BOL.range.Long": "Long",
"BOL.range.VeryLong": "Très longue",
"BOL.range.Extreme": "Extrême",
"BOL.range.Maximum": "Maximale",
"BOL.range.VeryLong": "Very Long",
"BOL.range.Extreme": "Extreme",
"BOL.range.Maximum": "Maximum",
"BOL.notification.MacroMultipleTokensSelected": "Vous avez sélectionné plusieurs tokens",
"BOL.notification.MacroNoActorAvailable": "Aucun acteur n'a pu être ciblé",
"BOL.notification.MacroNoTokenSelected": "Vous devez sélectionner un token",
"BOL.notification.MacroMultipleTokensSelected": "You have selected several tokens!",
"BOL.notification.MacroNoActorAvailable": "No actor could be targeted!",
"BOL.notification.MacroNoTokenSelected": "You must select a token!",
"BOL.size.tiny": "Tiny",
"BOL.size.verysmall": "Very Small",
@ -372,6 +372,84 @@
"BOL.size.enormous": "Enormous",
"BOL.size.gigantic": "Gigantic",
"BOL.size.immense": "Immense",
"BOL.size.colossal": "Colossal"
"BOL.size.colossal": "Colossal",
"BOL.chat.fightactive": "{name} activates the fight option {foName} for this round !",
"BOL.chat.fightunactive": "{name} deactivates the fight option {foName} for this round !",
"BOL.chat.isdead": "{name} is dead !",
"BOL.chat.epitaph": "Keep his name and memory in honor !",
"BOL.chat.vitalityzero": "Lifeblood of {name} is now {hp} : he is going to fall unconscious !",
"BOL.chat.vitalityheroism": "You can spent 1 Hero Point to raise up for 1 round.",
"BOL.chat.vitalityheroismhint": "In this case, your lifeblood raises up to its maximum divided by 2.",
"BOL.chat.vitalitydying": "Lifeblood of {name} is now {hp} ! He is dying ...",
"BOL.chat.vitalitydyingheroism": "You can spent 1 Hero Point to Defy Death.",
"BOL.chat.alchemytitle": "Alchemy recipe : {name}",
"BOL.chat.alchemypoints": "Craft Points cost : {pcCostCurrent}",
"BOL.chat.alchemysuccess": "The alchemy recipe is a success !<br>Create the relevant item/effect in your Inventory.<br>Stage counter has been resetted.",
"BOL.chat.alchemyfailure": "The alchemy recipe has failed !<br>Stage counter has been resetted.",
"BOL.chat.rolldamage": "Roll for damages",
"BOL.chat.rolldamage6": "Roll for damages +6",
"BOL.chat.rolldamage12": "Roll for damages +12 (1 HP)",
"BOL.chat.damageresult": "Damages of {name} : {total}",
"BOL.chat.damagetarget": "Target : {target}",
"BOL.chat.applydamagetotarget": "Apply damages to the target",
"BOL.chat.fightoption": "Combat options",
"BOL.chat.reroll": "Reroll (1 HP)",
"BOL.chat.toheroic": "Convert to Mighty success (1 HP)",
"BOL.chat.tolegend": "Convert to Legendary succes (1 HP)",
"BOL.chat.hurttitle": "{name} is going to receive {damageTotal} damages !",
"BOL.chat.armordefault": "This attack is bypassing armor : armor is not used to reduce damages !",
"BOL.chat.witharmor": "Hit with armor",
"BOL.chat.withoutarmor": "Hit without armor",
"BOL.chat.shakeoff": "Shake off Wounds (1 HP)",
"BOL.chat.splinteredshield": "Splintered Shield/Sword {name} (1 HP)",
"BOL.chat.damagesummary": "Damages received by {name}",
"BOL.chat.protectvalue": "Armor protect",
"BOL.chat.noprotectvalue": "No armor !",
"BOL.chat.heroreducedamage": "One Hero Point has been spent, for reducing damges by {total}.",
"BOL.chat.herosplintered": "No damages received, thanks to splintered shield/sword with {weaponHero.name}. The weapon/shield has been destroyed ! One HP point has been spent also.",
"BOL.chat.finaldamage": "Final Damage : {finalDamage} damages !",
"BOL.chat.spell": "Spell",
"BOL.chat.spellcost": "Power Points cost",
"BOL.chat.spellremaining": "Remaining Power Points",
"BOL.dialog.soeasy": "So easy (+4)",
"BOL.dialog.veryeasy": "Very easy (+2)",
"BOL.dialog.easy": "Easy (+1)",
"BOL.dialog.moderate": "Moderate (0)",
"BOL.dialog.hard": "Hard (-1)",
"BOL.dialog.tough": "Tough (-2)",
"BOL.dialog.demanding": "Demanding (-4)",
"BOL.dialog.formidable": "Formidable (-6)",
"BOL.dialog.heroic": "Heroic (-8)",
"BOL.dialog.mythic": "Mythic (-10)",
"BOL.dialog.divine": "Divine (-12)",
"BOL.dialog.pointblank": "Point blank (+1)",
"BOL.dialog.close": "Close (0)",
"BOL.dialog.medium": "Medium (-1))",
"BOL.dialog.long": "Long (-2)",
"BOL.dialog.distant": "Distant (-4)",
"BOL.dialog.extreme": "Extreme (-6)",
"BOL.dialog.utmost": "Utmost (-8)",
"BOL.ui.name": "Name",
"BOL.ui.xp": "Experience",
"BOL.ui.xpspent": "Spent",
"BOL.ui.xptotal": "Total",
"BOL.ui.biosize": "Size",
"BOL.ui.bioweight": "Weight",
"BOL.ui.bioage": "Age",
"BOL.ui.biohair": "Hair",
"BOL.ui.bioeyes": "Eyes",
"BOL.ui.biosigns": "Signs",
"BOL.ui.biodescription": "Description",
"BOL.ui.bionotes": "Notes",
"BOL.chat.welcome1": "Welcome to Barbarians of Lemuria (Ludospherik version)",
"BOL.chat.welcome2": "Books are necessary to play, and ca be found here : http://www.ludospherik.fr/content/14-barbarians-of-lemuria",
"BOL.chat.welcome3": "The integrated maps are authorized by Guillaume Tavernier and Ludospherik. Thanks to them !.",
"BOL.chat.welcome4": "All support for this system is available on this Discord server : https://discord.gg/pPSDNJk",
"BOL.chat.welcome5": "Good game in Lemuria !"
}

View File

@ -87,6 +87,7 @@
"BOL.ui.failure": "Échec",
"BOL.ui.fumble": "Échec critique",
"BOL.ui.critical": "Succès critique",
"BOL.ui.criticallegend": "Succès légendaire !",
"BOL.ui.maneuvers": "Actions de combat",
"BOL.ui.stacksize": "Taille de pile (max)",
"BOL.ui.weapons": "Armes",
@ -348,5 +349,84 @@
"BOL.size.enormous": "Colossale",
"BOL.size.gigantic": "Gigantesque",
"BOL.size.immense": "Immense",
"BOL.size.colossal": "Monstrueuse"
"BOL.size.colossal": "Monstrueuse",
"BOL.chat.fightactive": "{name} active son option de combat {foName} pour ce round !",
"BOL.chat.fightunactive": "{name} désactive son option de combat {foName} pour ce round !",
"BOL.chat.isdead": "{name} est mort !",
"BOL.chat.epitaph": "Que son nom soit honoré sur les champs de batailles de Lémurie !",
"BOL.chat.vitalityzero": "La Vitalité de {name} est {hp} : il va s'écrouler au sol et sombrer dans l'inconscience !",
"BOL.chat.vitalityheroism": "Vous pouvez dépenser 1 Point d'Héroisme pour reprendre vos esprits pendant 1 round.",
"BOL.chat.vitalityheroismhint": "Dans ce cas votre vitalité remonte à son maximum divisé par 2 (arrondi au supérieur).",
"BOL.chat.vitalitydying": "La Vitalité de {name} est de {hp} ! Il est mourant ...",
"BOL.chat.vitalitydyingheroism": "Vous pouvez cependant dépenser 1 Point d'Héroisme pour Défier la Mort (cf. page 58).",
"BOL.chat.alchemytitle": "Préparation Alchimique : {name}",
"BOL.chat.alchemypoints": "Points de Création Investis : {pcCostCurrent}",
"BOL.chat.alchemysuccess": "La préparation alchimique a été réalisée avec succès !<br>Créez l'item ou l'effet correspondant dans votre Inventaire.<br>L'avancement dans la préparation a été remis à 0.",
"BOL.chat.alchemyfailure": "La préparation alchimique a échouée !<br>L'avancement dans la préparation a été remis à 0.",
"BOL.chat.rolldamage": "Lancer les dommages",
"BOL.chat.rolldamage6": "Lancer les dommages +6",
"BOL.chat.rolldamage12": "Dommages +12 (1 Pt. d'Heroisme)",
"BOL.chat.damageresult": "Dommages de {name} : {total}",
"BOL.chat.damagetarget": "Cible : {target}",
"BOL.chat.applydamagetotarget": "Appliquer les dommages à la cible",
"BOL.chat.fightoption": "Option de combat",
"BOL.chat.reroll": "Relancer (1 P. Heroisme)",
"BOL.chat.toheroic": "Transformer en succés Héroïque (1 P. Héroisme)",
"BOL.chat.tolegend": "Transformer en succes Légendaire (1 P. Heroisme)",
"BOL.chat.hurttitle": "{name} va encaisser {damageTotal} dégats !",
"BOL.chat.armordefault": "C'est une attaque au défaut de l'armure : vous devez encaisser SANS la protection de l'armure !",
"BOL.chat.witharmor": "Encaisser avec la protection de l'armure",
"BOL.chat.withoutarmor": "Encaisser sans la protection de l'armure",
"BOL.chat.shakeoff": "Juste une égratignure (1 Point d'Héroisme)",
"BOL.chat.splinteredshield": "Parade in Extremis avec {name} (1 Point d'Héroisme)",
"BOL.chat.damagesummary": "Dégats subis par {name}",
"BOL.chat.protectvalue": "Protection de l'armure",
"BOL.chat.noprotectvalue": "Aucune protection d'armure !",
"BOL.chat.heroreducedamage": "Un point d'héroisme dépensé, pour une réduction des dommages supplémentaire de {total}.",
"BOL.chat.herosplintered": "Aucun dommage encaissé, grâce à la parade in-extremis avec {weaponHero.name}. L'arme a été détruite pendant cette parade ! Un point d'héroisme a également été dépensé.",
"BOL.chat.finaldamage": "Encaissement final : {finalDamage} dégats !",
"BOL.chat.spell": "Sort",
"BOL.chat.spellcost": "Cout en Points de Pouvoir",
"BOL.chat.spellremaining": "Points de Pouvoir restants",
"BOL.dialog.soeasy": "Inmanquable (+4)",
"BOL.dialog.veryeasy": "Trés Facile (+2)",
"BOL.dialog.easy": "Facile (+1)",
"BOL.dialog.moderate": "Moyenne (0)",
"BOL.dialog.hard": "Ardue (-1)",
"BOL.dialog.tough": "Difficile (-2)",
"BOL.dialog.demanding": "Très Difficile (-4)",
"BOL.dialog.formidable": "Impossible (-6)",
"BOL.dialog.heroic": "Héroïque (-8)",
"BOL.dialog.mythic": "Mythique (-10)",
"BOL.dialog.divine": "Divine (-12)",
"BOL.dialog.pointblank": "Bout portant (+1)",
"BOL.dialog.close": "Courte (0)",
"BOL.dialog.medium": "Moyenne (-1))",
"BOL.dialog.long": "Longue (-2)",
"BOL.dialog.distant": "Très longue (-4)",
"BOL.dialog.extreme": "Extrême (-6)",
"BOL.dialog.utmost": "Maximale (-8)",
"BOL.ui.name": "Nom",
"BOL.ui.xp": "Experience",
"BOL.ui.xpspent": "Dépensée",
"BOL.ui.xptotal": "Totale",
"BOL.ui.biosize": "Taille",
"BOL.ui.bioweight": "Poids",
"BOL.ui.bioage": "Age",
"BOL.ui.biohair": "Cheveux",
"BOL.ui.bioeyes": "Yeux",
"BOL.ui.biosigns": "Signes distinctifs",
"BOL.ui.biodescription": "Description",
"BOL.ui.bionotes": "Notes",
"BOL.chat.welcome1": "Bienvenue dans Barbarians of Lemuria (Ludospherik version)",
"BOL.chat.welcome2": "Les livres nécessaires pour jouer sont disponibles sur le site de l'éditeur : http://www.ludospherik.fr/content/14-barbarians-of-lemuria",
"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.welcome5": "Bon jeu en Lemurie !"
}

View File

@ -27,11 +27,11 @@ export class BoLActor extends Actor {
if (this.type == 'character') {
let newVitality = 10 + this.data.data.attributes.vigor.value + this.data.data.resources.hp.bonus
if (this.data.data.resources.hp.max != newVitality) {
this.update({ 'data.resources.hp.max': newVitality });
this.update({ 'data.resources.hp.max': newVitality })
}
let newPower = 10 + this.data.data.attributes.mind.value + this.data.data.resources.power.bonus
if (this.data.data.resources.power.max != newPower) {
this.update({ 'data.resources.power.max': newPower });
this.update({ 'data.resources.power.max': newPower })
}
}
}
@ -212,6 +212,9 @@ export class BoLActor extends Actor {
get fightoptions() {
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "fightoption")
}
get godsfaith() {
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "godsfaith")
}
get features() {
return this.itemData.filter(i => i.type === "feature")
}
@ -440,6 +443,11 @@ export class BoLActor extends Actor {
"label": "BOL.featureCategory.fightoptions",
"ranked": false,
"items": this.fightoptions
},
"godsfaith": {
"label": "BOL.featureSubtypes.gods",
"ranked": false,
"items": this.godsfaith
}
}
}
@ -535,7 +543,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */
buildListeActions() {
return this.melee.concat(this.ranged)
return this.melee.concat(this.ranged).concat(this.natural)
}
/*-------------------------------------------- */
@ -573,8 +581,8 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */
async sufferDamage(damage) {
let newHP = this.data.data.resources.hp.value - damage;
await this.update({ 'data.resources.hp.value': newHP });
let newHP = this.data.data.resources.hp.value - damage
await this.update({ 'data.resources.hp.value': newHP })
}
/* -------------------------------------------- */
@ -589,7 +597,7 @@ export class BoLActor extends Actor {
if (!protect.data.properties.soak.formula || protect.data.properties.soak.formula == "") {
ui.notifications.warn(`L'armure ${protect.name} n'a pas de formule pour la protection !`)
} else {
formula += "+" + protect.data.properties.soak.formula
formula += "+" + " max(" + protect.data.properties.soak.formula +",0)"
}
} else {
if (protect.data.properties.soak.value == undefined) {
@ -608,9 +616,9 @@ export class BoLActor extends Actor {
rollProtection(itemId) {
let armor = this.data.items.get(itemId)
if (armor) {
let armorFormula = armor.data.data.properties.soak.formula;
let armorFormula = "max("+armor.data.data.properties.soak.formula + ", 0)"
let rollArmor = new Roll(armorFormula)
rollArmor.roll({ async: false }).toMessage();
rollArmor.roll({ async: false }).toMessage()
}
}
@ -618,7 +626,7 @@ export class BoLActor extends Actor {
rollWeaponDamage(itemId) {
let weapon = this.data.items.get(itemId)
if (weapon) {
let r = new BoLDefaultRoll({ id: randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actor: this })
let r = new BoLDefaultRoll({ id: randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this })
r.setSuccess(true)
r.rollDamage()
}

View File

@ -13,6 +13,8 @@ import { BoLUtility } from "./system/bol-utility.js"
import { BoLCombatManager } from "./system/bol-combat.js"
import { BoLTokenHud } from "./system/bol-action-hud.js"
import { BoLHotbar } from "./system/bol-hotbar.js"
import { BoLAdventureGenerator } from "./system/bol-adventure-generator.js"
import { BoLCommands} from "./system/bol-commands.js"
/* -------------------------------------------- */
Hooks.once('init', async function () {
@ -28,7 +30,7 @@ Hooks.once('init', async function () {
// Game socket
game.socket.on("system.bol", sockmsg => {
BoLUtility.onSocketMessage(sockmsg);
});
})
/**
@ -55,6 +57,8 @@ Hooks.once('init', async function () {
BoLUtility.init()
BoLTokenHud.init()
BoLHotbar.init()
BoLCommands.init()
BoLAdventureGenerator.init()
// Preload Handlebars Templates
await preloadHandlebarsTemplates();
@ -95,12 +99,12 @@ function welcomeMessage() {
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-pegasus"><span class="rdd-roll-part">
<strong>Bienvenue dans Barbarians of Lemuria (Ludospherik version)</strong>
<p>Les livres nécessaires pour jouer sont disponibles sur le site de l'éditeur : http://www.ludospherik.fr/content/14-barbarians-of-lemuria</p>
<p>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 !.
<p>Tout le support et le suivi de ce système es disponible via le Discord Foundry FR : https://discord.gg/pPSDNJk </p>
<p>Bon jeu en Lemurie !</p>
` });
<strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` +
game.i18n.localize("BOL.chat.welcome2") + "<p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p>" +
game.i18n.localize("BOL.chat.welcome5") + "</p>"
} )
}
/* -------------------------------------------- */
@ -108,6 +112,6 @@ Hooks.once('ready', async function () {
registerUsageCount('bol')
welcomeMessage()
});
})

View File

@ -25,6 +25,7 @@ export class BoLRoll {
let rollData = {
mode: "attribute",
actorId: actor.id,
img: actor.img,
attribute: attribute,
attrValue: attribute.value,
aptValue: 0,
@ -52,6 +53,7 @@ export class BoLRoll {
{
mode: "aptitude",
actorId: actor.id,
img: actor.img,
attribute: attribute,
aptitude: aptitude,
attrValue: attribute.value,
@ -84,6 +86,7 @@ export class BoLRoll {
let rolldata = {
mode: "weapon",
actorId: actor.id,
img: actor.img,
weapon: weapon,
isRanged: weaponData.properties.ranged || weaponData.properties.throwing,
targetId: target?.id,
@ -131,6 +134,7 @@ export class BoLRoll {
let alchemyDef = {
mode: "alchemy",
actorId: actor.id,
img: actor.img,
alchemy: alchemy,
attribute: actor.data.data.attributes.mind,
attrValue: actor.data.data.attributes.mind.value,
@ -154,6 +158,7 @@ export class BoLRoll {
let spellDef = {
mode: "spell",
actorId: actor.id,
img: actor.img,
spell: spell,
attribute: actor.data.data.attributes.mind,
attrValue: actor.data.data.attributes.mind.value,
@ -309,12 +314,12 @@ export class BoLRoll {
})
html.find('#boon').change((event) => {
let boons = $('#boon').val()
this.rollData.nbBoons = (!boons || boons.length == 0) ? 0 : Math.max(...boons.map(i => parseInt(i)))
this.rollData.nbBoons = (!boons || boons.length == 0) ? 0 : boons.length
this.updateTotalDice()
})
html.find('#flaw').change((event) => {
let flaws = $('#flaw').val()
this.rollData.nbFlaws = (!flaws || flaws.length == 0) ? 0 : Math.max(...flaws.map(i => parseInt(i)))
this.rollData.nbFlaws = (!flaws || flaws.length == 0) ? 0 : flaws.length
this.updateTotalDice()
})
html.find('.bdice').click((event) => {
@ -330,15 +335,15 @@ export class BoLRoll {
}
/* -------------------------------------------- */
static preProcessWeapon(rollData) {
static preProcessWeapon(rollData, defender) {
if (rollData.mode == "weapon") {
rollData.weaponModifier = rollData.weapon.data.data.properties.attackModifiers ?? 0;
rollData.attackBonusDice = rollData.weapon.data.data.properties.attackBonusDice
if (rollData.defender) { // If target is selected
rollData.defence = rollData.defender.defenseValue
rollData.armorMalus = rollData.defender.armorMalusValue
if (defender) { // If target is selected
rollData.defence = defender.defenseValue
rollData.armorMalus = defender.armorMalusValue
rollData.shieldBlock = 'none'
let shields = rollData.defender.shields
let shields = defender.shields
for (let shield of shields) {
rollData.shieldBlock = (shield.data.properties.blocking.blockingAll) ? 'blockall' : 'blockone';
rollData.shieldAttackMalus = (shield.data.properties.blocking.malus) ? shield.data.properties.blocking.malus : 1;
@ -356,6 +361,12 @@ export class BoLRoll {
const rollOptionTpl = `systems/bol/templates/dialogs/${rollData.mode}-roll-dialog.hbs`
let actor = game.actors.get( rollData.actorId )
let defender
if ( rollData.targetId) {
let token = game.scenes.current.tokens.get(rollData.targetId)
defender = token.actor
}
rollData.careers = actor.careers
rollData.boons = actor.bonusBoons
rollData.flaws = actor.malusFlaws
@ -381,7 +392,7 @@ export class BoLRoll {
rollData.attackBonusDice = false
rollData.armorMalus = 0
// Specific stuff
this.preProcessWeapon(rollData)
this.preProcessWeapon(rollData, defender)
this.preProcessFightOption(rollData)
this.updateArmorMalus(rollData)
this.updatePPCost(rollData)
@ -555,9 +566,10 @@ export class BoLDefaultRoll {
}
/* -------------------------------------------- */
getDamageAttributeValue(attrDamage) {
getDamageAttributeValue(attrDamage, actorId = undefined) {
let attrDamageValue = 0
let actor = game.actors.get( this.rollData.actorId)
let actor = game.actors.get( (actorId) ? actorId: this.rollData.actorId)
if (attrDamage.includes("vigor")) {
attrDamageValue = actor.data.data.attributes.vigor.value
if (attrDamage.includes("half")) {

View File

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

View File

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

View File

@ -0,0 +1,108 @@
/* -------------------------------------------- */
import { BoLAdventureGenerator } from "./bol-adventure-generator.js"
/* -------------------------------------------- */
export class BoLCommands {
static init() {
if (!game.bol.commands) {
const bolCommands = new BoLCommands()
bolCommands.registerCommand({ path: ["/adventure"], func: (content, msg, params) => BoLAdventureGenerator.createAdventure(), descr: "Nouvelle idée d'aventure!" });
game.bol.commands = bolCommands
}
Hooks.on("chatMessage", (html, content, msg) => {
if (content[0] == '/') {
let regExp = /(\S+)/g;
let commands = content.match(regExp);
if (game.bol.commands.processChatCommand(commands, content, msg)) {
return false;
}
}
return true
})
}
constructor() {
this.commandsTable = {}
}
/* -------------------------------------------- */
registerCommand(command) {
this._addCommand(this.commandsTable, command.path, '', command);
}
/* -------------------------------------------- */
_addCommand(targetTable, path, fullPath, command) {
if (!this._validateCommand(targetTable, path, command)) {
return;
}
const term = path[0];
fullPath = fullPath + term + ' '
if (path.length == 1) {
command.descr = `<strong>${fullPath}</strong>: ${command.descr}`;
targetTable[term] = command;
}
else {
if (!targetTable[term]) {
targetTable[term] = { subTable: {} };
}
this._addCommand(targetTable[term].subTable, path.slice(1), fullPath, command)
}
}
/* -------------------------------------------- */
_validateCommand(targetTable, path, command) {
if (path.length > 0 && path[0] && command.descr && (path.length != 1 || targetTable[path[0]] == undefined)) {
return true;
}
console.warn("bolCommands._validateCommand failed ", targetTable, path, command);
return false;
}
/* -------------------------------------------- */
/* Manage chat commands */
processChatCommand(commandLine, content = '', msg = {}) {
// Setup new message's visibility
let rollMode = game.settings.get("core", "rollMode");
if (["gmroll", "blindroll"].includes(rollMode)) msg["whisper"] = ChatMessage.getWhisperRecipients("GM");
if (rollMode === "blindroll") msg["blind"] = true;
msg["type"] = 0;
let command = commandLine[0].toLowerCase();
let params = commandLine.slice(1);
return this.process(command, params, content, msg);
}
/* -------------------------------------------- */
process(command, params, content, msg) {
return this._processCommand(this.commandsTable, command, params, content, msg);
}
/* -------------------------------------------- */
_processCommand(commandsTable, name, params, content = '', msg = {}, path = "") {
console.log("===> Processing command")
let command = commandsTable[name];
path = path + name + " ";
if (command && command.subTable) {
if (params[0]) {
return this._processCommand(command.subTable, params[0], params.slice(1), content, msg, path)
}
else {
this.help(msg, command.subTable);
return true;
}
}
if (command && command.func) {
const result = command.func(content, msg, params);
if (result == false) {
BoLCommands._chatAnswer(msg, command.descr);
}
return true;
}
return false;
}
}

View File

@ -256,8 +256,9 @@ export class BoLUtility {
return
} // ?? Why ???
attackDef.defenseDone = true
attackDef.defenseMode = defenseMode;
let defender = game.actors.get(attackDef.defenderId)
attackDef.defenseMode = defenseMode
let token = game.scenes.current.tokens.get(attackDef.targetId)
let defender = token.actor
if (defenseMode == 'damage-with-armor') {
let armorFormula = defender.getArmorFormula()
@ -274,16 +275,16 @@ export class BoLUtility {
defender.sufferDamage(attackDef.finalDamage);
}
if (defenseMode == 'hero-reduce-damage') {
let armorFormula = defender.getArmorFormula();
let armorFormula = defender.getArmorFormula()
attackDef.rollArmor = new Roll(armorFormula)
attackDef.rollArmor.roll({ async: false });
attackDef.armorProtect = (attackDef.rollArmor.total < 0) ? 0 : attackDef.rollArmor.total;
attackDef.rollHero = new Roll("1d6");
attackDef.rollHero.roll({ async: false });
attackDef.finalDamage = attackDef.damageRoll.total - attackDef.rollHero.total - attackDef.armorProtect;
attackDef.finalDamage = (attackDef.finalDamage < 0) ? 0 : attackDef.finalDamage;
defender.sufferDamage(attackDef.finalDamage);
defender.subHeroPoints(1);
attackDef.rollArmor.roll({ async: false })
attackDef.armorProtect = (attackDef.rollArmor.total < 0) ? 0 : attackDef.rollArmor.total
attackDef.rollHero = new Roll("1d6")
attackDef.rollHero.roll({ async: false })
attackDef.finalDamage = attackDef.damageRoll.total - attackDef.rollHero.total - attackDef.armorProtect
attackDef.finalDamage = (attackDef.finalDamage < 0) ? 0 : attackDef.finalDamage
defender.sufferDamage(attackDef.finalDamage)
defender.subHeroPoints(1)
}
if (defenseMode == 'hero-in-extremis') {
attackDef.finalDamage = 0;
@ -300,6 +301,7 @@ export class BoLUtility {
rollHero: attackDef.rollHero,
weaponHero: attackDef.weaponHero,
armorProtect: attackDef.armorProtect,
name: defender.name,
defender: defender,
defenseMode: attackDef.defenseMode,
finalDamage: attackDef.finalDamage

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

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

View File

@ -2,19 +2,19 @@
"name": "bol",
"title": "Barbarians of Lemuria",
"description": "The Barbarians of Lemuria system for FoundryVTT!",
"author": "Zigmund,LeRatierBretonnien",
"author": "LeRatierBretonnien,Zigmund",
"authors": [
{
"name": "Zigmund"
"name": "LeRatierBretonnien"
},
{
"name": "LeRatierBretonnien"
"name": "Zigmund"
}
],
"url": "https://github.com/ZigmundKreud/bol",
"url": "https://www.uberwald.me/gitea/public/bol",
"license": "LICENSE.txt",
"flags": {},
"version": "1.3.5",
"version": "1.4.0",
"templateVersion": 10,
"minimumCoreVersion": "0.8.6",
"compatibleCoreVersion": "9",
@ -35,6 +35,11 @@
"lang": "fr",
"name": "Français",
"path": "lang/fr.json"
},
{
"lang": "de",
"name": "Deutsch",
"path": "lang/de.json"
}
],
"packs": [
@ -48,7 +53,7 @@
"private": false
},
{
"name": "boons",
"name": "boonsflawscreatures",
"label": "Avantages/Désavantages de Créatures",
"system": "bol",
"path": "./packs/boonsflawscreatures.db",
@ -161,8 +166,8 @@
"system": [],
"dependencies": [],
"socket": true,
"manifest": "https://raw.githubusercontent.com/ZigmundKreud/bol/master/system.json",
"download": "https://github.com/ZigmundKreud/bol/archive/refs/heads/master.zip",
"manifest": "https://www.uberwald.me/gitea/public/bol/raw/master/system.json",
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v1.4.0.zip",
"protected": false,
"background": "images/map_lemurie.webp",
"gridDistance": 1.5,

View File

@ -2,19 +2,19 @@
<header class="sheet-header">
<div class="header-field flex1">
<div class="header-field-group flexrow">
<label class="header-field-label flex2">Nom</label><br/>
<label class="header-field-label flex2">{{localize "BOL.ui.name"}}</label><br/>
<input class="charname flex6" name="name" type="text" value="{{actor.name}}" placeholder="Name"/>
</div>
{{#if (eq data.type "player")}}
<div class="header-field-group flexrow">
<label class="header-field-label flex2">Experience</label><br/>
<label class="header-field-label flex2">{{localize "BOL.ui.xp"}}</label><br/>
<div class="header-field-group flex3">
<label class="header-field-label flex1" style="font-size: 1.5em; color:#606060;">Dépensée</label><br/>
<label class="header-field-label flex1" style="font-size: 1.5em; color:#606060;">{{localize "BOL.ui.xpspent"}}</label><br/>
<input class="header-field-value flex1" type="text" name="data.xp.spent" value="{{numberFormat data.xp.spent decimals=0 sign=false}}" data-dtype="Number"/><br/>
</div>
<div class="header-field-group flex3">
<label class="header-field-label flex1" style="font-size: 1.5em; color:#606060;">&nbsp;Totale</label><br/>
<label class="header-field-label flex1" style="font-size: 1.5em; color:#606060;">&nbsp;{{localize "BOL.ui.xptotal"}}</label><br/>
<input class="header-field-value flex1" type="text" name="data.xp.total" value="{{numberFormat data.xp.total decimals=0 sign=false}}" data-dtype="Number"/><br/>
</div>
</div>

View File

@ -1,21 +1,21 @@
<ol class="items-list">
{{#if (ne data.type "creature")}}
<li class="item flexrow item-header">
<div class="item-name left">Taille </div>
<div class="item-name left">{{localize "BOL.ui.biosize"}}</div>
<div class="item-field flex2 left"><input type="text" name="data.details.height" value="{{data.details.height}}"></div>
<div class="item-name right">Poids </div>
<div class="item-name right">{{localize "BOL.ui.bioweight"}}</div>
<div class="item-field flex2 "><input type="text" name="data.details.weight" value="{{data.details.weight}}"></div>
<div class="item-name right">Age </div>
<div class="item-name right">{{localize "BOL.ui.bioage"}} </div>
<div class="item-field flex2 "><input type="text" name="data.details.age" value="{{data.details.age}}"></div>
</li>
<li class="item flexrow item-header">
<div class="item-name left">Cheveux </div>
<div class="item-name left">{{localize "BOL.ui.biohair"}} </div>
<div class="item-field flex2 left"><input type="text" name="data.details.hait" value="{{data.details.hait}}"></div>
<div class="item-name right">Yeux </div>
<div class="item-name right">{{localize "BOL.ui.bioeyes"}} </div>
<div class="item-field flex2 "><input type="text" name="data.details.eyes" value="{{data.details.eyes}}"></div>
</li>
<li class="item flexrow item-header">
<div class="item-name left">Signes distinctifs </div>
<div class="item-name left">{{localize "BOL.ui.biosigns"}} </div>
<div class="item-field flex2 left"><input type="text" name="data.details.signs" value="{{data.details.signs}}"></div>
</li>
{{else}}
@ -35,7 +35,7 @@
</ol>
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-name flex4 left">Description</div>
<div class="item-name flex4 left">{{localize "BOL.ui.biodescription"}}</div>
<div class="item-field flex1 right"></div>
</li>
</ol>
@ -45,7 +45,7 @@ editable=editable}}
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-name flex4 left">Notes</div>
<div class="item-name flex4 left">{{localize "BOL.ui.bionotes"}}</div>
<div class="item-field flex1 right"></div>
</li>
</ol>

View File

@ -50,25 +50,29 @@
{{#if @root.isAlchemist}}
<div class="resource stat flex1 flex-group-center">
<label class="stat-label">{{localize label}}</label><br/>
<input class="stat-value" type="text" name="data.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
<input class="stat-value resources-value" type="text" name="data.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
{{#if (eq @root.data.type 'player')}}
{{#if (exists bonus)}}
<span class="flexrow"><label class="stat-max">Bonus:</label><input class="stat-max" type="text" name="data.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
<span class="flexrow"><label class="stat-max bonus-text">Bonus</label><input class="resource-bonus resources-value" type="text" name="data.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
{{else}}
<span class="flexrow"><label class="stat-max resources-value">&nbsp;</label><input class="resource-bonus resources-novalue" type="text" value="" disabled></span>
{{/if}}
{{/if}}
<input class="stat-max" type="text" name="data.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
<input class="resources-value" type="text" name="data.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
</div>
{{/if}}
{{else}}
<div class="resource stat flex1 flex-group-center">
<label class="stat-label">{{localize label}}</label><br/>
<input class="stat-value" type="text" name="data.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
<input class="stat-value resources-value" type="text" name="data.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
{{#if (eq @root.data.type 'player')}}
{{#if (exists bonus)}}
<span class="flexrow"><label class="stat-max">Bonus:</label><input class="stat-max" type="text" name="data.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
<span class="flexrow"><label class="stat-max bonus-text">Bonus</label><input class="resource-bonus resources-value" type="text" name="data.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
{{else}}
<span class="flexrow"><label class="stat-max">&nbsp;</label><input class="resource-bonus resources-novalue" type="text" value="" disabled></span>
{{/if}}
{{/if}}
<input class="stat-max" type="text" name="data.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
<input class="resources-value" type="text" name="data.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
</div>
{{/if}}
{{/each}}

View File

@ -5,10 +5,9 @@
<div class="flexrow">
{{#if state}}
{{name}} active son option de combat {{foName}} pour ce round !
{{localize "BOL.chat.fightactive" name=name foName=foName}}
{{else}}
{{name}} désactive son option de combat {{foName}} pour ce round !
{{localize "BOL.chat.fightunactive" name=name foName=foName}}
{{/if}}
</div>

View File

@ -0,0 +1,33 @@
<div>
<img class="chat-icon" src="{{img}}" alt="{{name}}"/>
<h2 class="bad"><strong>{{story.title}}</strong></h2>
</div>
<div class="flexrow">
<br>{{story.mission}}
{{#if story.carriere}}
<br>{{story.carriere}}
{{/if}}
{{#if story.lieu}}
<br>{{story.lieu}}
{{/if}}
{{#if story.objet}}
<br>{{story.objet}}
{{/if}}
<br>{{story.motivation}}
{{#if story.rival}}
<br>{{story.rival}}
{{/if}}
{{#if story.dieu}}
<br>{{story.dieu}}
{{/if}}
{{#if story.complication}}
<br>{{story.complication}}
{{/if}}
{{#if story.retournement}}
<br>{{story.retournement}}
{{/if}}
<br>{{story.recompense}}
</div>

View File

@ -6,17 +6,17 @@
<div class="flexrow">
{{#if (eq hp 0)}}
La Vitalité de {{name}} est {{hp}} : il va s'écrouler au sol et sombrer dans l'inconscience !
<br>Vous pouvez dépenser 1 Point d'Héroisme pour reprendre vos esprits pendant 1 round.
<br>Dans ce cas votre vitalité remonte à son maximum divisé par 2 (arrondi au supérieur).
{{localize "BOL.chat.vitalityzero" name=name hp=hp}}
<br>{{localize "BOL.chat.vitalityheroism"}}
<br>{{localize "BOL.chat.vitalityheroismhint"}}
{{else}}
La Vitalité de {{name}} est de {{hp}} ! Il est mourant ...
<br>Vous pouvez cependant dépenser 1 Point d'Héroisme pour Défier la Mort (cf. page 58).
{{localize "BOL.chat.vitalitydying" name=name hp=hp}}
<br>{{localize "BOL.chat.vitalitydyingheroism"}}
{{/if}}
{{#if (lt hp -5)}}
<br><strong>{{name}} est mort ! </strong>
<br>Que son nom soit honoré sur les champs de batailles de Lémurie !
<br><strong>{{localize "BOL.chat.isdead" name=name}}</strong>
<br>{{localize "BOL.chat.epitaph"}}
{{/if}}
</div>

View File

@ -1,11 +1,8 @@
<h4><strong>Préparation Alchimique : {{alchemy.name}}</strong></h4>
<h4><strong>Points de Création Investis : {{pcCostCurrent}}</strong></h4>
<h4><strong>{{localize "BOL.chat.alchemytitle" name=alchemy.name}}</strong></h4>
<h4><strong>{{localize "BOL.chat.alchemypoints" pcCostCurrent=pcCostCurrent}}</strong></h4>
{{#if isSuccess}}
La préparation alchimique a été réalisée avec succès !
<br>Créez l'item ou l'effet correspondant dans votre Inventaire.
<br>L'avancement dans la préparation a été remis à 0.
{{localize "BOL.chat.alchemysuccess"}}
{{else}}
La préparation alchimique a échouée !
<br>L'avancement dans la préparation a été remis à 0.
{{localize "BOL.chat.alchemyfailure"}}
{{/if}}

View File

@ -1,7 +1,7 @@
<button class="chat-damage-roll" data-damage-mode="normal-damage" data-attack-id="{{id}}">Lancer les dommages</button>
<button class="chat-damage-roll" data-damage-mode="normal-damage" data-attack-id="{{id}}">{{localize "BOL.chat.rolldamage"}}</button>
{{#if isCritical}}
<button class="chat-damage-roll" data-damage-mode="damage-plus-6" data-attack-id="{{id}}">Lancer les dommages +6</button>
<button class="chat-damage-roll" data-damage-mode="damage-plus-12" data-attack-id="{{id}}">Dommages +12 (1 Pt. d'Heroisme)</button>
<button class="chat-damage-roll" data-damage-mode="damage-plus-6" data-attack-id="{{id}}">{{localize "BOL.chat.rolldamage6"}}</button>
<button class="chat-damage-roll" data-damage-mode="damage-plus-12" data-attack-id="{{id}}">{{localize "BOL.chat.rolldamage12"}}</button>
{{/if}}

View File

@ -1,13 +1,13 @@
<img class="chat-icon" src="{{weapon.img}}" alt="{{weapon.name}}"/>
<h3><strong>Dommages de {{weapon.name}} : {{damageRoll.total}}</strong></h3>
<h3><strong>{{localize "BOL.chat.damageresult" name=weapon.name total=damageRoll.total}}</strong></h3>
{{#if defender}}
<h3><strong>Cible : {{defender.name}}</strong></h3>
<h3><strong>{{localize "BOL.chat.damagetarget" target=defender.name}}</strong></h3>
{{/if}}
<div class="actions-section">
{{#if targetId}}
<div id="{{applyId}}">
<button class="chat-damage-apply" data-attack-id="{{id}}">Appliquer les dommages à la cible</button>
<button class="chat-damage-apply" data-attack-id="{{id}}">{{localize "BOL.chat.applydamagetotarget"}}</button>
</div>
<br>
{{/if}}

View File

@ -1,11 +1,15 @@
<div>
{{#if isSuccess}}
{{#if isLegendary}}
<h2 class="success critical"><i class="fas fa-check-double"></i>&nbsp;{{localize "BOL.ui.criticallegend"}}...
{{else}}
{{#if isCritical}}
<h2 class="success critical"><i class="fas fa-check-double"></i>&nbsp;{{localize "BOL.ui.critical"}}...
{{else}}
<h2 class="success"><i class="fas fa-check"></i>&nbsp;{{localize "BOL.ui.success"}}...
{{/if}}
{{/if}}
{{/if}}
{{#if isFailure}}
{{#if isFumble}}
<h2 class="failure fumble"><i class="fas fa-skull-crossbones"></i>&nbsp;{{localize "BOL.ui.fumble"}}...
@ -13,7 +17,7 @@
<h2 class="failure"><i class="fas fa-times"></i>&nbsp;{{localize "BOL.ui.failure"}}...
{{/if}}
{{/if}}
<img class="chat-icon" src="{{actor.img}}" alt="{{actor.name}}"/>
<img class="chat-icon" src="{{img}}" alt="{{actor.name}}"/>
</h2>
</div>
@ -22,7 +26,7 @@
<div class="actions-section">
{{#if fightOption}}
<div>
Option de combat : {{fightOption.name}}
{{localize "BOL.chat.fightoption"}} : {{fightOption.name}}
</div>
{{/if}}
@ -38,14 +42,14 @@
{{/if}}
{{#if reroll}}
<button class="chat-button button hero-reroll" data-roll-id=="{{rollId}}" data-actor-id="{{actor.id}}">Relancer (1 P. Heroisme)</button>
<button class="chat-button button hero-reroll" data-roll-id=="{{rollId}}" data-actor-id="{{actor.id}}">{{localize "BOL.chat.reroll"}}</button>
{{/if}}
{{#if (and isSuccess (not isCritical))}}
<button class="chat-button button transform-heroic-roll" data-roll-id=="{{rollId}}" data-actor-id="{{actor.id}}">Transformer en succés Héroïque (1 P. Héroisme)</button>
<button class="chat-button button transform-heroic-roll" data-roll-id=="{{rollId}}" data-actor-id="{{actor.id}}">{{localize "BOL.chat.toheroic"}}</button>
{{/if}}
{{#if isRealCritical}}
<button class="chat-button button transform-legendary-roll" data-roll-id=="{{rollId}}" data-actor-id="{{actor.id}}">Transformer en succes Légendaire (1 P. Heroisme)</button>
<button class="chat-button button transform-legendary-roll" data-roll-id=="{{rollId}}" data-actor-id="{{actor.id}}">{{localize "BOL.chat.tolegend"}}</button>
{{/if}}
<br>
</div>

View File

@ -1,18 +1,18 @@
<img class="chat-icon" src="{{defender.img}}" alt="{{defender.name}}"/>
{{defender.name}} va encaisser {{damageTotal}} dégats !
{{localize "BOL.chat.hurttitle" name=defender.name damageTotal=damageTotal}}
{{#if damagesIgnoresArmor}}
<br>C'est une attaque au défaut de l'armure : vous devez encaisser SANS la protection de l'armure !
<br>{{localize "BOL.chat.armordefault"}}
{{/if}}
<button class="damage-handling" data-defense-mode="damage-with-armor" data-attack-id="{{attackId}}">Encaisser avec la protection de l'armure</button>
<button class="damage-handling" data-defense-mode="damage-without-armor" data-attack-id="{{attackId}}">Encaisser sans la protection de l'armure</button>
<button class="damage-handling" data-defense-mode="damage-with-armor" data-attack-id="{{attackId}}">{{localize "BOL.chat.witharmor"}}</button>
<button class="damage-handling" data-defense-mode="damage-without-armor" data-attack-id="{{attackId}}">{{localize "BOL.chat.withoutarmor"}}</button>
{{#if defender.data.data.resources.hero.value}}
<button class="damage-handling" data-defense-mode="hero-reduce-damage" data-attack-id="{{attackId}}">Juste une égratignure (1 Point d'Héroisme)</button>
<button class="damage-handling" data-defense-mode="hero-reduce-damage" data-attack-id="{{attackId}}">{{localize "BOL.chat.shakeoff"}}</button>
{{#each defenderWeapons as |weapon idx|}}
<button class="damage-handling" data-defense-mode="hero-in-extremis" data-attack-id="{{@root.attackId}}" data-weapon-id="{{weapon._id}}">Parade in Extremis avec {{weapon.name}} (1 Point d'Héroisme)</button>
<button class="damage-handling" data-defense-mode="hero-in-extremis" data-attack-id="{{@root.attackId}}" data-weapon-id="{{weapon._id}}">{{localize "BOL.chat.splinteredshield" name=weapon.name}}</button>
{{/each}}
{{/if}}

View File

@ -1,23 +1,22 @@
<img class="chat-icon" src="{{defender.img}}" alt="{{defender.name}}"/>
<h3>Dégats subis par {{defender.name}}</h3>
<h3>{{localize "BOL.chat.damagesummary" name=name}}</h3>
<ul>
<li>
{{#if (eq defenseMode "damage-with-armor")}}
Protection de l'armure : {{armorProtect}}.
{{localize "BOL.chat.protectvalue"}} : {{armorProtect}}.
{{/if}}
{{#if (eq defenseMode "damage-without-armor")}}
Aucune protection d'armure !
{{localize "BOL.chat.noprotectvalue"}}
{{/if}}
{{#if (eq defenseMode "hero-reduce-damage")}}
Protection de l'armure : {{armorProtect}}.
Un point d'héroisme dépensé, pour une réduction des dommages supplémentaire de {{rollHero.total}}.
{{localize "BOL.chat.protectvalue"}} : {{armorProtect}}.
{{localize "BOL.chat.heroreducedamage" total=rollHero.total}}
{{/if}}
{{#if (eq defenseMode "hero-in-extremis")}}
Aucun dommage encaissé, grâce à la parade in-extremis avec {{weaponHero.name}}. L'arme a été détruite pendant cette parade !
Un point d'héroisme a également été dépensé.
{{localize "BOL.chat.herosplintered" name=weaponHero.name}}
{{/if}}
</li>
<li>
Encaissement final : {{finalDamage}} dégats !
{{localize "BOL.chat.finaldamage" finalDamage=finalDamage}}
</li>
</ul>

View File

@ -1,4 +1,4 @@
<h4><strong>Sort : {{spell.name}}</strong></h4>
<h4><strong>Cout en Points de Pouvoir : {{ppCost}}</strong></h4>
<h4><strong>Points de Pouvoir restants : {{sub ppCurrent ppCost}}</strong></h4>
<h4><strong>{{localize "BOL.chat.spell"}} : {{spell.name}}</strong></h4>
<h4><strong>{{localize "BOL.chat.spellcost"}} : {{ppCost}}</strong></h4>
<h4><strong>{{localize "BOL.chat.spellremaining"}} : {{sub ppCurrent ppCost}}</strong></h4>

View File

@ -6,13 +6,13 @@
<div class="flex1 center cell">
<select name="modRanged" id="modRanged" value="{{mod}}">
{{#select modRanged}}
<option value="1">Bout portant (+1)</option>
<option value="0">Courte (0)</option>
<option value="-1">Moyenne (-1)</option>
<option value="-2">Longue (-2)</option>
<option value="-4">Très longue (-4)</option>
<option value="-6">Extrême (-6)</option>
<option value="-8">Maximale (-8)</option>
<option value="1">{{localize "BOL.dialog.pointblank"}}</option>
<option value="0">{{localize "BOL.dialog.close"}}</option>
<option value="-1">{{localize "BOL.dialog.medium"}}</option>
<option value="-2">{{localize "BOL.dialog.long"}}</option>
<option value="-4">{{localize "BOL.dialog.distant"}}</option>
<option value="-6">{{localize "BOL.dialog.extreme"}}</option>
<option value="-8">{{localize "BOL.dialog.utmost"}}</option>
{{/select}}
</select>
</div>
@ -44,17 +44,17 @@
<div class="flex1 center cell">
<select name="mod" id="mod" value="{{mod}}">
{{#select mod}}
<option value="4">Inmanquable (+4)</option>
<option value="2">Trés Facile (+2)</option>
<option value="1">Facile (+1)</option>
<option value="0">Moyenne (0)</option>
<option value="-1">Ardue (-1)</option>
<option value="-2">Difficile (-2)</option>
<option value="-4">Très Difficile (-4)</option>
<option value="-6">Impossible (-6)</option>
<option value="-8">Héroïque (-8)</option>
<option value="-10">Mythique (-10)</option>
<option value="-12">Divine (-12)</option>
<option value="4">{{localize "BOL.dialog.soeasy"}}</option>
<option value="2">{{localize "BOL.dialog.veryeasy"}}</option>
<option value="1">{{localize "BOL.dialog.easy"}}</option>
<option value="0">{{localize "BOL.dialog.moderate"}}</option>
<option value="-1">{{localize "BOL.dialog.hard"}}</option>
<option value="-2">{{localize "BOL.dialog.tough"}}</option>
<option value="-4">{{localize "BOL.dialog.demanding"}}</option>
<option value="-6">{{localize "BOL.dialog.formidable"}}</option>
<option value="-8">{{localize "BOL.dialog.heroic"}}</option>
<option value="-10">{{localize "BOL.dialog.mythic"}}</option>
<option value="-12">{{localize "BOL.dialog.divine"}}</option>
{{/select}}
</select>
</div>

View File

@ -15,14 +15,14 @@
<label class="property-label">{{localize "BOL.ui.difficulty"}}</label>
<select name="data.properties.difficulty" value="{{data.properties.difficulty}}">
{{#select data.properties.difficulty}}
<option value="2">Trés Facile (+2)</option>
<option value="1">Facile (+1)</option>
<option value="0">Moyenne (0)</option>
<option value="-1">Ardue (-1)</option>
<option value="-2">Difficile (-2)</option>
<option value="-4">Très Difficile (-4)</option>
<option value="-6">Impossible (-6)</option>
<option value="-8">Héroïque (-8)</option>
<option value="2">{{localize "BOL.dialog.veryeasy"}}</option>
<option value="1">{{localize "BOL.dialog.easy"}}</option>
<option value="0">{{localize "BOL.dialog.moderate"}}</option>
<option value="-1">{{localize "BOL.dialog.hard"}}</option>
<option value="-2">{{localize "BOL.dialog.tough"}}</option>
<option value="-4">{{localize "BOL.dialog.demanding"}}</option>
<option value="-6">{{localize "BOL.dialog.formidable"}}</option>
<option value="-8">{{localize "BOL.dialog.heroic"}}</option>
{{/select}}
</select>
</div>

View File

@ -15,14 +15,14 @@
<label class="property-label">{{localize "BOL.ui.difficulty"}}</label>
<select name="data.properties.difficulty" value="{{data.properties.difficulty}}">
{{#select data.properties.difficulty}}
<option value="2">Trés Facile (+2)</option>
<option value="1">Facile (+1)</option>
<option value="0">Moyenne (0)</option>
<option value="-1">Ardue (-1)</option>
<option value="-2">Difficile (-2)</option>
<option value="-4">Très Difficile (-4)</option>
<option value="-6">Impossible (-6)</option>
<option value="-8">Héroïque (-8)</option>
<option value="2">{{localize "BOL.dialog.veryeasy"}}</option>
<option value="1">{{localize "BOL.dialog.easy"}}</option>
<option value="0">{{localize "BOL.dialog.moderate"}}</option>
<option value="-1">{{localize "BOL.dialog.hard"}}</option>
<option value="-2">{{localize "BOL.dialog.tough"}}</option>
<option value="-4">{{localize "BOL.dialog.demanding"}}</option>
<option value="-6">{{localize "BOL.dialog.formidable"}}</option>
<option value="-8">{{localize "BOL.dialog.heroic"}}</option>
{{/select}}
</select>
</div>