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