Compare commits

..
10 Commits
Author SHA1 Message Date
Byroks 58c8d814e3 Merge branch 'develop' 2024-03-29 14:33:58 +01:00
Byroks cb05c9a67b Merge branch 'develop' 2024-03-04 14:20:38 +01:00
Byroks c0dced6fe6 Merge branch 'develop' 2024-02-05 13:30:41 +01:00
Byroks 5a41c4bb56 Merge branch 'develop' 2024-02-05 10:35:31 +01:00
Byroks 7ee92f6601 Squashed commit of the following:
commit 33c65735bd
Author: Byroks <byroks@gmail.com>
Date:   Sat Jan 20 15:31:35 2024 +0100

    v2.4.0

commit 2bfd3a7d6a
Author: Byroks <byroks@gmail.com>
Date:   Sat Jan 20 13:58:22 2024 +0100

    #46-problems-with-character-description-editor (#50)

    Changes:
     + adjust height and width of the editor

    WIP for #46
    Closes #44

    Reviewed-on: #50

commit 03b87f2df0
Author: Byroks <byroks@gmail.com>
Date:   Sat Jan 20 13:44:06 2024 +0100

    update url

commit 9d72b31d5f
Author: Byroks <byroks@gmail.com>
Date:   Sat Jan 20 12:37:05 2024 +0100

    Add Items on Character Sheet

    Changes:
     + add button to add all different kind of items directly onto the character sheet
     + fix #1 by correctly updating the item

commit c13fef5103
Author: oskaloq <os_ka_loq@gmx.de>
Date:   Tue Jan 16 11:25:39 2024 +0100

    Zusammenführung-von-Fertigkeiten,-Waffen-und-Rüstungen-im-Kampf-Tab-#15 (#48)

    - Created character description tab
    - Redesigned skill, gear and combat tab
    - Weapons, defense weapons and armor is still in the gear tab. If you equip them (now directly possible via click on the equip icon), they appear in the combat tab. Reason: This holds the combat tab clean for combat stuff.

    Co-authored-by: Ender <harald@drueppels.de>
    Reviewed-on: #48
    Reviewed-by: Byroks <byroks@gmail.com>

commit abf8077131
Author: Byroks <byroks@gmail.com>
Date:   Tue Jan 16 08:29:14 2024 +0100

    #33 Wrong wealth calculation (#34)

    Changes:
     + add function to adjust item value depending on currency
    Co-authored-by: Simon Gustavs <simon.gustavs@bms-cs.de>
    Reviewed-on: #34
    Reviewed-by: oskaloq <os_ka_loq@gmx.de>

commit b5b75aa2c6
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 15 14:15:30 2024 +0100

    #18 Remove ContainerId from containers (#29)

    Changes
     + remove containerId variable from containers as it's not needed

    Reviewed-on: #29
    Reviewed-by: oskaloq <os_ka_loq@gmx.de>

commit 7368673ba3
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 20:42:22 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit a606750b23
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 20:41:15 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 7358b67da2
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 20:41:05 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 2a36b8eaa1
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 20:38:50 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit f38ef8aa6d
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 16:16:04 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 2ac8a6bba4
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 16:09:13 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 41fb1a8879
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 16:02:37 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit ff74871a0c
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 12:56:49 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit f8b65c030f
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 12:39:39 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 31a4ccfda1
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 12:37:43 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit c24e2b7af2
Author: Byroks <byroks@gmail.com>
Date:   Mon Jan 8 12:28:41 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit cfdba0ee75
Author: oskaloq <os_ka_loq@gmx.de>
Date:   Sun Jan 7 22:53:16 2024 +0100

    Anpassung-des-Character-Sheet-Headers-#13 (#28)

    - Made character sheet header more responsive
    - Changed Logo
    - Changed "all gear items" container, that it shows items not in dedicated containers ( unless "Alle" checkbox is set)

    Co-authored-by: Ender <harald@drueppels.de>
    Co-authored-by: Byroks <byroks@gmail.com>
    Reviewed-on: #28
    Reviewed-by: Byroks <byroks@gmail.com>

commit d67de1b064
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 16:47:12 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 718f1eab99
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 16:38:35 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 47fd5b7763
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 16:37:27 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit ad884994dd
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 16:17:20 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit b08bd195c7
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 15:45:46 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit c83cd8f079
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 15:40:56 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit b1ef88235f
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 15:37:37 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit da1ae4e16e
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 15:35:54 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 840a7c1dc4
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 15:33:26 2024 +0100

    Update .gitea/workflows/add-issue-to-project.yaml

commit 4825166f87
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 15:06:01 2024 +0100

    Add .gitea/workflows/add-issue-to-project.yaml

commit b8e873537c
Author: LeFrique <lefrique@live.de>
Date:   Sun Jan 7 14:31:20 2024 +0100

    Zwergenhort (#4)

    Mein Geschenk zu Weihnachten:

    Implementierung des Zwergenhort gem. KOD S. 167 mit Angabe aktueller Mindesthort für aktuellen Grad und benötigtem Hort für nächsten Grad bei Zwergen. Der Hort erscheint nur bei ausgewählter Rasse Zwerg und wird bei allen anderen Rassen versteckt. Die Anrechnung von Gold oder Gegenständen wie auch im KOD erwähnt erfordert die Implementierung eines Goldmanagements und am besten auch eine Neustrukturierung des Charakterbogens (s. weitere Issues).

    Frohe Weihnachten ;)

    Co-authored-by: Byroks <byroks@gmail.com>
    Reviewed-on: #4
    Co-authored-by: LeFrique <lefrique@live.de>
    Co-committed-by: LeFrique <lefrique@live.de>

commit 975bcd1e15
Author: Byroks <byroks@gmail.com>
Date:   Sun Jan 7 14:29:39 2024 +0100

    #10 Kampfkunst nicht öffenbar (#11)

    Änderungen:
     + auskommentierte if Bedingung wieder drin
     + if Bedingung angepasst

    Reviewed-on: #11
    Reviewed-by: Le-Frique <lefrique@live.de>

commit b945f22710
Author: oskaloq <os_ka_loq@gmx.de>
Date:   Wed Jan 3 15:57:15 2024 +0100

    Charakterbogen anpassen #7 (#9)

    - Use of flexboxes in two columns for better display
    - Introduction of item containers for the different storage of items

    Co-authored-by: Ender <harald@drueppels.de>
    Co-authored-by: Byroks <byroks@gmail.com>
    Reviewed-on: Byroks/foundry-vtt-system-midgard5#9
    Reviewed-by: Byroks <byroks@gmail.com>

commit 6baf9a0269
Author: Byroks <byroks@gmail.com>
Date:   Mon Dec 18 19:53:37 2023 +0100

    Change git Path (#3)

    Changes:
     + change github urls to git.byroks
    Reviewed-on: Byroks/foundry-vtt-system-midgard5#3
    Reviewed-by: Le-Frique <lefrique@live.de>
2024-01-20 15:33:05 +01:00
Byroks 8a3c632c7d Merge branch 'develop' 2023-12-15 21:36:50 +01:00
Byroks 7fe52cf52a Merge branch 'develop' 2023-12-13 18:55:13 +01:00
Byroks f4a2338075 Merge branch 'develop' 2023-12-06 16:13:30 +01:00
Byroks 024f0b9c42 Squashed commit of the following:
commit 250fc499ae
Author: Byroks <byroks@gmail.com>
Date:   Thu Nov 30 16:17:04 2023 +0100

    v2.1.0

commit 28595e7dd0
Author: Byroks <byroks@gmail.com>
Date:   Thu Nov 30 15:50:59 2023 +0100

    Make Items with mods equippable (#11)

    Changes:
     + Items that can influence you stats are equippable
     + only equipped items influence your stats
     + Armor now influences your stats
     + move mods into a partial for easier changes

commit 8095785fc2
Author: Byroks <byroks@gmail.com>
Date:   Wed Nov 29 10:14:49 2023 +0100

    Movement stat (#10)

    Changes:
     + make movement stat work and be moddable by effects

commit e141839055
Merge: 14e005c 0bfa224
Author: Byroks <byroks@gmail.com>
Date:   Tue Nov 28 19:50:38 2023 +0100

    Merge branch 'main' into develop

commit 14e005cb0a
Author: Byroks <byroks@gmail.com>
Date:   Tue Nov 28 19:48:14 2023 +0100

    v2.0.0

commit c635c54f24
Author: Byroks <byroks@gmail.com>
Date:   Tue Nov 28 19:42:38 2023 +0100

    Dev Kampfkünste Items & Integration (#7)

    Changes:
     + add kampfkuenste template
     + add kampfkuenste tab
     + make kampfkuenste rollable
     + update localization

commit e27f4209e5
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 20:05:20 2023 +0100

    Squashed commit of the following:

    commit 0bfa224dae
    Author: Byroks <byroks@gmail.com>
    Date:   Mon Nov 27 19:56:05 2023 +0100

        V1.3.1 (#6)

        * v1.3.1

        * v1.3.1

        * update .gitingore

    commit 35a6b0fae9
    Author: Byroks <byroks@gmail.com>
    Date:   Mon Nov 27 19:48:56 2023 +0100

        v1.3.1

    commit db21ca93b0
    Author: Byroks <byroks@gmail.com>
    Date:   Sun Nov 26 13:13:13 2023 +0100

        subtract ap when casting spell

        Changes:
         + subtract AP when casting a spell
2023-11-30 16:19:25 +01:00
ByroksandGitHub 16df142d45 v2.0.0 (#8)
* Squashed commit of the following:

commit 0bfa224dae
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 19:56:05 2023 +0100

    V1.3.1 (#6)

    * v1.3.1

    * v1.3.1

    * update .gitingore

commit 35a6b0fae9
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 19:48:56 2023 +0100

    v1.3.1

commit db21ca93b0
Author: Byroks <byroks@gmail.com>
Date:   Sun Nov 26 13:13:13 2023 +0100

    subtract ap when casting spell

    Changes:
     + subtract AP when casting a spell

* Dev Kampfkünste Items & Integration (#7)

Changes:
 + add kampfkuenste template
 + add kampfkuenste tab
 + make kampfkuenste rollable
 + update localization

* v2.0.0
2023-11-28 19:50:56 +01:00
31 changed files with 110 additions and 808 deletions
+3 -3
View File
@@ -473,8 +473,8 @@ const updateManifest = (cb: any) => {
const result = `${repoURL}/releases/download`;
manifest.file.url = repoURL;
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?token=2455375115b92bc8d87c93df7159eec232456f2d`;
manifest.file.manifest = `${result}/v${manifest.file.version}/${manifest.name}`;
manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip`;
const prettyProjectJson = stringify(manifest.file, {
maxLength: 35,
@@ -504,7 +504,7 @@ const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
if (!manifest) return cb(Error("could not load manifest."));
return gulp
.src(`${manifest.file.name}.zip`)
.src(`${manifest.file.name}-v${manifest.file.version}.zip`)
.pipe(git.checkout(`v${manifest.file.version}`, { args: "-b" }))
.pipe(git.add({ args: "--no-all -f" }))
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
+6 -19
View File
@@ -1,6 +1,6 @@
{
"TYPES.Actor.character": "Charakter",
"TYPES.Actor.npc": "Kreatur / Nichtspielerfigur",
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
"TYPES.Item.item": "Gegenstand",
@@ -61,8 +61,6 @@
"item-ismagic": "Ist Magisch",
"item-wealth": "Vermögenswert",
"item-weight": "Gewicht",
"item-abw": "ABW",
"item-abw-long": "Ausbrennwahrscheinlichkeit",
"actor-lp": "Lebenspunkte",
"actor-lp-short": "LP",
@@ -135,7 +133,7 @@
"heavy-load": "Schwere Last",
"thrust-load": "Schublast",
"load-max": "Höchstlast",
"capacity": "Tragkraft",
"load-capacity": "Tragkraft",
"exp-overall": "Erfahrungsschatz",
"exp-available": "Erfahrungspunkte",
@@ -156,10 +154,6 @@
"beredsamkeit": "Beredsamkeit",
"betaeuben": "Betäuben",
"betaeubungsgriff": "Betäubungsgriff",
"bildendeKuensteA": "Bildende Künste (Architektur)",
"bildendeKuensteB": "Bildende Künste (Bildhauerei)",
"bildendeKuensteG": "Bildende Künste (Grafik)",
"bildendeKuensteM": "Bildende Künste (Malerei)",
"bootfahren": "Bootfahren",
"dickhaeuterLenken": "Dickhäuter lenken",
"ersteHilfe": "Erste Hilfe",
@@ -287,7 +281,6 @@
"rangedWeapon": "Schusswaffe",
"assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
"showAll": "Alle anzeigen",
"showUnlearned": "Ungelernte Fertigkeiten",
"wealthAndWeight": "Vermögen und Lasten",
"itemsInContainers": "Gegenstände in Aufbewahrung",
"allItems": "Alle Gegenstände",
@@ -363,13 +356,12 @@
"spell-agens": "Agens",
"spell-reagens": "Reagens",
"spell-material": "Zaubermaterial",
"spell-rank": "Stufe",
"kampfkunst-type": "Form",
"kampfkunst-variante": "Variante",
"kampfkunst-variante-short": "Var",
"kampfkunst-ep": "Erfahrungspunkte",
"kampfkunst-rank": "Stufe der Technik",
"kampfkunst-rank": "Stufe",
"kampfkunst-weapon": "Waffengruppe",
"kampfkunst-enemy": "Einschränkungen durch Art der Gegner",
@@ -393,10 +385,6 @@
"kido-variante": "KiDo Variante",
"kido-color": "Kampfstilfarbe",
"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-verteidigung": "Kido Verteidigung",
@@ -411,7 +399,6 @@
"kido-variante-blockieren": "Blockieren",
"kido-variante-bewegen": "Bewegen",
"kido-variante-kontrollieren": "Kontrollieren",
"kido-variante-finte": "Finte",
"mod-operation-add100": "Addieren (max 100)",
"mod-operation-roll": "Wurf Modifikation",
@@ -457,9 +444,9 @@
"reroll": "Neuwürfeln",
"options": {
"modifier": "Wurfmodifikator",
"difficulty": "Erfolg",
"rollMode": "Würfelmodus"
"modifier": "Modifikator",
"difficulty": "Schwellenwert",
"rollMode": "Würfel Modus"
}
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "foundry-system-midgard5",
"version": "2.7.2",
"version": "2.6.0",
"description": "",
"main": "index.js",
"scripts": {
-5
View File
@@ -15,11 +15,6 @@ const preloadTemplates = async (): Promise<Handlebars.TemplateDelegate<any>[]> =
"sheets/character/spells.hbs",
"sheets/character/combat.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/item/rolls.hbs",
"chat/roll-m5.hbs",
-1
View File
@@ -162,7 +162,6 @@ export interface M5AttributeCalculated extends M5ModResult {
export interface M5CharacterCalculatedData {
level: number;
movement: number;
attributes: {
st: M5AttributeCalculated;
gs: M5AttributeCalculated;
+6 -33
View File
@@ -152,7 +152,6 @@ export class M5Character extends Actor {
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
//Set all values that are not dependent on another Value
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
@@ -177,37 +176,11 @@ export class M5Character extends Actor {
ret.stats.ap = this.modResult(data.ap);
ret.stats.lpProtection = this.modResult(0);
ret.stats.apProtection = this.modResult(0);
ret.stats.movement = this.modResult(data.movement);
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(10));
ret.stats.hoard = 0;
ret.stats.encumbrance = 0;
if (!skip?.mods) {
const aggregate = new M5ModAggregate(data, ret);
context.items
?.filter(
(item) =>
(item.type === "item" || item.type === "skill" || item.type === "effect" || item.type === "armor" || item.type === "container" || item.type === "class") && item.system.equipped
)
.forEach((item) => {
const mods = item.system.mods;
//console.log("Actor item mods", mods)
Object.keys(mods).forEach((modIndex) => {
const mod = mods[modIndex] as M5ItemMod;
aggregate.push(mod, item.name);
});
});
ret.skillMods = aggregate.calculate();
}
ret.stats.defense = this.modResult(M5Character.defenseFromLevel(ret.level));
ret.stats.damageBonus = this.modResult(Math.floor(ret.attributes.st.value / 20) + Math.floor(ret.attributes.gs.value / 30) - 3);
ret.stats.attackBonus = this.modResult(ret.attributes.gs.bonus);
ret.stats.defenseBonus = this.modResult(ret.attributes.gw.bonus);
ret.stats.movement = this.modResult(data.movement);
ret.stats.resistanceMind = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.in.bonus : this.raceBonus(data.info.race)));
ret.stats.resistanceBody = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race)));
ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);
@@ -218,10 +191,15 @@ export class M5Character extends Actor {
ret.stats.deprivationCold = this.modResult(Math.floor(ret.attributes.ko.value / 2));
ret.stats.deprivationHeat = this.modResult(Math.floor(ret.attributes.ko.value / 2));
ret.stats.deprivationFood = this.modResult(Math.floor(40 + ret.attributes.ko.value / 2));
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
ret.stats.hoard = 0;
ret.stats.load = M5Character.loadValue(data.attributes.st);
ret.stats.heavyLoad = M5Character.heavyLoadValue(data.attributes.st);
ret.stats.loadMax = M5Character.maxLoadValue(data.attributes.st);
ret.stats.thrustLoad = M5Character.thrustLoadValue(data.attributes.st);
ret.stats.encumbrance = 0;
if (!skip?.mods) {
const aggregate = new M5ModAggregate(data, ret);
@@ -302,7 +280,6 @@ export class M5Character extends Actor {
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].value += parseFloat(this.calculateValue(item.system.value * item.system.quantity, item.system.currency).toPrecision(3));
if (ret.gear.containers[item.system.containerId].equipped) {
ret.stats.encumbrance += item.system.weight * item.system.quantity;
}
@@ -325,7 +302,6 @@ export class M5Character extends Actor {
label: label,
icon: icon,
magic: item.system.magic,
abw: item.system.abw || 0,
calc: item.system.calc,
equipped: item.system?.equipped,
valuable: item.system?.valuable,
@@ -376,7 +352,6 @@ export class M5Character extends Actor {
icon: item.img,
skillId: item.system.skillId,
magic: item.system.magic,
abw: item.system.abw || 0,
valuable: item.system?.valuable,
hoarded: item.system?.hoarded,
value: item.system.value || 0,
@@ -420,7 +395,6 @@ export class M5Character extends Actor {
icon: item.img,
skillId: item.system.skillId,
magic: item.system.magic,
abw: item.system.abw || 0,
valuable: item.system?.valuable,
hoarded: item.system?.hoarded,
value: item.system.value || 0,
@@ -464,7 +438,6 @@ export class M5Character extends Actor {
label: label,
icon: item.img,
magic: item.system.magic,
abw: item.system.abw || 0,
valuable: item.system?.valuable,
hoarded: item.system?.hoarded,
value: item.system.value || 0,
+5 -11
View File
@@ -314,7 +314,7 @@ export class M5Item extends Item {
return ret;
}
async roll(toggleAutomatedRoll = false) {
async roll() {
const item = this as any;
// Initialize chat data.
@@ -341,20 +341,14 @@ 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 (this.actor["system"].ap.value >= item.system.ap) {
this.actor["update"]({
data: {
ap: {
value: this.actor["system"].ap.value - item.system.ap,
},
},
});
}
this.actor["system"].ap.value -= item.system.ap;
}
}
const roll = new M5Roll(rollData, this.actor, item.name, item.id);
return roll.toMessage();
} else {
ChatMessage.create({
speaker: speaker,
+5 -23
View File
@@ -11,12 +11,7 @@ export class M5Roll {
public _total: number = 0;
public pool: PoolTerm = null;
constructor(
public data: M5RollData,
public actor: any,
public label: string,
public id?: string
) {
constructor(public data: M5RollData, public actor: any, public label: string, public id?: string) {
//super(null)
//this.data = rollData
}
@@ -31,7 +26,7 @@ export class M5Roll {
.map((rollName, index) => {
indexMap.set(index, rollName);
const formula = this.data.rolls[rollName];
formula.formula = index === 0 && this.id !== "-1" ? formula.formula + `+ ${this.data.b.modifier}` : formula.formula;
formula.formula = index === 0 && this.id !== "-1" ? formula.formula.replace(/(\d*d\d*)/, `{$1 + ${this.data.b.modifier}}`) : formula.formula;
const roll = new Roll(formula.formula, this.data);
return roll;
});
@@ -95,7 +90,6 @@ export class M5Roll {
this.data.res.label = this.label;
if ((game as Game).settings.get("midgard5", "automatedPP") && this.data.iType !== null) {
if ((this.data.i.type === "language" || this.data.i.type === "general") && this.data.rolls[0].dice[0] >= 16) {
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
this.actor.items.get(this.id).update({
system: {
pp: this.data.i.pp + 1,
@@ -103,7 +97,6 @@ export class M5Roll {
});
} else if (this.data.rolls[0].dice[0] === 20) {
if (this.data.i.type === "combat") {
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
// Rolling through skill
this.actor.items.get(this.id).update({
system: {
@@ -111,7 +104,6 @@ export class M5Roll {
},
});
} else if (this.data.iType === "weapon") {
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
// Rolling through Weapon Item
const skill = this.actor.items.get(this.data.i.skillId);
skill.update({
@@ -120,7 +112,6 @@ export class M5Roll {
},
});
} else if (this.data.iType === "defensiveWeapon") {
ui.notifications.notify(`Praxispunkt eingetragen für ${this.actor.items.get(this.id).name}`);
// Rolling through defensiveWeapon Item
const skill = this.actor.items.get(this.data.i.skillId);
skill.update({
@@ -129,7 +120,6 @@ export class M5Roll {
},
});
} else if (this.data.iType === "spell") {
ui.notifications.notify(`Praxispunkt eingetragen für ${this.data.i.process}`);
// Rolling through Spell Item
const klasse = this.actor.items.find((x) => x.type === "class" && x.system.equipped);
klasse.update({
@@ -152,26 +142,18 @@ export class M5Roll {
return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
}
async toMessage(toggleAutomatedRoll = false) {
let automatedRoll = (game as Game).settings.get("midgard5", "automatedRoll");
automatedRoll = toggleAutomatedRoll ? !automatedRoll : automatedRoll;
let rMode = (game as Game).settings.get("core", "rollMode");
if (!automatedRoll) {
async toMessage() {
let checkOptions = await this.popUp({ isPW: this.data.rolls[0].label === (game as Game).i18n.localize("midgard5.pw") });
if (checkOptions["cancelled"]) {
return;
} else {
rMode = checkOptions["rollMode"];
this.data.b = checkOptions;
}
} else {
this.data.b = { difficulty: 20, modifier: 0 };
}
if (!this._evaluated) await this.evaluate();
const faces = this.pool.dice.map((x) => x.faces);
const rMode = checkOptions["rollMode"] || (game as Game).settings.get("core", "rollMode");
const chatData = {
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
content: await this.render(),
@@ -222,7 +204,7 @@ export class M5Roll {
rollData.rolls["0"] = {
formula: "1d20 + @i.fw + @i.bonus",
enabled: true,
label: (game as Game).i18n.localize("midgard5.ew"),
label: (game as Game).i18n.localize("midgard5.pw"),
result: "",
total: 0,
totalStr: "",
+16 -48
View File
@@ -7,6 +7,7 @@ import { M5Roll } from "../rolls/M5Roll";
export default class M5CharacterSheet extends ActorSheet {
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
template: "systems/midgard5/templates/sheets/character/main.hbs",
width: 1000,
height: 800,
classes: ["midgard5", "sheet", "character"],
@@ -20,15 +21,7 @@ export default class M5CharacterSheet extends ActorSheet {
});
}
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";
}
}
// get template() {
// return "systems/midgard5/templates/character_sheet/main.hbs"
// }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data<Options>
@@ -85,8 +78,7 @@ export default class M5CharacterSheet extends ActorSheet {
let attributeValue = target ? parseInt(target.dataset.value) : null;
let attributeStr = target ? target.dataset.attribute : null;
const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".edit-item").on("click", async (event) => {
@@ -146,8 +138,7 @@ export default class M5CharacterSheet extends ActorSheet {
});
}
let toggleAutomatedRoll = (event.shiftKey)
await item.roll(toggleAutomatedRoll);
await item.roll();
this.render();
});
@@ -167,8 +158,7 @@ export default class M5CharacterSheet extends ActorSheet {
const actor = this.actor as any;
const item = actor.items.get(skillId) as M5Item;
let toggleAutomatedRoll = (event.shiftKey)
await item.roll(toggleAutomatedRoll);
await item.roll();
});
html.find(".roll-general-button").on("click", async (event) => {
@@ -179,8 +169,7 @@ export default class M5CharacterSheet extends ActorSheet {
const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
const roll = M5Roll.fromUnlearnedSkill(this.actor, unlearnedSkill, skillName);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".learn-button").on("click", async (event) => {
@@ -278,57 +267,48 @@ export default class M5CharacterSheet extends ActorSheet {
const context = this.actor as any;
const item = context.items.get(itemId) as M5Item;
let toggleAutomatedRoll = (event.shiftKey)
await item.roll(toggleAutomatedRoll);
await item.roll();
this.render();
});
html.find(".roll-brawl-button").on("click", async (event) => {
const roll = M5Roll.brawl(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-cleanSpell-button").on("click", async (event) => {
const roll = M5Roll.cleanSpell(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-deprivationCold-button").on("click", async (event) => {
const roll = M5Roll.deprivationCold(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-deprivationHeat-button").on("click", async (event) => {
const roll = M5Roll.deprivationHeat(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-deprivationFood-button").on("click", async (event) => {
const roll = M5Roll.deprivationFood(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-defense-button").on("click", async (event) => {
const roll = M5Roll.defense(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-resistanceMind-button").on("click", async (event) => {
const roll = M5Roll.resistanceMind(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".roll-resistanceBody-button").on("click", async (event) => {
const roll = M5Roll.resistanceBody(this.actor);
let toggleAutomatedRoll = (event.shiftKey)
await roll.toMessage(toggleAutomatedRoll);
await roll.toMessage();
});
html.find(".change-equipped").on("click", async (event) => {
@@ -546,11 +526,7 @@ export default class M5CharacterSheet extends ActorSheet {
let data = null;
try {
data = JSON.parse(event.dataTransfer.getData("text/plain"));
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
data.data.system.containerId = ""; //Clean containerId
if (data.type !== "Transfer") return false;
} catch (err) {
return false;
@@ -559,14 +535,6 @@ export default class M5CharacterSheet extends ActorSheet {
if (!data.data) return false;
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);
}
-9
View File
@@ -13,13 +13,4 @@ export const loadSettings = async function () {
default: true,
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,
});
};
+9
View File
@@ -88,6 +88,15 @@
border: 0px solid black;
}
.profile-img {
display: block;
margin-left: auto;
margin-right: auto;
height: 100%;
width: auto;
border: 0px solid black;
}
.sheet.character {
form {
display: flex;
-23
View File
@@ -1,23 +0,0 @@
// 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;
}
}
}
+4 -8
View File
@@ -3,17 +3,13 @@
"name": "midgard5",
"title": "Midgard 5. Edition",
"description": "The German RPG Midgard 5. Edition",
"version": "2.7.2",
"version": "2.6.0",
"compatibility": {
"minimum": "10",
"verified": "11",
"maximum": "11"
},
"authors": [
{"name": "Byroks"},
{"name": "Le-Frique"},
{"name": "Oskaloq"}
],
"authors": [{ "name": "Byroks" }, { "name": "Le-Frique" }, { "name": "Oskaloq" }],
"scripts": ["bundle.js"],
"styles": ["bundle.css"],
"languages": [
@@ -28,8 +24,8 @@
"primaryTokenAttribute": "lp",
"secondaryTokenAttribute": "ap",
"url": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5",
"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/latest/midgard5.zip?token=2455375115b92bc8d87c93df7159eec232456f2d",
"manifest": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.6.0/system.json",
"download": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.6.0/midgard5-v2.6.0.zip",
"initiative": "@c.calc.attributes.gw.value",
"license": "LICENSE.txt"
}
+7 -29
View File
@@ -1,18 +1,15 @@
{
"Actor": {
"types": [
"character",
"npc"
],
"types": ["character"],
"templates": {
"characterDescription": {
"info": {
"description": "",
"background": "",
"class": {},
"npc-class": "",
"race": "",
"magicUsing": false,
"showAllItems": false,
"gender": "",
"weight": "",
"height": "",
@@ -22,12 +19,9 @@
"occupation": "",
"origin": "",
"faith": "",
"level": 1,
"gold": 0,
"silver": 0,
"copper": 0,
"showAllItems": false,
"showUnlearned": false
"copper": 0
}
},
"characterBars": {
@@ -50,8 +44,6 @@
"gp": 0
},
"attributes": {
"level": 1,
"movement": 24,
"attributes": {
"st": { "value": 50, "bonus": 0 },
"gs": { "value": 50, "bonus": 0 },
@@ -61,8 +53,7 @@
"zt": { "value": 50, "bonus": 0 },
"au": { "value": 50, "bonus": 0 },
"pa": { "value": 50, "bonus": 0 },
"wk": { "value": 50, "bonus": 0 },
"git": { "value": 50, "bonus": 0 }
"wk": { "value": 50, "bonus": 0 }
}
},
"skills": {
@@ -81,10 +72,6 @@
"bergreiten": { "fw": 0, "attribute": "gw", "initial": 12, "pp": 0 },
"betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
"betaeubungsgriff": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
"bildendeKuensteA": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
"bildendeKuensteB": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
"bildendeKuensteG": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
"bildendeKuensteM": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
"bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
"dickhaeuterLenken": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
"ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
@@ -169,10 +156,6 @@
"character": {
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
"calc": {}
},
"npc": {
"templates": ["characterBars", "attributes", "characterDescription", "skills", "gear"],
"calc": {}
}
},
"Item": {
@@ -241,8 +224,7 @@
"weight": 0,
"capacity": 0,
"containerId": "",
"magic": false,
"abw": 0
"magic": false
},
"durationSelection": {
"durationSelection": {
@@ -332,8 +314,7 @@
"ausweichen": "midgard5.kido-variante-ausweichen",
"blockieren": "midgard5.kido-variante-blockieren",
"bewegen": "midgard5.kido-variante-bewegen",
"kontrollieren": "midgard5.kido-variante-kontrollieren",
"finte": "midgard5.kido-variante-finte"
"kontrollieren": "midgard5.kido-variante-kontrollieren"
}
}
},
@@ -393,7 +374,6 @@
"hoarded": false,
"skillId": "",
"damageBase": "1d6",
"ew": 5,
"rolls": {
"formulas": {
"0": {
@@ -458,7 +438,6 @@
"agens": "",
"reagens": "",
"material": "",
"rank": 0,
"rolls": {
"formulas": {
"0": {
@@ -480,11 +459,10 @@
"ap": "",
"weapon": "",
"ep": "",
"rank": 0,
"rank": "",
"enemy": "",
"color": "",
"style": "",
"grade": "",
"rolls": {
"formulas": {
"0": {
+6 -4
View File
@@ -94,29 +94,31 @@
<td class="roll-spell-details">{{i.ep}}</td>
</tr>
<tr>
<td>{{localize "midgard5.kido-color"}}</td>
<td>{{localize "midgard5.kampfkunst-color"}}</td>
<td class="roll-spell-details">{{i.color}}</td>
</tr>
<tr>
<td>{{localize "midgard5.kido-style"}}</td>
<td>{{localize "midgard5.kampfkunst-style"}}</td>
<td class="roll-spell-details">{{i.style}}</td>
</tr>
<tr>
<td>{{localize "midgard5.kido-type"}}</td>
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-type-" i.type)}}</td>
</tr>
{{#if (eq i.type "angriff")}}
<tr>
<td>{{localize "midgard5.kido-variante"}}</td>
<td class="roll-spell-details">{{localize (m5concat "midgard5.kido-variante-" i.variante)}}</td>
</tr>
<tr>
<td>{{localize "midgard5.kido-enemy"}}</td>
<td>{{localize "midgard5.kampfkunst-enemy"}}</td>
<td class="roll-spell-details">{{i.enemy}}</td>
</tr>
<tr>
<td>{{localize "midgard5.kido-weapon"}}</td>
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
<td class="roll-spell-details">{{i.weapon}}</td>
</tr>
{{/if}}
{{/unless}}
{{/if}}
+1 -1
View File
@@ -35,7 +35,7 @@
<td>{{localize "midgard5.grace"}}</td>
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
<td>{{localize "midgard5.exp-overall"}}</td>
<td width="40%"><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
<td><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
</tr>
<tr>
<td>{{localize "midgard5.destiny"}}</td>
+10 -10
View File
@@ -63,7 +63,7 @@
<h3>{{localize "midgard5.itemsInContainers"}}</h3>
<div class="flexbox">
{{#each data.calc.gear.containers as |container containerId|}}
<div class="flexcolumn-2" data-container-id="{{containerId}}">
<div class="flexcolumn-2">
<div class="flexpart">
<div class="flexpart-header"><img src="{{container.icon}}" class="flexpart-icon">{{container.label}}</div>
<table>
@@ -234,7 +234,7 @@
<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"><img src="/icons/svg/d20.svg" class="table-icon"></th>
<th><a class="title add-container"><i class="fa-regular fa-plus"></i></a></th>
<td><a class="title add-container"><i class="fa-regular fa-plus"></i></a></th>
</tr>
</thead>
<tbody class="items-list">
@@ -251,13 +251,13 @@
{{/unless}}
</td>
<td style="text-align: start">
{{#unless (or (eq item.weight 0) (eq item.equipped?))}}
<span class="spell-process">{{item.weight}}kg</span>
{{#unless (or (eq item.weight "") (eq item.equipped?))}}
<span class="spell-process">{{item.weight}} kg</span>
{{/unless}}
</td>
<td style="text-align: start">
{{#unless (eq item.capacity 0)}}
<span class="spell-process"{{#if (gt item.weight item.capacity) }}style="background:#FF6666"{{/if}}>{{item.capacity}}kg</span>
{{#unless (eq item.capacity "")}}
<span class="spell-process">{{item.capacity}} kg</span>
{{/unless}}
</td>
<td class="change-equipped">
@@ -289,7 +289,7 @@
<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="/icons/svg/d20.svg" class="table-icon"></th></th>
<th><a class="title add-item"><i class="fa-regular fa-plus"></i></a></th>
<td><a class="title add-item"><i class="fa-regular fa-plus"></i></a></th>
</tr>
</thead>
<tbody class="items-list">
@@ -345,7 +345,7 @@
<th class="title center">{{localize "midgard5.item-value"}}</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><a class="title add-weapon"><i class="fa-regular fa-plus"></i></a></th>
<td><a class="title add-weapon"><i class="fa-regular fa-plus"></i></a></th>
</tr>
</thead>
@@ -392,7 +392,7 @@
<th class="title center">{{localize "midgard5.item-value"}}</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><a class="title add-defensiveWeapon"><i class="fa-regular fa-plus"></i></a></th>
<td><a class="title add-defensiveWeapon"><i class="fa-regular fa-plus"></i></a></th>
</tr>
</thead>
<tbody class="items-list">
@@ -438,7 +438,7 @@
<th class="title center">{{localize "midgard5.item-value"}}</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><a class="title add-armor"><i class="fa-regular fa-plus"></i></a></th>
<td><a class="title add-armor"><i class="fa-regular fa-plus"></i></a></th>
</tr>
</thead>
<tbody class="items-list">
+12 -12
View File
@@ -49,18 +49,6 @@
</table>
<table style="width: 100%;">
<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="gs" data-value="{{data.calc.attributes.gs.value}}">{{data.calc.attributes.gs.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="gw" data-value="{{data.calc.attributes.gw.value}}">{{data.calc.attributes.gw.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="ko" data-value="{{data.calc.attributes.ko.value}}">{{data.calc.attributes.ko.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="in" data-value="{{data.calc.attributes.in.value}}">{{data.calc.attributes.in.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="zt" data-value="{{data.calc.attributes.zt.value}}">{{data.calc.attributes.zt.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="au" data-value="{{data.calc.attributes.au.value}}">{{data.calc.attributes.au.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="pa" data-value="{{data.calc.attributes.pa.value}}">{{data.calc.attributes.pa.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="wk" data-value="{{data.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>
</tr>
<tr>
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
<td class="attribute">{{localize "midgard5.actor-gs"}}</td>
@@ -73,6 +61,18 @@
<td class="attribute">{{localize "midgard5.actor-wk"}}</td>
<td class="attribute">{{localize "midgard5.actor-git"}}</td>
</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="gs" data-value="{{data.calc.attributes.gs.value}}">{{data.calc.attributes.gs.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="gw" data-value="{{data.calc.attributes.gw.value}}">{{data.calc.attributes.gw.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="ko" data-value="{{data.calc.attributes.ko.value}}">{{data.calc.attributes.ko.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="in" data-value="{{data.calc.attributes.in.value}}">{{data.calc.attributes.in.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="zt" data-value="{{data.calc.attributes.zt.value}}">{{data.calc.attributes.zt.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="au" data-value="{{data.calc.attributes.au.value}}">{{data.calc.attributes.au.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="pa" data-value="{{data.calc.attributes.pa.value}}">{{data.calc.attributes.pa.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="wk" data-value="{{data.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>
</tr>
</table>
</div>
-4
View File
@@ -142,8 +142,6 @@
<div class="flexpart">
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
<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"}}&nbsp;</label>
<table>
<thead>
<tr>
@@ -156,7 +154,6 @@
</tr>
</thead>
<tbody>
{{#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}}">
@@ -169,7 +166,6 @@
</tr>
{{/unless}}
{{/each}}
{{/unless}}
</tbody>
</table>
</div>
-2
View File
@@ -87,7 +87,6 @@
<div class="flexrow">
{{#each data.lernKostenZauber as |group name|}}
{{#unless (eq group.kosten 0)}}
<span data-pp-name="{{name}}" class="pp-listing">
<label for="data.lernKostenZauber.{{name}}">{{localize (m5concat "midgard5.spell-process-" name)}}</label>
<span >
@@ -96,7 +95,6 @@
<i class="fa fa-plus-circle pp-increase" style="cursor: pointer"></i>
</span>
</span>
{{/unless}}
{{/each}}
</div>
</td>
+1 -7
View File
@@ -51,13 +51,7 @@
<td>
<div class="flexrow">
<span>{{localize "midgard5.item-weight"}}</span>
<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}}">
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
</div>
</td>
</tr>
-6
View File
@@ -18,12 +18,6 @@
</span>
</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>
<td>
+1 -7
View File
@@ -55,13 +55,7 @@
<td>
<div class="flexrow">
<span>{{localize "midgard5.item-weight"}}</span>
<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}}">
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
</div>
</td>
</tr>
+8 -12
View File
@@ -37,6 +37,8 @@
<input id="data.quantity" type="number" name="data.quantity" value="{{data.quantity}}">
</div>
</td>
</tr>
<tr>
<td colspan="4">
<div class="flexrow">
<span>{{localize "midgard5.item-value"}}</span>
@@ -51,18 +53,6 @@
</select>
</div>
</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>
@@ -83,6 +73,12 @@
{{/if}}
</div>
</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>
</table>
+1 -17
View File
@@ -25,10 +25,8 @@
<tr>
<td>{{localize "midgard5.kampfkunst-ep"}}</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><input name="data.rank" type="number" value="{{data.rank}}" data-dtype="Number" /></td>
{{/unless}}
<td><input name="data.rank" type="text" value="{{data.rank}}" data-dtype="String" /></td>
</tr>
<tr>
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
@@ -85,20 +83,6 @@
</td>
{{/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>
<td>{{localize "midgard5.skill"}}</td>
<td>
+1 -7
View File
@@ -60,13 +60,7 @@
<td>
<div class="flexrow">
<span>{{localize "midgard5.item-weight"}}</span>
<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}}">
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
</div>
</td>
</tr>
-4
View File
@@ -1,4 +0,0 @@
<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>
-233
View File
@@ -1,233 +0,0 @@
<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>
-18
View File
@@ -1,18 +0,0 @@
<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>
-127
View File
@@ -1,127 +0,0 @@
<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.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="gw" data-value="{{data.calc.attributes.gw.value}}">{{data.calc.attributes.gw.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="ko" data-value="{{data.calc.attributes.ko.value}}">{{data.calc.attributes.ko.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="in" data-value="{{data.calc.attributes.in.value}}">{{data.calc.attributes.in.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="zt" data-value="{{data.calc.attributes.zt.value}}">{{data.calc.attributes.zt.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="au" data-value="{{data.calc.attributes.au.value}}">{{data.calc.attributes.au.value}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="pa" data-value="{{data.calc.attributes.pa.value}}">{{data.calc.attributes.pa.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>
</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>
-117
View File
@@ -1,117 +0,0 @@
<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.movement}}" 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"}}&nbsp;</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>