Entbehrungen #89
|
|
@ -249,8 +249,7 @@
|
|||
"midgard5.deprivations": "Entbehrungen",
|
||||
"midgard5.deprivationCold": "Zähigkeit Kälte",
|
||||
"midgard5.deprivationHeat": "Zähigkeit Hitze",
|
||||
"midgard5.deprivationFood": "Zähigkeit Hunger",
|
||||
"midgard5.deprivationThirst": "Zähigkeit Durst",
|
||||
"midgard5.deprivationFood": "Zähigkeit Durst/Hunger",
|
||||
|
||||
"midgard5.new-skill": "Neue Fertigkeit",
|
||||
"midgard5.special": "Spezial",
|
||||
|
|
@ -411,6 +410,7 @@
|
|||
"midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)",
|
||||
"midgard5.mod-stat-deprivationCold": "Entbehrungen Kälte",
|
||||
"midgard5.mod-stat-deprivationHeat": "Entbehrungen Hitze",
|
||||
"midgard5.mod-stat-deprivationFood": "Entbehrungen Durst/Hunger",
|
||||
|
||||
"midgard5.mod-type": "Typ der Modifikation",
|
||||
"midgard5.mod-id": "Was soll modifiziert werden",
|
||||
|
|
|
|||
|
|
@ -103,19 +103,9 @@ export enum M5Stats {
|
|||
AP = "ap",
|
||||
PROTECTION_LP = "lpProtection",
|
||||
PROTECTION_AP = "apProtection",
|
||||
DEPRIVATION_COLD = "cold",
|
||||
DEPRIVATION_HEAT = "heat",
|
||||
DEPRIVATION_FOOD = "food",
|
||||
DEPRIVATION_THIRST = "thirst",
|
||||
HOARD = "hoard",
|
||||
HOARD_NEXT = "hoardNext",
|
||||
HOARD_MIN = "hoardMin",
|
||||
WEALTH = "wealth",
|
||||
LOAD = "load",
|
||||
HEAVY_LOAD = "heavyLoad",
|
||||
LOAD_MAX = "loadMax",
|
||||
THRUST_LOAD = "thrustLoad",
|
||||
ENCUMBRANCE = "encumbrance",
|
||||
DEPRIVATION_COLD = "deprivationCold",
|
||||
DEPRIVATION_HEAT = "deprivationHeat",
|
||||
DEPRIVATION_FOOD = "deprivationFood",
|
||||
}
|
||||
|
||||
export enum M5ModType {
|
||||
|
|
@ -199,9 +189,9 @@ export interface M5CharacterCalculatedData {
|
|||
brawlFw: number;
|
||||
poisonResistance: M5ModResult;
|
||||
enduranceBonus: number;
|
||||
deprivationCold: number;
|
||||
deprivationHeat: number;
|
||||
deprivationFood: number;
|
||||
deprivationCold: M5ModResult;
|
||||
deprivationHeat: M5ModResult;
|
||||
deprivationFood: M5ModResult;
|
||||
hoard: number;
|
||||
hoardNext: number;
|
||||
hoardMin: number;
|
||||
|
|
|
|||
|
|
@ -114,9 +114,9 @@ export class M5Character extends Actor {
|
|||
brawlFw: 0,
|
||||
poisonResistance: { value: 0, mods: [] },
|
||||
enduranceBonus: 0,
|
||||
deprivationCold: 0,
|
||||
deprivationHeat: 0,
|
||||
deprivationFood: 0,
|
||||
deprivationCold: { value: 0, mods: [] },
|
||||
deprivationHeat: { value: 0, mods: [] },
|
||||
deprivationFood: { value: 0, mods: [] },
|
||||
hoard: 0,
|
||||
encumbrance: 0,
|
||||
load: 0,
|
||||
|
|
@ -188,9 +188,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 = (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.deprivationCold = this.modResult(Math.floor(ret.attributes.ko.value / 2));
|
||||
ret.stats.deprivationHeat = this.modResult(Math.floor(ret.attributes.ko.value / 2));
|
||||
ret.stats.deprivationFood = this.modResult(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));
|
||||
|
|
@ -205,7 +205,10 @@ export class M5Character extends Actor {
|
|||
const aggregate = new M5ModAggregate(data, ret);
|
||||
|
||||
context.items
|
||||
?.filter((item) => (item.type === "item" || item.type === "effect" || item.type === "armor" || item.type === "container" || item.type === "class") && item.system.equipped)
|
||||
?.filter(
|
||||
(item) =>
|
||||
(item.type === "item" || item.type === "skill" || item.type === "effect" || item.type === "armor" || item.type === "container" || item.type === "class") && item.system.equipped
|
||||
)
|
||||
.forEach((item) => {
|
||||
const mods = item.system.mods;
|
||||
//console.log("Actor item mods", mods)
|
||||
|
|
@ -446,41 +449,7 @@ export class M5Character extends Actor {
|
|||
containerId: item.system.containerId || "",
|
||||
};
|
||||
});
|
||||
|
||||
//if (!skip?.encumbrance) {
|
||||
//const item = context.items.filter((x) => x.name === "Belastung");
|
||||
//if (item.length === 0) {
|
||||
// this.createEffect("Belastung", [
|
||||
// { id: "movement", operation: M5ModOperation.DIVISION, type: M5ModType.STAT, value: 2 },
|
||||
// { id: "attackBonus", operation: M5ModOperation.SUBTRACT, type: M5ModType.STAT, value: 4 },
|
||||
// { id: "defenseBonus", operation: M5ModOperation.SUBTRACT, type: M5ModType.STAT, value: 4 }
|
||||
// ]);
|
||||
//} else if (item.length === 2) {
|
||||
// item[1]?.delete();
|
||||
//}
|
||||
//
|
||||
//if (item.length === 1) {
|
||||
// item[0]?.update({
|
||||
// img: "icons/containers/bags/sack-simple-leather-orange.webp" });
|
||||
// }
|
||||
//
|
||||
//if (ret.stats.encumbrance <= ret.stats.heavyLoad) {
|
||||
// item[0]?.update({
|
||||
// data: {
|
||||
// equipped: false,
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
//
|
||||
//if (ret.stats.encumbrance > ret.stats.heavyLoad) {
|
||||
// item[0].update({
|
||||
// data: {
|
||||
// equipped: true,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
if (!skip?.class) {
|
||||
context.items
|
||||
|
|
@ -539,31 +508,6 @@ export class M5Character extends Actor {
|
|||
pp: item.system.pp,
|
||||
calc: item.system.calc,
|
||||
} as M5SkillCalculated;
|
||||
|
||||
// Adjust attribute Aussehen based on Athletik skill
|
||||
if (item.name === "Athletik") {
|
||||
ret.attributes.au.value += Math.floor(item.system.fw / 3);
|
||||
}
|
||||
|
||||
// Adjust stat Bewegungsweite based on Laufen skill
|
||||
if (item.name === "Laufen") {
|
||||
ret.stats.movement.value += Math.floor(item.system.fw / 3);
|
||||
}
|
||||
|
||||
// Adjust stat Kälte based on Überleben (Gebirge) skill
|
||||
if (item.name === "Überleben (Gebirge)") {
|
||||
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.deprivationHeat += Math.floor(item.system.fw * 5);
|
||||
}
|
||||
|
||||
// Adjust stat Durst & Hunger based on Robustheit skill
|
||||
if (item.name === "Robustheit") {
|
||||
ret.stats.deprivationFood += 10;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 }, 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);
|
||||
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);
|
||||
}
|
||||
|
||||
push(mod: M5ItemMod, source: string) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ export class M5Item extends Item {
|
|||
const character = actor as M5Character;
|
||||
const itemData = (this as any).system;
|
||||
const calc = itemData.calc;
|
||||
const name = (this as any).name;
|
||||
|
||||
if (itemType === "item") {
|
||||
calc.containers = null;
|
||||
|
|
@ -45,6 +46,29 @@ export class M5Item extends Item {
|
|||
},
|
||||
];
|
||||
|
||||
// Adjust attribute Aussehen based on Athletik skill
|
||||
if (name === "Athletik") {
|
||||
itemData.mods[0] = { type: "attribute", id: "au", operation: "add100", value: Math.floor(calc.fw / 3) };
|
||||
}
|
||||
// Adjust stat Bewegungsweite based on Laufen skill
|
||||
if (name === "Laufen") {
|
||||
itemData.mods[0] = { type: "stat", id: "movement", operation: "add", value: Math.floor(calc.fw / 3) };
|
||||
}
|
||||
|
||||
// Adjust stat Kälte based on Überleben (Gebirge) skill
|
||||
if (name === "Überleben (Gebirge)") {
|
||||
itemData.mods[0] = { type: "stat", id: "deprivationCold", operation: "add", value: Math.floor(calc.fw * 5) };
|
||||
}
|
||||
|
||||
// // Adjust stat Kälte based on Überleben (Steppe) skill
|
||||
if (name === "Überleben (Steppe)") {
|
||||
itemData.mods[0] = { type: "stat", id: "deprivationHeat", operation: "add", value: Math.floor(calc.fw * 5) };
|
||||
}
|
||||
// // Adjust stat Durst & Hunger based on Robustheit skill
|
||||
if (name === "Robustheit") {
|
||||
itemData.mods[0] = { type: "stat", id: "deprivationFood", operation: "add", value: Math.floor(calc.fw * 5) };
|
||||
}
|
||||
|
||||
if (character) {
|
||||
const actorCalc = character.derivedData({
|
||||
containers: true,
|
||||
|
|
|
|||
|
|
@ -88,7 +88,8 @@ export class M5Roll {
|
|||
});
|
||||
|
||||
this.data.res.label = this.label;
|
||||
if ((game as Game).settings.get("midgard5", "automatedPP")) {
|
||||
console.log(this.data);
|
||||
if ((game as Game).settings.get("midgard5", "automatedPP") && this.data.iType !== null) {
|
||||
if ((this.data.i.type === "language" || this.data.i.type === "general") && this.data.rolls[0].dice[0] >= 16) {
|
||||
this.actor.items.get(this.id).update({
|
||||
system: {
|
||||
|
|
@ -239,11 +240,11 @@ export class M5Roll {
|
|||
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.brawl"));
|
||||
}
|
||||
|
||||
static deprivationCold (actor: any) {
|
||||
static deprivationCold(actor: any) {
|
||||
const rollData = actor.getRollData() as M5RollData;
|
||||
|
||||
rollData.rolls["0"] = {
|
||||
formula: "@c.calc.stats.deprivationCold -1D100",
|
||||
formula: "@c.calc.stats.deprivationCold.value -1D100",
|
||||
enabled: true,
|
||||
label: (game as Game).i18n.localize("midgard5.deprivationCold"),
|
||||
result: "",
|
||||
|
|
@ -260,7 +261,7 @@ export class M5Roll {
|
|||
const rollData = actor.getRollData() as M5RollData;
|
||||
|
||||
rollData.rolls["0"] = {
|
||||
formula: "@c.calc.stats.deprivationHeat -1D100",
|
||||
formula: "@c.calc.stats.deprivationHeat.value -1D100",
|
||||
enabled: true,
|
||||
label: (game as Game).i18n.localize("midgard5.deprivationHeat"),
|
||||
result: "",
|
||||
|
|
@ -277,7 +278,7 @@ export class M5Roll {
|
|||
const rollData = actor.getRollData() as M5RollData;
|
||||
|
||||
rollData.rolls["0"] = {
|
||||
formula: "@c.calc.stats.deprivationFood -1D100",
|
||||
formula: "@c.calc.stats.deprivationFood.value -1D100",
|
||||
enabled: true,
|
||||
label: (game as Game).i18n.localize("midgard5.deprivationFood"),
|
||||
result: "",
|
||||
|
|
|
|||
|
|
@ -322,6 +322,7 @@
|
|||
"templates": ["itemDescription", "attributeSelection"],
|
||||
"fw": 0,
|
||||
"attribute": "st",
|
||||
"equipped": true,
|
||||
"skill": "",
|
||||
"type": "general",
|
||||
"rolls": {
|
||||
|
|
@ -335,7 +336,8 @@
|
|||
"output": ""
|
||||
},
|
||||
"pp": 0,
|
||||
"calc": {}
|
||||
"calc": {},
|
||||
"mods": {}
|
||||
},
|
||||
"item": {
|
||||
"templates": ["itemDescription", "equippable", "physical", "valuable", "hoarded"],
|
||||
|
|
|
|||
|
|
@ -103,19 +103,17 @@
|
|||
<td>{{localize "midgard5.resistanceBody"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td>
|
||||
</tr>
|
||||
<td>{{localize "midgard5.valuable"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.wealth}}</td>
|
||||
{{#if (eq data.info.race "Zwerg")}}
|
||||
|
||||
<td>{{localize "midgard5.hoard"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoard}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.hoardMin"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoardMin}}</td>
|
||||
<td>{{localize "midgard5.hoard-next"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.hoard"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoard}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.hoardMin"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoardMin}}</td>
|
||||
<td>{{localize "midgard5.hoard-next"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
<tr height = 10px></tr>
|
||||
</tbody>
|
||||
|
|
@ -130,20 +128,16 @@
|
|||
<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/consumables/food/plate-fish-bowl-bones-brown.webp" class="flexpart-icon"></td>
|
||||
<td class="padding highlight">{{localize "midgard5.deprivationFood"}}</td>
|
||||
<td class="center">{{data.calc.stats.deprivationFood.value}}</td>
|
||||
<td 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/fire/orb-lightning-sun.webp" class="flexpart-icon"></td>
|
||||
<td class="padding edit-item highlight">{{localize "midgard5.deprivationHeat"}}</td>
|
||||
<td class="padding 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="padding 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>
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
{{#each data.lernKostenZauber as |wert name|}}
|
||||
<span style="flex: 1 0 26%">
|
||||
<label for="data.lernKostenZauber.{{name}}">{{localize (m5concat "midgard5.spell-process-" name)}}</label>
|
||||
<input style="width:35px" name="data.lernKostenZauber.{{name}}.wert" type="number" value={{wert.kosten}} data-dtype="Number" />
|
||||
<input style="width:35px" name="data.lernKostenZauber.{{name}}.kosten" type="number" value={{wert.kosten}} data-dtype="Number" />
|
||||
</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue