From 0fb82d01e7d7c47ef4fceebd906aa08339605b29 Mon Sep 17 00:00:00 2001 From: macniel Date: Fri, 31 Oct 2025 11:54:38 +0100 Subject: [PATCH] fixes situational bonuses to not apply constantly on attributes and the like --- src/module/documents/character.mjs | 64 +++++++++---------- .../vorteile/herausragendeBalance.json | 2 +- src/packs/_source/wunden/arm-r-wunde.json | 10 +-- src/packs/_source/wunden/arm-wunde.json | 10 +-- src/packs/_source/wunden/bauch-wunde.json | 10 +-- src/packs/_source/wunden/bein-r-wunde.json | 10 +-- src/packs/_source/wunden/bein-wunde.json | 10 +-- src/packs/_source/wunden/brust-wunde.json | 8 +-- src/packs/_source/wunden/kopf-wunde.json | 8 +-- src/packs/_source/wunden/wunde.json | 12 ++-- 10 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/module/documents/character.mjs b/src/module/documents/character.mjs index d6a39418..2ebf71ff 100644 --- a/src/module/documents/character.mjs +++ b/src/module/documents/character.mjs @@ -30,28 +30,28 @@ export class Character extends Actor { const actorData = this; const systemData = actorData.system; - systemData.attribute.mu.aktuell = systemData.attribute.mu.start + systemData.attribute.mu.mod; - systemData.attribute.kl.aktuell = systemData.attribute.kl.start + systemData.attribute.kl.mod; - systemData.attribute.in.aktuell = systemData.attribute.in.start + systemData.attribute.in.mod; - systemData.attribute.ch.aktuell = systemData.attribute.ch.start + systemData.attribute.ch.mod; + systemData.attribute.mu.aktuell = systemData.attribute.mu.start + systemData.attribute.kl.aktuell = systemData.attribute.kl.start + systemData.attribute.in.aktuell = systemData.attribute.in.start + systemData.attribute.ch.aktuell = systemData.attribute.ch.start - systemData.attribute.ff.aktuell = systemData.attribute.ff.start + systemData.attribute.ff.mod; - systemData.attribute.ge.aktuell = systemData.attribute.ge.start + systemData.attribute.ge.mod; - systemData.attribute.ko.aktuell = systemData.attribute.ko.start + systemData.attribute.ko.mod; - systemData.attribute.kk.aktuell = systemData.attribute.kk.start + systemData.attribute.kk.mod; + systemData.attribute.ff.aktuell = systemData.attribute.ff.start + systemData.attribute.ge.aktuell = systemData.attribute.ge.start + systemData.attribute.ko.aktuell = systemData.attribute.ko.start + systemData.attribute.kk.aktuell = systemData.attribute.kk.start - const mu = systemData.attribute.mu.aktuell; - const kl = systemData.attribute.kl.aktuell; - const _in = systemData.attribute.in.aktuell; - const ch = systemData.attribute.ch.aktuell; - const ff = systemData.attribute.ff.aktuell; - const ge = systemData.attribute.ge.aktuell; - const ko = systemData.attribute.ko.aktuell; - const kk = systemData.attribute.kk.aktuell; + const mu = systemData.attribute.mu.aktuell + const kl = systemData.attribute.kl.aktuell + const _in = systemData.attribute.in.aktuell + const ch = systemData.attribute.ch.aktuell + const ff = systemData.attribute.ff.aktuell + const ge = systemData.attribute.ge.aktuell + const ko = systemData.attribute.ko.aktuell + const kk = systemData.attribute.kk.aktuell - systemData.lep.max = Math.round((ko + ko + kk) / 2) + systemData.lep.mod; - systemData.aup.max = Math.round((mu + ko + ge) / 2) + systemData.aup.mod; - systemData.asp.max = Math.round((mu + _in + ch) / 2) + systemData.asp.mod; + systemData.lep.max = Math.round((ko + ko + kk) / 2) + systemData.aup.max = Math.round((mu + ko + ge) / 2) + systemData.asp.max = Math.round((mu + _in + ch) / 2) systemData.regeneration = systemData.regeneration ?? { lep: "1d6", @@ -71,9 +71,9 @@ export class Character extends Actor { mods: 0 } systemData.at.basis = Math.round((mu + ge + kk) / 5) - systemData.at.aktuell = systemData.at.basis + (systemData.at.mod ?? 0); - systemData.at.links.aktuell = systemData.at.basis + (systemData.at.links.mod ?? 0); - systemData.at.rechts.aktuell = systemData.at.basis + (systemData.at.rechts.mod ?? 0); + systemData.at.aktuell = systemData.at.basis + systemData.at.links.aktuell = systemData.at.basis + systemData.at.rechts.aktuell = systemData.at.basis systemData.pa = systemData.pa ?? {links: {}, rechts: {}} systemData.pa.links = systemData.pa.links ?? { aktuell: 0, @@ -83,27 +83,27 @@ export class Character extends Actor { aktuell: 0, mods: 0 } - systemData.pa.basis = Math.round((_in + ge + kk) / 5); - systemData.pa.aktuell = systemData.pa.basis + (systemData.pa.mod ?? 0); - systemData.pa.links.aktuell = systemData.pa.basis + (systemData.pa.links.mod ?? 0); - systemData.pa.rechts.aktuell = systemData.pa.basis + (systemData.pa.links.mod ?? 0); + systemData.pa.basis = Math.round((_in + ge + kk) / 5) + systemData.pa.aktuell = systemData.pa.basis + systemData.pa.links.aktuell = systemData.pa.basis + systemData.pa.rechts.aktuell = systemData.pa.basis systemData.fk = systemData.fk ?? { aktuell: 0, mods: 0 } systemData.fk.basis = Math.round((_in + ff + kk) / 5); - systemData.fk.aktuell = systemData.fk.basis + (systemData.fk.mod ?? 0); + systemData.fk.aktuell = systemData.fk.basis systemData.ini.basis = Math.round((mu + mu + _in + ge) / 5) - systemData.ini.aktuell = systemData.ini.basis + (systemData.ini.mod ?? 0); + systemData.ini.aktuell = systemData.ini.basis systemData.mr.basis = Math.round((mu + kl + ko) / 5) - systemData.mr.aktuell = systemData.mr.basis + (systemData.mr.mod ?? 0); + systemData.mr.aktuell = systemData.mr.basis systemData.gs.basis = 6; - systemData.gs.aktuell = systemData.gs.basis + (systemData.gs.mod ?? 0); // TOOD: get GS from spezien + systemData.gs.aktuell = systemData.gs.basis // TOOD: get GS from spezien systemData.ausweichen = {} systemData.ausweichen.basis = systemData.pa.basis - systemData.ausweichen.aktuell = systemData.ausweichen.basis + (systemData.ausweichen.mod ?? 0) + systemData.ausweichen.aktuell = systemData.ausweichen.basis if (game.settings.get("DSA_4-1", "optional_ruestungzonen")) { @@ -141,7 +141,7 @@ export class Character extends Actor { // map current set to RS and BE - const ausruestung = systemData.heldenausruestung[systemData.setEquipped]; + const ausruestung = systemData.heldenausruestung[systemData.setEquipped] const zonesToCheck = [ "brust", "bauch", diff --git a/src/packs/_source/vorteile/herausragendeBalance.json b/src/packs/_source/vorteile/herausragendeBalance.json index fd36dee5..b6028391 100644 --- a/src/packs/_source/vorteile/herausragendeBalance.json +++ b/src/packs/_source/vorteile/herausragendeBalance.json @@ -19,7 +19,7 @@ "value": 7 }, { - "name": "attribute.ge.mod", + "name": "attribute.ge.aktuell", "value": 5 } ] diff --git a/src/packs/_source/wunden/arm-r-wunde.json b/src/packs/_source/wunden/arm-r-wunde.json index 0227d04b..32ba8acb 100644 --- a/src/packs/_source/wunden/arm-r-wunde.json +++ b/src/packs/_source/wunden/arm-r-wunde.json @@ -11,31 +11,31 @@ "priority": 10 }, { - "key": "system.attribute.at.rechts.mod", + "key": "system.attribute.at.rechts.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.atribute.pa.mod", + "key": "system.atribute.pa.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.pa.rechts.mod", + "key": "system.pa.rechts.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.kk.mod", + "key": "system.attribute.kk.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.ff.mod", + "key": "system.attribute.ff.aktuell", "mode": 2, "value": "-2", "priority": 10 diff --git a/src/packs/_source/wunden/arm-wunde.json b/src/packs/_source/wunden/arm-wunde.json index 464bbe25..f2918f75 100644 --- a/src/packs/_source/wunden/arm-wunde.json +++ b/src/packs/_source/wunden/arm-wunde.json @@ -11,31 +11,31 @@ "priority": 10 }, { - "key": "system.pa.mod", + "key": "system.pa.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.at.links.mod", + "key": "system.at.links.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.pa.links.mod", + "key": "system.pa.links.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.kk.mod", + "key": "system.attribute.kk.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.ff.mod", + "key": "system.attribute.ff.aktuell", "mode": 2, "value": "-2", "priority": 10 diff --git a/src/packs/_source/wunden/bauch-wunde.json b/src/packs/_source/wunden/bauch-wunde.json index 543ffbad..bc8dd5c0 100644 --- a/src/packs/_source/wunden/bauch-wunde.json +++ b/src/packs/_source/wunden/bauch-wunde.json @@ -11,31 +11,31 @@ "priority": 10 }, { - "key": "system.at.mod", + "key": "system.at.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.pa.mod", + "key": "system.pa.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.attribute.ko.mod", + "key": "system.attribute.ko.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.attribute.kk.mod", + "key": "system.attribute.kk.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.gs.mod", + "key": "system.gs.aktuell", "mode": 2, "value": "-1", "priority": 10 diff --git a/src/packs/_source/wunden/bein-r-wunde.json b/src/packs/_source/wunden/bein-r-wunde.json index f971dc13..d17cf6d0 100644 --- a/src/packs/_source/wunden/bein-r-wunde.json +++ b/src/packs/_source/wunden/bein-r-wunde.json @@ -11,31 +11,31 @@ "priority": 10 }, { - "key": "system.at.mod", + "key": "system.at.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.pa.mod", + "key": "system.pa.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.ge.mod", + "key": "system.attribute.ge.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.ini.mod", + "key": "system.ini.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.gs.mod", + "key": "system.gs.aktuell", "mode": 2, "value": "-1", "priority": 10 diff --git a/src/packs/_source/wunden/bein-wunde.json b/src/packs/_source/wunden/bein-wunde.json index af684c3b..2c56ad49 100644 --- a/src/packs/_source/wunden/bein-wunde.json +++ b/src/packs/_source/wunden/bein-wunde.json @@ -11,31 +11,31 @@ "priority": 10 }, { - "key": "system.at.mod", + "key": "system.at.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.pa.mod", + "key": "system.pa.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.ge.mod", + "key": "system.attribute.ge.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.ini.mod", + "key": "system.ini.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.gs.mod", + "key": "system.gs.aktuell", "mode": 2, "value": "-1", "priority": 10 diff --git a/src/packs/_source/wunden/brust-wunde.json b/src/packs/_source/wunden/brust-wunde.json index 62238edf..2c138201 100644 --- a/src/packs/_source/wunden/brust-wunde.json +++ b/src/packs/_source/wunden/brust-wunde.json @@ -11,25 +11,25 @@ "priority": 10 }, { - "key": "system.attribute.kk.mod", + "key": "system.attribute.kk.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.attribute.ko.mod", + "key": "system.attribute.ko.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.at.mod", + "key": "system.at.aktuell", "mode": 2, "value": "-1", "priority": 10 }, { - "key": "system.pa.mod", + "key": "system.pa.aktuell", "mode": 2, "value": "-1", "priority": 10 diff --git a/src/packs/_source/wunden/kopf-wunde.json b/src/packs/_source/wunden/kopf-wunde.json index dbee3d04..214b427f 100644 --- a/src/packs/_source/wunden/kopf-wunde.json +++ b/src/packs/_source/wunden/kopf-wunde.json @@ -11,25 +11,25 @@ "priority": 10 }, { - "key": "system.attribute.mu.mod", + "key": "system.attribute.mu.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.kl.mod", + "key": "system.attribute.kl.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.in.mod", + "key": "system.attribute.in.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.ini.mod", + "key": "system.ini.aktuell", "mode": 2, "value": "-2", "priority": 10 diff --git a/src/packs/_source/wunden/wunde.json b/src/packs/_source/wunden/wunde.json index a2463c62..1af725d4 100644 --- a/src/packs/_source/wunden/wunde.json +++ b/src/packs/_source/wunden/wunde.json @@ -11,37 +11,37 @@ "priority": 10 }, { - "key": "system.at.mod", + "key": "system.at.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.pa.mod", + "key": "system.pa.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.fk.mod", + "key": "system.fk.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.ini.mod", + "key": "system.ini.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.attribute.ge.mod", + "key": "system.attribute.ge.aktuell", "mode": 2, "value": "-2", "priority": 10 }, { - "key": "system.gs.mod", + "key": "system.gs.aktuell", "mode": 2, "value": "-1", "priority": 10