diff --git a/css/bol.css b/css/bol.css index ec8428f..e79b61a 100644 --- a/css/bol.css +++ b/css/bol.css @@ -958,7 +958,7 @@ body.system-bol img#logo { } .journal-page-content { - color: rgba(0, 0, 0, 0.95); + /*color: rgba(0, 0, 0, 0.95);*/ } .bol.sheet.actor .window-content form .sidebar .profile-img { diff --git a/lang/de.json b/lang/de.json index 7308508..4073b05 100644 --- a/lang/de.json +++ b/lang/de.json @@ -111,7 +111,7 @@ "BOL.ui.defender": "Verteidiger", "BOL.ui.difficulty": "Schwierigkeit", "BOL.ui.spellProperties": "Zaubereigenschaften", - "BOL.ui.duration": "Dauer", + "BOL.ui.duration": "Dauer", "BOL.ui.spellkeep": "Aufrechterhalten", "BOL.ui.concentrate": "Konzentrieren", "BOL.ui.registerInit": "Register Init.", @@ -134,7 +134,7 @@ "BOL.ui.makeAlchemy": "Alchemika herstellen", "BOL.ui.alchemyCostTotal": "Alchemiepunkte ingesamt", "BOL.ui.alchemyInvest": "Alchemiepunkte investieren", - "BOL.ui.alchemyCurrent": "Aktuelle Alchemiepunkte in Objekten", + "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?", @@ -153,8 +153,8 @@ "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.armorAgiMalus": "Rüschtung+Schild-Malus (Geschick)", + "BOL.ui.armorInitMalus": "Rüstungsmalus (Init)", "BOL.ui.attackValue": "Angriffswert", "BOL.ui.initMalus": "Init malus", "BOL.ui.createEquipment": "Create Equipment", @@ -177,7 +177,7 @@ "BOL.featureSubtypes.fightOption": "Kampfoption", "BOL.bougette.nomoney": "Mittellos", - "BOL.bougette.tolive": "Zum Überleben", + "BOL.bougette.tolive": "Zum Überleben", "BOL.bougette.easylife": "Einfaches Leben", "BOL.bougette.luxury" : "Luxuriöses Leben", "BOL.bougette.rich": "Reich!", @@ -224,14 +224,14 @@ "BOL.protectionCategory.other": "Verschiedenes", "BOL.spellItem.charm": "Zauber", - "BOL.spellItem.circle1": "Erster Kreis", - "BOL.spellItem.circle2": "Zweiter Kreis", - "BOL.spellItem.circle3": "Dritter Kreis", + "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.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", @@ -290,6 +290,7 @@ "BOL.itemProperty.difficulty": "Schwierigkeit", "BOL.itemProperty.natural": "Natürliche Waffe", "BOL.itemProperty.onlymodifier": "Nur Modifikator (d.h. Angriffe von Kreaturen)", + "BOL.itemProperty.attackMalusDice": "Angriffsmalus (Würfel)", "BOL.itemStat.quantity": "Anzahl", "BOL.itemStat.weight": "Gewicht", @@ -359,7 +360,7 @@ "BOL.ui.astrologerPoints": "Points d'Astrologie", "BOL.ui.astrologerPointsLabel": "Points d'Astrologie actuels", "BOL.ui.ishoroscopemajor": "Horoscope Majeur (ie de groupe) ?", - "BOL.ui.answer": "Réponse", + "BOL.ui.answer": "Réponse", "BOL.ui.horoscopefavorable": "Favorable (1dB)", "BOL.ui.horoscopeunfavorable": "Défavorable (1dM)", "BOL.ui.horoscopes": "Horoscopes", @@ -468,7 +469,7 @@ "BOL.chat.welcome4": "Im Discord findet ihr Support für die FoundryVTT-Implementierung dieses Systems: https://discord.gg/pPSDNJk", "BOL.chat.welcome5": "Auf ein gutes Spiel in Lemuria!", "BOL.chat.welcome6": "", - "BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !", + "BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !", "BOL.settings.rollArmor": "Roll for armor", "BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked", diff --git a/lang/en.json b/lang/en.json index 90c53c6..2b3ba63 100644 --- a/lang/en.json +++ b/lang/en.json @@ -365,6 +365,7 @@ "BOL.itemProperty.difficulty": "Difficulty", "BOL.itemProperty.natural": "Natural weapon", "BOL.itemProperty.onlymodifier": "Modifier only (ie creatures attacks)", + "BOL.itemProperty.attackMalusDice": "Attack Malus (Dice)", "BOL.itemStat.quantity": "Quantity", "BOL.itemStat.weight": "Weight", diff --git a/lang/es.json b/lang/es.json index 012a06f..414eb5b 100644 --- a/lang/es.json +++ b/lang/es.json @@ -132,7 +132,7 @@ "BOL.ui.defender": "Defensor", "BOL.ui.difficulty": "Dificultad", "BOL.ui.spellProperties": "Propiedades Conjuro", - "BOL.ui.duration": "Duración", + "BOL.ui.duration": "Duración", "BOL.ui.spellkeep": "Mantenimiento", "BOL.ui.concentrate": "Concentración", "BOL.ui.registerInit": "Registrar Inic.", @@ -156,7 +156,7 @@ "BOL.ui.makeAlchemy": "Realizar Alquimia", "BOL.ui.alchemyCostTotal": "Coste Total Puntos Alquimia", "BOL.ui.alchemyInvest": "Invertir Puntos Alquimia", - "BOL.ui.alchemyCurrent": "Puntos Alquimia actuales en Objeto", + "BOL.ui.alchemyCurrent": "Puntos Alquimia actuales en Objeto", "BOL.ui.advance": "Estado", "BOL.ui.isadvantage": "¿Da un dado ventaja?", "BOL.ui.bonusmalus": "Ventaja/desventaja adicional", @@ -245,7 +245,7 @@ "BOL.featureSubtypes.xplog": "Diario PX", "BOL.bougette.nomoney": "Nada", - "BOL.bougette.tolive": "Vivir justo", + "BOL.bougette.tolive": "Vivir justo", "BOL.bougette.easylife": "Vida simple", "BOL.bougette.luxury" : "Vida lujosa", "BOL.bougette.rich": "¡Rico!", @@ -293,15 +293,15 @@ "BOL.protectionCategory.helm": "Casco", "BOL.protectionCategory.other": "Otro", - "BOL.spellItem.charm": "Truco", - "BOL.spellItem.circle1": "Primer Círculo", - "BOL.spellItem.circle2": "Segundo Círculo", - "BOL.spellItem.circle3": "Tercer Círculo", + "BOL.spellItem.charm": "Truco", + "BOL.spellItem.circle1": "Primer Círculo", + "BOL.spellItem.circle2": "Segundo Círculo", + "BOL.spellItem.circle3": "Tercer Círculo", - "BOL.alchemyItem.common": "Común", - "BOL.alchemyItem.scarce": "Escaso", - "BOL.alchemyItem.legend": "Legendario", - "BOL.alchemyItem.mythic": "Mítico", + "BOL.alchemyItem.common": "Común", + "BOL.alchemyItem.scarce": "Escaso", + "BOL.alchemyItem.legend": "Legendario", + "BOL.alchemyItem.mythic": "Mítico", "BOL.weaponCategory.melee": "Melé", "BOL.weaponCategory.ranged": "Distancia", @@ -359,6 +359,7 @@ "BOL.itemProperty.difficulty": "Dificultad", "BOL.itemProperty.natural": "Arma natural", "BOL.itemProperty.onlymodifier": "Sólo modificador (ej criatura)", + "BOL.itemProperty.attackMalusDice": "Dado Desventaja Ataque", "BOL.itemStat.quantity": "Cantidad", "BOL.itemStat.weight": "Peso", @@ -452,7 +453,7 @@ "BOL.size.colossal": "Colosal", "BOL.chat.fightactive": "¡Activa la opción de combate {foName} este asalto!", - "BOL.chat.fightunactive": "¡Desactiva la opción de combate {foName} este asalto!", + "BOL.chat.fightunactive": "¡Desactiva la opción de combate {foName} este asalto!", "BOL.chat.isdead": "¡{name} esta muerto!", "BOL.chat.epitaph": "¡Guardar el honor de su nombre y su memoria!", "BOL.chat.vitalityzero": "Vitalidad de {name} es {hp}: ¡va a caer inconsciente!", @@ -534,7 +535,7 @@ "BOL.chat.criticalinfo": "¡Esto es un éxito Asombroso o Legendario! Escoge tus opciones y efectos", "BOL.chat.criticalbuttonjournal": "Éxito Asombroso/Legendario", "BOL.chat.armorRoll": "Tirada de Armadura", - "BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !", + "BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !", "BOL.dialog.soeasy": "Demasiado fácil (+4)", "BOL.dialog.veryeasy": "Muy fácil (+2)", @@ -554,7 +555,7 @@ "BOL.dialog.long": "Larga (-2)", "BOL.dialog.distant": "Distante (-4)", "BOL.dialog.extreme": "Extrema (-6)", - "BOL.dialog.utmost": "Límite (-8)", + "BOL.dialog.utmost": "Límite (-8)", "BOL.ui.name": "Nombre", "BOL.ui.xp": "Experiencia", diff --git a/lang/fr.json b/lang/fr.json index f987f98..f27bbaf 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -394,7 +394,8 @@ "BOL.itemProperty.isboarding": "Abordage", "BOL.itemProperty.isspur": "Eperonnage", "BOL.itemProperty.isbreakrow": "Briser les rames", - + "BOL.itemProperty.attackMalusDice": "Malus d'attaque (Dés)", + "BOL.itemStat.quantity": "Quantité", "BOL.itemStat.weight": "Poids", "BOL.itemStat.price": "Prix", diff --git a/module/controllers/bol-rolls.js b/module/controllers/bol-rolls.js index 5e109f6..eafac35 100644 --- a/module/controllers/bol-rolls.js +++ b/module/controllers/bol-rolls.js @@ -19,9 +19,9 @@ export class BoLRoll { static updateApplicableEffects(rollData) { let appEffects = [] for (let effect of rollData.bolEffects) { - if ( (effect.system.properties.identifier == "always") || - (effect.system.properties.identifier.includes(rollData.attribute.key)) || - (rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key)) ){ + if ((effect.system.properties.identifier == "always") || + (effect.system.properties.identifier.includes(rollData.attribute.key)) || + (rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key))) { appEffects.push(effect) } } @@ -76,7 +76,7 @@ export class BoLRoll { } /* -------------------------------------------- */ - static attributeCheck(actor, key="vigor", event=undefined, combatData=undefined) { + static attributeCheck(actor, key = "vigor", event = undefined, combatData = undefined) { let attribute = eval(`actor.system.attributes.${key}`) @@ -89,7 +89,7 @@ export class BoLRoll { } /* -------------------------------------------- */ - static aptitudeCheck(actor, key="init", event=undefined, combatData=undefined) { + static aptitudeCheck(actor, key = "init", event = undefined, combatData = undefined) { let aptitude = eval(`actor.system.aptitudes.${key}`) let attrKey = this.getDefaultAttribute(key) @@ -482,10 +482,15 @@ export class BoLRoll { if (rollData.mode == "weapon") { rollData.weaponModifier = rollData.weapon.system.properties.attackModifiers ?? 0 rollData.attackBonusDice = rollData.weapon.system.properties.attackBonusDice + rollData.attackMalusDice = rollData.weapon.system.properties.attackMalusDice if (rollData.attackBonusDice) { rollData.adv = "1B" rollData.bDice = 1 } + if (rollData.attackMalusDice) { + rollData.adv = "1M" + rollData.mDice = 1 + } if (defender) { // If target is selected rollData.defence = defender.defenseValue rollData.armorMalus = defender.armorMalusValue @@ -534,6 +539,7 @@ export class BoLRoll { rollData.id = foundry.utils.randomID(16) rollData.weaponModifier = 0 rollData.attackBonusDice = false + rollData.attackMalusDice = false rollData.armorMalus = 0 // Specific stuff this.preProcessWeapon(rollData, defender) @@ -634,7 +640,7 @@ export class BoLDefaultRoll { const diceTotal = activeDice.map(r => r.result).reduce((a, b) => a + b) this.rollData.roll = r this.rollData.isFumble = (diceTotal <= diceData.criticalFailureValue) - if ( this.rollData.isFumble ) { + if (this.rollData.isFumble) { this.rollData.isSuccess = false this.rollData.isCritical = false this.rollData.isRealCritical = false @@ -642,7 +648,7 @@ export class BoLDefaultRoll { this.rollData.isFailure = true } else { this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue) - if ( this.rollData.isCritical) { + if (this.rollData.isCritical) { this.rollData.isSuccess = true } else { this.rollData.isSuccess = (r.total >= diceData.successValue) diff --git a/templates/item/parts/properties/item/weapon-properties.hbs b/templates/item/parts/properties/item/weapon-properties.hbs index 414b686..c2256aa 100644 --- a/templates/item/parts/properties/item/weapon-properties.hbs +++ b/templates/item/parts/properties/item/weapon-properties.hbs @@ -3,20 +3,40 @@
@@ -25,138 +45,278 @@
+ - {{#if item.system.properties.ranged}} - + {{/if}} {{#if item.system.properties.melee}} - - + + {{/if}}

{{#if (not item.system.properties.onlymodifier)}} -
- -
- +
+ +
+ +
-
-
- -
- +
+ +
+ +
-
{{/if}}
- +
- +

- +
- + {{selectOptions + config.weaponSizes + selected=item.system.properties.weaponSize + localize=true + }}
- + {{selectOptions + config.damageValues + selected=item.system.properties.damage + }}
- +
- + {{selectOptions + config.damageAttributes + selected=item.system.properties.damageAttribute + localize=true + }}
- +
- +
- +
- + {{selectOptions + config.damageMultiplier + selected=item.system.properties.damageMultiplier + }}
- +
-{{#if (or item.system.properties.throwing (or item.system.properties.ranged item.system.properties.throwable))}} -
-
- -
- +{{#if + (or + item.system.properties.throwing + (or item.system.properties.ranged item.system.properties.throwable) + ) +}} +
+
+ +
+ +
-
{{/if}} {{#if item.system.properties.reloadable}} -
- -
- +
+ +
+ +
-
{{/if}} \ No newline at end of file