From bb79bd06084c87c9c56dfc66e93ca0ead7e4d89d Mon Sep 17 00:00:00 2001 From: Ender Date: Sun, 14 Jan 2024 01:32:32 +0100 Subject: [PATCH] - Made weapons, defensiveWeapons and armor equippable and storable in containers --- lang/de.json | 9 +- source/module/actors/M5Character.ts | 2 + source/module/items/M5Item.ts | 33 ++- templates/sheets/character/base_values.hbs | 49 +++-- templates/sheets/character/combat.hbs | 223 +++++++++------------ templates/sheets/character/description.hbs | 4 +- templates/sheets/character/gear.hbs | 102 ++++++++++ templates/sheets/character/main.hbs | 10 +- templates/sheets/character/skills.hbs | 75 ++++--- templates/sheets/item/armor.hbs | 23 +++ templates/sheets/item/defensiveWeapon.hbs | 23 +++ templates/sheets/item/weapon.hbs | 23 +++ 12 files changed, 394 insertions(+), 182 deletions(-) diff --git a/lang/de.json b/lang/de.json index c62ffa2..8aaaf33 100644 --- a/lang/de.json +++ b/lang/de.json @@ -34,10 +34,9 @@ "midgard5.background": "Hintergrund", "midgard5.attribute": "Eigenschaft", "midgard5.attributes": "Eigenschaften", - "midgard5.derived-attribute": "Abgeleitete Eigenschaft", - "midgard5.derived-attributes": "Abgeleitete Eigenschaften", + "midgard5.points": "Punkte", "midgard5.calculated-value": "Berechneter Wert", - "midgard5.calculated-values": "Berechnete Werte", + "midgard5.calculated-values": "Sonstige Werte", "midgard5.skill": "Fertigkeit", "midgard5.skill-value": "Fertigkeitswert", @@ -236,13 +235,17 @@ "midgard5.language": "Sprache", "midgard5.languages": "Sprachen", "midgard5.weapon-skill": "Waffenfertigkeit", + "midgard5.weapon-skills": "Waffenfertigkeiten", "midgard5.unlearned-skill": "Ungelernte Fertigkeit", "midgard5.unlearned-skills": "Ungelernte Fertigkeiten", "midgard5.innate-ability": "Angeborene/Besondere Fertigkeit", "midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit", "midgard5.base-damage": "Grundschaden", + "midgard5.weapon": "Waffe", + "midgard5.weapons": "Waffen", "midgard5.defensive-weapon": "Verteidigungswaffe", + "midgard5.defensive-weapons": "Verteidigungswaffen", "midgard5.no-skill": "Keine Fertigkeit", "midgard5.magic": "magisch", "midgard5.valuable": "Vermögen", diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index be1be10..dfec80d 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -322,6 +322,7 @@ export class M5Character extends Actor { hoarded: item.system?.hoarded, value: item.system.value || 0, calc: item.system.calc, + equipped: item.system?.equipped, }; }); } @@ -351,6 +352,7 @@ export class M5Character extends Actor { hoarded: item.system?.hoarded, value: item.system.value || 0, calc: item.system.calc, + equipped: item.system?.equipped, }; }); } diff --git a/source/module/items/M5Item.ts b/source/module/items/M5Item.ts index d9138da..74bd118 100644 --- a/source/module/items/M5Item.ts +++ b/source/module/items/M5Item.ts @@ -79,14 +79,23 @@ export class M5Item extends Item { calc.special = itemData.special ? 2 : 0; calc.ew = calc.special + itemData.stats.attackBonus; calc.combatSkills = null; + calc.containers = null; + if (actor) { const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true }); if (actorCalc) { calc.ew += actorCalc.stats.attackBonus.value; calc.combatSkills = actorCalc.skills.combat; + calc.containers = actorCalc.gear.containers; } - + const container = character.getItem(itemData.containerId); + //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system) + if (container) { + container.prepareDerivedData(); + const containerData = container.system; + } + const skill = character.getItem(itemData.skillId); //console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system) if (skill) { @@ -103,14 +112,23 @@ export class M5Item extends Item { calc.special = itemData.special ? 2 : 0; calc.ew = calc.special + itemData.stats.defenseBonus; calc.combatSkills = null; + calc.containers = null; if (actor) { const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true }); if (actorCalc) { calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value; calc.combatSkills = actorCalc.skills.combat; + calc.containers = actorCalc.gear.containers; } + const container = character.getItem(itemData.containerId); + //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system) + if (container) { + container.prepareDerivedData(); + const containerData = container.system; + } + const skill = character.getItem(itemData.skillId); //console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system) if (skill) { @@ -128,6 +146,19 @@ export class M5Item extends Item { itemData.mods[3] = { type: "attribute", id: "gw", operation: "add100", value: itemData.attributeMod.gw }; itemData.mods[4] = { type: "stat", id: "lpProtection", operation: "set", value: itemData.lpProtection }; itemData.mods[5] = { type: "stat", id: "apProtection", operation: "set", value: itemData.apProtection }; + calc.containers = null; + if (actor) { + const actorCalc = actor.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true }); + if (actorCalc) { + calc.containers = actorCalc.gear.containers; + } + const container = character.getItem(itemData.containerId); + //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system) + if (container) { + container.prepareDerivedData(); + const containerData = container.system; + } + } } else if (itemType === "spell") { calc.fw = 0; if (actor) { diff --git a/templates/sheets/character/base_values.hbs b/templates/sheets/character/base_values.hbs index 4c25aa7..6ac423c 100644 --- a/templates/sheets/character/base_values.hbs +++ b/templates/sheets/character/base_values.hbs @@ -27,16 +27,10 @@
-
{{localize "midgard5.derived-attributes"}}
+
{{localize "midgard5.points"}}
- - - - - - @@ -52,8 +46,8 @@ - - + + @@ -67,6 +61,12 @@
{{localize "midgard5.magicUsing"}}  
{{localize "midgard5.grace"}}
{{localize "midgard5.luckPoints"}} {{localize "midgard5.movementRange"}}
+ + + + + + @@ -97,22 +97,21 @@ - - - - {{#if (eq data.info.race "Zwerg")}} - - - {{/if}} - - - {{#if (eq data.info.race "Zwerg")}} - - - - - {{/if}} - + {{#if (eq data.info.race "Zwerg")}} + + + + + + + + + + + + + {{/if}} +
{{localize "midgard5.magicUsing"}}{{localize "midgard5.movementRange"}}
{{localize "midgard5.brawl"}} {{data.calc.stats.brawl.value}}{{localize "midgard5.resistanceBody"}} {{data.calc.stats.resistanceBody.value}}
{{localize "midgard5.movementRange"}}{{data.calc.stats.movement.value}}{{localize "midgard5.hoard"}}{{data.calc.stats.hoard}}
{{localize "midgard5.hoardMin"}}{{data.calc.stats.hoardMin}}{{localize "midgard5.hoard-next"}}{{data.calc.stats.hoardNext}}
{{localize "midgard5.hoard"}}{{data.calc.stats.hoard}}
{{localize "midgard5.hoardMin"}}{{data.calc.stats.hoardMin}}{{localize "midgard5.hoard-next"}}{{data.calc.stats.hoardNext}}
diff --git a/templates/sheets/character/combat.hbs b/templates/sheets/character/combat.hbs index 5a1df51..83ecdb1 100644 --- a/templates/sheets/character/combat.hbs +++ b/templates/sheets/character/combat.hbs @@ -31,133 +31,110 @@ {{/each}} - - - - - - - - - - - {{#each data.calc.gear.weapons as |item itemId|}} - - - - - - - {{/each}} +
{{localize "TYPES.Item.weapon"}}{{localize "midgard5.ew"}}
{{item.label}}{{item.calc.ew}}
+ + + + + + + + + + {{#each data.calc.gear.weapons as |item itemId|}} + + + + + + + {{/each}} - - - - - - - -
{{localize "TYPES.Item.weapon"}}{{localize "midgard5.ew"}}
{{item.label}}{{item.calc.ew}}
{{localize "midgard5.brawl"}}{{data.calc.stats.brawlFw}}
+ + {{localize "midgard5.brawl"}} + {{data.calc.stats.brawlFw}} + + + + + - - - - - - - - - - - {{#each data.calc.gear.defensiveWeapons as |item itemId|}} - - - - - - - {{/each}} +
{{localize "TYPES.Item.defensiveWeapon"}}{{localize "midgard5.ew"}}
{{item.label}}{{item.calc.ew}}
+ + + + + + + + + + {{#each data.calc.gear.defensiveWeapons as |item itemId|}} + + + + + + + {{/each}} - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - -
{{localize "TYPES.Item.defensiveWeapon"}}{{localize "midgard5.ew"}}
{{item.label}}{{item.calc.ew}}
{{localize "midgard5.defense"}}{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}
{{localize "midgard5.defense"}}{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}
{{localize "midgard5.resistanceMind"}}{{data.calc.stats.resistanceMind.value}}
{{localize "midgard5.resistanceMind"}}{{data.calc.stats.resistanceMind.value}}
{{localize "midgard5.resistanceBody"}}{{data.calc.stats.resistanceBody.value}}
+ + {{localize "midgard5.resistanceBody"}} + {{data.calc.stats.resistanceBody.value}} + + + + + - - - - - - - - - - - - - - - {{#each data.calc.gear.armor as |item itemId|}} - - - - - - - - - - - {{/each}} - -
{{localize "TYPES.Item.armor"}}{{localize "midgard5.actor-lp-short"}}{{localize "midgard5.actor-ap-short"}}{{localize "midgard5.attackBonus-short"}}{{localize "midgard5.defenseBonus-short"}}BGw
- {{item.label}} - {{#if item.equipped}} - {{localize "midgard5.equipped"}} - {{/if}} - {{actorItemValue ../actor._id itemId "lpProtection" ../actor.isToken}}{{actorItemValue ../actor._id itemId "apProtection"}}{{actorItemValue ../actor._id itemId "stats.attackBonus"}}{{actorItemValue ../actor._id itemId "stats.defenseBonus"}}{{actorItemValue ../actor._id itemId "stats.movementBonus"}}{{actorItemValue ../actor._id itemId "attributeMod.gw"}}
+ + + + + + + + + + + + + + + {{#each data.calc.gear.armor as |item itemId|}} + + + + + + + + + + + {{/each}} + +
{{localize "TYPES.Item.armor"}}{{localize "midgard5.actor-lp-short"}}{{localize "midgard5.actor-ap-short"}}{{localize "midgard5.attackBonus-short"}}{{localize "midgard5.defenseBonus-short"}}BGw
+ {{item.label}} + {{#if item.equipped}} + {{localize "midgard5.equipped"}} + {{/if}} + {{actorItemValue ../actor._id itemId "lpProtection" ../actor.isToken}}{{actorItemValue ../actor._id itemId "apProtection"}}{{actorItemValue ../actor._id itemId "stats.attackBonus"}}{{actorItemValue ../actor._id itemId "stats.defenseBonus"}}{{actorItemValue ../actor._id itemId "stats.movementBonus"}}{{actorItemValue ../actor._id itemId "attributeMod.gw"}}
- - - - - - - - - - - - - - {{#each data.calc.skills.combat as |skill skillId|}} - - - - - - - - - - {{/each}} - -
{{localize "midgard5.weapon-skill"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}{{localize "midgard5.pp-short"}}
{{skill.label}}{{skill.fw}}{{skill.calc.bonus}}{{skill.calc.ew}}{{skill.pp}}
+ {{localize "midgard5.movementRange"}}: {{data.calc.stats.movement.value}} + + \ No newline at end of file diff --git a/templates/sheets/character/description.hbs b/templates/sheets/character/description.hbs index 0558494..1168245 100644 --- a/templates/sheets/character/description.hbs +++ b/templates/sheets/character/description.hbs @@ -35,7 +35,7 @@
{{localize "midgard5.description"}}

-
{{editor characterDescription target="data.info.description"}}
+
{{editor characterDescription target="data.info.description" button=false }}
@@ -43,7 +43,7 @@
{{localize "midgard5.background"}}

-
{{editor characterBackground target="data.info.background"}}
+
{{editor characterBackground target="data.info.background" button=false}}
diff --git a/templates/sheets/character/gear.hbs b/templates/sheets/character/gear.hbs index a04930e..a0d01ab 100644 --- a/templates/sheets/character/gear.hbs +++ b/templates/sheets/character/gear.hbs @@ -81,6 +81,108 @@ + +
+
{{localize "midgard5.weapons"}}
+ + + + + + + + + + + {{#each data.calc.gear.weapons as |item itemId|}} + + + + + + + {{/each}} + +
{{localize "TYPES.Item.weapon"}}{{localize "midgard5.item-value"}} 
{{item.label}} + {{#unless (or (eq item.value 0) (eq item.currency ""))}} + {{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}} + {{/unless}} + + {{#if item.equipped}} + + {{else}} + + {{/if}} +
+
+ +
+
{{localize "midgard5.defensive-weapons"}}
+ + + + + + + + + + + {{#each data.calc.gear.defensiveWeapons as |item itemId|}} + + + + + + + {{/each}} + +
{{localize "TYPES.Item.defensiveWeapon"}}{{localize "midgard5.item-value"}} 
{{item.label}} + {{#unless (or (eq item.value 0) (eq item.currency ""))}} + {{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}} + {{/unless}} + + {{#if item.equipped}} + + {{else}} + + {{/if}} +
+
+ +
+
{{localize "midgard5.armor"}}
+ + + + + + + + + + + {{#each data.calc.gear.armor as |item itemId|}} + + + + + + + {{/each}} + +
{{localize "TYPES.Item.armor"}}{{localize "midgard5.item-value"}} 
{{item.label}} + {{#unless (or (eq item.value 0) (eq item.currency ""))}} + {{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}} + {{/unless}} + + {{#if item.equipped}} + + {{else}} + + {{/if}} +
+
diff --git a/templates/sheets/character/main.hbs b/templates/sheets/character/main.hbs index 91b43e9..21a812b 100644 --- a/templates/sheets/character/main.hbs +++ b/templates/sheets/character/main.hbs @@ -119,10 +119,10 @@ {{ localize "midgard5.base_values" }} {{ localize "midgard5.skills" }} {{ localize "midgard5.gear" }} + {{ localize "midgard5.combat" }} {{#if actor.system.info.magicUsing }} {{ localize "midgard5.spells" }} {{/if}} - {{ localize "midgard5.combat" }} {{ localize "midgard5.effects" }} @@ -144,14 +144,14 @@ {{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
-
- {{> "systems/midgard5/templates/sheets/character/spells.hbs"}} -
-
{{> "systems/midgard5/templates/sheets/character/combat.hbs"}}
+
+ {{> "systems/midgard5/templates/sheets/character/spells.hbs"}} +
+
{{> "systems/midgard5/templates/sheets/character/effects.hbs"}}
diff --git a/templates/sheets/character/skills.hbs b/templates/sheets/character/skills.hbs index 90b2e27..b666208 100644 --- a/templates/sheets/character/skills.hbs +++ b/templates/sheets/character/skills.hbs @@ -1,6 +1,50 @@
+
+
{{localize "midgard5.innate-abilities"}}
+ + + + + + + + + + + + + {{#each data.calc.skills.innate as |skill skillId|}} + + + + + + + + + {{/each}} + + + + + + + + + + + + + + + + + +
{{localize "midgard5.innate-ability"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}
{{skill.label}}{{skill.fw}}{{skill.calc.bonus}}{{skill.calc.ew}}
{{localize "midgard5.perception"}}{{data.calc.stats.perceptionFW}}{{data.calc.stats.perception.value}}{{add data.calc.stats.perception.value data.calc.stats.perceptionFW}}
{{localize "midgard5.drinking"}}{{data.calc.stats.drinkingFW}}{{data.calc.stats.drinking.value}}{{add data.calc.stats.drinking.value data.calc.stats.drinkingFW}}
+
+
{{localize "midgard5.learned-skills"}}
@@ -24,7 +68,7 @@ - + {{/each}} @@ -32,46 +76,31 @@
-
{{localize "midgard5.innate-abilities"}}
+
{{localize "midgard5.weapon-skills"}}
{{skill.calc.ew}}
- + + - {{#each data.calc.skills.innate as |skill skillId|}} + {{#each data.calc.skills.combat as |skill skillId|}} + - + {{/each}} - - - - - - - - - - - - - - - - -
{{localize "midgard5.innate-ability"}}{{localize "midgard5.weapon-skill"}} {{localize "midgard5.fw"}} {{localize "midgard5.bonus"}} {{localize "midgard5.ew"}}{{localize "midgard5.pp-short"}}
{{skill.label}} {{skill.fw}} {{skill.calc.bonus}} {{skill.calc.ew}}{{skill.pp}}
{{localize "midgard5.perception"}}{{data.calc.stats.perceptionFW}}{{data.calc.stats.perception.value}}{{add data.calc.stats.perception.value data.calc.stats.perceptionFW}}
{{localize "midgard5.drinking"}}{{data.calc.stats.drinkingFW}}{{data.calc.stats.drinking.value}}{{add data.calc.stats.drinking.value data.calc.stats.drinkingFW}}
@@ -99,7 +128,7 @@ {{skill.calc.ew}} {{skill.pp}} - + {{/each}} diff --git a/templates/sheets/item/armor.hbs b/templates/sheets/item/armor.hbs index 1c1c8ea..868350d 100644 --- a/templates/sheets/item/armor.hbs +++ b/templates/sheets/item/armor.hbs @@ -9,6 +9,10 @@
+ + + + @@ -49,6 +53,25 @@
+ + +
+ {{localize "TYPES.Item.container"}} + {{#if data.calc.containers}} + + {{else}} + {{localize "midgard5.assignItemToCharacter"}} + {{/if}} +
+ + {{localize "midgard5.lpProtection"}} diff --git a/templates/sheets/item/defensiveWeapon.hbs b/templates/sheets/item/defensiveWeapon.hbs index 80ead44..9839c72 100644 --- a/templates/sheets/item/defensiveWeapon.hbs +++ b/templates/sheets/item/defensiveWeapon.hbs @@ -9,6 +9,10 @@
+ + + + @@ -49,6 +53,25 @@
+ + +
+ {{localize "TYPES.Item.container"}} + {{#if data.calc.containers}} + + {{else}} + {{localize "midgard5.assignItemToCharacter"}} + {{/if}} +
+ + {{localize "midgard5.defenseBonus"}} diff --git a/templates/sheets/item/weapon.hbs b/templates/sheets/item/weapon.hbs index dbd69b7..4491a9b 100644 --- a/templates/sheets/item/weapon.hbs +++ b/templates/sheets/item/weapon.hbs @@ -9,6 +9,10 @@
+ + + + @@ -54,6 +58,25 @@
+ + +
+ {{localize "TYPES.Item.container"}} + {{#if data.calc.containers}} + + {{else}} + {{localize "midgard5.assignItemToCharacter"}} + {{/if}} +
+ + {{localize "midgard5.base-damage"}}