Entbehrungen (#89)

Ich habe die Entbehrungswerte für Zähigkeit unter den Grundwerten abgelegt und werde die Tage noch Entbehrungseffekte und ein Macro in der Extension dafür anlegen. Die Boni für die Klassen wie zB Barbar +10 könnten wir dann da direkt mit in der jeweilige Klasse berücksichtigen. Grundsätzlich kann man das aber jetzt schonmal nutzen und der Grundwertebogen war mir zu leer ;) ![grafik](/attachments/fbb80a27-91d7-4b00-bd39-7c24af3bda60)

Co-authored-by: Byroks <byroks@gmail.com>
Reviewed-on: #89
Co-authored-by: LeFrique <lefrique@live.de>
Co-committed-by: LeFrique <lefrique@live.de>
This commit is contained in:
LeFrique 2024-03-24 20:02:24 +01:00 committed by Byroks
parent 046d5f0286
commit 7ac704cc61
14 changed files with 174 additions and 146 deletions

View File

@ -40,7 +40,7 @@
"midgard5.background": "Hintergrund", "midgard5.background": "Hintergrund",
"midgard5.attribute": "Eigenschaft", "midgard5.attribute": "Eigenschaft",
"midgard5.attributes": "Eigenschaften", "midgard5.attributes": "Eigenschaften",
"midgard5.points": "Punkte", "midgard5.points": "Erfahrung",
"midgard5.calculated-value": "Berechneter Wert", "midgard5.calculated-value": "Berechneter Wert",
"midgard5.calculated-values": "Werte und Boni", "midgard5.calculated-values": "Werte und Boni",
@ -131,7 +131,7 @@
"midgard5.heavy-load": "Schwere Last", "midgard5.heavy-load": "Schwere Last",
"midgard5.thrust-load": "Schublast", "midgard5.thrust-load": "Schublast",
"midgard5.load-max": "Höchstlast", "midgard5.load-max": "Höchstlast",
"midgard5.load-capacity": "Tragkraft", "midgard5.capacity": "Tragkraft",
"midgard5.exp-overall": "Erfahrungsschatz", "midgard5.exp-overall": "Erfahrungsschatz",
"midgard5.exp-available": "Erfahrungspunkte", "midgard5.exp-available": "Erfahrungspunkte",
@ -215,7 +215,9 @@
"midgard5.thaumagraphie": "Thaumagraphie", "midgard5.thaumagraphie": "Thaumagraphie",
"midgard5.thaumalogie": "Thaumalogie", "midgard5.thaumalogie": "Thaumalogie",
"midgard5.tierkunde": "Tierkunde", "midgard5.tierkunde": "Tierkunde",
"midgard5.ueberleben": "Überleben", "midgard5.ueberlebenWald": "Überleben (Wald)",
"midgard5.ueberlebenSteppe": "Überleben (Steppe)",
"midgard5.ueberlebenGebirge": "Überleben (Gebirge)",
"midgard5.verfuehren": "Verführen", "midgard5.verfuehren": "Verführen",
"midgard5.verhoeren": "Verhören", "midgard5.verhoeren": "Verhören",
"midgard5.verstellen": "Verstellen", "midgard5.verstellen": "Verstellen",
@ -243,8 +245,11 @@
"midgard5.enduranceBonus": "Ausdauerbonus", "midgard5.enduranceBonus": "Ausdauerbonus",
"midgard5.lpProtection": "Rüstungsschutz (LP)", "midgard5.lpProtection": "Rüstungsschutz (LP)",
"midgard5.apProtection": "Rüstungsschutz (AP)", "midgard5.apProtection": "Rüstungsschutz (AP)",
"midgard5.perception": "Wahrnehmung", "midgard5.deprivation": "Zähigkeit",
"midgard5.drinking": "Trinken", "midgard5.deprivations": "Entbehrungen",
"midgard5.deprivationCold": "Zähigkeit Kälte",
"midgard5.deprivationHeat": "Zähigkeit Hitze",
"midgard5.deprivationFood": "Zähigkeit Durst/Hunger",
"midgard5.new-skill": "Neue Fertigkeit", "midgard5.new-skill": "Neue Fertigkeit",
"midgard5.special": "Spezial", "midgard5.special": "Spezial",
@ -403,8 +408,9 @@
"midgard5.mod-stat-ap": "Ausdauerpunkte", "midgard5.mod-stat-ap": "Ausdauerpunkte",
"midgard5.mod-stat-lpProtection": "Rüstungsschutz (LP)", "midgard5.mod-stat-lpProtection": "Rüstungsschutz (LP)",
"midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)", "midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)",
"midgard5.mod-stat-perception": "Wahrnehmung", "midgard5.mod-stat-deprivationCold": "Entbehrungen Kälte",
"midgard5.mod-stat-drinking": "Trinken", "midgard5.mod-stat-deprivationHeat": "Entbehrungen Hitze",
"midgard5.mod-stat-deprivationFood": "Entbehrungen Durst/Hunger",
"midgard5.mod-type": "Typ der Modifikation", "midgard5.mod-type": "Typ der Modifikation",
"midgard5.mod-id": "Was soll modifiziert werden", "midgard5.mod-id": "Was soll modifiziert werden",

View File

@ -103,17 +103,9 @@ export enum M5Stats {
AP = "ap", AP = "ap",
PROTECTION_LP = "lpProtection", PROTECTION_LP = "lpProtection",
PROTECTION_AP = "apProtection", PROTECTION_AP = "apProtection",
PERCEPTION = "perception", DEPRIVATION_COLD = "deprivationCold",
DRINKING = "drinking", DEPRIVATION_HEAT = "deprivationHeat",
HOARD = "hoard", DEPRIVATION_FOOD = "deprivationFood",
HOARD_NEXT = "hoardNext",
HOARD_MIN = "hoardMin",
WEALTH = "wealth",
LOAD = "load",
HEAVY_LOAD = "heavyLoad",
LOAD_MAX = "loadMax",
THRUST_LOAD = "thrustLoad",
ENCUMBRANCE = "encumbrance",
} }
export enum M5ModType { export enum M5ModType {
@ -197,10 +189,9 @@ export interface M5CharacterCalculatedData {
brawlFw: number; brawlFw: number;
poisonResistance: M5ModResult; poisonResistance: M5ModResult;
enduranceBonus: number; enduranceBonus: number;
perception: M5ModResult; deprivationCold: M5ModResult;
perceptionFW: number; deprivationHeat: M5ModResult;
drinking: M5ModResult; deprivationFood: M5ModResult;
drinkingFW: number;
hoard: number; hoard: number;
hoardNext: number; hoardNext: number;
hoardMin: number; hoardMin: number;

View File

@ -114,10 +114,9 @@ export class M5Character extends Actor {
brawlFw: 0, brawlFw: 0,
poisonResistance: { value: 0, mods: [] }, poisonResistance: { value: 0, mods: [] },
enduranceBonus: 0, enduranceBonus: 0,
perception: { value: 0, mods: [] }, deprivationCold: { value: 0, mods: [] },
perceptionFW: 0, deprivationHeat: { value: 0, mods: [] },
drinking: { value: 0, mods: [] }, deprivationFood: { value: 0, mods: [] },
drinkingFW: 0,
hoard: 0, hoard: 0,
encumbrance: 0, encumbrance: 0,
load: 0, load: 0,
@ -189,10 +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.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.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.enduranceBonus = Math.floor(ret.attributes.ko.value / 10) + Math.floor(ret.attributes.st.value / 20);
ret.stats.perception = this.modResult(0); ret.stats.deprivationCold = this.modResult(Math.floor(ret.attributes.ko.value / 2));
ret.stats.perceptionFW = 6; ret.stats.deprivationHeat = this.modResult(Math.floor(ret.attributes.ko.value / 2));
ret.stats.drinking = this.modResult(0); ret.stats.deprivationFood = this.modResult(Math.floor(40 + ret.attributes.ko.value / 2));
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 = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3)); ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
@ -207,7 +205,10 @@ export class M5Character extends Actor {
const aggregate = new M5ModAggregate(data, ret); const aggregate = new M5ModAggregate(data, ret);
context.items 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) => { .forEach((item) => {
const mods = item.system.mods; const mods = item.system.mods;
//console.log("Actor item mods", mods) //console.log("Actor item mods", mods)
@ -250,6 +251,7 @@ export class M5Character extends Actor {
calc: item.system.calc, calc: item.system.calc,
equipped: item.system?.equipped, equipped: item.system?.equipped,
weight: item.system.weight || 0, weight: item.system.weight || 0,
capacity: item.system.capacity || 0,
value: item.system.value || 0, value: item.system.value || 0,
currency: item.system.currency || "", currency: item.system.currency || "",
quantity: item.system.quantity || 0, quantity: item.system.quantity || 0,
@ -447,41 +449,7 @@ export class M5Character extends Actor {
containerId: item.system.containerId || "", 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) { if (!skip?.class) {
context.items context.items
@ -540,16 +508,6 @@ export class M5Character extends Actor {
pp: item.system.pp, pp: item.system.pp,
calc: item.system.calc, calc: item.system.calc,
} as M5SkillCalculated; } 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);
}
}); });
} }

View File

@ -41,8 +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.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_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.PROTECTION_AP, operation: M5ModOperation.SET, value: calc.stats.apProtection.value }, characterString);
this.push({ type: M5ModType.STAT, id: M5Stats.PERCEPTION, operation: M5ModOperation.SET, value: calc.stats.perception.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.DRINKING, operation: M5ModOperation.SET, value: calc.stats.drinking.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) { push(mod: M5ItemMod, source: string) {

View File

@ -13,6 +13,7 @@ export class M5Item extends Item {
const character = actor as M5Character; const character = actor as M5Character;
const itemData = (this as any).system; const itemData = (this as any).system;
const calc = itemData.calc; const calc = itemData.calc;
const name = (this as any).name;
if (itemType === "item") { if (itemType === "item") {
calc.containers = null; 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) { if (character) {
const actorCalc = character.derivedData({ const actorCalc = character.derivedData({
containers: true, containers: true,

View File

@ -88,7 +88,8 @@ export class M5Roll {
}); });
this.data.res.label = this.label; 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) { 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({ this.actor.items.get(this.id).update({
system: { system: {
@ -239,13 +240,13 @@ export class M5Roll {
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.brawl")); return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.brawl"));
} }
static perception(actor: any) { static deprivationCold(actor: any) {
const rollData = actor.getRollData() as M5RollData; const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = { rollData.rolls["0"] = {
formula: "1d20 + @c.calc.stats.perception.value + @c.calc.stats.perceptionFW", formula: "@c.calc.stats.deprivationCold.value -1D100",
enabled: true, enabled: true,
label: (game as Game).i18n.localize("midgard5.perception"), label: (game as Game).i18n.localize("midgard5.deprivationCold"),
result: "", result: "",
total: 0, total: 0,
totalStr: "", totalStr: "",
@ -253,7 +254,41 @@ export class M5Roll {
css: "", css: "",
} as M5RollResult; } as M5RollResult;
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.perception")); return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.deprivationCold"));
}
static deprivationHeat(actor: any) {
const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = {
formula: "@c.calc.stats.deprivationHeat.value -1D100",
enabled: true,
label: (game as Game).i18n.localize("midgard5.deprivationHeat"),
result: "",
total: 0,
totalStr: "",
dice: {},
css: "",
} as M5RollResult;
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.deprivationHeat"));
}
static deprivationFood(actor: any) {
const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = {
formula: "@c.calc.stats.deprivationFood.value -1D100",
enabled: true,
label: (game as Game).i18n.localize("midgard5.deprivationFood"),
result: "",
total: 0,
totalStr: "",
dice: {},
css: "",
} as M5RollResult;
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.deprivationFood"));
} }
static cleanSpell(actor: any) { static cleanSpell(actor: any) {
@ -273,23 +308,6 @@ export class M5Roll {
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.spellCasting")); return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.spellCasting"));
} }
static drinking(actor: any) {
const rollData = actor.getRollData() as M5RollData;
rollData.rolls["0"] = {
formula: "1d20 + @c.calc.stats.drinking.value + @c.calc.stats.drinkingFW",
enabled: true,
label: (game as Game).i18n.localize("midgard5.drinking"),
result: "",
total: 0,
totalStr: "",
dice: {},
css: "",
} as M5RollResult;
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.drinking"));
}
static defense(actor: any) { static defense(actor: any) {
const rollData = actor.getRollData() as M5RollData; const rollData = actor.getRollData() as M5RollData;
rollData.i = { rollData.i = {

View File

@ -252,13 +252,18 @@ export default class M5CharacterSheet extends ActorSheet {
await roll.toMessage(); await roll.toMessage();
}); });
html.find(".roll-perception-button").on("click", async (event) => { html.find(".roll-deprivationCold-button").on("click", async (event) => {
const roll = M5Roll.perception(this.actor); const roll = M5Roll.deprivationCold(this.actor);
await roll.toMessage(); await roll.toMessage();
}); });
html.find(".roll-drinking-button").on("click", async (event) => { html.find(".roll-deprivationHeat-button").on("click", async (event) => {
const roll = M5Roll.drinking(this.actor); const roll = M5Roll.deprivationHeat(this.actor);
await roll.toMessage();
});
html.find(".roll-deprivationFood-button").on("click", async (event) => {
const roll = M5Roll.deprivationFood(this.actor);
await roll.toMessage(); await roll.toMessage();
}); });

View File

@ -135,7 +135,9 @@
"tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 }, "tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
"tanzen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 }, "tanzen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
"tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, "tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
"ueberleben": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 }, "ueberlebenWald": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
"ueberlebenSteppe": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
"ueberlebenGebirge": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
"verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, "verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
"verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, "verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
"verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, "verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
@ -220,6 +222,7 @@
"physical": { "physical": {
"value": 0, "value": 0,
"weight": 0, "weight": 0,
"capacity": 0,
"containerId": "", "containerId": "",
"magic": false "magic": false
}, },
@ -319,6 +322,7 @@
"templates": ["itemDescription", "attributeSelection"], "templates": ["itemDescription", "attributeSelection"],
"fw": 0, "fw": 0,
"attribute": "st", "attribute": "st",
"equipped": true,
"skill": "", "skill": "",
"type": "general", "type": "general",
"rolls": { "rolls": {
@ -332,7 +336,8 @@
"output": "" "output": ""
}, },
"pp": 0, "pp": 0,
"calc": {} "calc": {},
"mods": {}
}, },
"item": { "item": {
"templates": ["itemDescription", "equippable", "physical", "valuable", "hoarded"], "templates": ["itemDescription", "equippable", "physical", "valuable", "hoarded"],

View File

@ -46,8 +46,8 @@
<tr> <tr>
<td>{{localize "midgard5.luckPoints"}}</td> <td>{{localize "midgard5.luckPoints"}}</td>
<td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td> <td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td>
<td></td> <td>{{localize "midgard5.valuable"}}</td>
<td></td> <td class="fixed-value">{{data.calc.stats.wealth}}</td>
</tr> </tr>
<tr height = 10px></tr> <tr height = 10px></tr>
</tbody> </tbody>
@ -104,23 +104,43 @@
<td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td> <td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td>
</tr> </tr>
{{#if (eq data.info.race "Zwerg")}} {{#if (eq data.info.race "Zwerg")}}
<tr> <tr>
<td>{{localize "midgard5.hoard"}}</td> <td>{{localize "midgard5.hoard"}}</td>
<td class="fixed-value">{{data.calc.stats.hoard}}</td> <td class="fixed-value">{{data.calc.stats.hoard}}</td>
<td></td> </tr>
<td></td> <tr>
</tr> <td>{{localize "midgard5.hoardMin"}}</td>
<tr> <td class="fixed-value">{{data.calc.stats.hoardMin}}</td>
<td>{{localize "midgard5.hoardMin"}}</td> <td>{{localize "midgard5.hoard-next"}}</td>
<td class="fixed-value">{{data.calc.stats.hoardMin}}</td> <td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
<td>{{localize "midgard5.hoard-next"}}</td> </tr>
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
</tr>
{{/if}} {{/if}}
<tr height = 10px></tr> <tr height = 10px></tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</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/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 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/magic/water/snowflake-ice-blue.webp" class="flexpart-icon"></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>
</table>
</div>
</div>

View File

@ -48,9 +48,9 @@
<tr height = 10px></tr> <tr height = 10px></tr>
<tr> <tr>
<td class="fixed-value"><input type="number" disabled="true" name="data.info.load" value="{{data.calc.stats.load}}"></td> <td class="fixed-value"><input type="number" disabled="true" name="data.info.load" value="{{data.calc.stats.load}}"></td>
<td class="fixed-value"><input type="number" disabled="true" {{#if (gte data.calc.stats.encumbrance data.calc.stats.heavyLoad) }}style="background:#FF6666"{{/if}} name="data.info.heavyLoad" value="{{data.calc.stats.heavyLoad}}"></td> <td class="fixed-value"><input type="number" disabled="true" {{#if (gt data.calc.stats.encumbrance data.calc.stats.heavyLoad) }}style="background:#FF6666"{{/if}} name="data.info.heavyLoad" value="{{data.calc.stats.heavyLoad}}"></td>
<td class="fixed-value"><input type="number" disabled="true" {{#if (gte data.calc.stats.encumbrance data.calc.stats.loadMax) }}style="background:#FF6666"{{/if}} name="data.info.loadMax" value="{{data.calc.stats.loadMax}}"></td> <td class="fixed-value"><input type="number" disabled="true" {{#if (gt data.calc.stats.encumbrance data.calc.stats.loadMax) }}style="background:#FF6666"{{/if}} name="data.info.loadMax" value="{{data.calc.stats.loadMax}}"></td>
<td class="fixed-value"><input type="number" disabled="true" {{#if (gte data.calc.stats.encumbrance data.calc.stats.thrustLoad) }}style="background:#FF6666"{{/if}} name="data.info.thrustLoad" value="{{data.calc.stats.thrustLoad}}"></td> <td class="fixed-value"><input type="number" disabled="true" {{#if (gt data.calc.stats.encumbrance data.calc.stats.thrustLoad) }}style="background:#FF6666"{{/if}} name="data.info.thrustLoad" value="{{data.calc.stats.thrustLoad}}"></td>
<td class="fixed-value"><input type="number" disabled="true" name="data.info.encumbrance" value="{{data.calc.stats.encumbrance}}"></td> <td class="fixed-value"><input type="number" disabled="true" name="data.info.encumbrance" value="{{data.calc.stats.encumbrance}}"></td>
</tr> </tr>
</tfoot> </tfoot>
@ -231,6 +231,7 @@
<th class="title">{{localize "TYPES.Item.container"}}</th> <th class="title">{{localize "TYPES.Item.container"}}</th>
<th class="title center">{{localize "midgard5.item-value"}}</th> <th class="title center">{{localize "midgard5.item-value"}}</th>
<th class="title center">{{localize "midgard5.item-weight"}}</th> <th class="title center">{{localize "midgard5.item-weight"}}</th>
<th class="title center">{{localize "midgard5.capacity"}}</th>
<th class="title center"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th> <th class="title center"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th> <th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
<td><a class="title add-container"><i class="fa-regular fa-plus"></i></a></th> <td><a class="title add-container"><i class="fa-regular fa-plus"></i></a></th>
@ -254,6 +255,11 @@
<span class="spell-process">{{item.weight}} kg</span> <span class="spell-process">{{item.weight}} kg</span>
{{/unless}} {{/unless}}
</td> </td>
<td style="text-align: start">
{{#unless (eq item.capacity "")}}
<span class="spell-process">{{item.capacity}} kg</span>
{{/unless}}
</td>
<td class="change-equipped"> <td class="change-equipped">
{{#if item.equipped}} {{#if item.equipped}}
<i class="fa-solid fa-circle-check"></i> <i class="fa-solid fa-circle-check"></i>

View File

@ -27,24 +27,6 @@
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td> <td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr> </tr>
{{/each}} {{/each}}
<tr data-item-id="{{itemId}}">
<td class="flexpart-img"><img src="icons/skills/toxins/cup-goblet-poisoned-spilled.webp" class="flexpart-icon"></td>
<td class="padding edit-item">{{localize "midgard5.drinking"}}</td>
<td class="fixed-value">{{data.calc.stats.drinkingFW}}</td>
<td class="fixed-value">{{data.calc.stats.drinking.value}}</td>
<td class="fixed-value">{{add data.calc.stats.drinking.value data.calc.stats.drinkingFW}}</td>
<td><button class="roll-button roll-drinking-button"></button></td>
<td class="fixed-value"></td>
</tr>
<tr data-item-id="{{itemId}}">
<td class="flexpart-img"><img src="icons/magic/perception/eye-ringed-green.webp" class="flexpart-icon"></td>
<td class="padding edit-item">{{localize "midgard5.perception"}}</td>
<td class="fixed-value">{{data.calc.stats.perceptionFW}}</td>
<td class="fixed-value">{{data.calc.stats.perception.value}}</td>
<td class="fixed-value">{{add data.calc.stats.perception.value data.calc.stats.perceptionFW}}</td>
<td><button class="roll-button roll-perception-button"></button></td>
<td class="fixed-value"></td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -72,8 +72,8 @@
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td> <td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr> </tr>
{{/each}} {{/each}}
</tbody> </table> </tbody>
</table>
</div> </div>
</div> </div>
</div> </div>

View File

@ -89,7 +89,7 @@
{{#each data.lernKostenZauber as |wert name|}} {{#each data.lernKostenZauber as |wert name|}}
<span style="flex: 1 0 26%"> <span style="flex: 1 0 26%">
<label for="data.lernKostenZauber.{{name}}">{{localize (m5concat "midgard5.spell-process-" name)}}</label> <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> </span>
{{/each}} {{/each}}
</div> </div>

View File

@ -26,6 +26,12 @@
<input id="data.quantity" type="number" name="data.quantity" value="{{data.quantity}}"> <input id="data.quantity" type="number" name="data.quantity" value="{{data.quantity}}">
</div> </div>
</td> </td>
<td>
<div class="flexrow">
<span>{{localize "midgard5.capacity"}}</span>
<input id="data.capacity" type="number" name="data.capacity" value="{{data.capacity}}">
</div>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -42,6 +48,12 @@
</select> </select>
</div> </div>
</td> </td>
<td>
<div class="flexrow">
<span>{{localize "midgard5.item-weight"}}</span>
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
</div>
</td>
</tr> </tr>
</table> </table>