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-angriff": "Angriffstechnik",
"midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik", "midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik",
"midgard5.kampfkunst-type-finten": "Finten", "midgard5.kampfkunst-type-finte": "Finte",
"midgard5.kampfkunst-type-geist": "Geistestechnik", "midgard5.kampfkunst-type-geist": "Geistestechnik",
"midgard5.kampfkunst-type-schießkunst": "Schießkunst", "midgard5.kampfkunst-type-schießkunst": "Schießkunst",
"midgard5.kampfkunst-type-fechten": "Fechtkunst", "midgard5.kampfkunst-type-fechten": "Fechtkunst",
"midgard5.kido-type-angriff": "Kido Angriffstechnik", "midgard5.kido-type-angriff": "Kido Angriffstechnik",
"midgard5.kido-type-verteidigung": "Kido Verteidigungstechnik", "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.kido-type-leib": "Kido Leibestechnik",
"midgard5.kampfkunst-variante-anstuermen": "Anstürmen", "midgard5.kampfkunst-variante-anstuermen": "Anstürmen",

View File

@ -4,38 +4,6 @@
"img": "icons/svg/item-bag.svg", "img": "icons/svg/item-bag.svg",
"data": { "data": {
"description": "", "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, "bonus": 0,
"type": "angriff", "type": "angriff",
"variante": "none", "variante": "none",
@ -45,9 +13,9 @@
"rolls": { "rolls": {
"formulas": { "formulas": {
"0": { "0": {
"formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus", "formula": "1d20 + @i.calc.ew + @i.bonus",
"enabled": true, "enabled": true,
"label": "Zaubern" "label": "Kampfkunst"
} }
}, },
"output": "" "output": ""
@ -60,5 +28,6 @@
"permission": { "permission": {
"default": 0, "default": 0,
"XD0IpWT6bN4AJiYQ": 3 "XD0IpWT6bN4AJiYQ": 3
} },
"_id": "HQ469FvZkwKfzFff"
} }

View File

@ -115,10 +115,23 @@ export class M5Item extends Item {
} }
} else if (itemType === "kampfkunst") { } else if (itemType === "kampfkunst") {
calc.fw = 0; calc.fw = 0;
calc.bonus = 0;
calc.ew = 0;
calc.generalSkills = null;
if (actor) { if (actor) {
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true }); const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
if (actorCalc) { 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") { } else if (itemType === "item" || itemType === "effect") {

View File

@ -235,10 +235,9 @@
}, },
"kampfkunstSelection": { "kampfkunstSelection": {
"kampfkunstTypeSelection": { "kampfkunstTypeSelection": {
"none": "midgard5.spell-process-none",
"angriff": "midgard5.kampfkunst-type-angriff", "angriff": "midgard5.kampfkunst-type-angriff",
"verteidigung": "midgard5.kampfkunst-type-verteidigung", "verteidigung": "midgard5.kampfkunst-type-verteidigung",
"finten": "midgard5.kampfkunst-type-finten", "finte": "midgard5.kampfkunst-type-finte",
"geist": "midgard5.kampfkunst-type-geist", "geist": "midgard5.kampfkunst-type-geist",
"schießkunst": "midgard5.kampfkunst-type-schießkunst", "schießkunst": "midgard5.kampfkunst-type-schießkunst",
"fechten": "midgard5.kampfkunst-type-fechten" "fechten": "midgard5.kampfkunst-type-fechten"
@ -246,11 +245,10 @@
"kidoTypeSelection": { "kidoTypeSelection": {
"angriff": "midgard5.kido-type-angriff", "angriff": "midgard5.kido-type-angriff",
"verteidigung": "midgard5.kido-type-verteidigung", "verteidigung": "midgard5.kido-type-verteidigung",
"finten": "midgard5.kido-type-finten", "finte": "midgard5.kido-type-finte",
"leib": "midgard5.kido-type-leib" "leib": "midgard5.kido-type-leib"
}, },
"kampfkunstVarianteSelection": { "kampfkunstVarianteSelection": {
"none": "midgard5.spell-process-none",
"anstuermen": "midgard5.kampfkunst-variante-anstuermen", "anstuermen": "midgard5.kampfkunst-variante-anstuermen",
"attackieren": "midgard5.kampfkunst-variante-attackieren", "attackieren": "midgard5.kampfkunst-variante-attackieren",
"entwaffnen": "midgard5.kampfkunst-variante-entwaffnen" "entwaffnen": "midgard5.kampfkunst-variante-entwaffnen"
@ -388,8 +386,8 @@
"rolls": { "rolls": {
"formulas": { "formulas": {
"0": { "0": {
"formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus", "formula": "1d20 + @i.calc.ew + @i.bonus",
"label": "Zaubern", "label": "Kampfkunst",
"enabled": true "enabled": true
} }
}, },

View File

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

View File

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

View File

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