From 451483555b578742209c2ad9eb552a77a48d28a3 Mon Sep 17 00:00:00 2001 From: Byroks Date: Tue, 28 Nov 2023 19:36:48 +0100 Subject: [PATCH] finish kampfkunst Changes: + create Kampfkunst item + make it possible to select connected skill --- lang/de.json | 4 +- .../blaupause-gegenstaende/kampfkunst.json | 39 ++---------------- source/module/items/M5Item.ts | 15 ++++++- source/template.json | 10 ++--- templates/chat/roll-m5.hbs | 41 +++++++++++++------ templates/sheets/character/kampfkuenste.hbs | 16 ++++---- templates/sheets/item/kampfkunst.hbs | 8 ++-- 7 files changed, 66 insertions(+), 67 deletions(-) diff --git a/lang/de.json b/lang/de.json index 59a928b..0d4d1ac 100644 --- a/lang/de.json +++ b/lang/de.json @@ -247,13 +247,13 @@ "midgard5.kampfkunst-type-angriff": "Angriffstechnik", "midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik", - "midgard5.kampfkunst-type-finten": "Finten", + "midgard5.kampfkunst-type-finte": "Finte", "midgard5.kampfkunst-type-geist": "Geistestechnik", "midgard5.kampfkunst-type-schießkunst": "Schießkunst", "midgard5.kampfkunst-type-fechten": "Fechtkunst", "midgard5.kido-type-angriff": "Kido Angriffstechnik", "midgard5.kido-type-verteidigung": "Kido Verteidigungstechnik", - "midgard5.kido-type-finten": "Kido Finten", + "midgard5.kido-type-finte": "Kido Finte", "midgard5.kido-type-leib": "Kido Leibestechnik", "midgard5.kampfkunst-variante-anstuermen": "Anstürmen", diff --git a/packs/items/blaupause-gegenstaende/kampfkunst.json b/packs/items/blaupause-gegenstaende/kampfkunst.json index b1e21c8..11524d8 100644 --- a/packs/items/blaupause-gegenstaende/kampfkunst.json +++ b/packs/items/blaupause-gegenstaende/kampfkunst.json @@ -4,38 +4,6 @@ "img": "icons/svg/item-bag.svg", "data": { "description": "", - "kampfkunstTypeSelection": { - "none": "midgard5.spell-process-none", - "angriff": "midgard5.kampfkunst-type-angriff", - "verteidigung": "midgard5.kampfkunst-type-verteidigung", - "finten": "midgard5.kampfkunst-type-finten", - "geist": "midgard5.kampfkunst-type-geist", - "schießkunst": "midgard5.kampfkunst-type-schießkunst", - "fechten": "midgard5.kampfkunst-type-fechten" - }, - "kidoTypeSelection": { - "angriff": "midgard5.kido-type-angriff", - "verteidigung": "midgard5.kido-type-verteidigung", - "finten": "midgard5.kido-type-finten", - "leib": "midgard5.kido-type-leib" - }, - "kampfkunstVarianteSelection": { - "none": "midgard5.spell-process-none", - "anstuermen": "midgard5.kampfkunst-variante-anstuermen", - "attackieren": "midgard5.kampfkunst-variante-attackieren", - "entwaffnen": "midgard5.kampfkunst-variante-entwaffnen" - }, - "kidoVarianteSelection": { - "none": "midgard5.spell-process-none", - "anspringen": "midgard5.kido-variante-anspringen", - "attackieren": "midgard5.kido-variante-attackieren", - "entwaffnen": "midgard5.kido-variante-entwaffnen", - "werfen": "midgard5.kido-variante-werfen", - "ausweichen": "midgard5.kido-variante-ausweichen", - "blockieren": "midgard5.kido-variante-blockieren", - "bewegen": "midgard5.kido-variante-bewegen", - "kontrollieren": "midgard5.kido-variante-kontrollieren" - }, "bonus": 0, "type": "angriff", "variante": "none", @@ -45,9 +13,9 @@ "rolls": { "formulas": { "0": { - "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus", + "formula": "1d20 + @i.calc.ew + @i.bonus", "enabled": true, - "label": "Zaubern" + "label": "Kampfkunst" } }, "output": "" @@ -60,5 +28,6 @@ "permission": { "default": 0, "XD0IpWT6bN4AJiYQ": 3 - } + }, + "_id": "HQ469FvZkwKfzFff" } diff --git a/source/module/items/M5Item.ts b/source/module/items/M5Item.ts index c5c3d22..1fa5ab9 100644 --- a/source/module/items/M5Item.ts +++ b/source/module/items/M5Item.ts @@ -115,10 +115,23 @@ export class M5Item extends Item { } } else if (itemType === "kampfkunst") { calc.fw = 0; + calc.bonus = 0; + calc.ew = 0; + calc.generalSkills = 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.spellCasting.value; + calc.generalSkills = actorCalc.skills.general; + } + + const skill = character.getItem(itemData.skillId); + if (skill) { + skill.prepareDerivedData(); + const skillData = skill.system; + calc.ew = skillData.calc.ew; + calc.fw = skillData.fw + calc.bonus; + itemData.rolls.formulas[0].label = skill.name; } } } else if (itemType === "item" || itemType === "effect") { diff --git a/source/template.json b/source/template.json index 053a777..7b06587 100644 --- a/source/template.json +++ b/source/template.json @@ -235,10 +235,9 @@ }, "kampfkunstSelection": { "kampfkunstTypeSelection": { - "none": "midgard5.spell-process-none", "angriff": "midgard5.kampfkunst-type-angriff", "verteidigung": "midgard5.kampfkunst-type-verteidigung", - "finten": "midgard5.kampfkunst-type-finten", + "finte": "midgard5.kampfkunst-type-finte", "geist": "midgard5.kampfkunst-type-geist", "schießkunst": "midgard5.kampfkunst-type-schießkunst", "fechten": "midgard5.kampfkunst-type-fechten" @@ -246,11 +245,10 @@ "kidoTypeSelection": { "angriff": "midgard5.kido-type-angriff", "verteidigung": "midgard5.kido-type-verteidigung", - "finten": "midgard5.kido-type-finten", + "finte": "midgard5.kido-type-finte", "leib": "midgard5.kido-type-leib" }, "kampfkunstVarianteSelection": { - "none": "midgard5.spell-process-none", "anstuermen": "midgard5.kampfkunst-variante-anstuermen", "attackieren": "midgard5.kampfkunst-variante-attackieren", "entwaffnen": "midgard5.kampfkunst-variante-entwaffnen" @@ -388,8 +386,8 @@ "rolls": { "formulas": { "0": { - "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus", - "label": "Zaubern", + "formula": "1d20 + @i.calc.ew + @i.bonus", + "label": "Kampfkunst", "enabled": true } }, diff --git a/templates/chat/roll-m5.hbs b/templates/chat/roll-m5.hbs index 5799d41..c8bd1bb 100644 --- a/templates/chat/roll-m5.hbs +++ b/templates/chat/roll-m5.hbs @@ -44,20 +44,37 @@ {{/if}} {{#if (eq iType "kampfkunst")}} - - {{localize "midgard5.actor-ap"}} - {{i.ap}} - - - {{localize "midgard5.kampfkunst-type"}} - {{localize (m5concat "midgard5.kampfkunst-type-" i.type)}} - - {{#if (eq i.type "angriff")}} + {{#unless i.isKido}} - {{localize "midgard5.kampfkunst-variante"}} - {{localize (m5concat "midgard5.kampfkunst-variante-" i.variante)}} + {{localize "midgard5.actor-ap"}} + {{i.ap}} - {{/if}} + + {{localize "midgard5.kampfkunst-type"}} + {{localize (m5concat "midgard5.kampfkunst-type-" i.type)}} + + {{#if (eq i.type "angriff")}} + + {{localize "midgard5.kampfkunst-variante"}} + {{localize (m5concat "midgard5.kampfkunst-variante-" i.variante)}} + + {{/if}} + {{else}} + + {{localize "midgard5.actor-ap"}} + {{i.ap}} + + + {{localize "midgard5.kido-type"}} + {{localize (m5concat "midgard5.kido-type-" i.type)}} + + {{#if (eq i.type "angriff")}} + + {{localize "midgard5.kido-variante"}} + {{localize (m5concat "midgard5.kido-variante-" i.variante)}} + + {{/if}} + {{/unless}} {{/if}} {{#each rolls as |roll index|}} diff --git a/templates/sheets/character/kampfkuenste.hbs b/templates/sheets/character/kampfkuenste.hbs index c8f8fa5..ba2ba02 100644 --- a/templates/sheets/character/kampfkuenste.hbs +++ b/templates/sheets/character/kampfkuenste.hbs @@ -13,13 +13,15 @@ {{item.label}} {{#if item.isKido}} - {{localize item.type}} - - ({{localize item.variante}}) - {{else if (eq item.type "midgard5.kampfkunst-type-angriff")}} - {{localize item.kidoType}} - - ({{localize item.kidoVariante}}) + {{localize (m5concat "midgard5.kido-type-" item.type)}} + {{#unless (eq item.type "finte")}} + ({{localize (m5concat "midgard5.kido-variante-" item.variante)}}) + {{/unless}} + {{else}} + {{localize (m5concat "midgard5.kampfkunst-type-" item.type)}} + {{#if (eq item.type "angriff")}} + ({{localize (m5concat "midgard5.kampfkunst-variante-" item.variante)}}) + {{/if}} {{/if}} {{item.calc.ew}} diff --git a/templates/sheets/item/kampfkunst.hbs b/templates/sheets/item/kampfkunst.hbs index ca657d2..6624265 100644 --- a/templates/sheets/item/kampfkunst.hbs +++ b/templates/sheets/item/kampfkunst.hbs @@ -60,12 +60,12 @@ {{/if}} {{else}} - {{#unless (eq item.system.type "finten")}} + {{#unless (eq item.system.type "finte")}} {{localize "midgard5.kido-variante"}} {{#select data.skillId}} - {{#each data.calc.skills.general as |skill key|}} + {{#each data.calc.generalSkills as |skill key|}} {{/each}} {{/select}}