Compare commits
11 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
4a9afcf150 | |
|
|
6a90581c4e | |
|
|
7c7ba3679b | |
|
|
28e960dbf1 | |
|
|
e1c27bb3f1 | |
|
|
f06fbb2687 | |
|
|
c5ce058f44 | |
|
|
32bf1ba747 | |
|
|
38f1c90c09 | |
|
|
1852f2bf08 | |
|
|
918b32fda0 |
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"TYPES.Actor.character": "Charakter",
|
"TYPES.Actor.character": "Charakter",
|
||||||
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
|
"TYPES.Actor.npc": "Kreatur / Nichtspielerfigur",
|
||||||
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
||||||
|
|
||||||
"TYPES.Item.item": "Gegenstand",
|
"TYPES.Item.item": "Gegenstand",
|
||||||
|
|
@ -156,6 +156,10 @@
|
||||||
"beredsamkeit": "Beredsamkeit",
|
"beredsamkeit": "Beredsamkeit",
|
||||||
"betaeuben": "Betäuben",
|
"betaeuben": "Betäuben",
|
||||||
"betaeubungsgriff": "Betäubungsgriff",
|
"betaeubungsgriff": "Betäubungsgriff",
|
||||||
|
"bildendeKuensteA": "Bildende Künste (Architektur)",
|
||||||
|
"bildendeKuensteB": "Bildende Künste (Bildhauerei)",
|
||||||
|
"bildendeKuensteG": "Bildende Künste (Grafik)",
|
||||||
|
"bildendeKuensteM": "Bildende Künste (Malerei)",
|
||||||
"bootfahren": "Bootfahren",
|
"bootfahren": "Bootfahren",
|
||||||
"dickhaeuterLenken": "Dickhäuter lenken",
|
"dickhaeuterLenken": "Dickhäuter lenken",
|
||||||
"ersteHilfe": "Erste Hilfe",
|
"ersteHilfe": "Erste Hilfe",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foundry-system-midgard5",
|
"name": "foundry-system-midgard5",
|
||||||
"version": "2.6.0",
|
"version": "2.7.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -152,6 +152,7 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
||||||
|
|
||||||
|
//Set all values that are not dependent on another Value
|
||||||
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
||||||
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
||||||
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
||||||
|
|
@ -176,11 +177,37 @@ export class M5Character extends Actor {
|
||||||
ret.stats.ap = this.modResult(data.ap);
|
ret.stats.ap = this.modResult(data.ap);
|
||||||
ret.stats.lpProtection = this.modResult(0);
|
ret.stats.lpProtection = this.modResult(0);
|
||||||
ret.stats.apProtection = this.modResult(0);
|
ret.stats.apProtection = this.modResult(0);
|
||||||
|
ret.stats.movement = this.modResult(data.movement);
|
||||||
|
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(10));
|
||||||
|
ret.stats.hoard = 0;
|
||||||
|
ret.stats.encumbrance = 0;
|
||||||
|
|
||||||
|
if (!skip?.mods) {
|
||||||
|
const aggregate = new M5ModAggregate(data, ret);
|
||||||
|
|
||||||
|
context.items
|
||||||
|
?.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)
|
||||||
|
Object.keys(mods).forEach((modIndex) => {
|
||||||
|
const mod = mods[modIndex] as M5ItemMod;
|
||||||
|
aggregate.push(mod, item.name);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
ret.skillMods = aggregate.calculate();
|
||||||
|
}
|
||||||
|
|
||||||
ret.stats.defense = this.modResult(M5Character.defenseFromLevel(ret.level));
|
ret.stats.defense = this.modResult(M5Character.defenseFromLevel(ret.level));
|
||||||
ret.stats.damageBonus = this.modResult(Math.floor(ret.attributes.st.value / 20) + Math.floor(ret.attributes.gs.value / 30) - 3);
|
ret.stats.damageBonus = this.modResult(Math.floor(ret.attributes.st.value / 20) + Math.floor(ret.attributes.gs.value / 30) - 3);
|
||||||
ret.stats.attackBonus = this.modResult(ret.attributes.gs.bonus);
|
ret.stats.attackBonus = this.modResult(ret.attributes.gs.bonus);
|
||||||
ret.stats.defenseBonus = this.modResult(ret.attributes.gw.bonus);
|
ret.stats.defenseBonus = this.modResult(ret.attributes.gw.bonus);
|
||||||
ret.stats.movement = this.modResult(data.movement);
|
|
||||||
ret.stats.resistanceMind = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.in.bonus : this.raceBonus(data.info.race)));
|
ret.stats.resistanceMind = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.in.bonus : this.raceBonus(data.info.race)));
|
||||||
ret.stats.resistanceBody = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race)));
|
ret.stats.resistanceBody = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race)));
|
||||||
ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);
|
ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);
|
||||||
|
|
@ -191,15 +218,10 @@ export class M5Character extends Actor {
|
||||||
ret.stats.deprivationCold = this.modResult(Math.floor(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.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.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));
|
|
||||||
ret.stats.hoard = 0;
|
|
||||||
ret.stats.load = M5Character.loadValue(data.attributes.st);
|
ret.stats.load = M5Character.loadValue(data.attributes.st);
|
||||||
ret.stats.heavyLoad = M5Character.heavyLoadValue(data.attributes.st);
|
ret.stats.heavyLoad = M5Character.heavyLoadValue(data.attributes.st);
|
||||||
ret.stats.loadMax = M5Character.maxLoadValue(data.attributes.st);
|
ret.stats.loadMax = M5Character.maxLoadValue(data.attributes.st);
|
||||||
ret.stats.thrustLoad = M5Character.thrustLoadValue(data.attributes.st);
|
ret.stats.thrustLoad = M5Character.thrustLoadValue(data.attributes.st);
|
||||||
ret.stats.encumbrance = 0;
|
|
||||||
|
|
||||||
if (!skip?.mods) {
|
if (!skip?.mods) {
|
||||||
const aggregate = new M5ModAggregate(data, ret);
|
const aggregate = new M5ModAggregate(data, ret);
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,12 @@ export class M5Roll {
|
||||||
public _total: number = 0;
|
public _total: number = 0;
|
||||||
public pool: PoolTerm = null;
|
public pool: PoolTerm = null;
|
||||||
|
|
||||||
constructor(public data: M5RollData, public actor: any, public label: string, public id?: string) {
|
constructor(
|
||||||
|
public data: M5RollData,
|
||||||
|
public actor: any,
|
||||||
|
public label: string,
|
||||||
|
public id?: string
|
||||||
|
) {
|
||||||
//super(null)
|
//super(null)
|
||||||
//this.data = rollData
|
//this.data = rollData
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +31,7 @@ export class M5Roll {
|
||||||
.map((rollName, index) => {
|
.map((rollName, index) => {
|
||||||
indexMap.set(index, rollName);
|
indexMap.set(index, rollName);
|
||||||
const formula = this.data.rolls[rollName];
|
const formula = this.data.rolls[rollName];
|
||||||
formula.formula = index === 0 && this.id !== "-1" ? formula.formula.replace(/(\d*d\d*)/, `{$1 + ${this.data.b.modifier}}`) : formula.formula;
|
formula.formula = index === 0 && this.id !== "-1" ? formula.formula + `+ ${this.data.b.modifier}` : formula.formula;
|
||||||
const roll = new Roll(formula.formula, this.data);
|
const roll = new Roll(formula.formula, this.data);
|
||||||
return roll;
|
return roll;
|
||||||
});
|
});
|
||||||
|
|
@ -90,6 +95,7 @@ export class M5Roll {
|
||||||
this.data.res.label = this.label;
|
this.data.res.label = this.label;
|
||||||
if ((game as Game).settings.get("midgard5", "automatedPP") && this.data.iType !== null) {
|
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) {
|
||||||
|
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
|
||||||
this.actor.items.get(this.id).update({
|
this.actor.items.get(this.id).update({
|
||||||
system: {
|
system: {
|
||||||
pp: this.data.i.pp + 1,
|
pp: this.data.i.pp + 1,
|
||||||
|
|
@ -97,6 +103,7 @@ export class M5Roll {
|
||||||
});
|
});
|
||||||
} else if (this.data.rolls[0].dice[0] === 20) {
|
} else if (this.data.rolls[0].dice[0] === 20) {
|
||||||
if (this.data.i.type === "combat") {
|
if (this.data.i.type === "combat") {
|
||||||
|
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
|
||||||
// Rolling through skill
|
// Rolling through skill
|
||||||
this.actor.items.get(this.id).update({
|
this.actor.items.get(this.id).update({
|
||||||
system: {
|
system: {
|
||||||
|
|
@ -104,6 +111,7 @@ export class M5Roll {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else if (this.data.iType === "weapon") {
|
} else if (this.data.iType === "weapon") {
|
||||||
|
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
|
||||||
// Rolling through Weapon Item
|
// Rolling through Weapon Item
|
||||||
const skill = this.actor.items.get(this.data.i.skillId);
|
const skill = this.actor.items.get(this.data.i.skillId);
|
||||||
skill.update({
|
skill.update({
|
||||||
|
|
@ -112,6 +120,7 @@ export class M5Roll {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else if (this.data.iType === "defensiveWeapon") {
|
} else if (this.data.iType === "defensiveWeapon") {
|
||||||
|
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
|
||||||
// Rolling through defensiveWeapon Item
|
// Rolling through defensiveWeapon Item
|
||||||
const skill = this.actor.items.get(this.data.i.skillId);
|
const skill = this.actor.items.get(this.data.i.skillId);
|
||||||
skill.update({
|
skill.update({
|
||||||
|
|
@ -120,6 +129,7 @@ export class M5Roll {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else if (this.data.iType === "spell") {
|
} else if (this.data.iType === "spell") {
|
||||||
|
ui.notifications.notify(`Praxispunkt eingetragen für ${this.data.i.process}`);
|
||||||
// Rolling through Spell Item
|
// Rolling through Spell Item
|
||||||
const klasse = this.actor.items.find((x) => x.type === "class" && x.system.equipped);
|
const klasse = this.actor.items.find((x) => x.type === "class" && x.system.equipped);
|
||||||
klasse.update({
|
klasse.update({
|
||||||
|
|
@ -145,14 +155,14 @@ export class M5Roll {
|
||||||
async toMessage(toggleAutomatedRoll = false) {
|
async toMessage(toggleAutomatedRoll = false) {
|
||||||
let automatedRoll = (game as Game).settings.get("midgard5", "automatedRoll");
|
let automatedRoll = (game as Game).settings.get("midgard5", "automatedRoll");
|
||||||
automatedRoll = toggleAutomatedRoll ? !automatedRoll : automatedRoll;
|
automatedRoll = toggleAutomatedRoll ? !automatedRoll : automatedRoll;
|
||||||
const rMode = (game as Game).settings.get("core", "rollMode");
|
let rMode = (game as Game).settings.get("core", "rollMode");
|
||||||
|
|
||||||
if (!automatedRoll) {
|
if (!automatedRoll) {
|
||||||
let checkOptions = await this.popUp({ isPW: this.data.rolls[0].label === (game as Game).i18n.localize("midgard5.pw") });
|
let checkOptions = await this.popUp({ isPW: this.data.rolls[0].label === (game as Game).i18n.localize("midgard5.pw") });
|
||||||
if (checkOptions["cancelled"]) {
|
if (checkOptions["cancelled"]) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
const rMode = checkOptions["rollMode"];
|
rMode = checkOptions["rollMode"];
|
||||||
this.data.b = checkOptions;
|
this.data.b = checkOptions;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -212,7 +222,7 @@ export class M5Roll {
|
||||||
rollData.rolls["0"] = {
|
rollData.rolls["0"] = {
|
||||||
formula: "1d20 + @i.fw + @i.bonus",
|
formula: "1d20 + @i.fw + @i.bonus",
|
||||||
enabled: true,
|
enabled: true,
|
||||||
label: (game as Game).i18n.localize("midgard5.pw"),
|
label: (game as Game).i18n.localize("midgard5.ew"),
|
||||||
result: "",
|
result: "",
|
||||||
total: 0,
|
total: 0,
|
||||||
totalStr: "",
|
totalStr: "",
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"name": "midgard5",
|
"name": "midgard5",
|
||||||
"title": "Midgard 5. Edition",
|
"title": "Midgard 5. Edition",
|
||||||
"description": "The German RPG Midgard 5. Edition",
|
"description": "The German RPG Midgard 5. Edition",
|
||||||
"version": "2.6.0",
|
"version": "2.7.2",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "10",
|
||||||
"verified": "11",
|
"verified": "11",
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,10 @@
|
||||||
"bergreiten": { "fw": 0, "attribute": "gw", "initial": 12, "pp": 0 },
|
"bergreiten": { "fw": 0, "attribute": "gw", "initial": 12, "pp": 0 },
|
||||||
"betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
|
"betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"betaeubungsgriff": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
"betaeubungsgriff": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
|
"bildendeKuensteA": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"bildendeKuensteB": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"bildendeKuensteG": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"bildendeKuensteM": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
"bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
|
"bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"dickhaeuterLenken": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
"dickhaeuterLenken": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
"ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<td>{{localize "midgard5.grace"}}</td>
|
<td>{{localize "midgard5.grace"}}</td>
|
||||||
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
||||||
<td>{{localize "midgard5.exp-overall"}}</td>
|
<td>{{localize "midgard5.exp-overall"}}</td>
|
||||||
<td><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
<td width="40%"><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.destiny"}}</td>
|
<td>{{localize "midgard5.destiny"}}</td>
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,8 @@
|
||||||
|
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
|
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
|
||||||
|
<input id="data.info.showUnlearned" class="checkbox" type="checkbox" name="data.info.showUnlearned" {{checked data.info.showUnlearned}} style="float: right;">
|
||||||
|
<label for="data.info.showUnlearned" style="font-size: small; font-weight: normal; font-style: italic; float: right;">{{localize "midgard5.showUnlearned"}} </label>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -154,6 +156,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
{{#unless (not data.info.showUnlearned)}}
|
||||||
{{#each data.skills.general as |skill key|}}
|
{{#each data.skills.general as |skill key|}}
|
||||||
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||||
<tr data-skill="{{key}}">
|
<tr data-skill="{{key}}">
|
||||||
|
|
@ -166,6 +169,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
{{/unless}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if (eq data.types.actor)}}
|
|
||||||
<div class="flexcolumn-1">
|
<div class="flexcolumn-1">
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header">{{localize "midgard5.pp"}} {{localize "midgard5.spells"}}</div>
|
<div class="flexpart-header">{{localize "midgard5.pp"}} {{localize "midgard5.spells"}}</div>
|
||||||
|
|
@ -88,6 +87,7 @@
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
|
|
||||||
{{#each data.lernKostenZauber as |group name|}}
|
{{#each data.lernKostenZauber as |group name|}}
|
||||||
|
{{#unless (eq group.kosten 0)}}
|
||||||
<span data-pp-name="{{name}}" class="pp-listing">
|
<span data-pp-name="{{name}}" class="pp-listing">
|
||||||
<label for="data.lernKostenZauber.{{name}}">{{localize (m5concat "midgard5.spell-process-" name)}}</label>
|
<label for="data.lernKostenZauber.{{name}}">{{localize (m5concat "midgard5.spell-process-" name)}}</label>
|
||||||
<span >
|
<span >
|
||||||
|
|
@ -96,6 +96,7 @@
|
||||||
<i class="fa fa-plus-circle pp-increase" style="cursor: pointer"></i>
|
<i class="fa fa-plus-circle pp-increase" style="cursor: pointer"></i>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
|
{{/unless}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -104,5 +105,4 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -34,16 +34,16 @@
|
||||||
|
|
||||||
<table style="width: 100%;">
|
<table style="width: 100%;">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="st" data-value="{{data.attributes.st.value}}">{{data.attributes.st.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="st" data-value="{{data.calc.attributes.st.value}}">{{data.calc.attributes.st.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="gs" data-value="{{data.attributes.gs.value}}">{{data.attributes.gs.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="gs" data-value="{{data.calc.attributes.gs.value}}">{{data.calc.attributes.gs.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="gw" data-value="{{data.attributes.gw.value}}">{{data.attributes.gw.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="gw" data-value="{{data.calc.attributes.gw.value}}">{{data.calc.attributes.gw.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="ko" data-value="{{data.attributes.ko.value}}">{{data.attributes.ko.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="ko" data-value="{{data.calc.attributes.ko.value}}">{{data.calc.attributes.ko.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="in" data-value="{{data.attributes.in.value}}">{{data.attributes.in.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="in" data-value="{{data.calc.attributes.in.value}}">{{data.calc.attributes.in.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="zt" data-value="{{data.attributes.zt.value}}">{{data.attributes.zt.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="zt" data-value="{{data.calc.attributes.zt.value}}">{{data.calc.attributes.zt.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="au" data-value="{{data.attributes.au.value}}">{{data.attributes.au.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="au" data-value="{{data.calc.attributes.au.value}}">{{data.calc.attributes.au.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="pa" data-value="{{data.attributes.pa.value}}">{{data.attributes.pa.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="pa" data-value="{{data.calc.attributes.pa.value}}">{{data.calc.attributes.pa.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="wk" data-value="{{data.attributes.wk.value}}">{{data.attributes.wk.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="wk" data-value="{{data.calc.attributes.wk.value}}">{{data.calc.attributes.wk.value}}</td>
|
||||||
<td class="attribute-value roll-attribute-button" data-attribute="git" data-value="{{data.attributes.git.value}}">{{data.attributes.git.value}}</td>
|
<td class="attribute-value roll-attribute-button" data-attribute="git" data-value="{{data.calc.stats.poisonResistance.value}}">{{data.calc.stats.poisonResistance.value}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
|
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="git" attribute=data.attributes.git}}
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="git" attribute=data.attributes.git}}
|
||||||
<div class="sheet-npc">
|
<div class="sheet-npc">
|
||||||
<div class="attribute-header">{{localize "midgard5.movementRange"}}</div>
|
<div class="attribute-header">{{localize "midgard5.movementRange"}}</div>
|
||||||
<div class="attribute-value"><input name="data.movement" type="text" value="{{data.calc.stats.movement.mods.0.value}}" data-dtype="Number" /></div>
|
<div class="attribute-value"><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sheet-npc">
|
<div class="sheet-npc">
|
||||||
<div class="attribute-header">{{localize "midgard5.exp-overall"}}</div>
|
<div class="attribute-header">{{localize "midgard5.exp-overall"}}</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue