#33 Wrong wealth calculation #34

Merged
Byroks merged 3 commits from #33-wrong-wealth-calculation into develop 2024-01-16 08:29:16 +01:00
1 changed files with 37 additions and 26 deletions
Showing only changes of commit a5c5b6c9e7 - Show all commits

View File

@ -145,11 +145,10 @@ export class M5Character extends Actor {
ret.stats.perceptionFW = 6; ret.stats.perceptionFW = 6;
ret.stats.drinking = this.modResult(0); ret.stats.drinking = this.modResult(0);
ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10); ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10);
ret.stats.hoardMin = M5Character.levelThreshold.at (ret.level - 1)/2; ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
ret.stats.hoardNext = M5Character.levelThreshold.at (ret.level)/2; ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
ret.stats.wealth = data.info.gold + data.info.silver/10 + data.info.copper/100; ret.stats.wealth = data.info.gold + data.info.silver / 10 + data.info.copper / 100;
ret.stats.hoard = 0; ret.stats.hoard = 0;
if (!skip?.mods) { if (!skip?.mods) {
const aggregate = new M5ModAggregate(data, ret); const aggregate = new M5ModAggregate(data, ret);
@ -177,14 +176,14 @@ export class M5Character extends Actor {
let label = item.name; let label = item.name;
if (item.system.magic) { if (item.system.magic) {
label += "*"; label += "*";
}; }
if (item.system.valuable) { if (item.system.valuable) {
ret.stats.wealth += item.system.value || 0; ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
}; }
if (item.system.hoarded) { if (item.system.hoarded) {
ret.stats.hoard += item.system.value || 0; ret.stats.hoard += item.system.value || 0;
} }
let icon = item.img; let icon = item.img;
let rollable = false; let rollable = false;
@ -195,7 +194,7 @@ export class M5Character extends Actor {
break; break;
} }
} }
ret.gear.items[item.id] = { ret.gear.items[item.id] = {
label: label, label: label,
icon: icon, icon: icon,
@ -249,7 +248,6 @@ export class M5Character extends Actor {
quantity: item.system.quantity || 0, quantity: item.system.quantity || 0,
rollExist: rollable, rollExist: rollable,
}; };
}); });
} }
@ -262,8 +260,8 @@ export class M5Character extends Actor {
let label = item.name; let label = item.name;
if (item.system.magic) { if (item.system.magic) {
label += "*"; label += "*";
}; }
ret.gear.effects[item.id] = { ret.gear.effects[item.id] = {
label: label, label: label,
magic: item.system.magic, magic: item.system.magic,
@ -306,21 +304,21 @@ export class M5Character extends Actor {
(item.system.stats.damageBonus < 0 ? "" : "+") + (item.system.stats.damageBonus < 0 ? "" : "+") +
item.system.stats.damageBonus + item.system.stats.damageBonus +
")"; ")";
}; }
if (item.system.valuable) { if (item.system.valuable) {
ret.stats.wealth += item.system.value || 0; ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
}; }
if (item.system.hoarded) { if (item.system.hoarded) {
ret.stats.hoard += item.system.value || 0; ret.stats.hoard += item.system.value || 0;
} }
ret.gear.weapons[item.id] = { ret.gear.weapons[item.id] = {
label: label, label: label,
skillId: item.system.skillId, skillId: item.system.skillId,
magic: item.system.magic, magic: item.system.magic,
valuable: item.system?.valuable, valuable: item.system?.valuable,
hoarded: item.system?.hoarded, hoarded: item.system?.hoarded,
value: item.system.value || 0, value: item.system.value || 0,
calc: item.system.calc, calc: item.system.calc,
}; };
}); });
@ -335,14 +333,14 @@ export class M5Character extends Actor {
let label = item.name; let label = item.name;
if (item.system.magic) { if (item.system.magic) {
label += "*(" + (item.system.stats.defenseBonus < 0 ? "" : "+") + item.system.stats.defenseBonus + ")"; label += "*(" + (item.system.stats.defenseBonus < 0 ? "" : "+") + item.system.stats.defenseBonus + ")";
}; }
if (item.system.valuable) { if (item.system.valuable) {
ret.stats.wealth += item.system.value || 0; ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
}; }
if (item.system.hoarded) { if (item.system.hoarded) {
ret.stats.hoard += item.system.value || 0; ret.stats.hoard += item.system.value || 0;
} }
ret.gear.defensiveWeapons[item.id] = { ret.gear.defensiveWeapons[item.id] = {
label: label, label: label,
skillId: item.system.skillId, skillId: item.system.skillId,
@ -364,14 +362,14 @@ export class M5Character extends Actor {
let label = item.name; let label = item.name;
if (item.system.magic) { if (item.system.magic) {
label += "*"; label += "*";
}; }
if (item.system.valuable) { if (item.system.valuable) {
ret.stats.wealth += item.system.value || 0; ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
}; }
if (item.system.hoarded) { if (item.system.hoarded) {
ret.stats.hoard += item.system.value || 0; ret.stats.hoard += item.system.value || 0;
} }
ret.gear.armor[item.id] = { ret.gear.armor[item.id] = {
label: label, label: label,
magic: item.system.magic, magic: item.system.magic,
@ -521,6 +519,19 @@ export class M5Character extends Actor {
return (this as any).getEmbeddedDocument("Item", itemId); return (this as any).getEmbeddedDocument("Item", itemId);
} }
private calculateValue(value: number, currency: string): number {
switch (currency) {
case "gold":
return value;
case "silver":
return value / 10;
case "copper":
return value / 100;
default:
return 0;
}
}
private modResult(value: number): M5ModResult { private modResult(value: number): M5ModResult {
return { return {
value: value, value: value,