From 6ba2d7cec0c061ce6d720698fd7f02f653a037b5 Mon Sep 17 00:00:00 2001 From: Byroks Date: Tue, 28 Nov 2023 16:50:05 +0100 Subject: [PATCH] WIP --- lang/de.json | 29 ++++++++ .../{kampfkuenste.json => kampfkunst.json} | 29 ++++++-- source/PreloadTemplates.ts | 1 + source/module/M5Base.ts | 15 ++-- source/module/actors/M5Character.ts | 4 +- source/module/items/M5Item.ts | 2 +- source/module/sheets/M5CharacterSheet.ts | 2 +- source/template.json | 37 ++++++---- templates/sheets/character/kampfkuenste.hbs | 10 ++- templates/sheets/item/kampfkunst.hbs | 74 ++++++++++++------- 10 files changed, 142 insertions(+), 61 deletions(-) rename packs/items/blaupause-gegenstaende/{kampfkuenste.json => kampfkunst.json} (57%) diff --git a/lang/de.json b/lang/de.json index 84bc56d..59a928b 100644 --- a/lang/de.json +++ b/lang/de.json @@ -240,6 +240,35 @@ "midgard5.spell-effectDuration": "Wirkungsdauer", "midgard5.spell-origin": "Ursprung", + "midgard5.kampfkunst-type": "Kampfkunst Art", + "midgard5.kampfkunst-variante": "Kampfkunst Variante", + "midgard5.kido-type": "Kido Art", + "midgard5.kido-variante": "Kido Variante", + + "midgard5.kampfkunst-type-angriff": "Angriffstechnik", + "midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik", + "midgard5.kampfkunst-type-finten": "Finten", + "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-leib": "Kido Leibestechnik", + + "midgard5.kampfkunst-variante-anstuermen": "Anstürmen", + "midgard5.kampfkunst-variante-attackieren": "Attackieren", + "midgard5.kampfkunst-variante-entwaffnen": "Entwaffnen", + + "midgard5.kido-variante-anspringen": "Anspringen", + "midgard5.kido-variante-attackieren": "Attackieren", + "midgard5.kido-variante-entwaffnen": "Entwaffnen", + "midgard5.kido-variante-werfen": "Werfen", + "midgard5.kido-variante-ausweichen": "Ausweichen", + "midgard5.kido-variante-blockieren": "Blockieren", + "midgard5.kido-variante-bewegen": "Bewegen", + "midgard5.kido-variante-kontrollieren": "Kontrollieren", + "midgard5.mod-operation-add100": "Addieren (max 100)", "midgard5.mod-operation-add": "Addieren", "midgard5.mod-operation-set": "Basiswert", diff --git a/packs/items/blaupause-gegenstaende/kampfkuenste.json b/packs/items/blaupause-gegenstaende/kampfkunst.json similarity index 57% rename from packs/items/blaupause-gegenstaende/kampfkuenste.json rename to packs/items/blaupause-gegenstaende/kampfkunst.json index 1e6f5a5..b1e21c8 100644 --- a/packs/items/blaupause-gegenstaende/kampfkuenste.json +++ b/packs/items/blaupause-gegenstaende/kampfkunst.json @@ -1,5 +1,5 @@ { - "name": "Kampfkünste", + "name": "Kampfkunst", "type": "kampfkunst", "img": "icons/svg/item-bag.svg", "data": { @@ -11,11 +11,13 @@ "finten": "midgard5.kampfkunst-type-finten", "geist": "midgard5.kampfkunst-type-geist", "schießkunst": "midgard5.kampfkunst-type-schießkunst", - "fechten": "midgard5.kampfkunst-type-fechten", - "kidoAngriff": "midgard5.kido-type-angriff", - "kidoVerteidigung": "midgard5.kido-type-verteidigung", - "kidoFinten": "midgard5.kido-type-finten", - "kidoLeib": "midgard5.kido-type-leub" + "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", @@ -23,9 +25,21 @@ "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", + "isKido": false, "skillId": "", "ap": 0, "rolls": { @@ -46,6 +60,5 @@ "permission": { "default": 0, "XD0IpWT6bN4AJiYQ": 3 - }, - "_id": "HQ469FvZkwKfzFff" + } } diff --git a/source/PreloadTemplates.ts b/source/PreloadTemplates.ts index f7f94c7..4dc8b1b 100644 --- a/source/PreloadTemplates.ts +++ b/source/PreloadTemplates.ts @@ -11,6 +11,7 @@ const preloadTemplates = async (): Promise[]> = "sheets/character/skills.hbs", "sheets/character/gear.hbs", "sheets/character/spells.hbs", + "sheets/character/kampfkuenste.hbs", "sheets/character/effects.hbs", "sheets/item/rolls.hbs", "chat/roll-m5.hbs", diff --git a/source/module/M5Base.ts b/source/module/M5Base.ts index 6a08889..27e40a2 100644 --- a/source/module/M5Base.ts +++ b/source/module/M5Base.ts @@ -1,4 +1,4 @@ -import { BooleanField } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/fields.mjs";; +import { BooleanField } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/fields.mjs"; export interface M5Skill { fw: number; @@ -163,17 +163,16 @@ export interface M5CharacterCalculatedData { custom: {}; }; gear: { - weapons: {};; - defensiveWeapons: {};; - armor: {};; + weapons: {}; + defensiveWeapons: {}; + armor: {}; items: {}; - effects: {};; - };; - spells: {};; + effects: {}; + }; + spells: {}; kampfkuenste: {}; } export function enumKeys(obj: O): K[] { return Object.keys(obj).filter((k) => Number.isNaN(+k)) as K[]; - return Object.keys(obj).filter((k) => Number.isNaN(+k)) as K[]; } diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index 81a82af..7bdd89f 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -293,7 +293,9 @@ export class M5Character extends Actor { ret.kampfkuenste[item.id] = { label: item.name, - process: "midgard5.kampfkunst-type-" + item.system.type, + isKido: item.system.isKido, + type: item.system.type, + variante: item.system.variante, calc: item.system.calc, }; }); diff --git a/source/module/items/M5Item.ts b/source/module/items/M5Item.ts index f9776cb..c5c3d22 100644 --- a/source/module/items/M5Item.ts +++ b/source/module/items/M5Item.ts @@ -116,7 +116,7 @@ export class M5Item extends Item { } else if (itemType === "kampfkunst") { calc.fw = 0; if (actor) { - const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, kampfkuenste: true }); + 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; } diff --git a/source/module/sheets/M5CharacterSheet.ts b/source/module/sheets/M5CharacterSheet.ts index 9aeb08f..3a56ede 100644 --- a/source/module/sheets/M5CharacterSheet.ts +++ b/source/module/sheets/M5CharacterSheet.ts @@ -205,7 +205,7 @@ export default class M5CharacterSheet extends ActorSheet { const item = this.actor.items.get(li.dataset.itemId); // limit transfer on personal weapons/armour/gear - if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell", "effect"].includes(item.type)) { + if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell", "effect", "kampfkunst"].includes(item.type)) { const dragData = { type: "Transfer", actorId: this.actor.id, diff --git a/source/template.json b/source/template.json index 68701f9..053a777 100644 --- a/source/template.json +++ b/source/template.json @@ -241,22 +241,30 @@ "finten": "midgard5.kampfkunst-type-finten", "geist": "midgard5.kampfkunst-type-geist", "schießkunst": "midgard5.kampfkunst-type-schießkunst", - "fechten": "midgard5.kampfkunst-type-fechten", - "kidoAngriff": "midgard5.kido-type-angriff", - "kidoVerteidigung": "midgard5.kido-type-verteidigung", - "kidoFinten": "midgard5.kido-type-finten", - "kidoLeib": "midgard5.kido-type-leub" + "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-variant-anstuermen", - "attackieren": "midgard5.kampfkunst-variant-attackieren", - "entwaffnen": "midgard5.kampfkunst-variant-entwaffnen" + "anstuermen": "midgard5.kampfkunst-variante-anstuermen", + "attackieren": "midgard5.kampfkunst-variante-attackieren", + "entwaffnen": "midgard5.kampfkunst-variante-entwaffnen" }, - "spellTargetSelection": { - "umgebung": "midgard5.spell-target-umgebung", - "geist": "midgard5.spell-target-geist", - "koerper": "midgard5.spell-target-koerper" + "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" } } }, @@ -375,11 +383,8 @@ "bonus": 0, "type": "", "variante": "", + "isKido": false, "ap": "", - "effectTarget": "", - "effectArea": "", - "effectDuration": "", - "origin": "", "rolls": { "formulas": { "0": { diff --git a/templates/sheets/character/kampfkuenste.hbs b/templates/sheets/character/kampfkuenste.hbs index f396524..c8f8fa5 100644 --- a/templates/sheets/character/kampfkuenste.hbs +++ b/templates/sheets/character/kampfkuenste.hbs @@ -12,7 +12,15 @@ {{item.label}} - {{localize item.process}} + {{#if item.isKido}} + {{localize item.type}} + + ({{localize item.variante}}) + {{else if (eq item.type "midgard5.kampfkunst-type-angriff")}} + {{localize item.kidoType}} + + ({{localize item.kidoVariante}}) + {{/if}} {{item.calc.ew}}