Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64fd95c814 | ||
|
|
976cd83a04 | ||
|
|
aef48dd46b | ||
|
|
3ecd2c6c1e | ||
|
|
37d6ba12e7 | ||
|
|
5a1e11d0d7 | ||
|
|
c5e5ba199b | ||
|
|
08e767afcb |
+3
-3
@@ -473,8 +473,8 @@ const updateManifest = (cb: any) => {
|
|||||||
const result = `${repoURL}/releases/download`;
|
const result = `${repoURL}/releases/download`;
|
||||||
|
|
||||||
manifest.file.url = repoURL;
|
manifest.file.url = repoURL;
|
||||||
manifest.file.manifest = `${result}/v${manifest.file.version}/${manifest.name}`;
|
manifest.file.manifest = `${result}/latest/${manifest.name}?token=2455375115b92bc8d87c93df7159eec232456f2d`;
|
||||||
manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip`;
|
manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip?token=2455375115b92bc8d87c93df7159eec232456f2d`;
|
||||||
|
|
||||||
const prettyProjectJson = stringify(manifest.file, {
|
const prettyProjectJson = stringify(manifest.file, {
|
||||||
maxLength: 35,
|
maxLength: 35,
|
||||||
@@ -504,7 +504,7 @@ const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
|
|||||||
if (!manifest) return cb(Error("could not load manifest."));
|
if (!manifest) return cb(Error("could not load manifest."));
|
||||||
|
|
||||||
return gulp
|
return gulp
|
||||||
.src(`${manifest.file.name}-v${manifest.file.version}.zip`)
|
.src(`${manifest.file.name}.zip`)
|
||||||
.pipe(git.checkout(`v${manifest.file.version}`, { args: "-b" }))
|
.pipe(git.checkout(`v${manifest.file.version}`, { args: "-b" }))
|
||||||
.pipe(git.add({ args: "--no-all -f" }))
|
.pipe(git.add({ args: "--no-all -f" }))
|
||||||
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
|
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
|
||||||
|
|||||||
+24
-6
@@ -16,10 +16,18 @@
|
|||||||
|
|
||||||
"midgard5": {
|
"midgard5": {
|
||||||
"phase-action": "Handlungsphase",
|
"phase-action": "Handlungsphase",
|
||||||
|
"actionThisTurn": "Handlung",
|
||||||
"phase-movement": "Bewegungsphase",
|
"phase-movement": "Bewegungsphase",
|
||||||
"no-encounter": "Kein Kampf",
|
"no-encounter": "Kein Kampf",
|
||||||
"encounter-not-started": "Kein aktiver Kampf",
|
"encounter-not-started": "Kein aktiver Kampf",
|
||||||
"initiative": "Initiative",
|
"initiative": "Initiative",
|
||||||
|
"initiativeRoll": "Initiative würfeln",
|
||||||
|
"unableToAct": "Handlungsunfähig",
|
||||||
|
"unablesToAct": "Macht handlungsunfähig",
|
||||||
|
"continue": "Weiter",
|
||||||
|
"endTurn": "Zug beenden",
|
||||||
|
"group": "Gruppe",
|
||||||
|
"leader": "Anführer",
|
||||||
"actionrank": "Handlungsrang",
|
"actionrank": "Handlungsrang",
|
||||||
|
|
||||||
"combat-join": "Kampf Beitreten/Handlungsrang zurücksetzen",
|
"combat-join": "Kampf Beitreten/Handlungsrang zurücksetzen",
|
||||||
@@ -61,6 +69,8 @@
|
|||||||
"item-ismagic": "Ist Magisch",
|
"item-ismagic": "Ist Magisch",
|
||||||
"item-wealth": "Vermögenswert",
|
"item-wealth": "Vermögenswert",
|
||||||
"item-weight": "Gewicht",
|
"item-weight": "Gewicht",
|
||||||
|
"item-abw": "ABW",
|
||||||
|
"item-abw-long": "Ausbrennwahrscheinlichkeit",
|
||||||
|
|
||||||
"actor-lp": "Lebenspunkte",
|
"actor-lp": "Lebenspunkte",
|
||||||
"actor-lp-short": "LP",
|
"actor-lp-short": "LP",
|
||||||
@@ -91,6 +101,7 @@
|
|||||||
"maximum": "Max.",
|
"maximum": "Max.",
|
||||||
"attrvalue": "Wert",
|
"attrvalue": "Wert",
|
||||||
"movementRange": "Bewegungsweite",
|
"movementRange": "Bewegungsweite",
|
||||||
|
"movedThisTurn": "Bewegt",
|
||||||
|
|
||||||
"base_values": "Grundwerte",
|
"base_values": "Grundwerte",
|
||||||
"skills": "Fertigkeiten",
|
"skills": "Fertigkeiten",
|
||||||
@@ -133,7 +144,7 @@
|
|||||||
"heavy-load": "Schwere Last",
|
"heavy-load": "Schwere Last",
|
||||||
"thrust-load": "Schublast",
|
"thrust-load": "Schublast",
|
||||||
"load-max": "Höchstlast",
|
"load-max": "Höchstlast",
|
||||||
"load-capacity": "Tragkraft",
|
"capacity": "Tragkraft",
|
||||||
|
|
||||||
"exp-overall": "Erfahrungsschatz",
|
"exp-overall": "Erfahrungsschatz",
|
||||||
"exp-available": "Erfahrungspunkte",
|
"exp-available": "Erfahrungspunkte",
|
||||||
@@ -274,13 +285,14 @@
|
|||||||
"defensive-weapon": "Verteidigungswaffe",
|
"defensive-weapon": "Verteidigungswaffe",
|
||||||
"defensive-weapons": "Verteidigungswaffen",
|
"defensive-weapons": "Verteidigungswaffen",
|
||||||
"no-skill": "Keine Fertigkeit",
|
"no-skill": "Keine Fertigkeit",
|
||||||
"magic": "magisch",
|
"magic": "Magisch",
|
||||||
"valuable": "Vermögen",
|
"valuable": "Vermögen",
|
||||||
"equipped": "Ausgerüstet",
|
"equipped": "Ausgerüstet",
|
||||||
"active": "Aktiv",
|
"active": "Aktiv",
|
||||||
"rangedWeapon": "Schusswaffe",
|
"rangedWeapon": "Schusswaffe",
|
||||||
"assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
|
"assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
|
||||||
"showAll": "Alle anzeigen",
|
"showAll": "Alle anzeigen",
|
||||||
|
"showUnlearned": "Ungelernte Fertigkeiten",
|
||||||
"wealthAndWeight": "Vermögen und Lasten",
|
"wealthAndWeight": "Vermögen und Lasten",
|
||||||
"itemsInContainers": "Gegenstände in Aufbewahrung",
|
"itemsInContainers": "Gegenstände in Aufbewahrung",
|
||||||
"allItems": "Alle Gegenstände",
|
"allItems": "Alle Gegenstände",
|
||||||
@@ -356,12 +368,13 @@
|
|||||||
"spell-agens": "Agens",
|
"spell-agens": "Agens",
|
||||||
"spell-reagens": "Reagens",
|
"spell-reagens": "Reagens",
|
||||||
"spell-material": "Zaubermaterial",
|
"spell-material": "Zaubermaterial",
|
||||||
|
"spell-rank": "Stufe",
|
||||||
|
|
||||||
"kampfkunst-type": "Form",
|
"kampfkunst-type": "Form",
|
||||||
"kampfkunst-variante": "Variante",
|
"kampfkunst-variante": "Variante",
|
||||||
"kampfkunst-variante-short": "Var",
|
"kampfkunst-variante-short": "Var",
|
||||||
"kampfkunst-ep": "Erfahrungspunkte",
|
"kampfkunst-ep": "Erfahrungspunkte",
|
||||||
"kampfkunst-rank": "Stufe",
|
"kampfkunst-rank": "Stufe der Technik",
|
||||||
"kampfkunst-weapon": "Waffengruppe",
|
"kampfkunst-weapon": "Waffengruppe",
|
||||||
"kampfkunst-enemy": "Einschränkungen durch Art der Gegner",
|
"kampfkunst-enemy": "Einschränkungen durch Art der Gegner",
|
||||||
|
|
||||||
@@ -385,6 +398,10 @@
|
|||||||
"kido-variante": "KiDo Variante",
|
"kido-variante": "KiDo Variante",
|
||||||
"kido-color": "Kampfstilfarbe",
|
"kido-color": "Kampfstilfarbe",
|
||||||
"kido-style": "Art der Technik",
|
"kido-style": "Art der Technik",
|
||||||
|
"kido-rank": "Stufe der Technik",
|
||||||
|
"kido-grade": "Ausbildungsgrad",
|
||||||
|
"kido-enemy": "Einschränkungen durch Art der Gegner",
|
||||||
|
"kido-weapon": "Waffengruppe",
|
||||||
|
|
||||||
"kido-type-angriff": "Kido Angriff",
|
"kido-type-angriff": "Kido Angriff",
|
||||||
"kido-type-verteidigung": "Kido Verteidigung",
|
"kido-type-verteidigung": "Kido Verteidigung",
|
||||||
@@ -399,6 +416,7 @@
|
|||||||
"kido-variante-blockieren": "Blockieren",
|
"kido-variante-blockieren": "Blockieren",
|
||||||
"kido-variante-bewegen": "Bewegen",
|
"kido-variante-bewegen": "Bewegen",
|
||||||
"kido-variante-kontrollieren": "Kontrollieren",
|
"kido-variante-kontrollieren": "Kontrollieren",
|
||||||
|
"kido-variante-finte": "Finte",
|
||||||
|
|
||||||
"mod-operation-add100": "Addieren (max 100)",
|
"mod-operation-add100": "Addieren (max 100)",
|
||||||
"mod-operation-roll": "Wurf Modifikation",
|
"mod-operation-roll": "Wurf Modifikation",
|
||||||
@@ -444,9 +462,9 @@
|
|||||||
"reroll": "Neuwürfeln",
|
"reroll": "Neuwürfeln",
|
||||||
|
|
||||||
"options": {
|
"options": {
|
||||||
"modifier": "Modifikator",
|
"modifier": "Wurfmodifikator",
|
||||||
"difficulty": "Schwellenwert",
|
"difficulty": "Erfolg",
|
||||||
"rollMode": "Würfel Modus"
|
"rollMode": "Würfelmodus"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ const preloadTemplates = async (): Promise<Handlebars.TemplateDelegate<any>[]> =
|
|||||||
"sheets/character/spells.hbs",
|
"sheets/character/spells.hbs",
|
||||||
"sheets/character/combat.hbs",
|
"sheets/character/combat.hbs",
|
||||||
"sheets/character/effects.hbs",
|
"sheets/character/effects.hbs",
|
||||||
|
"sheets/npc/main.hbs",
|
||||||
|
"sheets/npc/combat.hbs",
|
||||||
|
"sheets/npc/properties.hbs",
|
||||||
|
"sheets/npc/description.hbs",
|
||||||
|
"sheets/npc/attribute.hbs",
|
||||||
"sheets/partial/mod.hbs",
|
"sheets/partial/mod.hbs",
|
||||||
"sheets/item/rolls.hbs",
|
"sheets/item/rolls.hbs",
|
||||||
"chat/roll-m5.hbs",
|
"chat/roll-m5.hbs",
|
||||||
|
|||||||
+29
-8
@@ -95,6 +95,9 @@ Hooks.on("getChatLogEntryContext", function (html, options) {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Hooks.on("createCombatant", function () {
|
||||||
|
});
|
||||||
|
|
||||||
Hooks.on("updateCombat", function (combat: Combat, updateData: { round: number; turn: number }, updateOptions: { advanceTime: number; direction: number }) {
|
Hooks.on("updateCombat", function (combat: Combat, updateData: { round: number; turn: number }, updateOptions: { advanceTime: number; direction: number }) {
|
||||||
if (combat.round % 2 === 0 && combat.turn !== null) {
|
if (combat.round % 2 === 0 && combat.turn !== null) {
|
||||||
const tokenId = combat.current.tokenId;
|
const tokenId = combat.current.tokenId;
|
||||||
@@ -140,14 +143,7 @@ Hooks.on("updateCombat", function (combat: Combat, updateData: { round: number;
|
|||||||
});
|
});
|
||||||
|
|
||||||
Hooks.on("renderCombatTracker", (combatTracker, html, context) => {
|
Hooks.on("renderCombatTracker", (combatTracker, html, context) => {
|
||||||
if (context.combat === null) {
|
handleRenderCombatTracker(combatTracker, html, context);
|
||||||
html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.no-encounter");
|
|
||||||
} else if (Math.ceil(context.round / 2) === 0) {
|
|
||||||
html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.encounter-not-started");
|
|
||||||
} else {
|
|
||||||
html.find("h3.encounter-title")[0].innerHTML =
|
|
||||||
(context.round % 2 == 1 ? game["i18n"].localize("midgard5.phase-movement") : game["i18n"].localize("midgard5.phase-action")) + " " + Math.ceil(context.round / 2);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Hooks.once("ready", () => {
|
Hooks.once("ready", () => {
|
||||||
@@ -201,3 +197,28 @@ function limitHeal(heal: number, current: number, max: number): number {
|
|||||||
}
|
}
|
||||||
return heal;
|
return heal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleRenderCombatTracker(combatTracker, html, context) {
|
||||||
|
let combatPhase = -1;
|
||||||
|
if (context.combat === null) {
|
||||||
|
combatPhase = 0;
|
||||||
|
html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.no-encounter");
|
||||||
|
} else if (Math.ceil(context.round / 2) === 0) {
|
||||||
|
combatPhase = 1;
|
||||||
|
html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.encounter-not-started");
|
||||||
|
} else if (context.round % 2 == 1) {
|
||||||
|
combatPhase = 2;
|
||||||
|
html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.phase-movement");
|
||||||
|
} else {
|
||||||
|
combatPhase = 3;
|
||||||
|
html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.phase-action") + " " + Math.ceil(context.round / 2);
|
||||||
|
}
|
||||||
|
console.log("Combat Phase: ", combatPhase);
|
||||||
|
context.combat?.setFlag('world', 'combatPhase', combatPhase);
|
||||||
|
|
||||||
|
for (const key in context.combat?.combatants.contents) {
|
||||||
|
let actorId = context.combat?.combatants.contents[key].actorId;
|
||||||
|
let actor = (game as Game).actors.get(actorId);
|
||||||
|
actor.render();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -162,6 +162,16 @@ export interface M5AttributeCalculated extends M5ModResult {
|
|||||||
|
|
||||||
export interface M5CharacterCalculatedData {
|
export interface M5CharacterCalculatedData {
|
||||||
level: number;
|
level: number;
|
||||||
|
initiative: number;
|
||||||
|
unableToAct: {
|
||||||
|
effectId: string;
|
||||||
|
enabled: boolean;
|
||||||
|
rounds: number;
|
||||||
|
reason: string;
|
||||||
|
};
|
||||||
|
group: string;
|
||||||
|
combatPhase: number;
|
||||||
|
movement: number;
|
||||||
attributes: {
|
attributes: {
|
||||||
st: M5AttributeCalculated;
|
st: M5AttributeCalculated;
|
||||||
gs: M5AttributeCalculated;
|
gs: M5AttributeCalculated;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { log } from "console";
|
||||||
import { M5Item } from "../items/M5Item";
|
import { M5Item } from "../items/M5Item";
|
||||||
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated } from "../M5Base";
|
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated } from "../M5Base";
|
||||||
import M5ModAggregate from "./M5ModAggregate";
|
import M5ModAggregate from "./M5ModAggregate";
|
||||||
@@ -86,6 +87,7 @@ export class M5Character extends Actor {
|
|||||||
): M5CharacterCalculatedData {
|
): M5CharacterCalculatedData {
|
||||||
let ret: M5CharacterCalculatedData = {
|
let ret: M5CharacterCalculatedData = {
|
||||||
level: 0,
|
level: 0,
|
||||||
|
initiative: 0,
|
||||||
attributes: {
|
attributes: {
|
||||||
st: { value: 0, bonus: 0, mods: [] },
|
st: { value: 0, bonus: 0, mods: [] },
|
||||||
gs: { value: 0, bonus: 0, mods: [] },
|
gs: { value: 0, bonus: 0, mods: [] },
|
||||||
@@ -151,6 +153,10 @@ export class M5Character extends Actor {
|
|||||||
if (!data) return null;
|
if (!data) return null;
|
||||||
|
|
||||||
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);
|
||||||
|
ret.initiative = M5Character.initiativeFromAnfuehren(data.calc.skills?.general, (game as Game).i18n.localize("midgard5.anfuehren"), data.skills.general.anfuehren.fw);
|
||||||
|
ret.unableToAct = M5Character.unableToActFromEffect(data.calc.gear?.effects);
|
||||||
|
ret.group = M5Character.groupFromDisposition(this);
|
||||||
|
ret.combatPhase = M5Character.combatPhaseFromEncounter(this);
|
||||||
|
|
||||||
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);
|
||||||
@@ -280,6 +286,7 @@ export class M5Character extends Actor {
|
|||||||
|
|
||||||
if (!!item.system.containerId) {
|
if (!!item.system.containerId) {
|
||||||
ret.gear.containers[item.system.containerId].weight += parseFloat((item.system.weight * item.system.quantity).toPrecision(4));
|
ret.gear.containers[item.system.containerId].weight += parseFloat((item.system.weight * item.system.quantity).toPrecision(4));
|
||||||
|
ret.gear.containers[item.system.containerId].value += parseFloat(this.calculateValue(item.system.value * item.system.quantity, item.system.currency).toPrecision(3));
|
||||||
if (ret.gear.containers[item.system.containerId].equipped) {
|
if (ret.gear.containers[item.system.containerId].equipped) {
|
||||||
ret.stats.encumbrance += item.system.weight * item.system.quantity;
|
ret.stats.encumbrance += item.system.weight * item.system.quantity;
|
||||||
}
|
}
|
||||||
@@ -302,6 +309,7 @@ export class M5Character extends Actor {
|
|||||||
label: label,
|
label: label,
|
||||||
icon: icon,
|
icon: icon,
|
||||||
magic: item.system.magic,
|
magic: item.system.magic,
|
||||||
|
abw: item.system.abw || 0,
|
||||||
calc: item.system.calc,
|
calc: item.system.calc,
|
||||||
equipped: item.system?.equipped,
|
equipped: item.system?.equipped,
|
||||||
valuable: item.system?.valuable,
|
valuable: item.system?.valuable,
|
||||||
@@ -352,6 +360,7 @@ export class M5Character extends Actor {
|
|||||||
icon: item.img,
|
icon: item.img,
|
||||||
skillId: item.system.skillId,
|
skillId: item.system.skillId,
|
||||||
magic: item.system.magic,
|
magic: item.system.magic,
|
||||||
|
abw: item.system.abw || 0,
|
||||||
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,
|
||||||
@@ -395,6 +404,7 @@ export class M5Character extends Actor {
|
|||||||
icon: item.img,
|
icon: item.img,
|
||||||
skillId: item.system.skillId,
|
skillId: item.system.skillId,
|
||||||
magic: item.system.magic,
|
magic: item.system.magic,
|
||||||
|
abw: item.system.abw || 0,
|
||||||
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,
|
||||||
@@ -438,6 +448,7 @@ export class M5Character extends Actor {
|
|||||||
label: label,
|
label: label,
|
||||||
icon: item.img,
|
icon: item.img,
|
||||||
magic: item.system.magic,
|
magic: item.system.magic,
|
||||||
|
abw: item.system.abw || 0,
|
||||||
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,
|
||||||
@@ -489,6 +500,7 @@ export class M5Character extends Actor {
|
|||||||
magic: item.system.magic,
|
magic: item.system.magic,
|
||||||
calc: item.system.calc,
|
calc: item.system.calc,
|
||||||
equipped: item.system?.equipped || false,
|
equipped: item.system?.equipped || false,
|
||||||
|
unablesToAct: item.system?.unablesToAct || false,
|
||||||
duration: item.system?.duration || { time: 0, unit: "" },
|
duration: item.system?.duration || { time: 0, unit: "" },
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@@ -599,6 +611,55 @@ export class M5Character extends Actor {
|
|||||||
return ret === -1 ? M5Character.levelThreshold.length : ret;
|
return ret === -1 ? M5Character.levelThreshold.length : ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static initiativeFromAnfuehren(list: object, anfuehren: string, unlearned: number): number {
|
||||||
|
for (const element in list) {
|
||||||
|
if (list[element].label.toLowerCase() === anfuehren.toLowerCase()) {
|
||||||
|
return list[element].calc.ew;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return unlearned;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unableToActFromEffect(list: object): { effectId: string; enabled: boolean; rounds: number; reason: string } {
|
||||||
|
console.log("Effects:", list);
|
||||||
|
for (const element in list) {
|
||||||
|
if (list[element].unablesToAct) {
|
||||||
|
return {
|
||||||
|
effectId: list[element],
|
||||||
|
enabled: list[element].equipped,
|
||||||
|
rounds: list[element].duration.time,
|
||||||
|
reason: list[element].label,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return { effectId: "", enabled: false, rounds: 0, reason: "" };
|
||||||
|
}
|
||||||
|
|
||||||
|
static groupFromDisposition(actor: any): string {
|
||||||
|
// console.log("Group:", actor);
|
||||||
|
let disposition:number = 0;
|
||||||
|
if (actor.isToken) {
|
||||||
|
disposition = actor.token.disposition;
|
||||||
|
} else {
|
||||||
|
disposition = actor.prototypeToken.disposition;
|
||||||
|
}
|
||||||
|
switch ( disposition ) {
|
||||||
|
case 1: return "Spieler";
|
||||||
|
case -1: return "Gegner";
|
||||||
|
case 0: return "Gegner 2";
|
||||||
|
case 2: return "Gegner 3";
|
||||||
|
default: return "Unbekannt";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static combatPhaseFromEncounter(actor: any): any {
|
||||||
|
if (actor.inCombat) {
|
||||||
|
let combatPhase = (game as Game).combat.getFlag('world', 'combatPhase');
|
||||||
|
return combatPhase ? combatPhase : -1;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
static readonly defenseThreshold: Array<[number, number]> = [
|
static readonly defenseThreshold: Array<[number, number]> = [
|
||||||
[30, 18],
|
[30, 18],
|
||||||
[25, 17],
|
[25, 17],
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ export class M5Item extends Item {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
async roll() {
|
async roll(toggleAutomatedRoll = false) {
|
||||||
const item = this as any;
|
const item = this as any;
|
||||||
|
|
||||||
// Initialize chat data.
|
// Initialize chat data.
|
||||||
@@ -341,14 +341,20 @@ export class M5Item extends Item {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const roll = new M5Roll(rollData, this.actor, item.name, item.id);
|
||||||
|
if (await roll.toMessage(toggleAutomatedRoll)) {
|
||||||
if (item.type === "spell" || item.type === "kampfkunst") {
|
if (item.type === "spell" || item.type === "kampfkunst") {
|
||||||
if (this.actor["system"].ap.value >= item.system.ap) {
|
if (this.actor["system"].ap.value >= item.system.ap) {
|
||||||
this.actor["system"].ap.value -= item.system.ap;
|
this.actor["update"]({
|
||||||
|
data: {
|
||||||
|
ap: {
|
||||||
|
value: this.actor["system"].ap.value - item.system.ap,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const roll = new M5Roll(rollData, this.actor, item.name, item.id);
|
|
||||||
return roll.toMessage();
|
|
||||||
} else {
|
} else {
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
speaker: speaker,
|
speaker: speaker,
|
||||||
|
|||||||
@@ -142,18 +142,26 @@ export class M5Roll {
|
|||||||
return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
|
return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
async toMessage() {
|
async toMessage(toggleAutomatedRoll = false) {
|
||||||
|
let automatedRoll = (game as Game).settings.get("midgard5", "automatedRoll");
|
||||||
|
automatedRoll = toggleAutomatedRoll ? !automatedRoll : automatedRoll;
|
||||||
|
const rMode = (game as Game).settings.get("core", "rollMode");
|
||||||
|
|
||||||
|
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"];
|
||||||
this.data.b = checkOptions;
|
this.data.b = checkOptions;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
this.data.b = { difficulty: 20, modifier: 0 };
|
||||||
|
}
|
||||||
|
|
||||||
if (!this._evaluated) await this.evaluate();
|
if (!this._evaluated) await this.evaluate();
|
||||||
const faces = this.pool.dice.map((x) => x.faces);
|
const faces = this.pool.dice.map((x) => x.faces);
|
||||||
|
|
||||||
const rMode = checkOptions["rollMode"] || (game as Game).settings.get("core", "rollMode");
|
|
||||||
const chatData = {
|
const chatData = {
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
||||||
content: await this.render(),
|
content: await this.render(),
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import { M5Roll } from "../rolls/M5Roll";
|
|||||||
export default class M5CharacterSheet extends ActorSheet {
|
export default class M5CharacterSheet extends ActorSheet {
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
template: "systems/midgard5/templates/sheets/character/main.hbs",
|
|
||||||
width: 1000,
|
width: 1000,
|
||||||
height: 800,
|
height: 800,
|
||||||
classes: ["midgard5", "sheet", "character"],
|
classes: ["midgard5", "sheet", "character"],
|
||||||
@@ -21,7 +20,15 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// get template() {
|
get template() {
|
||||||
|
//console.log("M5CharacterSheet", this.actor.data.type)
|
||||||
|
if (this.actor.type === "npc") {
|
||||||
|
return "systems/midgard5/templates/sheets/npc/main.hbs";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "systems/midgard5/templates/sheets/character/main.hbs";
|
||||||
|
}
|
||||||
|
}
|
||||||
// return "systems/midgard5/templates/character_sheet/main.hbs"
|
// return "systems/midgard5/templates/character_sheet/main.hbs"
|
||||||
// }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data<Options>
|
// }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data<Options>
|
||||||
|
|
||||||
@@ -78,7 +85,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
let attributeValue = target ? parseInt(target.dataset.value) : null;
|
let attributeValue = target ? parseInt(target.dataset.value) : null;
|
||||||
let attributeStr = target ? target.dataset.attribute : null;
|
let attributeStr = target ? target.dataset.attribute : null;
|
||||||
const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
|
const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".edit-item").on("click", async (event) => {
|
html.find(".edit-item").on("click", async (event) => {
|
||||||
@@ -138,7 +146,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await item.roll();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await item.roll(toggleAutomatedRoll);
|
||||||
this.render();
|
this.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -158,7 +167,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
|
|
||||||
const actor = this.actor as any;
|
const actor = this.actor as any;
|
||||||
const item = actor.items.get(skillId) as M5Item;
|
const item = actor.items.get(skillId) as M5Item;
|
||||||
await item.roll();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await item.roll(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-general-button").on("click", async (event) => {
|
html.find(".roll-general-button").on("click", async (event) => {
|
||||||
@@ -169,7 +179,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
|
const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
|
||||||
|
|
||||||
const roll = M5Roll.fromUnlearnedSkill(this.actor, unlearnedSkill, skillName);
|
const roll = M5Roll.fromUnlearnedSkill(this.actor, unlearnedSkill, skillName);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".learn-button").on("click", async (event) => {
|
html.find(".learn-button").on("click", async (event) => {
|
||||||
@@ -267,48 +278,57 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
|
|
||||||
const context = this.actor as any;
|
const context = this.actor as any;
|
||||||
const item = context.items.get(itemId) as M5Item;
|
const item = context.items.get(itemId) as M5Item;
|
||||||
await item.roll();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await item.roll(toggleAutomatedRoll);
|
||||||
this.render();
|
this.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-brawl-button").on("click", async (event) => {
|
html.find(".roll-brawl-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.brawl(this.actor);
|
const roll = M5Roll.brawl(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-cleanSpell-button").on("click", async (event) => {
|
html.find(".roll-cleanSpell-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.cleanSpell(this.actor);
|
const roll = M5Roll.cleanSpell(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-deprivationCold-button").on("click", async (event) => {
|
html.find(".roll-deprivationCold-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.deprivationCold(this.actor);
|
const roll = M5Roll.deprivationCold(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-deprivationHeat-button").on("click", async (event) => {
|
html.find(".roll-deprivationHeat-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.deprivationHeat(this.actor);
|
const roll = M5Roll.deprivationHeat(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-deprivationFood-button").on("click", async (event) => {
|
html.find(".roll-deprivationFood-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.deprivationFood(this.actor);
|
const roll = M5Roll.deprivationFood(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-defense-button").on("click", async (event) => {
|
html.find(".roll-defense-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.defense(this.actor);
|
const roll = M5Roll.defense(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-resistanceMind-button").on("click", async (event) => {
|
html.find(".roll-resistanceMind-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.resistanceMind(this.actor);
|
const roll = M5Roll.resistanceMind(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-resistanceBody-button").on("click", async (event) => {
|
html.find(".roll-resistanceBody-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.resistanceBody(this.actor);
|
const roll = M5Roll.resistanceBody(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".change-equipped").on("click", async (event) => {
|
html.find(".change-equipped").on("click", async (event) => {
|
||||||
@@ -526,7 +546,11 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
let data = null;
|
let data = null;
|
||||||
try {
|
try {
|
||||||
data = JSON.parse(event.dataTransfer.getData("text/plain"));
|
data = JSON.parse(event.dataTransfer.getData("text/plain"));
|
||||||
data.data.system.containerId = ""; //Clean containerId
|
console.log("Data", data.data);
|
||||||
|
let target = event.target.closest("[data-container-id]") as HTMLElement;
|
||||||
|
let containerId = target ? target.dataset.containerId : "";
|
||||||
|
console.log("Container ID", containerId);
|
||||||
|
data.data.system.containerId = containerId; //Update containerId
|
||||||
if (data.type !== "Transfer") return false;
|
if (data.type !== "Transfer") return false;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return false;
|
return false;
|
||||||
@@ -535,6 +559,14 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||||||
if (!data.data) return false;
|
if (!data.data) return false;
|
||||||
|
|
||||||
if (data.actorId === this.actor.id) {
|
if (data.actorId === this.actor.id) {
|
||||||
|
let itemId=data.data._id;
|
||||||
|
const context = this.actor as any;
|
||||||
|
const item = context.items.get(itemId);
|
||||||
|
item.update({
|
||||||
|
data: {
|
||||||
|
containerId: data.data.system.containerId,
|
||||||
|
},
|
||||||
|
});
|
||||||
return this._onSortItem(event, data.data);
|
return this._onSortItem(event, data.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,4 +13,13 @@ export const loadSettings = async function () {
|
|||||||
default: true,
|
default: true,
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
});
|
});
|
||||||
|
(game as Game).settings.register("midgard5", "automatedRoll", {
|
||||||
|
name: "Automatische Würfelwürfe",
|
||||||
|
hint: "Falls aktiv, wird bei Würfelwürfen kein Dialog gezeigt. Das Verhalten kann mit gleichzeitig gedrückter Shift Taste umgekehrt werden.",
|
||||||
|
scope: "world",
|
||||||
|
config: true,
|
||||||
|
default: false,
|
||||||
|
type: Boolean,
|
||||||
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
.midgard5 {
|
.midgard5 {
|
||||||
.flexbox {
|
.flexbox {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: stretch;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
@@ -17,26 +18,31 @@
|
|||||||
.flexcolumn-1 {
|
.flexcolumn-1 {
|
||||||
flex-basis: 100%;
|
flex-basis: 100%;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexcolumn-2 {
|
.flexcolumn-2 {
|
||||||
flex-basis: 50%;
|
flex-basis: 50%;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexcolumn-3 {
|
.flexcolumn-3 {
|
||||||
flex-basis: 33%;
|
flex-basis: 33%;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexcolumn-4 {
|
.flexcolumn-4 {
|
||||||
flex-basis: 25%;
|
flex-basis: 25%;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexcolumn-5 {
|
.flexcolumn-5 {
|
||||||
flex-basis: 20%;
|
flex-basis: 20%;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexpart {
|
.flexpart {
|
||||||
@@ -63,7 +69,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.flexrow {
|
.flexrow {
|
||||||
align-items: center;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
@@ -79,6 +85,11 @@
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fixed-value {
|
||||||
|
width: 3rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.profile-img {
|
.profile-img {
|
||||||
display: block;
|
display: block;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// main: midgard5.less
|
||||||
|
@borderGroove: 2px groove #eeede0;
|
||||||
|
@attributeBorderColor: rgba(0, 0, 0, 0.5);
|
||||||
|
|
||||||
|
.midgard5 {
|
||||||
|
.sheet-npc {
|
||||||
|
.attribute-header {
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 0px solid transparent;
|
||||||
|
}
|
||||||
|
.attribute-value {
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
border: 0px solid transparent;
|
||||||
|
}
|
||||||
|
.fixed-value {
|
||||||
|
width: 3rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-2
@@ -28,8 +28,8 @@
|
|||||||
"primaryTokenAttribute": "lp",
|
"primaryTokenAttribute": "lp",
|
||||||
"secondaryTokenAttribute": "ap",
|
"secondaryTokenAttribute": "ap",
|
||||||
"url": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5",
|
"url": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5",
|
||||||
"manifest": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.6.0/system.json",
|
"manifest": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/latest/system.json?token=2455375115b92bc8d87c93df7159eec232456f2d",
|
||||||
"download": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.6.0/midgard5-v2.6.0.zip",
|
"download": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/latest/midgard5.zip?token=2455375115b92bc8d87c93df7159eec232456f2d",
|
||||||
"initiative": "@c.calc.attributes.gw.value",
|
"initiative": "@c.calc.attributes.gw.value",
|
||||||
"license": "LICENSE.txt"
|
"license": "LICENSE.txt"
|
||||||
}
|
}
|
||||||
+29
-7
@@ -1,15 +1,18 @@
|
|||||||
{
|
{
|
||||||
"Actor": {
|
"Actor": {
|
||||||
"types": ["character"],
|
"types": [
|
||||||
|
"character",
|
||||||
|
"npc"
|
||||||
|
],
|
||||||
"templates": {
|
"templates": {
|
||||||
"characterDescription": {
|
"characterDescription": {
|
||||||
"info": {
|
"info": {
|
||||||
"description": "",
|
"description": "",
|
||||||
"background": "",
|
"background": "",
|
||||||
"class": {},
|
"class": {},
|
||||||
|
"npc-class": "",
|
||||||
"race": "",
|
"race": "",
|
||||||
"magicUsing": false,
|
"magicUsing": false,
|
||||||
"showAllItems": false,
|
|
||||||
"gender": "",
|
"gender": "",
|
||||||
"weight": "",
|
"weight": "",
|
||||||
"height": "",
|
"height": "",
|
||||||
@@ -19,11 +22,17 @@
|
|||||||
"occupation": "",
|
"occupation": "",
|
||||||
"origin": "",
|
"origin": "",
|
||||||
"faith": "",
|
"faith": "",
|
||||||
|
"level": 1,
|
||||||
|
"leader": false,
|
||||||
"gold": 0,
|
"gold": 0,
|
||||||
"silver": 0,
|
"silver": 0,
|
||||||
"copper": 0
|
"copper": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"settings": {
|
||||||
|
"showAllItems": false,
|
||||||
|
"showUnlearned": false
|
||||||
|
},
|
||||||
"characterBars": {
|
"characterBars": {
|
||||||
"lp": {
|
"lp": {
|
||||||
"value": 15,
|
"value": 15,
|
||||||
@@ -44,6 +53,8 @@
|
|||||||
"gp": 0
|
"gp": 0
|
||||||
},
|
},
|
||||||
"attributes": {
|
"attributes": {
|
||||||
|
"level": 1,
|
||||||
|
"movement": 24,
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"st": { "value": 50, "bonus": 0 },
|
"st": { "value": 50, "bonus": 0 },
|
||||||
"gs": { "value": 50, "bonus": 0 },
|
"gs": { "value": 50, "bonus": 0 },
|
||||||
@@ -53,7 +64,8 @@
|
|||||||
"zt": { "value": 50, "bonus": 0 },
|
"zt": { "value": 50, "bonus": 0 },
|
||||||
"au": { "value": 50, "bonus": 0 },
|
"au": { "value": 50, "bonus": 0 },
|
||||||
"pa": { "value": 50, "bonus": 0 },
|
"pa": { "value": 50, "bonus": 0 },
|
||||||
"wk": { "value": 50, "bonus": 0 }
|
"wk": { "value": 50, "bonus": 0 },
|
||||||
|
"git": { "value": 50, "bonus": 0 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"skills": {
|
"skills": {
|
||||||
@@ -154,7 +166,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"character": {
|
"character": {
|
||||||
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
|
"templates": ["characterBars", "settings", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
|
||||||
|
"calc": {}
|
||||||
|
},
|
||||||
|
"npc": {
|
||||||
|
"templates": ["characterBars", "settings", "attributes", "characterDescription", "skills", "gear"],
|
||||||
"calc": {}
|
"calc": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -224,7 +240,8 @@
|
|||||||
"weight": 0,
|
"weight": 0,
|
||||||
"capacity": 0,
|
"capacity": 0,
|
||||||
"containerId": "",
|
"containerId": "",
|
||||||
"magic": false
|
"magic": false,
|
||||||
|
"abw": 0
|
||||||
},
|
},
|
||||||
"durationSelection": {
|
"durationSelection": {
|
||||||
"durationSelection": {
|
"durationSelection": {
|
||||||
@@ -314,7 +331,8 @@
|
|||||||
"ausweichen": "midgard5.kido-variante-ausweichen",
|
"ausweichen": "midgard5.kido-variante-ausweichen",
|
||||||
"blockieren": "midgard5.kido-variante-blockieren",
|
"blockieren": "midgard5.kido-variante-blockieren",
|
||||||
"bewegen": "midgard5.kido-variante-bewegen",
|
"bewegen": "midgard5.kido-variante-bewegen",
|
||||||
"kontrollieren": "midgard5.kido-variante-kontrollieren"
|
"kontrollieren": "midgard5.kido-variante-kontrollieren",
|
||||||
|
"finte": "midgard5.kido-variante-finte"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -359,6 +377,7 @@
|
|||||||
},
|
},
|
||||||
"effect": {
|
"effect": {
|
||||||
"templates": ["itemDescription", "equippable", "physical", "durationSelection"],
|
"templates": ["itemDescription", "equippable", "physical", "durationSelection"],
|
||||||
|
"unablesToAct": false,
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {},
|
"formulas": {},
|
||||||
"output": ""
|
"output": ""
|
||||||
@@ -374,6 +393,7 @@
|
|||||||
"hoarded": false,
|
"hoarded": false,
|
||||||
"skillId": "",
|
"skillId": "",
|
||||||
"damageBase": "1d6",
|
"damageBase": "1d6",
|
||||||
|
"ew": 5,
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {
|
"formulas": {
|
||||||
"0": {
|
"0": {
|
||||||
@@ -438,6 +458,7 @@
|
|||||||
"agens": "",
|
"agens": "",
|
||||||
"reagens": "",
|
"reagens": "",
|
||||||
"material": "",
|
"material": "",
|
||||||
|
"rank": 0,
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {
|
"formulas": {
|
||||||
"0": {
|
"0": {
|
||||||
@@ -459,10 +480,11 @@
|
|||||||
"ap": "",
|
"ap": "",
|
||||||
"weapon": "",
|
"weapon": "",
|
||||||
"ep": "",
|
"ep": "",
|
||||||
"rank": "",
|
"rank": 0,
|
||||||
"enemy": "",
|
"enemy": "",
|
||||||
"color": "",
|
"color": "",
|
||||||
"style": "",
|
"style": "",
|
||||||
|
"grade": "",
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {
|
"formulas": {
|
||||||
"0": {
|
"0": {
|
||||||
|
|||||||
@@ -94,31 +94,29 @@
|
|||||||
<td class="roll-spell-details">{{i.ep}}</td>
|
<td class="roll-spell-details">{{i.ep}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-color"}}</td>
|
<td>{{localize "midgard5.kido-color"}}</td>
|
||||||
<td class="roll-spell-details">{{i.color}}</td>
|
<td class="roll-spell-details">{{i.color}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-style"}}</td>
|
<td>{{localize "midgard5.kido-style"}}</td>
|
||||||
<td class="roll-spell-details">{{i.style}}</td>
|
<td class="roll-spell-details">{{i.style}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kido-type"}}</td>
|
<td>{{localize "midgard5.kido-type"}}</td>
|
||||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-type-" i.type)}}</td>
|
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-type-" i.type)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{#if (eq i.type "angriff")}}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kido-variante"}}</td>
|
<td>{{localize "midgard5.kido-variante"}}</td>
|
||||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-variante-" i.variante)}}</td>
|
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-variante-" i.variante)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-enemy"}}</td>
|
<td>{{localize "midgard5.kido-enemy"}}</td>
|
||||||
<td class="roll-spell-details">{{i.enemy}}</td>
|
<td class="roll-spell-details">{{i.enemy}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
|
<td>{{localize "midgard5.kido-weapon"}}</td>
|
||||||
<td class="roll-spell-details">{{i.weapon}}</td>
|
<td class="roll-spell-details">{{i.weapon}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/if}}
|
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,140 @@
|
|||||||
<div class="flexbox">
|
<h3>{{localize "midgard5.combatPhases"}}</h3>
|
||||||
|
<div class="flexbox flexpart">
|
||||||
|
<div class="flexcolumn-2 flexpart" style="flex: 1 1 200px;">
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.initiative"}}</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div style="font-weight: 800;">{{localize "midgard5.group"}}:</div>
|
||||||
|
<div class="fixed-value" style="font-weight: 800;">{{data.calc.group}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div style="font-weight: 800;">{{localize "midgard5.anfuehren"}}:</div>
|
||||||
|
<div class="fixed-value" style="font-weight: 800;">{{data.calc.initiative}}</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
{{#if data.calc.unableToAct.enabled}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<div>{{localize "midgard5.unableToAct"}}</div>
|
||||||
|
<div class="fixed-value;"><input type="checkbox" name="data.calc.unableToAct.enabled" {{checked data.calc.unableToAct.enabled}} disabled="disabled"></div>
|
||||||
|
<div class="fixed-value"><button class="roll-button roll-unableToAct-button"></button></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
|
<div>{{localize "midgard5.time-round"}}</div>
|
||||||
|
<div class="fixed-value"><input type="number" name="data.calc.unableToAct.roundsRemaining" value="{{data.calc.unableToAct.roundsRemaining}}"></div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{#unless data.calc.unableToAct.enabled}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<div>{{localize "midgard5.leader"}}</div>
|
||||||
|
<div class="fixed-value;"><input type="checkbox" name="data.info.leader" {{checked data.info.leader}}></div>
|
||||||
|
</div>
|
||||||
|
{{#if data.info.leader}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<button class="wide-button rollInitiative">{{localize "midgard5.initiativeRoll"}}</button>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/unless}}
|
||||||
|
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.phase-movement"}}</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div style="font-weight: 800;">{{localize "midgard5.movementRange"}}:</div>
|
||||||
|
<div class="fixed-value" style="font-weight: 800;">{{data.calc.stats.movement.value}}</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="tM1">{{localize "midgard5.movedThisTurn"}}: max. 1m</label></div>
|
||||||
|
<div><input type="radio" id="tM1" name="gwModificator" value="1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="tM2">{{localize "midgard5.movedThisTurn"}}: max.B/2m</label></div>
|
||||||
|
<div><input type="radio" id="tM2" name="gwModificator" value="0.5"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="tM3">{{localize "midgard5.movedThisTurn"}}: max. {{data.calc.stats.movement.value}}m</label></div>
|
||||||
|
<div><input type="radio" id="tm3" name="gwModificator" value="0"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="tM4">Eigener GW Multiplikator</label></div>
|
||||||
|
<div><input type="radio" id="tm4" name="dedicatedgwModificator" value="1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div> <label for="tM5">GW Multiplikator:</label></div>
|
||||||
|
<div class="fixed-value;"><input type="float" id="tm5" name="gwModificator" value="0" ></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<button class="wide-button continueToAction">{{localize "midgard5.continue"}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-2 flexpart" style="flex: 1 1 200px;">
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.phase-action"}}</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div style="font-weight: 800;">{{localize "midgard5.actionrank"}} :</div>
|
||||||
|
<div class="fixed-value" style="font-weight: 800;">{{data.calc.attributes.gw.value}}</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a1">{{localize "midgard5.actionThisTurn"}}: 10s</label></div>
|
||||||
|
<div><input type="radio" id="a1" name="gwModificator" value="1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a2">{{localize "midgard5.actionThisTurn"}}: 5s</label></div>
|
||||||
|
<div><input type="radio" id="a2" name="gwModificator" value="0.5"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a3">{{localize "midgard5.actionThisTurn"}}: 1s</label></div>
|
||||||
|
<div><input type="radio" id="a3" name="gwModificator" value="0"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a4">Manuelle Eingabe</label></div>
|
||||||
|
<div><input type="radio" id="a4" name="dedicatedgwModificator" value="1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div> <label for="a5">{{localize "midgard5.actionrank"}}:</label></div>
|
||||||
|
<div class="fixed-value;"><input type="float" id="a5" name="midgard5.actionThisTurn" value="0" ></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<button class="wide-button endTurn">{{localize "midgard5.endTurn"}}</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.phase-action"}}</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div style="font-weight: 800;">{{localize "midgard5.actionrank"}} :</div>
|
||||||
|
<div class="fixed-value" style="font-weight: 800;">{{data.calc.attributes.gw.value}}</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a1">{{localize "midgard5.actionThisTurn"}}: 10s</label></div>
|
||||||
|
<div><input type="radio" id="a1" name="gwModificator" value="1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a2">{{localize "midgard5.actionThisTurn"}}: 5s</label></div>
|
||||||
|
<div><input type="radio" id="a2" name="gwModificator" value="0.5"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a3">{{localize "midgard5.actionThisTurn"}}: 1s</label></div>
|
||||||
|
<div><input type="radio" id="a3" name="gwModificator" value="0"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div><label for="a4">Manuelle Eingabe</label></div>
|
||||||
|
<div><input type="radio" id="a4" name="dedicatedgwModificator" value="1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<div> <label for="a5">{{localize "midgard5.actionrank"}}:</label></div>
|
||||||
|
<div class="fixed-value;"><input type="float" id="a5" name="midgard5.actionThisTurn" value="0" ></div>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<button class="wide-button endTurn">{{localize "midgard5.endTurn"}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>{{localize "midgard5.combat"}}</h3>
|
||||||
|
<div class="flexbox">
|
||||||
<div class="flexcolumn-2">
|
<div class="flexcolumn-2">
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.calculated-values"}}</div>
|
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.calculated-values"}}</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
<th class="title">{{localize "TYPES.Item.effect"}}</th>
|
<th class="title">{{localize "TYPES.Item.effect"}}</th>
|
||||||
<td><a class="title add-effect"><i class="fa-regular fa-plus"></i></a></th>
|
<th><a class="title add-effect"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
<h3>{{localize "midgard5.itemsInContainers"}}</h3>
|
<h3>{{localize "midgard5.itemsInContainers"}}</h3>
|
||||||
<div class="flexbox">
|
<div class="flexbox">
|
||||||
{{#each data.calc.gear.containers as |container containerId|}}
|
{{#each data.calc.gear.containers as |container containerId|}}
|
||||||
<div class="flexcolumn-2">
|
<div class="flexcolumn-2" data-container-id="{{containerId}}">
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header"><img src="{{container.icon}}" class="flexpart-icon">{{container.label}}</div>
|
<div class="flexpart-header"><img src="{{container.icon}}" class="flexpart-icon">{{container.label}}</div>
|
||||||
<table>
|
<table>
|
||||||
@@ -217,8 +217,8 @@
|
|||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
{{localize "midgard5.allItems"}}
|
{{localize "midgard5.allItems"}}
|
||||||
<input id="data.info.showAllItems" class="checkbox" type="checkbox" name="data.info.showAllItems" {{checked data.info.showAllItems}} style="float: right;">
|
<input id="data.settings.showAllItems" class="checkbox" type="checkbox" name="data.settings.showAllItems" {{checked data.settings.showAllItems}} style="float: right;">
|
||||||
<label for="data.info.showAllItems" style="font-size: small; font-weight: normal; font-style: italic; float: right;">{{localize "midgard5.showAll"}} </label>
|
<label for="data.settings.showAllItems" style="font-size: small; font-weight: normal; font-style: italic; float: right;">{{localize "midgard5.showAll"}} </label>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="flexbox">
|
<div class="flexbox">
|
||||||
<div class="flexcolumn-2">
|
<div class="flexcolumn-2">
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
<th class="title center">{{localize "midgard5.capacity"}}</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>
|
<th><a class="title add-container"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
@@ -251,13 +251,13 @@
|
|||||||
{{/unless}}
|
{{/unless}}
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: start">
|
<td style="text-align: start">
|
||||||
{{#unless (or (eq item.weight "") (eq item.equipped?))}}
|
{{#unless (or (eq item.weight 0) (eq item.equipped?))}}
|
||||||
<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">
|
<td style="text-align: start">
|
||||||
{{#unless (eq item.capacity "")}}
|
{{#unless (eq item.capacity 0)}}
|
||||||
<span class="spell-process">{{item.capacity}} kg</span>
|
<span class="spell-process"{{#if (gt item.weight item.capacity) }}style="background:#FF6666"{{/if}}>{{item.capacity}}kg</span>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
</td>
|
</td>
|
||||||
<td class="change-equipped">
|
<td class="change-equipped">
|
||||||
@@ -289,13 +289,13 @@
|
|||||||
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
||||||
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
<th class="title"><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>
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th></th>
|
||||||
<td><a class="title add-item"><i class="fa-regular fa-plus"></i></a></th>
|
<th><a class="title add-item"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
{{#each data.calc.gear.items as |item itemId|}}
|
{{#each data.calc.gear.items as |item itemId|}}
|
||||||
{{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
|
{{#if (or ../data.settings.showAllItems (eq item.containerId ""))}}
|
||||||
<tr data-item-id="{{itemId}}" class="item">
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
<td class="padding">
|
<td class="padding">
|
||||||
@@ -345,13 +345,13 @@
|
|||||||
<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"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||||
<td><a class="title add-weapon"><i class="fa-regular fa-plus"></i></a></th>
|
<th><a class="title add-weapon"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.gear.weapons as |item itemId|}}
|
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||||
{{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
|
{{#if (or ../data.settings.showAllItems (eq item.containerId ""))}}
|
||||||
<tr data-item-id="{{itemId}}" class="item">
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
@@ -392,12 +392,12 @@
|
|||||||
<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"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||||
<td><a class="title add-defensiveWeapon"><i class="fa-regular fa-plus"></i></a></th>
|
<th><a class="title add-defensiveWeapon"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||||
{{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
|
{{#if (or ../data.settings.showAllItems (eq item.containerId ""))}}
|
||||||
<tr data-item-id="{{itemId}}" class="item">
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
@@ -438,12 +438,12 @@
|
|||||||
<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"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||||
<td><a class="title add-armor"><i class="fa-regular fa-plus"></i></a></th>
|
<th><a class="title add-armor"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.gear.armor as |item itemId|}}
|
{{#each data.calc.gear.armor as |item itemId|}}
|
||||||
{{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
|
{{#if (or ../data.settings.showAllItems (eq item.containerId ""))}}
|
||||||
<tr data-item-id="{{itemId}}" class="item">
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
|
|||||||
@@ -49,18 +49,6 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table style="width: 100%;">
|
<table style="width: 100%;">
|
||||||
<tr>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-gs"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-gw"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-ko"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-in"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-zt"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-au"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-pa"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-wk"}}</td>
|
|
||||||
<td class="attribute">{{localize "midgard5.actor-git"}}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<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="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.calc.attributes.gs.value}}">{{data.calc.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>
|
||||||
@@ -73,6 +61,18 @@
|
|||||||
<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="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.calc.stats.poisonResistance.value}}">{{data.calc.stats.poisonResistance.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>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-gs"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-gw"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-ko"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-in"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-zt"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-au"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-pa"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-wk"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-git"}}</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -77,6 +77,7 @@
|
|||||||
</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>
|
||||||
@@ -103,4 +104,5 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -51,7 +51,13 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span>{{localize "midgard5.item-weight"}}</span>
|
<span>{{localize "midgard5.item-weight"}}</span>
|
||||||
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
|
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}kg">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.item-abw"}}</span>
|
||||||
|
<input id="data.abw" type="number" name="data.abw" value="{{data.abw}}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -18,6 +18,12 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.item-abw"}}</span>
|
||||||
|
<input id="data.abw" type="number" name="data.abw" value="{{data.abw}}">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -55,7 +55,13 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span>{{localize "midgard5.item-weight"}}</span>
|
<span>{{localize "midgard5.item-weight"}}</span>
|
||||||
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
|
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}kg">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.item-abw"}}</span>
|
||||||
|
<input id="data.abw" type="number" name="data.abw" value="{{data.abw}}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||||
</span>
|
</span>
|
||||||
|
<span>
|
||||||
|
<input id="data.unablesToAct" type="checkbox" name="data.unablesToAct" {{checked data.unablesToAct}}>
|
||||||
|
<label for="data.unablesToAct">{{localize "midgard5.unablesToAct"}}</label>
|
||||||
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -37,8 +37,6 @@
|
|||||||
<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>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
<td colspan="4">
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span>{{localize "midgard5.item-value"}}</span>
|
<span>{{localize "midgard5.item-value"}}</span>
|
||||||
@@ -53,6 +51,18 @@
|
|||||||
</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>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.item-abw"}}</span>
|
||||||
|
<input id="data.abw" type="number" name="data.abw" value="{{data.abw}}">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
@@ -73,12 +83,6 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</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>
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,10 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-ep"}}</td>
|
<td>{{localize "midgard5.kampfkunst-ep"}}</td>
|
||||||
<td><input name="data.ep" type="text" value="{{data.ep}}" data-dtype="String" /></td>
|
<td><input name="data.ep" type="text" value="{{data.ep}}" data-dtype="String" /></td>
|
||||||
|
{{#unless item.system.isKido}}
|
||||||
<td>{{localize "midgard5.kampfkunst-rank"}}</td>
|
<td>{{localize "midgard5.kampfkunst-rank"}}</td>
|
||||||
<td><input name="data.rank" type="text" value="{{data.rank}}" data-dtype="String" /></td>
|
<td><input name="data.rank" type="number" value="{{data.rank}}" data-dtype="Number" /></td>
|
||||||
|
{{/unless}}
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
|
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
|
||||||
@@ -83,6 +85,20 @@
|
|||||||
</td>
|
</td>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
{{#if item.system.isKido}}
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kido-color"}}</td>
|
||||||
|
<td><input name="data.color" type="text" value="{{data.color}}" data-dtype="String" /></td>
|
||||||
|
<td>{{localize "midgard5.kido-style"}}</td>
|
||||||
|
<td><input name="data.style" type="text" value="{{data.style}}" data-dtype="String" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kido-grade"}}</td>
|
||||||
|
<td><input name="data.grade" type="text" value="{{data.grade}}" data-dtype="String" /></td>
|
||||||
|
<td>{{localize "midgard5.kido-rank"}}</td>
|
||||||
|
<td><input name="data.rank" type="number" value="{{data.rank}}" data-dtype="Number" /></td>
|
||||||
|
</tr>
|
||||||
|
{{/if}}
|
||||||
</tr>
|
</tr>
|
||||||
<td>{{localize "midgard5.skill"}}</td>
|
<td>{{localize "midgard5.skill"}}</td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -60,7 +60,13 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span>{{localize "midgard5.item-weight"}}</span>
|
<span>{{localize "midgard5.item-weight"}}</span>
|
||||||
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
|
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}kg">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.item-abw"}}</span>
|
||||||
|
<input id="data.abw" type="number" name="data.abw" value="{{data.abw}}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<div class="sheet-npc" style="flex: 1 0 20%" data-attribute="{{attributeId}}">
|
||||||
|
<div class="attribute-header">{{localize (m5concat "midgard5.actor-" attributeId "-long")}}</div>
|
||||||
|
<div class="attribute-value"> <input class="attribute-footer-value" name="data.attributes.{{attributeId}}.value" value="{{attribute.value}}" type="text" data-dtype="Number" /></div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,233 @@
|
|||||||
|
|
||||||
|
<div class="flexbox">
|
||||||
|
|
||||||
|
<div class="flexcolumn-3">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/time/arrows-circling-pink.webp" class="flexpart-icon">{{localize "midgard5.calculated-values"}}</div>
|
||||||
|
<table>
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.movementRange"}}</td>
|
||||||
|
<td class="fixed-value">{{data.calc.stats.movement.value}}</td>
|
||||||
|
<td></td>
|
||||||
|
<td class="fixed-value"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.initiative"}}</td>
|
||||||
|
<td class="fixed-value">
|
||||||
|
{{#if (isSkillInList (localizeMidgard "anfuehren") data.calc.skills.general)}}
|
||||||
|
{{skillEwInList (localizeMidgard "anfuehren") data.calc.skills.general}}
|
||||||
|
{{else}}
|
||||||
|
{{skillEw actor._id data.skills.general.anfuehren}}
|
||||||
|
{{/if}}
|
||||||
|
</td>
|
||||||
|
<td>{{localize "midgard5.actionrank"}}</td>
|
||||||
|
<td class="fixed-value"><a class="join-combat">{{data.calc.attributes.gw.value}}</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-3">
|
||||||
|
<div class="flexpart" style="padding: 0 0.5rem;">
|
||||||
|
<div class="flexpart-header">{{localize "midgard5.actionrank"}}</div>
|
||||||
|
<button class="wide-button join-combat">{{localize "midgard5.combat-join"}}</button>
|
||||||
|
<button class="wide-button ranged-combat">{{localize "midgard5.combat-ranged"}}</button>
|
||||||
|
<button class="wide-button spell-combat">{{localize "midgard5.combat-spell"}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-3">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/life/cross-worn-green.webp" class="flexpart-icon">{{localize "TYPES.Item.effect"}}</div>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "TYPES.Item.effect"}}</th>
|
||||||
|
<td><a class="title add-effect"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.gear.effects as |item itemId|}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="items">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding">
|
||||||
|
<span class="edit-item">{{item.label}}</span>
|
||||||
|
{{#if item.equipped}}
|
||||||
|
<span class="spell-process">{{localize "midgard5.active"}}</span>
|
||||||
|
{{#unless (or (eq item.duration.unit "") (eq item.duration.unit "limitless"))}}
|
||||||
|
<span class="spell-process">{{item.duration.time}} {{localize (concat "midgard5.time-" item.duration.unit)}}</span>
|
||||||
|
{{/unless}}
|
||||||
|
{{/if}}
|
||||||
|
</td>
|
||||||
|
{{!--{{#unless (eq item.label "Belastung")}}--}}
|
||||||
|
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
{{!--{{/unless}}--}}
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flexcolumn-3">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/skills/melee/hand-grip-sword-white-brown.webp" class="flexpart-icon">{{localize "midgard5.attack"}}</div>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "TYPES.Item.weapon"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.damage"}}</th>
|
||||||
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||||
|
<td><a class="title add-weapon"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding edit-item {{#if item.special}}highlight{{/if}}">{{item.label}}{{#if item.special}}(*){{/if}}</td>
|
||||||
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
|
<td class="fixed-value">{{item.damageBase}}</td>
|
||||||
|
<td><button class="roll-button roll-weapon-button"></button></td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "midgard5.weapon-skill"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||||
|
<th><a class="title add-combat-skill"><i class="fa-regular fa-plus"></i></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.skills.combat as |skill skillId|}}
|
||||||
|
<tr data-item-id="{{skillId}}" class="item">
|
||||||
|
<td class="flexpart-img"><img src={{skill.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding edit-item">{{skill.label}}</td>
|
||||||
|
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||||
|
<td><button class="roll-button roll-learned-button"></button></td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-3">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/skills/melee/shield-block-gray-orange.webp" class="flexpart-icon">{{localize "midgard5.defense"}}</div>
|
||||||
|
<table>
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.defense"}}</td>
|
||||||
|
<td class="center">{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}</td>
|
||||||
|
<td class="fixed-value"><button class="roll-button roll-defense-button"></button></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.resistanceMind"}}</td>
|
||||||
|
<td class="center">{{data.calc.stats.resistanceMind.value}}</td>
|
||||||
|
<td class="fixed-value"><button class="roll-button roll-resistanceMind-button"></button></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.resistanceBody"}}</td>
|
||||||
|
<td class="center">{{data.calc.stats.resistanceBody.value}}</td>
|
||||||
|
<td class="fixed-value"><button class="roll-button roll-resistanceBody-button"></button></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "TYPES.Item.defensiveWeapon"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||||
|
<th><a class="title add-defensiveWeapon"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
|
<td><button class="roll-button roll-weapon-button"></button></td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "TYPES.Item.armor"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.actor-lp-short"}}</th>
|
||||||
|
<th><a class="title add-armor"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.gear.armor as |item itemId|}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
|
<td class="fixed-value">{{lpProtection}}</td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if actor.system.info.magicUsing }}
|
||||||
|
<div class="flexcolumn-3">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/symbols/star-inverted-yellow.webp" class="flexpart-icon">{{localize "TYPES.Item.spell"}}</div>
|
||||||
|
<table>
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.spellCasting"}}</td>
|
||||||
|
<td class="center">{{data.calc.stats.spellCasting.value}}</td>
|
||||||
|
<td class="fixed-value"><button class="roll-button roll-defense-button"></button></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "TYPES.Item.spell"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||||
|
<th><a class="title add-spell"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.spells as |item itemId|}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding edit-item {{#if item.special}}highlight{{/if}}">{{item.label}}{{#if item.special}}(*){{/if}}</td>
|
||||||
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
|
<td><button class="roll-button roll-weapon-button"></button></td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<div class="flexbox">
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart" style="height: 250px;">
|
||||||
|
<div class="flexpart-header"><img src="icons/environment/wilderness/mine-interior-dungeon-door.webp" class="flexpart-icon" />{{localize "midgard5.description"}}</div>
|
||||||
|
<br />
|
||||||
|
<div class="biography">{{editor data.info.description target="data.info.description" button=true owner=owner editable=editable}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart" style="height: 250px;">
|
||||||
|
<div class="flexpart-header"><img src="icons/environment/people/group.webp" class="flexpart-icon" />{{localize "midgard5.background"}}</div>
|
||||||
|
<br />
|
||||||
|
<div class="biography">{{editor data.info.background target="data.info.background" button=true owner=owner editable=editable}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
<form class="actor-sheet {{cssClass}}" autocomplete="off">
|
||||||
|
<header class="flexbox" style="background-color: beige; padding: 5px; border: 2px solid black;">
|
||||||
|
|
||||||
|
<!-- Logo -->
|
||||||
|
<div class="flexcolumn-5" style="height: 200px;">
|
||||||
|
<img class="profile-img" src="/systems/midgard5/assets/icons/backgrounds/bg1.webp" alt="Midgard">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Name, Class, Level, Race, Occupation -->
|
||||||
|
<div class="flexcolumn-2" style="margin:0px 5px 0px 5px;">
|
||||||
|
<table class="bordered">
|
||||||
|
<tr>
|
||||||
|
<td >{{localize "midgard5.actor-name"}}</td>
|
||||||
|
<td colspan="3"><input name="name" type="text" value="{{actor.name}}" data-dtype="String" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td >{{localize "midgard5.class"}}</td>
|
||||||
|
<td ><input name="data.info.npc-class" type="text" value="{{data.info.npc-class}}" data-dtype="String" /></td>
|
||||||
|
<td >{{localize "midgard5.level"}}</td>
|
||||||
|
<td>{{data.calc.level}}</td>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table style="font-weight: bold;">
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
<tr>
|
||||||
|
<td ><input name="data.info.race" type="text" value="{{data.info.race}}" data-dtype="String" /></td>
|
||||||
|
<td ><input name="data.info.occupation" type="text" value="{{data.info.occupation}}" data-dtype="String" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="text-align: center; font-size: small">{{localize "midgard5.race"}}</td>
|
||||||
|
<td style="text-align: center; font-size: small">{{localize "midgard5.occupation"}}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table style="width: 100%;">
|
||||||
|
<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="gs" data-value="{{data.attributes.gs.value}}">{{data.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="ko" data-value="{{data.attributes.ko.value}}">{{data.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="zt" data-value="{{data.attributes.zt.value}}">{{data.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="pa" data-value="{{data.attributes.pa.value}}">{{data.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="git" data-value="{{data.attributes.git.value}}">{{data.attributes.git.value}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-gs"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-gw"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-ko"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-in"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-zt"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-au"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-pa"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-wk"}}</td>
|
||||||
|
<td class="attribute">{{localize "midgard5.actor-git"}}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Profilbild -->
|
||||||
|
<div class="flexcolumn-5" style="height: 200px;text-align: center;" >
|
||||||
|
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- LP + AP -->
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td><b>{{localize "midgard5.actor-lp-short"}}</b></td>
|
||||||
|
<td colspan="9">
|
||||||
|
<div class="health-bar">
|
||||||
|
<input name="data.lp.value" type="text" value="{{data.lp.value}}" data-dtype="Number" />
|
||||||
|
{{#times data.lp.max}}
|
||||||
|
{{#if (lt this ../data.lp.value)}}
|
||||||
|
<div class="lp-bar-item update-lp" data-value="{{this}}"></div>
|
||||||
|
{{else}}
|
||||||
|
<div class="lp-bar-item-empty update-lp" data-value="{{this}}"></div>
|
||||||
|
{{/if}}
|
||||||
|
{{/times}}
|
||||||
|
<div class="max-value">{{data.lp.max}}</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>{{localize "midgard5.actor-ap-short"}}</b></td>
|
||||||
|
<td colspan="9">
|
||||||
|
<div class="health-bar">
|
||||||
|
<input name="data.ap.value" type="text" value="{{data.ap.value}}" data-dtype="Number" />
|
||||||
|
{{#times data.ap.max}}
|
||||||
|
{{#if (lt this ../data.ap.value)}}
|
||||||
|
<div class="ap-bar-item update-ap" data-value="{{this}}"></div>
|
||||||
|
{{else}}
|
||||||
|
<div class="ap-bar-item-empty update-ap" data-value="{{this}}"></div>
|
||||||
|
{{/if}}
|
||||||
|
{{/times}}
|
||||||
|
<div class="max-value">{{data.ap.max}}</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Character Sheet Navigation --}}
|
||||||
|
<nav class="sheet-navigation tabs" data-group="primary">
|
||||||
|
<a class="item active" data-tab="combat">{{ localize "midgard5.combat" }}</a>
|
||||||
|
<a class="item" data-tab="properties">{{ localize "midgard5.attributes" }}</a>
|
||||||
|
<a class="item" data-tab="description">{{ localize "midgard5.description" }}</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section class="sheet-content">
|
||||||
|
|
||||||
|
<div class="tab combat flexcol" data-group="primary" data-tab="combat">
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/combat.hbs"}}
|
||||||
|
</div>
|
||||||
|
<div class="tab properties flexcol" data-group="primary" data-tab="properties">
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/properties.hbs"}}
|
||||||
|
</div>
|
||||||
|
<div class="tab description flexcol" data-group="primary" data-tab="description">
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/description.hbs"}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
<div class="flexbox">
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart-header"><img src="icons/skills/melee/maneuver-sword-katana-yellow.webp" class="flexpart-icon">{{localize "midgard5.attributes"}}</div>
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="attributes">
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="st" attribute=data.attributes.st}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="gs" attribute=data.attributes.gs}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="gw" attribute=data.attributes.gw}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="ko" attribute=data.attributes.ko}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="in" attribute=data.attributes.in}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="zt" attribute=data.attributes.zt}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="au" attribute=data.attributes.au}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="pa" attribute=data.attributes.pa}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="wk" attribute=data.attributes.wk}}
|
||||||
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="git" attribute=data.attributes.git}}
|
||||||
|
<div class="sheet-npc">
|
||||||
|
<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>
|
||||||
|
<div class="sheet-npc">
|
||||||
|
<div class="attribute-header">{{localize "midgard5.exp-overall"}}</div>
|
||||||
|
<div class="attribute-value"><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="sheet-npc">
|
||||||
|
<div class="attribute-header">{{localize "midgard5.actor-lp-short"}} {{localize "midgard5.maximum"}}</div>
|
||||||
|
<div class="attribute-value"><input name="data.lp.max" type="text" value="{{data.lp.max}}" data-dtype="Number" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="sheet-npc">
|
||||||
|
<div class="attribute-header">{{localize "midgard5.actor-ap-short"}} {{localize "midgard5.maximum"}}</div>
|
||||||
|
<div class="attribute-value"><input name="data.ap.max" type="text" value="{{data.ap.max}}" data-dtype="Number" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="sheet-npc">
|
||||||
|
<div class="attribute-header">{{localize "midgard5.magicUsing"}}</div>
|
||||||
|
<div class="attribute-value"><input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flexcolumn-2">
|
||||||
|
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.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>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title">{{localize "midgard5.skills"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||||
|
<th><a class="title add-general-skill"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{{#each data.calc.skills.general as |skill skillId|}}
|
||||||
|
<tr data-item-id="{{skillId}}" class="item">
|
||||||
|
<td class="padding edit-item">{{skill.label}}</td>
|
||||||
|
<td class="fixed-value"><input type="text" value="{{skill.fw}}" data-dtype="Number" /></td>
|
||||||
|
<td><button class="roll-button roll-learned-button"></button></td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
{{#unless (not data.info.showUnlearned)}}
|
||||||
|
{{#each data.skills.general as |skill key|}}
|
||||||
|
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||||
|
<tr data-skill="{{key}}">
|
||||||
|
<td class="padding" style="font-style: italic;">{{localizeMidgard key}}</td>
|
||||||
|
<td class="fixed-value"><input type="text" value="{{skill.fw}}" data-dtype="Number" /></td>
|
||||||
|
<td><button class="roll-button roll-general-button"></button></td>
|
||||||
|
<td><a class="learn-button" title="Learn Skill"><i class="fa-regular fa-plus"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/unless}}
|
||||||
|
{{/each}}
|
||||||
|
{{/unless}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flexcolumn-2">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/tools/hand/scale-balances-merchant-brown.webp" class="flexpart-icon">{{localize "midgard5.gear"}}</div>
|
||||||
|
<table>
|
||||||
|
<thead class="theader">
|
||||||
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
|
<th class="title">{{localize "TYPES.Item.item"}}</th>
|
||||||
|
<th class="title center">{{localize "midgard5.item-quantity"}}</th>
|
||||||
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
|
<td><a class="title add-item"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
{{#each data.calc.gear.items as |item itemId|}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
|
<td class="padding">
|
||||||
|
<span class="edit-item">{{item.label}}</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<i class="fa fa-minus-circle quantity-decrease" style="cursor: pointer"></i>
|
||||||
|
<span>{{item.quantity}}</span>
|
||||||
|
<i class="fa fa-plus-circle quantity-increase" style="cursor: pointer"></i>
|
||||||
|
</td>
|
||||||
|
<td style="text-align: start">
|
||||||
|
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
||||||
|
<span class="spell-process">{{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}}</span>
|
||||||
|
{{/unless}}
|
||||||
|
</td>
|
||||||
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user