finish kampfkunst

Changes:
 + create Kampfkunst item
 + make it possible to select connected skill
This commit is contained in:
Byroks 2023-11-28 19:36:48 +01:00
parent 6ba2d7cec0
commit 451483555b
7 changed files with 66 additions and 67 deletions

View File

@ -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",

View File

@ -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"
}

View File

@ -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") {

View File

@ -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
}
},

View File

@ -44,6 +44,7 @@
{{/if}}
{{#if (eq iType "kampfkunst")}}
{{#unless i.isKido}}
<tr>
<td>{{localize "midgard5.actor-ap"}}</td>
<td class="roll-spell-details">{{i.ap}}</td>
@ -58,6 +59,22 @@
<td class="roll-spell-details">{{localize (m5concat "midgard5.kampfkunst-variante-" i.variante)}}</td>
</tr>
{{/if}}
{{else}}
<tr>
<td>{{localize "midgard5.actor-ap"}}</td>
<td class="roll-spell-details">{{i.ap}}</td>
</tr>
<tr>
<td>{{localize "midgard5.kido-type"}}</td>
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-type-" i.type)}}</td>
</tr>
{{#if (eq i.type "angriff")}}
<tr>
<td>{{localize "midgard5.kido-variante"}}</td>
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-variante-" i.variante)}}</td>
</tr>
{{/if}}
{{/unless}}
{{/if}}
{{#each rolls as |roll index|}}

View File

@ -13,13 +13,15 @@
<td class="padding edit-item">
<span>{{item.label}}</span>
{{#if item.isKido}}
<span class="spell-process">{{localize item.type}}</span>
<span class="spell-process">({{localize item.variante}})</span>
{{else if (eq item.type "midgard5.kampfkunst-type-angriff")}}
<span class="spell-process">{{localize item.kidoType}}</span>
<span class="spell-process">({{localize item.kidoVariante}})</span>
<span class="spell-process">{{localize (m5concat "midgard5.kido-type-" item.type)}}</span>
{{#unless (eq item.type "finte")}}
<span class="spell-process">({{localize (m5concat "midgard5.kido-variante-" item.variante)}})</span>
{{/unless}}
{{else}}
<span class="spell-process">{{localize (m5concat "midgard5.kampfkunst-type-" item.type)}}</span>
{{#if (eq item.type "angriff")}}
<span class="spell-process">({{localize (m5concat "midgard5.kampfkunst-variante-" item.variante)}})</span>
{{/if}}
{{/if}}
</td>
<td class="fixed-value">{{item.calc.ew}}</td>

View File

@ -60,12 +60,12 @@
</td>
{{/if}}
{{else}}
{{#unless (eq item.system.type "finten")}}
{{#unless (eq item.system.type "finte")}}
<td>{{localize "midgard5.kido-variante"}}</td>
<td>
<select class="select-variante" name="data.variante" data-type="String">
{{#select data.Variante}}
{{#each data.varianteSelection as |label key|}}
{{#select data.variante}}
{{#each data.kidoVarianteSelection as |label key|}}
<option value="{{key}}">{{localize label}}</option>
{{/each}}
{{/select}}
@ -80,7 +80,7 @@
<select class="select-skill" name="data.skillId" data-type="String">
{{#select data.skillId}}
<option value="">{{localize "midgard5.no-skill"}}</option>
{{#each data.calc.skills.general as |skill key|}}
{{#each data.calc.generalSkills as |skill key|}}
<option value="{{key}}">{{skill.label}}</option>
{{/each}}
{{/select}}