From 8e3db3b223206f7d416f513a19914f8974b3794b Mon Sep 17 00:00:00 2001 From: LeFrique Date: Fri, 22 Dec 2023 20:45:24 +0100 Subject: [PATCH 1/8] + Added Zwergenhort --- lang/de.json | 2 ++ source/module/M5Base.ts | 4 ++++ source/module/actors/M5Character.ts | 20 ++++++++++++++++++-- source/style/Character-sheet.less | 12 ++++++++++++ templates/sheets/character/main.hbs | 15 ++++++++++++--- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/lang/de.json b/lang/de.json index 4109c79..15d8532 100644 --- a/lang/de.json +++ b/lang/de.json @@ -94,6 +94,8 @@ "midgard5.currency-gold": "Gold", "midgard5.currency-silver": "Silber", "midgard5.currency-copper": "Kupfer", + "midgard5.hoard": "Hort", + "midgard5.hoardNext": "Hort für nächsten Grad", "midgard5.exp-overall": "Erfahrungsschatz", "midgard5.exp-available": "Erfahrungspunkte", diff --git a/source/module/M5Base.ts b/source/module/M5Base.ts index 0562cce..44c5114 100644 --- a/source/module/M5Base.ts +++ b/source/module/M5Base.ts @@ -86,6 +86,8 @@ export enum M5Stats { PROTECTION_AP = "apProtection", PERCEPTION = "perception", DRINKING = "drinking", + HOARD = "hoard", + HOARD_NEXT = "hoardNext", } export enum M5ModType { @@ -173,6 +175,8 @@ export interface M5CharacterCalculatedData { perceptionFW: number; drinking: M5ModResult; drinkingFW: number; + hoard: number; + hoardNext: number; }; skillMods: {}; skills: { diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index e067c62..412e1d9 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -1,3 +1,4 @@ +import { valueInArray } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/validators.mjs"; import { M5Item } from "../items/M5Item"; import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base"; import M5ModAggregate from "./M5ModAggregate"; @@ -71,6 +72,7 @@ export class M5Character extends Actor { perceptionFW: 0, drinking: { value: 0, mods: [] }, drinkingFW: 0, + hoard: 0, }, skillMods: {}, skills: { @@ -98,7 +100,7 @@ export class M5Character extends Actor { if (!data) return null; ret.level = M5Character.levelFromExp(data.es); - + ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs); ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw); @@ -143,7 +145,9 @@ export class M5Character extends Actor { ret.stats.perceptionFW = 6; ret.stats.drinking = this.modResult(0); ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); - + ret.stats.hoard = M5Character.hoardFromExp(data.es); + ret.stats.hoardNext = M5Character.hoardNextFromExp(data.es); + if (!skip?.mods) { const aggregate = new M5ModAggregate(data, ret); @@ -371,6 +375,18 @@ export class M5Character extends Actor { const ret = M5Character.levelThreshold.findIndex((val) => val > exp); return ret === -1 ? M5Character.levelThreshold.length : ret; } + static hoardFromExp(exp: number): number { + const ret = M5Character.levelThreshold.findIndex((val) => val > exp); + const hoard = Math.floor(exp / 2) + return hoard; + } + static hoardNextFromExp(exp: number): number { + const ret = M5Character.levelThreshold.findIndex((val) => val > exp); + const currentLevel = ret === -1 ? M5Character.levelThreshold.length : ret; + const nextLevelExp = M5Character.levelThreshold[currentLevel]; + const hoardNext = (nextLevelExp /2); + return hoardNext; + } static readonly defenseThreshold: Array<[number, number]> = [ [30, 18], diff --git a/source/style/Character-sheet.less b/source/style/Character-sheet.less index c1a8895..b660ab7 100644 --- a/source/style/Character-sheet.less +++ b/source/style/Character-sheet.less @@ -65,6 +65,18 @@ text-align: right; font-weight: bold; } + .hoard { + text-align: center; + color: rgb(255, 230, 0); + font-weight: bold; + font-size: larger; + } + .hoardNext { + text-align: center; + color: rgb(255, 255, 255); + font-weight: bold; + font-size: medium; + } table { background-color: beige; diff --git a/templates/sheets/character/main.hbs b/templates/sheets/character/main.hbs index 1a46ce5..dd7c90b 100644 --- a/templates/sheets/character/main.hbs +++ b/templates/sheets/character/main.hbs @@ -4,14 +4,23 @@ Midgard -
{{data.calc.level}}
+ {{#if (eq data.info.race "Zwerg")}} + +
+ {{data.calc.stats.hoard}} GS
+ Hort für nächsten Grad: {{data.calc.stats.hoardNext}} GS +
+ + {{/if}} - Name - Grad + Grad + {{#if (eq data.info.race "Zwerg")}} + Hort + {{/if}} -- 2.40.1 From f717db2918ceb70cb7680d47db23ae0deb4fb48c Mon Sep 17 00:00:00 2001 From: LeFrique Date: Sat, 23 Dec 2023 13:07:57 +0100 Subject: [PATCH 2/8] +Added Zwergenhort --- lang/de.json | 2 ++ source/module/M5Base.ts | 4 ++++ source/module/actors/M5Character.ts | 19 ++++++++++++++++++- source/style/Character-sheet.less | 13 +++++++++++++ templates/sheets/character/main.hbs | 13 +++++++++++-- 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/lang/de.json b/lang/de.json index 4109c79..15d8532 100644 --- a/lang/de.json +++ b/lang/de.json @@ -94,6 +94,8 @@ "midgard5.currency-gold": "Gold", "midgard5.currency-silver": "Silber", "midgard5.currency-copper": "Kupfer", + "midgard5.hoard": "Hort", + "midgard5.hoardNext": "Hort für nächsten Grad", "midgard5.exp-overall": "Erfahrungsschatz", "midgard5.exp-available": "Erfahrungspunkte", diff --git a/source/module/M5Base.ts b/source/module/M5Base.ts index 0562cce..44c5114 100644 --- a/source/module/M5Base.ts +++ b/source/module/M5Base.ts @@ -86,6 +86,8 @@ export enum M5Stats { PROTECTION_AP = "apProtection", PERCEPTION = "perception", DRINKING = "drinking", + HOARD = "hoard", + HOARD_NEXT = "hoardNext", } export enum M5ModType { @@ -173,6 +175,8 @@ export interface M5CharacterCalculatedData { perceptionFW: number; drinking: M5ModResult; drinkingFW: number; + hoard: number; + hoardNext: number; }; skillMods: {}; skills: { diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index e067c62..5316239 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -71,6 +71,7 @@ export class M5Character extends Actor { perceptionFW: 0, drinking: { value: 0, mods: [] }, drinkingFW: 0, + hoard: 0, }, skillMods: {}, skills: { @@ -143,7 +144,9 @@ export class M5Character extends Actor { ret.stats.perceptionFW = 6; ret.stats.drinking = this.modResult(0); ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); - + ret.stats.hoard = M5Character.hoardFromExp(data.es); + ret.stats.hoardNext = M5Character.hoardNextFromExp(data.es); + if (!skip?.mods) { const aggregate = new M5ModAggregate(data, ret); @@ -371,7 +374,21 @@ export class M5Character extends Actor { const ret = M5Character.levelThreshold.findIndex((val) => val > exp); return ret === -1 ? M5Character.levelThreshold.length : ret; } + + static hoardFromExp(exp: number): number { + const ret = M5Character.levelThreshold.findIndex((val) => val > exp); + const hoard = Math.floor(exp / 2) + return hoard; + } + static hoardNextFromExp(exp: number): number { + const ret = M5Character.levelThreshold.findIndex((val) => val > exp); + const currentLevel = ret === -1 ? M5Character.levelThreshold.length : ret; + const nextLevelExp = M5Character.levelThreshold[currentLevel]; + const hoardNext = (nextLevelExp /2); + return hoardNext; + } + static readonly defenseThreshold: Array<[number, number]> = [ [30, 18], [25, 17], diff --git a/source/style/Character-sheet.less b/source/style/Character-sheet.less index c1a8895..4f5a0f0 100644 --- a/source/style/Character-sheet.less +++ b/source/style/Character-sheet.less @@ -66,6 +66,19 @@ font-weight: bold; } + .hoard { + text-align: center; + color: rgb(255, 255, 0); + font-weight: bold; + font-size: larger; + } + .hoardNext { + text-align: center; + color: rgb(255, 255, 255); + font-weight: bold; + font-size: medium; + } + table { background-color: beige; } diff --git a/templates/sheets/character/main.hbs b/templates/sheets/character/main.hbs index 1a46ce5..be68643 100644 --- a/templates/sheets/character/main.hbs +++ b/templates/sheets/character/main.hbs @@ -4,14 +4,23 @@ Midgard -
{{data.calc.level}}
+ {{#if (eq data.info.race "Zwerg")}} + +
+ {{data.calc.stats.hoard}} GS
+ Hort für nächsten Grad:
{{data.calc.stats.hoardNext}} GS
+
+ + {{/if}} - Name Grad + {{#if (eq data.info.race "Zwerg")}} + Hort + {{/if}} -- 2.40.1 From 30eca09ae27ac3804ecf34818bca0b41c7004b0f Mon Sep 17 00:00:00 2001 From: LeFrique Date: Sat, 30 Dec 2023 19:19:54 +0100 Subject: [PATCH 3/8] Zwergenhort revised --- foundryconfig.json | 3 ++- source/module/actors/M5Character.ts | 9 ++++---- source/style/Character-sheet.less | 3 ++- source/system.json | 34 +++++++++++++++++++++-------- templates/sheets/character/main.hbs | 6 ++--- 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/foundryconfig.json b/foundryconfig.json index 709c890..0b75816 100644 --- a/foundryconfig.json +++ b/foundryconfig.json @@ -1,4 +1,5 @@ { "moduleName": "Midgard 5. Edition", - "repository": "https://git.byroks.de/Byroks/foundry-vtt-system-midgard5" + "repository": "https://github.com/Byroks/foundry-vtt-system-midgard5", + "rawURL": "https://raw.githubusercontent.com/Byroks/foundry-vtt-system-midgard5" } diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index 412e1d9..5316239 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -1,4 +1,3 @@ -import { valueInArray } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/validators.mjs"; import { M5Item } from "../items/M5Item"; import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base"; import M5ModAggregate from "./M5ModAggregate"; @@ -100,7 +99,7 @@ export class M5Character extends Actor { if (!data) return null; ret.level = M5Character.levelFromExp(data.es); - + ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs); ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw); @@ -147,7 +146,7 @@ export class M5Character extends Actor { ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); ret.stats.hoard = M5Character.hoardFromExp(data.es); ret.stats.hoardNext = M5Character.hoardNextFromExp(data.es); - + if (!skip?.mods) { const aggregate = new M5ModAggregate(data, ret); @@ -375,11 +374,13 @@ export class M5Character extends Actor { const ret = M5Character.levelThreshold.findIndex((val) => val > exp); return ret === -1 ? M5Character.levelThreshold.length : ret; } + static hoardFromExp(exp: number): number { const ret = M5Character.levelThreshold.findIndex((val) => val > exp); const hoard = Math.floor(exp / 2) return hoard; } + static hoardNextFromExp(exp: number): number { const ret = M5Character.levelThreshold.findIndex((val) => val > exp); const currentLevel = ret === -1 ? M5Character.levelThreshold.length : ret; @@ -387,7 +388,7 @@ export class M5Character extends Actor { const hoardNext = (nextLevelExp /2); return hoardNext; } - + static readonly defenseThreshold: Array<[number, number]> = [ [30, 18], [25, 17], diff --git a/source/style/Character-sheet.less b/source/style/Character-sheet.less index b660ab7..4f5a0f0 100644 --- a/source/style/Character-sheet.less +++ b/source/style/Character-sheet.less @@ -65,9 +65,10 @@ text-align: right; font-weight: bold; } + .hoard { text-align: center; - color: rgb(255, 230, 0); + color: rgb(255, 255, 0); font-weight: bold; font-size: larger; } diff --git a/source/system.json b/source/system.json index 94fdfb1..27c4125 100644 --- a/source/system.json +++ b/source/system.json @@ -9,7 +9,7 @@ "verified": "11", "maximum": "11" }, - "authors": [{ "name": "Byroks" }], + "authors": [{"name": "Byroks"}], "scripts": ["bundle.js"], "styles": ["bundle.css"], "packs": [ @@ -103,25 +103,41 @@ "name": "Midgard 5", "sorting": "a", "color": "#0000FF", - "packs": ["blaupause-spielfiguren", "tabellen-kritische-ereignisse", "makros-kritische-ereignisse", "makros-standardwurfel"], + "packs": [ + "blaupause-spielfiguren", + "tabellen-kritische-ereignisse", + "makros-kritische-ereignisse", + "makros-standardwurfel" + ], "folders": [ { "name": "Ausrüstung", "sorting": "a", "color": "#008000", - "packs": ["ausruestung", "ruestkammer", "waffenkammer"] + "packs": [ + "ausruestung", + "ruestkammer", + "waffenkammer" + ] }, { "name": "Effekte", "sorting": "a", "color": "#800080", - "packs": ["kampfzustaende", "verletzungen", "zauberwirkungen"] + "packs": [ + "kampfzustaende", + "verletzungen", + "zauberwirkungen" + ] }, { "name": "Fähigkeiten", "sorting": "a", "color": "#800000", - "packs": ["fertigkeiten", "kampf"] + "packs": [ + "fertigkeiten", + "kampf" + ] } ] } @@ -137,9 +153,9 @@ "gridUnits": "m", "primaryTokenAttribute": "lp", "secondaryTokenAttribute": "ap", - "url": "https://git.byroks.de/Byroks/foundry-vtt-system-midgard5", - "manifest": "https://git.byroks.de/Byroks/foundry-vtt-system-midgard5/releases/download/v2.3.1/system.json", - "download": "https://git.byroks.de/Byroks/foundry-vtt-system-midgard5/releases/download/v2.3.1/midgard5-v2.3.1.zip", + "url": "https://github.com/Byroks/foundry-vtt-system-midgard5", + "manifest": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v2.3.1/system.json", + "download": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v2.3.1/midgard5-v2.3.1.zip", "initiative": "@c.calc.attributes.gw.value", "license": "LICENSE.txt" -} +} \ No newline at end of file diff --git a/templates/sheets/character/main.hbs b/templates/sheets/character/main.hbs index dd7c90b..be68643 100644 --- a/templates/sheets/character/main.hbs +++ b/templates/sheets/character/main.hbs @@ -10,17 +10,17 @@
{{data.calc.stats.hoard}} GS
- Hort für nächsten Grad: {{data.calc.stats.hoardNext}} GS + Hort für nächsten Grad:
{{data.calc.stats.hoardNext}} GS
{{/if}} Name - Grad + Grad {{#if (eq data.info.race "Zwerg")}} Hort - {{/if}} + {{/if}} -- 2.40.1 From 944895dea1a2efc8ab621f156fde20371a469387 Mon Sep 17 00:00:00 2001 From: LeFrique Date: Sat, 30 Dec 2023 19:20:40 +0100 Subject: [PATCH 4/8] Zwergenhort revised --- lang/de.json | 9 ++- source/module/M5Base.ts | 4 ++ source/module/actors/M5Character.ts | 67 ++++++++++++++-------- source/style/Character-sheet.less | 13 ----- source/template.json | 15 +++-- templates/sheets/character/base_values.hbs | 20 ++++--- templates/sheets/character/gear.hbs | 8 +++ templates/sheets/character/main.hbs | 17 ++---- templates/sheets/item/armor.hbs | 21 +++++++ templates/sheets/item/defensiveWeapon.hbs | 21 +++++++ templates/sheets/item/item.hbs | 6 +- templates/sheets/item/weapon.hbs | 21 +++++++ 12 files changed, 156 insertions(+), 66 deletions(-) diff --git a/lang/de.json b/lang/de.json index 15d8532..133089a 100644 --- a/lang/de.json +++ b/lang/de.json @@ -40,6 +40,7 @@ "midgard5.item-quantity": "Menge", "midgard5.item-onbody": "Am Körper", "midgard5.item-ismagic": "Ist Magisch", + "midgard5.item-wealth": "Vermögenswert", "midgard5.actor-lp": "Lebenspunkte", "midgard5.actor-lp-short": "LP", @@ -94,8 +95,11 @@ "midgard5.currency-gold": "Gold", "midgard5.currency-silver": "Silber", "midgard5.currency-copper": "Kupfer", - "midgard5.hoard": "Hort", - "midgard5.hoardNext": "Hort für nächsten Grad", + "midgard5.currency-wealth": "Vermögen in GS", + "midgard5.currency-available": "verfügbares Vermögen", + "midgard5.hoard": "aktueller Hort", + "midgard5.hoardMin": "benötigter Mindesthort", + "midgard5.hoard-next": "Hort für nächsten Grad", "midgard5.exp-overall": "Erfahrungsschatz", "midgard5.exp-available": "Erfahrungspunkte", @@ -218,6 +222,7 @@ "midgard5.defensive-weapon": "Verteidigungswaffe", "midgard5.no-skill": "Keine Fertigkeit", "midgard5.magic": "magisch", + "midgard5.valuable": "Vermögenswert", "midgard5.equipped": "Ausgerüstet", "midgard5.active": "Aktiv", "midgard5.rangedWeapon": "Schusswaffe", diff --git a/source/module/M5Base.ts b/source/module/M5Base.ts index 44c5114..5d6ec1a 100644 --- a/source/module/M5Base.ts +++ b/source/module/M5Base.ts @@ -88,6 +88,8 @@ export enum M5Stats { DRINKING = "drinking", HOARD = "hoard", HOARD_NEXT = "hoardNext", + HOARD_MIN = "hoardMin", + WEALTH = "wealth", } export enum M5ModType { @@ -177,6 +179,8 @@ export interface M5CharacterCalculatedData { drinkingFW: number; hoard: number; hoardNext: number; + hoardMin: number; + wealth: number; }; skillMods: {}; skills: { diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index 5316239..715063b 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -1,7 +1,6 @@ import { M5Item } from "../items/M5Item"; import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base"; import M5ModAggregate from "./M5ModAggregate"; - export class M5Character extends Actor { // constructor( // data: ConstructorParameters[0], @@ -144,8 +143,10 @@ export class M5Character extends Actor { ret.stats.perceptionFW = 6; ret.stats.drinking = this.modResult(0); ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); - ret.stats.hoard = M5Character.hoardFromExp(data.es); - ret.stats.hoardNext = M5Character.hoardNextFromExp(data.es); + ret.stats.hoardMin = M5Character.levelThreshold.at (ret.level - 1)/2; + ret.stats.hoardNext = M5Character.levelThreshold.at (ret.level)/2; + ret.stats.wealth = data.info.gold + data.info.silver/10 + data.info.copper/100 - (data.info.race === "Zwerg" ? (ret.stats.hoardMin) : 0); + ret.stats.hoard = ret.stats.wealth + (data.info.race === "Zwerg" ? (ret.stats.hoardMin) : 0); if (!skip?.mods) { const aggregate = new M5ModAggregate(data, ret); @@ -173,7 +174,13 @@ export class M5Character extends Actor { let label = item.name; if (item.system.magic) { label += "*"; + }; + if (item.system.valuable) { + label += "€"; + ret.stats.wealth += item.system.value || 0; + ret.stats.hoard += item.system.value || 0; } + let rollable = false; // console.log(item.system.rolls.formulas.map((p) => p.enabled)); @@ -183,9 +190,11 @@ export class M5Character extends Actor { break; } } + ret.gear.items[item.id] = { label: label, magic: item.system.magic, + valuable: item.system?.valuable, calc: item.system.calc, equipped: item.system?.equipped, value: item.system.value || 0, @@ -193,6 +202,7 @@ export class M5Character extends Actor { quantity: item.system.quantity || 0, rollExist: rollable, }; + }); } @@ -205,8 +215,8 @@ export class M5Character extends Actor { let label = item.name; if (item.system.magic) { label += "*"; - } - + }; + ret.gear.effects[item.id] = { label: label, magic: item.system.magic, @@ -249,12 +259,19 @@ export class M5Character extends Actor { (item.system.stats.damageBonus < 0 ? "" : "+") + item.system.stats.damageBonus + ")"; - } - + }; + if (item.system.valuable) { + label += "€"; + ret.stats.wealth += item.system.value || 0; + ret.stats.hoard += item.system.value || 0; + } + ret.gear.weapons[item.id] = { label: label, skillId: item.system.skillId, magic: item.system.magic, + valuable: item.system?.valuable, + value: item.system.value || 0, calc: item.system.calc, }; }); @@ -269,12 +286,19 @@ export class M5Character extends Actor { let label = item.name; if (item.system.magic) { label += "*(" + (item.system.stats.defenseBonus < 0 ? "" : "+") + item.system.stats.defenseBonus + ")"; + }; + if (item.system.valuable) { + label += "€"; + ret.stats.wealth += item.system.value || 0; + ret.stats.hoard += item.system.value || 0; } - + ret.gear.defensiveWeapons[item.id] = { label: label, skillId: item.system.skillId, magic: item.system.magic, + valuable: item.system?.valuable, + value: item.system.value || 0, calc: item.system.calc, }; }); @@ -289,11 +313,18 @@ export class M5Character extends Actor { let label = item.name; if (item.system.magic) { label += "*"; - } - + }; + if (item.system.valuable) { + label += "€"; + ret.stats.wealth += item.system.value || 0; + ret.stats.hoard += item.system.value || 0; + } + ret.gear.armor[item.id] = { label: label, magic: item.system.magic, + valuable: item.system?.valuable, + value: item.system.value || 0, calc: item.system.calc, equipped: item.system?.equipped, }; @@ -374,21 +405,7 @@ export class M5Character extends Actor { const ret = M5Character.levelThreshold.findIndex((val) => val > exp); return ret === -1 ? M5Character.levelThreshold.length : ret; } - - static hoardFromExp(exp: number): number { - const ret = M5Character.levelThreshold.findIndex((val) => val > exp); - const hoard = Math.floor(exp / 2) - return hoard; - } - - static hoardNextFromExp(exp: number): number { - const ret = M5Character.levelThreshold.findIndex((val) => val > exp); - const currentLevel = ret === -1 ? M5Character.levelThreshold.length : ret; - const nextLevelExp = M5Character.levelThreshold[currentLevel]; - const hoardNext = (nextLevelExp /2); - return hoardNext; - } - + static readonly defenseThreshold: Array<[number, number]> = [ [30, 18], [25, 17], diff --git a/source/style/Character-sheet.less b/source/style/Character-sheet.less index 4f5a0f0..c1a8895 100644 --- a/source/style/Character-sheet.less +++ b/source/style/Character-sheet.less @@ -66,19 +66,6 @@ font-weight: bold; } - .hoard { - text-align: center; - color: rgb(255, 255, 0); - font-weight: bold; - font-size: larger; - } - .hoardNext { - text-align: center; - color: rgb(255, 255, 255); - font-weight: bold; - font-size: medium; - } - table { background-color: beige; } diff --git a/source/template.json b/source/template.json index f1665f5..4d5072f 100644 --- a/source/template.json +++ b/source/template.json @@ -200,6 +200,10 @@ "equippable": false, "equipped": true }, + "valuable": { + "valuable": false, + "item-wealth": true + }, "physical": { "value": 0, "magic": false @@ -297,7 +301,7 @@ "calc": {} }, "item": { - "templates": ["itemDescription", "equippable", "physical"], + "templates": ["itemDescription", "equippable", "physical","valuable"], "rolls": { "formulas": {}, "output": "" @@ -315,9 +319,10 @@ "calc": {} }, "weapon": { - "templates": ["itemDescription", "stats", "equippable", "physical"], + "templates": ["itemDescription", "stats", "equippable", "physical","valuable"], "special": false, "ranged": false, + "valuable": false, "skillId": "", "damageBase": "1d6", "rolls": { @@ -338,8 +343,9 @@ "calc": {} }, "defensiveWeapon": { - "templates": ["itemDescription", "stats", "equippable", "physical"], + "templates": ["itemDescription", "stats", "equippable", "physical","valuable"], "special": false, + "valuable": false, "skillId": "", "rolls": { "formulas": { @@ -354,9 +360,10 @@ "calc": {} }, "armor": { - "templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical"], + "templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical","valuable"], "lpProtection": 0, "apProtection": 0, + "valuable": false, "rolls": { "formulas": {}, "output": "" diff --git a/templates/sheets/character/base_values.hbs b/templates/sheets/character/base_values.hbs index a199a50..ad10c13 100644 --- a/templates/sheets/character/base_values.hbs +++ b/templates/sheets/character/base_values.hbs @@ -109,17 +109,21 @@ {{localize "midgard5.resistanceBody"}} {{data.calc.stats.resistanceBody.value}} - - {{localize "midgard5.resistanceMind"}} - {{data.calc.stats.resistanceMind.value}} - {{localize "midgard5.resistanceBody"}} - {{data.calc.stats.resistanceBody.value}} - {{localize "midgard5.movementRange"}} {{data.calc.stats.movement.value}} - {{localize "midgard5.actor-git-long"}} - {{data.calc.stats.poisonResistance.value}} + {{#if (eq data.info.race "Zwerg")}} + {{localize "midgard5.hoard"}} + {{data.calc.stats.hoard}} + {{/if}} + + + {{#if (eq data.info.race "Zwerg")}} + {{localize "midgard5.hoardMin"}} + {{data.calc.stats.hoardMin}} + {{localize "midgard5.hoard-next"}} + {{data.calc.stats.hoardNext}} + {{/if}} diff --git a/templates/sheets/character/gear.hbs b/templates/sheets/character/gear.hbs index e2dc767..ee1a73e 100644 --- a/templates/sheets/character/gear.hbs +++ b/templates/sheets/character/gear.hbs @@ -1,16 +1,24 @@ + + {{#if (eq data.info.race "Zwerg")}} + + {{/if}} + + {{#if (eq data.info.race "Zwerg")}} + + {{/if}}
{{localize "midgard5.currency-wealth"}} {{localize "midgard5.currency-gold"}} {{localize "midgard5.currency-silver"}} {{localize "midgard5.currency-copper"}}{{localize "midgard5.hoard"}}
diff --git a/templates/sheets/character/main.hbs b/templates/sheets/character/main.hbs index be68643..bef079b 100644 --- a/templates/sheets/character/main.hbs +++ b/templates/sheets/character/main.hbs @@ -4,24 +4,15 @@ Midgard +
{{data.calc.level}}
- {{#if (eq data.info.race "Zwerg")}} - -
- {{data.calc.stats.hoard}} GS
- Hort für nächsten Grad:
{{data.calc.stats.hoardNext}} GS
-
- - {{/if}} - + + Name Grad - {{#if (eq data.info.race "Zwerg")}} - Hort - {{/if}} - + diff --git a/templates/sheets/item/armor.hbs b/templates/sheets/item/armor.hbs index 26eeb21..dadcaf5 100644 --- a/templates/sheets/item/armor.hbs +++ b/templates/sheets/item/armor.hbs @@ -18,6 +18,27 @@ + + + + + + + + + + +
+ {{localize "midgard5.item-value"}} + +
diff --git a/templates/sheets/item/defensiveWeapon.hbs b/templates/sheets/item/defensiveWeapon.hbs index 3bbca1c..07e5c00 100644 --- a/templates/sheets/item/defensiveWeapon.hbs +++ b/templates/sheets/item/defensiveWeapon.hbs @@ -18,6 +18,27 @@ + + + + + + + + + + +
+ {{localize "midgard5.item-value"}} + +
diff --git a/templates/sheets/item/item.hbs b/templates/sheets/item/item.hbs index 2add63f..fdeb4c1 100644 --- a/templates/sheets/item/item.hbs +++ b/templates/sheets/item/item.hbs @@ -16,6 +16,10 @@ + + + + @@ -28,7 +32,7 @@ - +
{{localize "midgard5.item-value"}} diff --git a/templates/sheets/item/weapon.hbs b/templates/sheets/item/weapon.hbs index 09e6f2b..e92a19c 100644 --- a/templates/sheets/item/weapon.hbs +++ b/templates/sheets/item/weapon.hbs @@ -23,6 +23,27 @@ + + + + + +
+ + + + +
+ {{localize "midgard5.item-value"}} + +
-- 2.40.1 From 4429252752fcd11797b7c202a3fe902fd40f75bb Mon Sep 17 00:00:00 2001 From: LeFrique Date: Sat, 30 Dec 2023 19:39:44 +0100 Subject: [PATCH 5/8] Endfassung nach commitchaos --- source/module/M5Base.ts | 4 ++++ source/module/actors/M5Character.ts | 5 +++++ templates/sheets/character/main.hbs | 2 ++ 3 files changed, 11 insertions(+) diff --git a/source/module/M5Base.ts b/source/module/M5Base.ts index 0a9ec2d..5d6ec1a 100644 --- a/source/module/M5Base.ts +++ b/source/module/M5Base.ts @@ -177,6 +177,10 @@ export interface M5CharacterCalculatedData { perceptionFW: number; drinking: M5ModResult; drinkingFW: number; + hoard: number; + hoardNext: number; + hoardMin: number; + wealth: number; }; skillMods: {}; skills: { diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index 7a3ca98..1c7a903 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -143,6 +143,11 @@ export class M5Character extends Actor { ret.stats.perceptionFW = 6; ret.stats.drinking = this.modResult(0); ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); + ret.stats.hoardMin = M5Character.levelThreshold.at (ret.level - 1)/2; + ret.stats.hoardNext = M5Character.levelThreshold.at (ret.level)/2; + ret.stats.wealth = data.info.gold + data.info.silver/10 + data.info.copper/100 - (data.info.race === "Zwerg" ? (ret.stats.hoardMin) : 0); + ret.stats.hoard = ret.stats.wealth + (data.info.race === "Zwerg" ? (ret.stats.hoardMin) : 0); + if (!skip?.mods) { const aggregate = new M5ModAggregate(data, ret); diff --git a/templates/sheets/character/main.hbs b/templates/sheets/character/main.hbs index a2df8dc..da1c054 100644 --- a/templates/sheets/character/main.hbs +++ b/templates/sheets/character/main.hbs @@ -4,10 +4,12 @@ Midgard +
{{data.calc.level}}
+ Name Grad -- 2.40.1 From cc34a5120272d628c58d53c6ddccd61d3ac1ecb0 Mon Sep 17 00:00:00 2001 From: LeFrique Date: Tue, 2 Jan 2024 16:45:19 +0100 Subject: [PATCH 6/8] Zwergenhort vorhanden, ganz oder gar nicht verborgen? --- lang/de.json | 3 +- source/PreloadTemplates.ts | 1 + source/module/actors/M5Character.ts | 38 ++++++++++++++++------- source/template.json | 15 ++++++--- templates/sheets/item/armor.hbs | 7 +++++ templates/sheets/item/defensiveWeapon.hbs | 9 +++++- templates/sheets/item/item.hbs | 9 +++++- templates/sheets/item/weapon.hbs | 9 +++++- 8 files changed, 72 insertions(+), 19 deletions(-) diff --git a/lang/de.json b/lang/de.json index 133089a..669bab4 100644 --- a/lang/de.json +++ b/lang/de.json @@ -100,6 +100,7 @@ "midgard5.hoard": "aktueller Hort", "midgard5.hoardMin": "benötigter Mindesthort", "midgard5.hoard-next": "Hort für nächsten Grad", + "midgard5.hoarded": "Hort", "midgard5.exp-overall": "Erfahrungsschatz", "midgard5.exp-available": "Erfahrungspunkte", @@ -222,7 +223,7 @@ "midgard5.defensive-weapon": "Verteidigungswaffe", "midgard5.no-skill": "Keine Fertigkeit", "midgard5.magic": "magisch", - "midgard5.valuable": "Vermögenswert", + "midgard5.valuable": "Vermögen", "midgard5.equipped": "Ausgerüstet", "midgard5.active": "Aktiv", "midgard5.rangedWeapon": "Schusswaffe", diff --git a/source/PreloadTemplates.ts b/source/PreloadTemplates.ts index 7f5fa17..bbd4ae9 100644 --- a/source/PreloadTemplates.ts +++ b/source/PreloadTemplates.ts @@ -8,6 +8,7 @@ const preloadTemplates = async (): Promise[]> = const templates: Array = [ "sheets/character/attribute.hbs", "sheets/character/base_values.hbs", + "sheets/character/main.hbs", "sheets/character/skills.hbs", "sheets/character/gear.hbs", "sheets/character/spells.hbs", diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index 1c7a903..e7e4534 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -145,8 +145,8 @@ export class M5Character extends Actor { ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); ret.stats.hoardMin = M5Character.levelThreshold.at (ret.level - 1)/2; ret.stats.hoardNext = M5Character.levelThreshold.at (ret.level)/2; - ret.stats.wealth = data.info.gold + data.info.silver/10 + data.info.copper/100 - (data.info.race === "Zwerg" ? (ret.stats.hoardMin) : 0); - ret.stats.hoard = ret.stats.wealth + (data.info.race === "Zwerg" ? (ret.stats.hoardMin) : 0); + ret.stats.wealth = data.info.gold + data.info.silver/10 + data.info.copper/100; + ret.stats.hoard = 0; if (!skip?.mods) { @@ -177,8 +177,11 @@ export class M5Character extends Actor { label += "*"; }; if (item.system.valuable) { - label += "€"; + label += " € "; ret.stats.wealth += item.system.value || 0; + }; + if (item.system.hoarded) { + label += " $ "; ret.stats.hoard += item.system.value || 0; } @@ -196,6 +199,7 @@ export class M5Character extends Actor { label: label, magic: item.system.magic, valuable: item.system?.valuable, + hoarded: item.system?.hoarded, calc: item.system.calc, equipped: item.system?.equipped, value: item.system.value || 0, @@ -262,16 +266,20 @@ export class M5Character extends Actor { ")"; }; if (item.system.valuable) { - label += "€"; - ret.stats.wealth += item.system.value || 0; + label += " € "; + ret.stats.wealth += item.system.value || 0; + }; + if (item.system.hoarded) { + label += " $ "; ret.stats.hoard += item.system.value || 0; - } + } ret.gear.weapons[item.id] = { label: label, skillId: item.system.skillId, magic: item.system.magic, valuable: item.system?.valuable, + hoarded: item.system?.hoarded, value: item.system.value || 0, calc: item.system.calc, }; @@ -289,8 +297,11 @@ export class M5Character extends Actor { label += "*(" + (item.system.stats.defenseBonus < 0 ? "" : "+") + item.system.stats.defenseBonus + ")"; }; if (item.system.valuable) { - label += "€"; - ret.stats.wealth += item.system.value || 0; + label += " € "; + ret.stats.wealth += item.system.value || 0; + }; + if (item.system.hoarded) { + label += " $ "; ret.stats.hoard += item.system.value || 0; } @@ -299,6 +310,7 @@ export class M5Character extends Actor { skillId: item.system.skillId, magic: item.system.magic, valuable: item.system?.valuable, + hoarded: item.system?.hoarded, value: item.system.value || 0, calc: item.system.calc, }; @@ -316,15 +328,19 @@ export class M5Character extends Actor { label += "*"; }; if (item.system.valuable) { - label += "€"; - ret.stats.wealth += item.system.value || 0; + label += " € "; + ret.stats.wealth += item.system.value || 0; + }; + if (item.system.hoarded) { + label += " $ "; ret.stats.hoard += item.system.value || 0; - } + } ret.gear.armor[item.id] = { label: label, magic: item.system.magic, valuable: item.system?.valuable, + hoarded: item.system?.hoarded, value: item.system.value || 0, calc: item.system.calc, equipped: item.system?.equipped, diff --git a/source/template.json b/source/template.json index 4d5072f..13eaba7 100644 --- a/source/template.json +++ b/source/template.json @@ -204,6 +204,10 @@ "valuable": false, "item-wealth": true }, + "hoarded": { + "hoarded": false, + "inHoard": true + }, "physical": { "value": 0, "magic": false @@ -301,7 +305,7 @@ "calc": {} }, "item": { - "templates": ["itemDescription", "equippable", "physical","valuable"], + "templates": ["itemDescription", "equippable", "physical","valuable","hoarded"], "rolls": { "formulas": {}, "output": "" @@ -319,10 +323,11 @@ "calc": {} }, "weapon": { - "templates": ["itemDescription", "stats", "equippable", "physical","valuable"], + "templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"], "special": false, "ranged": false, "valuable": false, + "hoarded": false, "skillId": "", "damageBase": "1d6", "rolls": { @@ -343,9 +348,10 @@ "calc": {} }, "defensiveWeapon": { - "templates": ["itemDescription", "stats", "equippable", "physical","valuable"], + "templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"], "special": false, "valuable": false, + "hoarded": false, "skillId": "", "rolls": { "formulas": { @@ -360,10 +366,11 @@ "calc": {} }, "armor": { - "templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical","valuable"], + "templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical","valuable","hoarded"], "lpProtection": 0, "apProtection": 0, "valuable": false, + "hoarded": false, "rolls": { "formulas": {}, "output": "" diff --git a/templates/sheets/item/armor.hbs b/templates/sheets/item/armor.hbs index dadcaf5..d43dd9e 100644 --- a/templates/sheets/item/armor.hbs +++ b/templates/sheets/item/armor.hbs @@ -23,6 +23,13 @@ + + {{#unless (eq data.info.race "Zwerg")}} + + + + + {{/unless}} diff --git a/templates/sheets/item/defensiveWeapon.hbs b/templates/sheets/item/defensiveWeapon.hbs index 07e5c00..27c0fea 100644 --- a/templates/sheets/item/defensiveWeapon.hbs +++ b/templates/sheets/item/defensiveWeapon.hbs @@ -7,7 +7,7 @@ - diff --git a/templates/sheets/item/item.hbs b/templates/sheets/item/item.hbs index fdeb4c1..36be41c 100644 --- a/templates/sheets/item/item.hbs +++ b/templates/sheets/item/item.hbs @@ -6,7 +6,7 @@
+
@@ -23,6 +23,13 @@ + + {{#if (eq data.info.race "Zwerg")}} + + + + + {{/if}}
- diff --git a/templates/sheets/item/weapon.hbs b/templates/sheets/item/weapon.hbs index e92a19c..060035e 100644 --- a/templates/sheets/item/weapon.hbs +++ b/templates/sheets/item/weapon.hbs @@ -7,7 +7,7 @@
+
@@ -20,6 +20,13 @@ + + {{#unless (eq data.info.race "Zwerg")}} + + + + + {{/unless}}
- -- 2.40.1 From 65179400a3f1f91d36697db96f8501acc283b3ee Mon Sep 17 00:00:00 2001 From: LeFrique Date: Wed, 3 Jan 2024 18:50:08 +0100 Subject: [PATCH 7/8] Zwergenhort Zwergenhort endlich implementiert --- source/module/actors/M5Character.ts | 4 +++- templates/sheets/item/armor.hbs | 4 ++-- templates/sheets/item/defensiveWeapon.hbs | 2 +- templates/sheets/item/item.hbs | 4 ++-- templates/sheets/item/weapon.hbs | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index 071382a..d783216 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -99,7 +99,7 @@ export class M5Character extends Actor { const data = (this as any).system; if (!data) return null; - ret.level = M5Character.levelFromExp(data.es); + ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es); ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs); @@ -204,6 +204,8 @@ export class M5Character extends Actor { magic: item.system.magic, calc: item.system.calc, equipped: item.system?.equipped, + valuable: item.system?.valuable, + hoarded: item.system?.hoarded, weight: item.system.weight || 0, containerId: item.system.containerId || "", value: item.system.value || 0, diff --git a/templates/sheets/item/armor.hbs b/templates/sheets/item/armor.hbs index d43dd9e..1c1c8ea 100644 --- a/templates/sheets/item/armor.hbs +++ b/templates/sheets/item/armor.hbs @@ -24,12 +24,12 @@ - {{#unless (eq data.info.race "Zwerg")}} + {{#if (eq item.parent.system.info.race "Zwerg")}} - {{/unless}} + {{/if}} diff --git a/templates/sheets/item/defensiveWeapon.hbs b/templates/sheets/item/defensiveWeapon.hbs index 27c0fea..80ead44 100644 --- a/templates/sheets/item/defensiveWeapon.hbs +++ b/templates/sheets/item/defensiveWeapon.hbs @@ -24,7 +24,7 @@ - {{#if (eq data.info.race "Zwerg")}} + {{#if (eq item.parent.system.info.race "Zwerg")}} diff --git a/templates/sheets/item/item.hbs b/templates/sheets/item/item.hbs index 46b3134..c55afeb 100644 --- a/templates/sheets/item/item.hbs +++ b/templates/sheets/item/item.hbs @@ -21,12 +21,12 @@ - {{#unless (eq data.info.race "Zwerg")}} + {{#if (eq item.parent.system.info.race "Zwerg")}} - {{/unless}} + {{/if}} diff --git a/templates/sheets/item/weapon.hbs b/templates/sheets/item/weapon.hbs index 060035e..dbd69b7 100644 --- a/templates/sheets/item/weapon.hbs +++ b/templates/sheets/item/weapon.hbs @@ -29,7 +29,7 @@ - {{#if (eq data.info.race "Zwerg")}} + {{#if (eq item.parent.system.info.race "Zwerg")}} -- 2.40.1 From 56887873e274efb662471d78d58ed3b93acceb96 Mon Sep 17 00:00:00 2001 From: LeFrique Date: Wed, 3 Jan 2024 19:34:20 +0100 Subject: [PATCH 8/8] =?UTF-8?q?Kein=20$=20und=20=E2=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit € und $ entfernt --- source/module/actors/M5Character.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts index d783216..be1be10 100644 --- a/source/module/actors/M5Character.ts +++ b/source/module/actors/M5Character.ts @@ -179,11 +179,9 @@ export class M5Character extends Actor { label += "*"; }; if (item.system.valuable) { - label += " € "; ret.stats.wealth += item.system.value || 0; }; if (item.system.hoarded) { - label += " $ "; ret.stats.hoard += item.system.value || 0; } @@ -310,11 +308,9 @@ export class M5Character extends Actor { ")"; }; if (item.system.valuable) { - label += " € "; ret.stats.wealth += item.system.value || 0; }; if (item.system.hoarded) { - label += " $ "; ret.stats.hoard += item.system.value || 0; } @@ -341,11 +337,9 @@ export class M5Character extends Actor { label += "*(" + (item.system.stats.defenseBonus < 0 ? "" : "+") + item.system.stats.defenseBonus + ")"; }; if (item.system.valuable) { - label += " € "; ret.stats.wealth += item.system.value || 0; }; if (item.system.hoarded) { - label += " $ "; ret.stats.hoard += item.system.value || 0; } @@ -372,11 +366,9 @@ export class M5Character extends Actor { label += "*"; }; if (item.system.valuable) { - label += " € "; ret.stats.wealth += item.system.value || 0; }; if (item.system.hoarded) { - label += " $ "; ret.stats.hoard += item.system.value || 0; } -- 2.40.1
+
@@ -28,6 +28,13 @@ + + {{#if (eq data.info.race "Zwerg")}} + + + + + {{/if}}