Entbehrungen #89

Merged
Byroks merged 10 commits from entbehrungen into develop 2024-03-24 20:02:26 +01:00
6 changed files with 50 additions and 83 deletions
Showing only changes of commit e5ace68557 - Show all commits

View File

@ -241,11 +241,12 @@
"midgard5.enduranceBonus": "Ausdauerbonus",
"midgard5.lpProtection": "Rüstungsschutz (LP)",
"midgard5.apProtection": "Rüstungsschutz (AP)",
"midgard5.deprivation": "Entbehrung",
"midgard5.deprivation": "Zähigkeit",
"midgard5.deprivations": "Entbehrungen",
"midgard5.deprivationCold": "Zähigkeit Kälte",
"midgard5.deprivationHeat": "Zähigkeit Hitze",
"midgard5.deprivationFood": "Zähigkeit Hunger & Durst",
"midgard5.deprivationFood": "Zähigkeit Hunger",
"midgard5.deprivationThirst": "Zähigkeit Durst",
"midgard5.new-skill": "Neue Fertigkeit",
"midgard5.special": "Spezial",

View File

@ -106,6 +106,7 @@ export enum M5Stats {
DEPRIVATION_COLD = "cold",
DEPRIVATION_HEAT = "heat",
DEPRIVATION_FOOD = "food",
DEPRIVATION_THIRST = "thirst",
HOARD = "hoard",
HOARD_NEXT = "hoardNext",
HOARD_MIN = "hoardMin",
@ -198,15 +199,9 @@ export interface M5CharacterCalculatedData {
brawlFw: number;
poisonResistance: M5ModResult;
enduranceBonus: number;
deprivationCold: M5ModResult;
deprivationColdBonus: M5ModResult;
deprivationColdPw: number;
deprivationHeat: M5ModResult;
deprivationHeatBonus: M5ModResult;
deprivationHeatPw: number;
deprivationFood: M5ModResult;
deprivationFoodBonus: M5ModResult;
deprivationFoodPw: number;
deprivationCold: number;
deprivationHeat: number;
deprivationFood: number;
hoard: number;
hoardNext: number;
hoardMin: number;

View File

@ -126,15 +126,9 @@ export class M5Character extends Actor {
brawlFw: 0,
poisonResistance: { value: 0, mods: [] },
enduranceBonus: 0,
deprivationCold: { value: 0, mods: [] },
deprivationColdBonus: { value: 0, mods: [] },
deprivationColdPw: 0,
deprivationHeat: { value: 0, mods: [] },
deprivationHeatBonus: { value: 0, mods: [] },
deprivationHeatPw: 0,
deprivationFood: { value: 0, mods: [] },
deprivationFoodBonus: { value: 0, mods: [] },
deprivationFoodPw: 0,
deprivationCold: 0,
deprivationHeat: 0,
deprivationFood: 0,
hoard: 0,
encumbrance: 0,
load: 0,
@ -210,15 +204,9 @@ export class M5Character extends Actor {
ret.stats.brawlFw = ret.stats.brawl.value + ret.stats.attackBonus.value + (data.info.race === "Zwerg" ? 1 : 0);
ret.stats.poisonResistance = this.modResult(30 + Math.floor(ret.attributes.ko.value / 2));
ret.stats.enduranceBonus = Math.floor(ret.attributes.ko.value / 10) + Math.floor(ret.attributes.st.value / 20);
ret.stats.deprivationCold = this.modResult(Math.floor(ret.attributes.ko.value / 2));
ret.stats.deprivationColdBonus = this.modResult(0);
ret.stats.deprivationColdPw = Math.min(100, (ret.stats.deprivationCold.value + ret.stats.deprivationColdBonus.value));
ret.stats.deprivationHeat = this.modResult(Math.floor(ret.attributes.ko.value / 2));
ret.stats.deprivationHeatBonus = this.modResult(0);
ret.stats.deprivationHeatPw = Math.min(100, (ret.stats.deprivationHeat.value + ret.stats.deprivationHeatBonus.value));
ret.stats.deprivationFood = this.modResult(Math.floor(40 + (ret.attributes.ko.value / 2)));
ret.stats.deprivationFoodBonus = this.modResult(0);
ret.stats.deprivationFoodPw = Math.min(100, (ret.stats.deprivationFood.value + ret.stats.deprivationFoodBonus.value));
ret.stats.deprivationCold = (Math.floor(ret.attributes.ko.value / 2));
ret.stats.deprivationHeat = (Math.floor(ret.attributes.ko.value / 2));
ret.stats.deprivationFood = (Math.floor(40 + (ret.attributes.ko.value / 2)));
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
@ -561,17 +549,17 @@ export class M5Character extends Actor {
// Adjust stat Kälte based on Überleben (Gebirge) skill
if (item.name === "Überleben (Gebirge)") {
ret.stats.deprivationColdBonus.value += Math.floor(item.system.fw * 5);
ret.stats.deprivationCold += Math.floor(item.system.fw * 5);
}
// Adjust stat Kälte based on Überleben (Steppe) skill
if (item.name === "Überleben (Steppe)") {
ret.stats.deprivationHeatBonus.value += Math.floor(item.system.fw * 5);
ret.stats.deprivationHeat += Math.floor(item.system.fw * 5);
}
// Adjust stat Durst & Hunger based on Robustheit skill
if (item.name === "Robustheit") {
ret.stats.deprivationFoodBonus.value += 10;
ret.stats.deprivationFood += 10;
}
});
}

View File

@ -41,9 +41,9 @@ export default class M5ModAggregate {
this.push({ type: M5ModType.STAT, id: M5Stats.AP, operation: M5ModOperation.SET, value: calc.stats.ap.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_LP, operation: M5ModOperation.SET, value: calc.stats.lpProtection.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_AP, operation: M5ModOperation.SET, value: calc.stats.apProtection.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_COLD, operation: M5ModOperation.SET, value: calc.stats.deprivationCold.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_HEAT, operation: M5ModOperation.SET, value: calc.stats.deprivationHeat.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_FOOD, operation: M5ModOperation.SET, value: calc.stats.deprivationFood.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_COLD, operation: M5ModOperation.SET, value: calc.stats.deprivationCold }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_HEAT, operation: M5ModOperation.SET, value: calc.stats.deprivationHeat }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_FOOD, operation: M5ModOperation.SET, value: calc.stats.deprivationFood }, characterString);
}
push(mod: M5ItemMod, source: string) {

View File

@ -199,7 +199,7 @@ export class M5Roll {
const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = {
formula: "@c.calc.stats.deprivationCold.value + @c.calc.stats.deprivationColdBonus.value -1D100",
formula: "@c.calc.stats.deprivationCold -1D100",
enabled: true,
label: (game as Game).i18n.localize("midgard5.deprivationCold"),
result: "",
@ -216,7 +216,7 @@ export class M5Roll {
const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = {
formula: "@c.calc.stats.deprivationHeat.value + @c.calc.stats.deprivationHeatBonus.value -1D100",
formula: "@c.calc.stats.deprivationHeat -1D100",
enabled: true,
label: (game as Game).i18n.localize("midgard5.deprivationHeat"),
result: "",
@ -233,7 +233,7 @@ export class M5Roll {
const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = {
formula: "@c.calc.stats.deprivationFood.value + @c.calc.stats.deprivationFoodBonus.value -1D100",
formula: "@c.calc.stats.deprivationFood -1D100",
enabled: true,
label: (game as Game).i18n.localize("midgard5.deprivationFood"),
result: "",

View File

@ -55,50 +55,6 @@
</div>
</div>
<div class="flexcolumn-2">
<div class="flexpart">
<div class="flexpart-header"><img src="icons/skills/wounds/injury-body-pain-gray.webp" class="flexpart-icon">{{localize "midgard5.deprivations"}}</div>
<table>
<thead>
<tr>
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
<th class="title">{{localize "midgard5.deprivation"}}</th>
<th class="title">{{localize "midgard5.ew"}}</th>
<th class="title">{{localize "midgard5.bonus"}}</th>
<th class="title">{{localize "midgard5.pw"}}</th>
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
</tr>
</thead>
<tbody class="items-list">
<tr data-item-id="{{itemId}}">
<td class="flexpart-img"><img src="/icons/magic/water/snowflake-ice-blue.webp" class="flexpart-icon"></td>
<td class="padding edit-item">{{localize "midgard5.deprivationCold"}}</td>
<td class="fixed-value">{{data.calc.stats.deprivationCold.value}}</td>
<td class="fixed-value">{{data.calc.stats.deprivationColdBonus.value}}</td>
<td class="fixed-value">{{add data.calc.stats.deprivationCold.value data.calc.stats.deprivationColdBonus.value}}</td>
<td><button class="roll-button roll-deprivationCold-button"></button></td>
</tr>
<tr data-item-id="{{itemId}}">
<td class="flexpart-img"><img src="/icons/magic/fire/orb-lightning-sun.webp" class="flexpart-icon"></td>
<td class="padding edit-item">{{localize "midgard5.deprivationHeat"}}</td>
<td class="fixed-value">{{data.calc.stats.deprivationHeat.value}}</td>
<td class="fixed-value">{{data.calc.stats.deprivationHeatBonus.value}}</td>
<td class="fixed-value">{{add data.calc.stats.deprivationHeat.value data.calc.stats.deprivationHeatBonus.value}}</td>
<td><button class="roll-button roll-deprivationHeat-button"></button></td>
</tr>
<tr data-item-id="{{itemId}}">
<td class="flexpart-img"><img src="/icons/consumables/food/plate-fish-bowl-bones-brown.webp" class="flexpart-icon"></td>
<td class="padding edit-item">{{localize "midgard5.deprivationFood"}}</td>
<td class="fixed-value">{{data.calc.stats.deprivationFood.value}}</td>
<td class="fixed-value">{{data.calc.stats.deprivationFoodBonus.value}}</td>
<td class="fixed-value">{{add data.calc.stats.deprivationFood.value data.calc.stats.deprivationFoodBonus.value}}</td>
<td><button class="roll-button roll-deprivationFood-button"></button></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="flexcolumn-2">
<div class="flexpart">
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.calculated-values"}}</div>
@ -166,4 +122,31 @@
</table>
</div>
</div>
</div>
</div>
<div class="flexcolumn-1">
<div class="flexpart">
<div class="flexpart-header"><img src="icons/skills/wounds/injury-body-pain-gray.webp" class="flexpart-icon">{{localize "midgard5.deprivations"}} & {{localize "midgard5.deprivation"}}</div>
<table>
<tr height = 10px></tr>
<tr>
<td class="flexpart-img"><img src="/icons/sundries/survival/waterskin-leather-brown.webp" class="flexpart-icon"></td>
<td bgcolor="#eaead7" class="padding edit-item highlight" >{{localize "midgard5.deprivationThirst"}}</td>
<td bgcolor="#eaead7" class="center">{{data.calc.stats.deprivationFood.value}}</td>
<td bgcolor="#eaead7" class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-deprivationFood-button" /></td>
<td class="flexpart-img"><img src="/icons/magic/fire/orb-lightning-sun.webp" class="flexpart-icon"></td>
<td class="padding edit-item highlight">{{localize "midgard5.deprivationHeat"}}</td>
<td class="center">{{ data.calc.stats.deprivationHeat.value}}</td>
<td class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-deprivationHeat-button"></button></td>
<td class="flexpart-img"><img src="/icons/consumables/food/plate-fish-bowl-bones-brown.webp" class="flexpart-icon"></td>
<td bgcolor="#eaead7" class="padding edit-item highlight">{{localize "midgard5.deprivationFood"}}</td>
<td bgcolor="#eaead7" class="center">{{data.calc.stats.deprivationFood.value}}</td>
<td bgcolor="#eaead7" class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-deprivationFood-button"></button></td>
<td class="flexpart-img"><img src="/icons/magic/water/snowflake-ice-blue.webp" class="flexpart-icon"></td>
<td class="padding edit-item highlight">{{localize "midgard5.deprivationCold"}}</td>
<td class="center">{{data.calc.stats.deprivationCold.value}}</td>
<td class="fixed-value"><button class="roll-button roll-deprivationCold-button"></button></td>
</tr>
</table>
</div>
</div>