Compare commits
30 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
031a0dbc2f | |
|
|
4a9afcf150 | |
|
|
6a90581c4e | |
|
|
7c7ba3679b | |
|
|
25252cb283 | |
|
|
28e960dbf1 | |
|
|
e1c27bb3f1 | |
|
|
f06fbb2687 | |
|
|
537cb29593 | |
|
|
c5ce058f44 | |
|
|
32bf1ba747 | |
|
|
38f1c90c09 | |
|
|
1852f2bf08 | |
|
|
918b32fda0 | |
|
|
3ecd2c6c1e | |
|
|
37d6ba12e7 | |
|
|
5a1e11d0d7 | |
|
|
c5e5ba199b | |
|
|
08e767afcb | |
|
|
58c8d814e3 | |
|
|
fb30f8fe40 | |
|
|
2a1262662f | |
|
|
a4cf10c5f1 | |
|
|
7ac704cc61 | |
|
|
046d5f0286 | |
|
|
3a58485d27 | |
|
|
12e6412a9f | |
|
|
af6fdbbf89 | |
|
|
43375a19c8 | |
|
|
a03af18281 |
|
|
@ -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 }));
|
||||||
|
|
|
||||||
760
lang/de.json
760
lang/de.json
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"TYPES.Actor.character": "Charakter",
|
"TYPES.Actor.character": "Charakter",
|
||||||
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
|
"TYPES.Actor.npc": "Kreatur / Nichtspielerfigur",
|
||||||
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
||||||
|
|
||||||
"TYPES.Item.item": "Gegenstand",
|
"TYPES.Item.item": "Gegenstand",
|
||||||
|
|
@ -12,375 +12,455 @@
|
||||||
"TYPES.Item.effect": "Aktiver Effekt",
|
"TYPES.Item.effect": "Aktiver Effekt",
|
||||||
"TYPES.Item.kampfkunst": "Kampfkunst",
|
"TYPES.Item.kampfkunst": "Kampfkunst",
|
||||||
"TYPES.Item.container": "Aufbewahrung",
|
"TYPES.Item.container": "Aufbewahrung",
|
||||||
|
"TYPES.Item.class": "Klasse",
|
||||||
|
|
||||||
"midgard5.phase-action": "Handlungsphase",
|
"midgard5": {
|
||||||
"midgard5.phase-movement": "Bewegungsphase",
|
"phase-action": "Handlungsphase",
|
||||||
"midgard5.no-encounter": "Kein Kampf",
|
"phase-movement": "Bewegungsphase",
|
||||||
"midgard5.encounter-not-started": "Kein aktiver Kampf",
|
"no-encounter": "Kein Kampf",
|
||||||
"midgard5.initiative": "Handlungsrang",
|
"encounter-not-started": "Kein aktiver Kampf",
|
||||||
|
"initiative": "Initiative",
|
||||||
|
"actionrank": "Handlungsrang",
|
||||||
|
|
||||||
"midgard5.combat-join": "Kampf Beitreten/Handlungsrang zurücksetzen",
|
"combat-join": "Kampf Beitreten/Handlungsrang zurücksetzen",
|
||||||
"midgard5.combat-ranged": "Fernangriff",
|
"combat-ranged": "Fernangriff",
|
||||||
"midgard5.combat-spell": "Zaubern (10 Sec)",
|
"combat-spell": "Zaubern (10 Sec)",
|
||||||
|
|
||||||
"midgard5.time-duration": "Dauer",
|
"time-duration": "Dauer",
|
||||||
"midgard5.time-round": "Runde(n)",
|
"time-round": "Runde(n)",
|
||||||
"midgard5.time-minute": "Minute(n)",
|
"time-minute": "Minute(n)",
|
||||||
"midgard5.time-hour": "Stunde(n)",
|
"time-hour": "Stunde(n)",
|
||||||
"midgard5.time-limitless": "Unbegrenzt",
|
"time-limitless": "Unbegrenzt",
|
||||||
|
|
||||||
"midgard5.doRoll": "Würfeln",
|
"doRoll": "Würfeln",
|
||||||
"midgard5.learn": "Lernen",
|
"learn": "Lernen",
|
||||||
|
|
||||||
"midgard5.label": "Bezeichnung",
|
"label": "Bezeichnung",
|
||||||
"midgard5.description": "Beschreibung",
|
"description": "Beschreibung",
|
||||||
"midgard5.Characteristic": "Merkmal",
|
"Characteristic": "Merkmal",
|
||||||
"midgard5.characteristics": "Merkmale",
|
"characteristics": "Merkmale",
|
||||||
"midgard5.background": "Hintergrund",
|
"background": "Hintergrund",
|
||||||
"midgard5.attribute": "Eigenschaft",
|
"attribute": "Eigenschaft",
|
||||||
"midgard5.attributes": "Eigenschaften",
|
"attributes": "Eigenschaften",
|
||||||
"midgard5.points": "Punkte",
|
"points": "Punkte",
|
||||||
"midgard5.calculated-value": "Berechneter Wert",
|
"calculated-value": "Berechneter Wert",
|
||||||
"midgard5.calculated-values": "Sonstige Werte",
|
"calculated-values": "Werte und Boni",
|
||||||
|
|
||||||
"midgard5.skill": "Fertigkeit",
|
"skill": "Fertigkeit",
|
||||||
"midgard5.skill-value": "Fertigkeitswert",
|
"skill-value": "Fertigkeitswert",
|
||||||
"midgard5.fw": "FW",
|
"fw": "FW",
|
||||||
"midgard5.bonus": "Bonus",
|
"bonus": "Bonus",
|
||||||
"midgard5.bonuses": "Boni",
|
"bonuses": "Boni",
|
||||||
"midgard5.ew": "EW",
|
"ew": "EW",
|
||||||
"midgard5.pp-short": "PP",
|
"pp-short": "PP",
|
||||||
"midgard5.pp": "Praxispunkte",
|
"pp": "Praxispunkte",
|
||||||
|
|
||||||
"midgard5.item-value": "Wert",
|
"item-value": "Wert",
|
||||||
"midgard5.item-quantity": "Menge",
|
"item-quantity": "Menge",
|
||||||
"midgard5.item-onbody": "Am Körper",
|
"item-onbody": "Am Körper",
|
||||||
"midgard5.item-ismagic": "Ist Magisch",
|
"item-ismagic": "Ist Magisch",
|
||||||
"midgard5.item-wealth": "Vermögenswert",
|
"item-wealth": "Vermögenswert",
|
||||||
"midgard5.item-weight": "Gewicht",
|
"item-weight": "Gewicht",
|
||||||
|
"item-abw": "ABW",
|
||||||
|
"item-abw-long": "Ausbrennwahrscheinlichkeit",
|
||||||
|
|
||||||
"midgard5.actor-lp": "Lebenspunkte",
|
"actor-lp": "Lebenspunkte",
|
||||||
"midgard5.actor-lp-short": "LP",
|
"actor-lp-short": "LP",
|
||||||
"midgard5.actor-ap": "Ausdauerpunkte",
|
"actor-ap": "Ausdauerpunkte",
|
||||||
"midgard5.actor-ap-short": "AP",
|
"actor-ap-short": "AP",
|
||||||
"midgard5.actor-st": "St",
|
"actor-st": "St",
|
||||||
"midgard5.actor-st-long": "Stärke",
|
"actor-st-long": "Stärke",
|
||||||
"midgard5.actor-ko": "Ko",
|
"actor-ko": "Ko",
|
||||||
"midgard5.actor-ko-long": "Konstitution",
|
"actor-ko-long": "Konstitution",
|
||||||
"midgard5.actor-au": "Au",
|
"actor-au": "Au",
|
||||||
"midgard5.actor-au-long": "Aussehen",
|
"actor-au-long": "Aussehen",
|
||||||
"midgard5.actor-gs": "Gs",
|
"actor-gs": "Gs",
|
||||||
"midgard5.actor-gs-long": "Geschicklichkeit",
|
"actor-gs-long": "Geschicklichkeit",
|
||||||
"midgard5.actor-in": "In",
|
"actor-in": "In",
|
||||||
"midgard5.actor-in-long": "Intelligenz",
|
"actor-in-long": "Intelligenz",
|
||||||
"midgard5.actor-pa": "pA",
|
"actor-pa": "pA",
|
||||||
"midgard5.actor-pa-long": "persönliche Ausstrahlung",
|
"actor-pa-long": "persönliche Ausstrahlung",
|
||||||
"midgard5.actor-gw": "Gw",
|
"actor-gw": "Gw",
|
||||||
"midgard5.actor-gw-long": "Gewandtheit",
|
"actor-gw-long": "Gewandtheit",
|
||||||
"midgard5.actor-zt": "Zt",
|
"actor-zt": "Zt",
|
||||||
"midgard5.actor-zt-long": "Zaubertalent",
|
"actor-zt-long": "Zaubertalent",
|
||||||
"midgard5.actor-wk": "Wk",
|
"actor-wk": "Wk",
|
||||||
"midgard5.actor-wk-long": "Willenskraft",
|
"actor-wk-long": "Willenskraft",
|
||||||
"midgard5.actor-git": "GiT",
|
"actor-git": "GiT",
|
||||||
"midgard5.actor-git-long": "Gifttolleranz",
|
"actor-git-long": "Gifttolleranz",
|
||||||
|
|
||||||
"midgard5.aktuell": "Akt.",
|
"aktuell": "Akt.",
|
||||||
"midgard5.maximum": "Max.",
|
"maximum": "Max.",
|
||||||
"midgard5.attrvalue": "Wert",
|
"attrvalue": "Wert",
|
||||||
"midgard5.movementRange": "Bewegungsweite",
|
"movementRange": "Bewegungsweite",
|
||||||
|
|
||||||
"midgard5.base_values": "Grundwerte",
|
"base_values": "Grundwerte",
|
||||||
"midgard5.skills": "Fertigkeiten",
|
"skills": "Fertigkeiten",
|
||||||
"midgard5.gear": "Ausrüstung",
|
"gear": "Ausrüstung",
|
||||||
"midgard5.spells": "Zauber",
|
"spells": "Zauber",
|
||||||
"midgard5.effects": "Aktive Effekte",
|
"effects": "Aktive Effekte",
|
||||||
"midgard5.kampfkuenste": "Kampfkünste",
|
"kampfkuenste": "Kampfkünste",
|
||||||
"midgard5.combat": "Kampf",
|
"combat": "Kampf",
|
||||||
|
|
||||||
"midgard5.actor-name": "Figur",
|
"actor-name": "Figur",
|
||||||
"midgard5.level": "Grad",
|
"level": "Grad",
|
||||||
"midgard5.class": "Typ",
|
"class": "Typ",
|
||||||
"midgard5.race": "Rasse",
|
"race": "Rasse",
|
||||||
"midgard5.magicUsing": "Zauberkundig",
|
"magicUsing": "Zauberkundig",
|
||||||
"midgard5.gender": "Geschlecht",
|
"gender": "Geschlecht",
|
||||||
"midgard5.weight": "Gewicht",
|
"weight": "Gewicht",
|
||||||
"midgard5.height": "Größe",
|
"height": "Größe",
|
||||||
"midgard5.shape": "Gestalt",
|
"shape": "Gestalt",
|
||||||
"midgard5.age": "Alter",
|
"age": "Alter",
|
||||||
"midgard5.caste": "Stand",
|
"caste": "Stand",
|
||||||
"midgard5.occupation": "Beruf",
|
"occupation": "Beruf",
|
||||||
"midgard5.origin": "Heimat",
|
"origin": "Heimat",
|
||||||
"midgard5.faith": "Glaube",
|
"faith": "Glaube",
|
||||||
|
|
||||||
"midgard5.currency": "Geld",
|
"currency": "Geld",
|
||||||
"midgard5.currency-gold": "Gold",
|
"currency-gold": "Gold",
|
||||||
"midgard5.currency-silver": "Silber",
|
"currency-silver": "Silber",
|
||||||
"midgard5.currency-copper": "Kupfer",
|
"currency-copper": "Kupfer",
|
||||||
"midgard5.currency-wealth": "Vermögen in GS",
|
"currency-wealth": "Vermögen in GS",
|
||||||
"midgard5.currency-available": "verfügbares Vermögen",
|
"currency-available": "verfügbares Vermögen",
|
||||||
"midgard5.hoard": "aktueller Hort",
|
"hoard": "aktueller Hort",
|
||||||
"midgard5.hoardMin": "benötigter Mindesthort",
|
"hoardMin": "benötigter Mindesthort",
|
||||||
"midgard5.hoard-next": "Hort für nächsten Grad",
|
"hoard-next": "Hort für nächsten Grad",
|
||||||
"midgard5.hoarded": "Hort",
|
"hoarded": "Hort",
|
||||||
|
|
||||||
"midgard5.no-container": "Ohne",
|
"no-container": "Ohne",
|
||||||
|
|
||||||
"midgard5.encumbrance": "Getragene Last",
|
"encumbrance": "Getragene Last",
|
||||||
"midgard5.load": "Normallast",
|
"load": "Normallast",
|
||||||
"midgard5.heavy-load": "Schwere Last",
|
"heavy-load": "Schwere Last",
|
||||||
"midgard5.thrust-load": "Schublast",
|
"thrust-load": "Schublast",
|
||||||
"midgard5.load-max": "Höchstlast",
|
"load-max": "Höchstlast",
|
||||||
"midgard5.load-capacity": "Tragkraft",
|
"capacity": "Tragkraft",
|
||||||
|
|
||||||
"midgard5.exp-overall": "Erfahrungsschatz",
|
"exp-overall": "Erfahrungsschatz",
|
||||||
"midgard5.exp-available": "Erfahrungspunkte",
|
"exp-available": "Erfahrungspunkte",
|
||||||
"midgard5.grace": "Göttliche Gnade",
|
"grace": "Göttliche Gnade",
|
||||||
"midgard5.destiny": "Schicksalsgunst",
|
"destiny": "Schicksalsgunst",
|
||||||
"midgard5.luckPoints": "Glückspunkte",
|
"luckPoints": "Glückspunkte",
|
||||||
|
|
||||||
"midgard5.abrichten": "Abrichten",
|
"abrichten": "Abrichten",
|
||||||
"midgard5.akrobatik": "Akrobatik",
|
"akrobatik": "Akrobatik",
|
||||||
"midgard5.alchimie": "Alchimie",
|
"alchimie": "Alchimie",
|
||||||
"midgard5.anfuehren": "Anführen",
|
"anfuehren": "Anführen",
|
||||||
"midgard5.askese": "Askese",
|
"askese": "Askese",
|
||||||
"midgard5.astrologie": "Astrologie",
|
"astrologie": "Astrologie",
|
||||||
"midgard5.athletik": "Athletik",
|
"athletik": "Athletik",
|
||||||
"midgard5.balancieren": "Balancieren",
|
"balancieren": "Balancieren",
|
||||||
"midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
|
"beidhaendigerKampf": "Beidhändiger Kampf",
|
||||||
"midgard5.bergreiten": "Bergreiten",
|
"bergreiten": "Bergreiten",
|
||||||
"midgard5.beredsamkeit": "Beredsamkeit",
|
"beredsamkeit": "Beredsamkeit",
|
||||||
"midgard5.betaeuben": "Betäuben",
|
"betaeuben": "Betäuben",
|
||||||
"midgard5.betaeubungsgriff": "Betäubungsgriff",
|
"betaeubungsgriff": "Betäubungsgriff",
|
||||||
"midgard5.bootfahren": "Bootfahren",
|
"bildendeKuensteA": "Bildende Künste (Architektur)",
|
||||||
"midgard5.dickhaeuterLenken": "Dickhäuter lenken",
|
"bildendeKuensteB": "Bildende Künste (Bildhauerei)",
|
||||||
"midgard5.ersteHilfe": "Erste Hilfe",
|
"bildendeKuensteG": "Bildende Künste (Grafik)",
|
||||||
"midgard5.etikette": "Etikette",
|
"bildendeKuensteM": "Bildende Künste (Malerei)",
|
||||||
"midgard5.fallenEntdecken": "Fallen entdecken",
|
"bootfahren": "Bootfahren",
|
||||||
"midgard5.fallenmechanik": "Fallenmechanik",
|
"dickhaeuterLenken": "Dickhäuter lenken",
|
||||||
"midgard5.faelschen": "Fälschen",
|
"ersteHilfe": "Erste Hilfe",
|
||||||
"midgard5.fangen": "Fangen",
|
"etikette": "Etikette",
|
||||||
"midgard5.fechten": "Fechten",
|
"fallenEntdecken": "Fallen entdecken",
|
||||||
"midgard5.feueralchimie": "Feueralchimie",
|
"fallenmechanik": "Fallenmechanik",
|
||||||
"midgard5.gassenwissen": "Gassenwissen",
|
"faelschen": "Fälschen",
|
||||||
"midgard5.gaukeln": "Gaukeln",
|
"fangen": "Fangen",
|
||||||
"midgard5.gelaendelauf": "Geländelauf",
|
"fechten": "Fechten",
|
||||||
"midgard5.geraetekunde": "Gerätekunde",
|
"fechtkunst": "Fechtkunst",
|
||||||
"midgard5.geschaeftssinn": "Geschäftssinn",
|
"feueralchimie": "Feueralchimie",
|
||||||
"midgard5.gluecksspiel": "Glücksspiel",
|
"gassenwissen": "Gassenwissen",
|
||||||
"midgard5.heilkunde": "Heilkunde",
|
"gaukeln": "Gaukeln",
|
||||||
"midgard5.kampfInVollruestung": "Kampf in Vollrüstung",
|
"gelaendelauf": "Geländelauf",
|
||||||
"midgard5.kampfInSchlachtreihe": "Kampf in Schlachtreihe",
|
"geraetekunde": "Gerätekunde",
|
||||||
"midgard5.kampfkunst": "Kampfkunst",
|
"geschaeftssinn": "Geschäftssinn",
|
||||||
"midgard5.kido": "Kido",
|
"gluecksspiel": "Glücksspiel",
|
||||||
"midgard5.klettern": "Klettern",
|
"heilkunde": "Heilkunde",
|
||||||
"midgard5.landeskunde": "Landeskunde",
|
"kampfInVollruestung": "Kampf in Vollrüstung",
|
||||||
"midgard5.laufen": "Laufen",
|
"kampfInSchlachtreihe": "Kampf in Schlachtreihe",
|
||||||
"midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
|
"kampfkunst": "Kampfkunst",
|
||||||
"midgard5.lesenVonZauberrunen": "Lesen von Zauberrunen",
|
"kido": "Kido",
|
||||||
"midgard5.meditieren": "Meditieren",
|
"klettern": "Klettern",
|
||||||
"midgard5.menschenkenntnis": "Menschenkenntnis",
|
"landeskunde": "Landeskunde",
|
||||||
"midgard5.meucheln": "Meucheln",
|
"laufen": "Laufen",
|
||||||
"midgard5.musizieren": "Musizieren",
|
"lesenVonZauberschrift": "Lesen von Zauberschrift",
|
||||||
"midgard5.naturkunde": "Naturkunde",
|
"lesenVonZauberrunen": "Lesen von Zauberrunen",
|
||||||
"midgard5.ninjutsu": "NinJutsu",
|
"meditieren": "Meditieren",
|
||||||
"midgard5.orakelkunst": "Orakelkunst",
|
"menschenkenntnis": "Menschenkenntnis",
|
||||||
"midgard5.pflanzenkunde": "Pflanzenkunde",
|
"meucheln": "Meucheln",
|
||||||
"midgard5.raunen": "Raunen",
|
"musizierenFloete": "Musizieren (Flöten)",
|
||||||
"midgard5.reiten": "Reiten",
|
"musizierenBlas": "Musizieren (Blasinstrumente)",
|
||||||
"midgard5.reiterkampf": "Reiterkampf",
|
"musizierenRythmus": "Musizieren (Rythmusinstrumente)",
|
||||||
"midgard5.rutengehen": "Rutengehen",
|
"musizierenStreich": "Musizieren (Streichinstrumente)",
|
||||||
"midgard5.scharfschiessen": "Scharfschießen",
|
"musizierenZupf": "Musizieren (Zupfinstrumente)",
|
||||||
"midgard5.schiesskunst": "Schießkunst",
|
"naturkunde": "Naturkunde",
|
||||||
"midgard5.schleichen": "Schleichen",
|
"ninjutsu": "NinJutsu",
|
||||||
"midgard5.schloesserOeffnen": "Schlösser öffnen",
|
"orakelkunst": "Orakelkunst",
|
||||||
"midgard5.schmerzErtragen": "Schmerzen ertragen",
|
"pflanzenkunde": "Pflanzenkunde",
|
||||||
"midgard5.schwimmen": "Schwimmen",
|
"raunen": "Raunen",
|
||||||
"midgard5.seilkunst": "Seilkunst",
|
"reiten": "Reiten",
|
||||||
"midgard5.selbstkontrolle": "Selbstkontrolle",
|
"reiterkampf": "Reiterkampf",
|
||||||
"midgard5.singen": "Singen",
|
"rutengehen": "Rutengehen",
|
||||||
"midgard5.skifahren": "Skifahren",
|
"scharfschiessen": "Scharfschießen",
|
||||||
"midgard5.spinnengang": "Spinnengang",
|
"schiesskunst": "Schießkunst",
|
||||||
"midgard5.speerfechten": "Speerfechten",
|
"schleichen": "Schleichen",
|
||||||
"midgard5.spurensuche": "Spurensuche",
|
"schloesserOeffnen": "Schlösser öffnen",
|
||||||
"midgard5.stehlen": "Stehlen",
|
"schmerzErtragen": "Schmerzen ertragen",
|
||||||
"midgard5.taitschi": "TaiTschi",
|
"schwimmen": "Schwimmen",
|
||||||
"midgard5.tarnen": "Tarnen",
|
"seilkunst": "Seilkunst",
|
||||||
"midgard5.tanzen": "Tanzen",
|
"selbstkontrolle": "Selbstkontrolle",
|
||||||
"midgard5.tauchen": "Tauchen",
|
"singen": "Singen",
|
||||||
"midgard5.thaumagraphie": "Thaumagraphie",
|
"skifahren": "Skifahren",
|
||||||
"midgard5.thaumalogie": "Thaumalogie",
|
"spinnengang": "Spinnengang",
|
||||||
"midgard5.tierkunde": "Tierkunde",
|
"speerfechten": "Speerfechten",
|
||||||
"midgard5.ueberleben": "Überleben",
|
"spurensuche": "Spurensuche",
|
||||||
"midgard5.verfuehren": "Verführen",
|
"stehlen": "Stehlen",
|
||||||
"midgard5.verhoeren": "Verhören",
|
"taitschi": "TaiTschi",
|
||||||
"midgard5.verstellen": "Verstellen",
|
"tarnen": "Tarnen",
|
||||||
"midgard5.volkstanz": "Volkstanz",
|
"tanzen": "Tanzen",
|
||||||
"midgard5.wagenlenken": "Wagenlenken",
|
"tauchen": "Tauchen",
|
||||||
"midgard5.wahrsagen": "Wahrsagen",
|
"thaumagraphie": "Thaumagraphie",
|
||||||
"midgard5.wasserkampf": "Wasserkampf",
|
"thaumalogie": "Thaumalogie",
|
||||||
"midgard5.zauberkunde": "Zauberkunde",
|
"tierkunde": "Tierkunde",
|
||||||
|
"ueberlebenWald": "Überleben (Wald)",
|
||||||
|
"ueberlebenSteppe": "Überleben (Steppe)",
|
||||||
|
"ueberlebenGebirge": "Überleben (Gebirge)",
|
||||||
|
"verfuehren": "Verführen",
|
||||||
|
"verhoeren": "Verhören",
|
||||||
|
"verstellen": "Verstellen",
|
||||||
|
"volkstanz": "Volkstanz",
|
||||||
|
"wagenlenken": "Wagenlenken",
|
||||||
|
"wahrsagen": "Wahrsagen",
|
||||||
|
"wasserkampf": "Wasserkampf",
|
||||||
|
"zauberkunde": "Zauberkunde",
|
||||||
|
|
||||||
"midgard5.armor": "Rüstung",
|
"armor": "Rüstung",
|
||||||
"midgard5.defense": "Abwehr",
|
"defense": "Abwehr",
|
||||||
"midgard5.damageBonus": "Schadensbonus",
|
"damageBonus": "Schadensbonus",
|
||||||
"midgard5.damageBonus-short": "SchB",
|
"damageBonus-short": "SchB",
|
||||||
"midgard5.attackBonus": "Angriffsbonus",
|
"attackBonus": "Angriffsbonus",
|
||||||
"midgard5.attackBonus-short": "AnB",
|
"attackBonus-short": "AnB",
|
||||||
"midgard5.defenseBonus": "Abwehrbonus",
|
"defenseBonus": "Abwehrbonus",
|
||||||
"midgard5.defenseBonus-short": "AbB",
|
"defenseBonus-short": "AbB",
|
||||||
"midgard5.movementBonus": "Bewegunsbonus",
|
"movementBonus": "Bewegunsbonus",
|
||||||
"midgard5.resistanceMind": "Resistenz Geist",
|
"resistanceMind": "Resistenz Geist",
|
||||||
"midgard5.resistanceBody": "Resistenz Körper",
|
"resistanceBody": "Resistenz Körper",
|
||||||
"midgard5.spellCasting": "Zaubern",
|
"spellCasting": "Zaubern",
|
||||||
"midgard5.spellBonus": "Zauberbonus",
|
"spellBonus": "Zauberbonus",
|
||||||
"midgard5.brawl": "Raufen",
|
"brawl": "Raufen",
|
||||||
"midgard5.poisonResistance": "Gifttolleranz",
|
"poisonResistance": "Gifttolleranz",
|
||||||
"midgard5.enduranceBonus": "Ausdauerbonus",
|
"enduranceBonus": "Ausdauerbonus",
|
||||||
"midgard5.lpProtection": "Rüstungsschutz (LP)",
|
"lpProtection": "Rüstungsschutz (LP)",
|
||||||
"midgard5.apProtection": "Rüstungsschutz (AP)",
|
"apProtection": "Rüstungsschutz (AP)",
|
||||||
"midgard5.perception": "Wahrnehmung",
|
"deprivation": "Zähigkeit",
|
||||||
"midgard5.drinking": "Trinken",
|
"deprivations": "Entbehrungen",
|
||||||
|
"deprivationCold": "Zähigkeit Kälte",
|
||||||
|
"deprivationHeat": "Zähigkeit Hitze",
|
||||||
|
"deprivationFood": "Zähigkeit Durst/Hunger",
|
||||||
|
|
||||||
"midgard5.new-skill": "Neue Fertigkeit",
|
"new-skill": "Neue Fertigkeit",
|
||||||
"midgard5.special": "Spezial",
|
"special": "Spezial",
|
||||||
"midgard5.learned-skill": "Gelernte Fertigkeit",
|
"learned-skill": "Gelernte Fertigkeit",
|
||||||
"midgard5.learned-skills": "Gelernte Fertigkeiten",
|
"learned-skills": "Gelernte Fertigkeiten",
|
||||||
"midgard5.language": "Sprache",
|
"language": "Sprache",
|
||||||
"midgard5.languages": "Sprachen",
|
"languages": "Sprachen",
|
||||||
"midgard5.weapon-skill": "Waffenfertigkeit",
|
"writings": "Schriften",
|
||||||
"midgard5.weapon-skills": "Waffenfertigkeiten",
|
"weapon-skill": "Waffenfertigkeit",
|
||||||
"midgard5.unlearned-skill": "Ungelernte Fertigkeit",
|
"weapon-skills": "Waffenfertigkeiten",
|
||||||
"midgard5.unlearned-skills": "Ungelernte Fertigkeiten",
|
"unlearned-skill": "Ungelernte Fertigkeit",
|
||||||
"midgard5.innate-ability": "Angeborene/Besondere Fertigkeit",
|
"unlearned-skills": "Ungelernte Fertigkeiten",
|
||||||
"midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit",
|
"innate-ability": "Angeborene/Besondere Fähigkeit",
|
||||||
|
"innate-abilities": "Angeborene und besondere Fähigkeiten",
|
||||||
|
|
||||||
"midgard5.base-damage": "Grundschaden",
|
"base-damage": "Grundschaden",
|
||||||
"midgard5.weapon": "Waffe",
|
"weapon": "Waffe",
|
||||||
"midgard5.weapons": "Waffen",
|
"weapons": "Waffen",
|
||||||
"midgard5.defensive-weapon": "Verteidigungswaffe",
|
"defensive-weapon": "Verteidigungswaffe",
|
||||||
"midgard5.defensive-weapons": "Verteidigungswaffen",
|
"defensive-weapons": "Verteidigungswaffen",
|
||||||
"midgard5.no-skill": "Keine Fertigkeit",
|
"no-skill": "Keine Fertigkeit",
|
||||||
"midgard5.magic": "magisch",
|
"magic": "magisch",
|
||||||
"midgard5.valuable": "Vermögen",
|
"valuable": "Vermögen",
|
||||||
"midgard5.equipped": "Ausgerüstet",
|
"equipped": "Ausgerüstet",
|
||||||
"midgard5.active": "Aktiv",
|
"active": "Aktiv",
|
||||||
"midgard5.rangedWeapon": "Schusswaffe",
|
"rangedWeapon": "Schusswaffe",
|
||||||
"midgard5.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",
|
||||||
"midgard5.showAll": "Alle anzeigen",
|
"showAll": "Alle anzeigen",
|
||||||
"midgard5.wealthAndWeight": "Vermögen und Lasten",
|
"showUnlearned": "Ungelernte Fertigkeiten",
|
||||||
"midgard5.itemsInContainers": "Gegenstände in Aufbewahrung",
|
"wealthAndWeight": "Vermögen und Lasten",
|
||||||
"midgard5.allItems": "Alle Gegenstände",
|
"itemsInContainers": "Gegenstände in Aufbewahrung",
|
||||||
|
"allItems": "Alle Gegenstände",
|
||||||
|
|
||||||
"midgard5.pw": "Prüfwurf",
|
"pw": "Prüfwurf",
|
||||||
"midgard5.attack": "Angriff",
|
"attack": "Angriff",
|
||||||
"midgard5.damage": "Schaden",
|
"damage": "Schaden",
|
||||||
|
|
||||||
"midgard5.spell-process-none": "Ohne",
|
"skill-goup-alltag": "Alltag",
|
||||||
"midgard5.spell-process-beherrschen": "Beherrschen",
|
"skill-goup-freiland": "Freiland",
|
||||||
"midgard5.spell-process-bewegen": "Bewegen",
|
"skill-goup-halbwelt": "Halbwelt",
|
||||||
"midgard5.spell-process-blutzauber": "Blutmagie",
|
"skill-goup-kampf": "Kampf",
|
||||||
"midgard5.spell-process-chaoswunder": "Chaoswunder",
|
"skill-goup-koerper": "Körper",
|
||||||
"midgard5.spell-process-erkennen": "Erkennen",
|
"skill-goup-sozial": "Sozial",
|
||||||
"midgard5.spell-process-erschaffen": "Erschaffen",
|
"skill-goup-unterwelt": "Unterwelt",
|
||||||
"midgard5.spell-process-formen": "Formen",
|
"skill-goup-waffen": "Waffen",
|
||||||
"midgard5.spell-process-finstere_magie": "Finstere Magie",
|
"skill-goup-wissen": "Wissen",
|
||||||
"midgard5.spell-process-veraendern": "Verändern",
|
|
||||||
"midgard5.spell-process-zerstoeren": "Zerstören",
|
|
||||||
"midgard5.spell-process-wundertat": "Wundertat",
|
|
||||||
"midgard5.spell-process-dweomer": "Dweomer",
|
|
||||||
"midgard5.spell-process-wilder_Dweomer": "Wilder Dweomer",
|
|
||||||
"midgard5.spell-process-zauberlied": "Zauberlied",
|
|
||||||
"midgard5.spell-process-salz": "Salz",
|
|
||||||
"midgard5.spell-process-thaumagraphie": "Thaumagraphie",
|
|
||||||
"midgard5.spell-process-beschwoeren": "Beschwören",
|
|
||||||
"midgard5.spell-process-nekromantie": "Nekromantie",
|
|
||||||
"midgard5.spell-process-thaumatherapie": "Thaumatherapie",
|
|
||||||
"midgard5.spell-process-zaubermittel": "Zaubermittel",
|
|
||||||
"midgard5.spell-process-zauberschutz": "Zauberschutz",
|
|
||||||
"midgard5.spell-process-zauberrunen": "Zauberrunen",
|
|
||||||
"midgard5.spell-process-zaubersiegel": "Zaubersiegel",
|
|
||||||
|
|
||||||
"midgard5.spell-type-gedanke": "Gedanke",
|
"spell-process-none": "Ohne",
|
||||||
"midgard5.spell-type-geste": "Geste",
|
"spell-process-artefakte": "Artefakte",
|
||||||
"midgard5.spell-type-wort": "Wort",
|
"spell-process-beherrschen": "Beherrschen",
|
||||||
|
"spell-process-bewegen": "Bewegen",
|
||||||
|
"spell-process-beschwoeren": "Beschwören",
|
||||||
|
"spell-process-blutmagie": "Blutmagie",
|
||||||
|
"spell-process-chaoswunder": "Chaoswunder",
|
||||||
|
"spell-process-dweomer": "Dweomer",
|
||||||
|
"spell-process-erkennen": "Erkennen",
|
||||||
|
"spell-process-erschaffen": "Erschaffen",
|
||||||
|
"spell-process-erhaltung": "Erhaltung",
|
||||||
|
"spell-process-formen": "Formen",
|
||||||
|
"spell-process-finstere_magie": "Finstere Magie",
|
||||||
|
"spell-process-kampfverse": "Kampfverse",
|
||||||
|
"spell-process-namensmagie": "Namensmagie",
|
||||||
|
"spell-process-nekromantie": "Nekromantie",
|
||||||
|
"spell-process-runenstaebe": "Runenstäbe",
|
||||||
|
"spell-process-thaumatherapie": "Thaumatherapie",
|
||||||
|
"spell-process-thaumagraphie": "Thaumagraphie",
|
||||||
|
"spell-process-veraendern": "Verändern",
|
||||||
|
"spell-process-vigilsignien": "Vigilsignien",
|
||||||
|
"spell-process-wundertat": "Wundertat",
|
||||||
|
"spell-process-wilder_dweomer": "Wilder Dweomer",
|
||||||
|
"spell-process-zerstoeren": "Zerstören",
|
||||||
|
"spell-process-zauberlied": "Zauberlieder",
|
||||||
|
"spell-process-zaubersalz": "Zaubersalze",
|
||||||
|
"spell-process-zaubermittel": "Zaubermittel",
|
||||||
|
"spell-process-zauberschutz": "Zauberschutz",
|
||||||
|
"spell-process-zauberrunen": "Zauberrunen",
|
||||||
|
"spell-process-zaubersiegel": "Zaubersiegel",
|
||||||
|
"spell-process-zaubertaenze": "Zaubertänze",
|
||||||
|
"spell-process-zauberblaetter": "Zauberblätter",
|
||||||
|
|
||||||
"midgard5.spell-target-umgebung": "Umgebung",
|
"spell-type-gedanke": "Gedanke",
|
||||||
"midgard5.spell-target-geist": "Geist",
|
"spell-type-geste": "Geste",
|
||||||
"midgard5.spell-target-koerper": "Körper",
|
"spell-type-wort": "Wort",
|
||||||
|
|
||||||
"midgard5.spell-type": "Art",
|
"spell-target-umgebung": "Umgebung",
|
||||||
"midgard5.spell-process": "Prozess",
|
"spell-target-geist": "Geist",
|
||||||
"midgard5.spell-castDuration": "Zauberdauer",
|
"spell-target-koerper": "Körper",
|
||||||
"midgard5.spell-range": "Reichweite",
|
|
||||||
"midgard5.spell-effectTarget": "Wirkunsziel",
|
|
||||||
"midgard5.spell-effectArea": "Wirkungsbereich",
|
|
||||||
"midgard5.spell-effectDuration": "Wirkungsdauer",
|
|
||||||
"midgard5.spell-origin": "Ursprung",
|
|
||||||
"midgard5.spell-agens": "Agens",
|
|
||||||
"midgard5.spell-reagens": "Reagens",
|
|
||||||
"midgard5.spell-material": "Zaubermaterial",
|
|
||||||
|
|
||||||
"midgard5.kampfkunst-type": "Kampfkunst Art",
|
"spell-type": "Art",
|
||||||
"midgard5.kampfkunst-variante": "Kampfkunst Variante",
|
"spell-process": "Prozess",
|
||||||
"midgard5.kampfkunst-variante-short": "Var",
|
"spell-castDuration": "Zauberdauer",
|
||||||
"midgard5.kido-type": "Kido Art",
|
"spell-castDuration-short": "Zd",
|
||||||
"midgard5.kido-variante": "Kido Variante",
|
"spell-range": "Reichweite",
|
||||||
|
"spell-range-short": "Rw",
|
||||||
|
"spell-effectTarget": "Wirkunsziel",
|
||||||
|
"spell-effectTarget-short": "Wz",
|
||||||
|
"spell-effectArea": "Wirkungsbereich",
|
||||||
|
"spell-effectArea-short": "Wb",
|
||||||
|
"spell-effectDuration": "Wirkungsdauer",
|
||||||
|
"spell-effectDuration-short": "Wd",
|
||||||
|
"spell-origin": "Ursprung",
|
||||||
|
"spell-agens": "Agens",
|
||||||
|
"spell-reagens": "Reagens",
|
||||||
|
"spell-material": "Zaubermaterial",
|
||||||
|
"spell-rank": "Stufe",
|
||||||
|
|
||||||
"midgard5.kampfkunst-type-angriff": "Angriffstechnik",
|
"kampfkunst-type": "Form",
|
||||||
"midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik",
|
"kampfkunst-variante": "Variante",
|
||||||
"midgard5.kampfkunst-type-finte": "Finte",
|
"kampfkunst-variante-short": "Var",
|
||||||
"midgard5.kampfkunst-type-geist": "Geistestechnik",
|
"kampfkunst-ep": "Erfahrungspunkte",
|
||||||
"midgard5.kampfkunst-type-schießkunst": "Schießkunst",
|
"kampfkunst-rank": "Stufe der Technik",
|
||||||
"midgard5.kampfkunst-type-fechten": "Fechtkunst",
|
"kampfkunst-weapon": "Waffengruppe",
|
||||||
"midgard5.kido-type-angriff": "Kido Angriffstechnik",
|
"kampfkunst-enemy": "Einschränkungen durch Art der Gegner",
|
||||||
"midgard5.kido-type-verteidigung": "Kido Verteidigungstechnik",
|
|
||||||
"midgard5.kido-type-finte": "Kido Finte",
|
|
||||||
"midgard5.kido-type-leib": "Kido Leibestechnik",
|
|
||||||
|
|
||||||
"midgard5.kampfkunst-variante-anstuermen": "Anstürmen",
|
"kampfkunst-type-angriff": "Angriff",
|
||||||
"midgard5.kampfkunst-variante-attackieren": "Attackieren",
|
"kampfkunst-type-verteidigung": "Verteidigung",
|
||||||
"midgard5.kampfkunst-variante-entwaffnen": "Entwaffnen",
|
"kampfkunst-type-finte": "Finte",
|
||||||
|
"kampfkunst-type-geist": "Geistestechnik",
|
||||||
|
"kampfkunst-type-schießkunst": "Schießkunst",
|
||||||
|
"kampfkunst-type-fechtkunst": "Fechtkunst",
|
||||||
|
|
||||||
"midgard5.kido-variante-anspringen": "Anspringen",
|
"kampfkunst-variante-anstuermen": "Anstürmen",
|
||||||
"midgard5.kido-variante-attackieren": "Attackieren",
|
"kampfkunst-variante-attackieren": "Attackieren",
|
||||||
"midgard5.kido-variante-entwaffnen": "Entwaffnen",
|
"kampfkunst-variante-entwaffnen": "Entwaffnen",
|
||||||
"midgard5.kido-variante-werfen": "Werfen",
|
"kampfkunst-variante-fechten": "Fechten",
|
||||||
"midgard5.kido-variante-ausweichen": "Ausweichen",
|
"kampfkunst-variante-schusstechnik": "Schusstechnik",
|
||||||
"midgard5.kido-variante-blockieren": "Blockieren",
|
"kampfkunst-variante-finten": "Finten",
|
||||||
"midgard5.kido-variante-bewegen": "Bewegen",
|
"kampfkunst-variante-geistestechnik": "Geistestechnik",
|
||||||
"midgard5.kido-variante-kontrollieren": "Kontrollieren",
|
"kampfkunst-variante-verteidigung": "Verteidigung",
|
||||||
|
|
||||||
"midgard5.mod-operation-add100": "Addieren (max 100)",
|
"kido-type": "KiDo Form",
|
||||||
"midgard5.mod-operation-roll": "Wurf Modifikation",
|
"kido-variante": "KiDo Variante",
|
||||||
"midgard5.mod-operation-add": "Addieren",
|
"kido-color": "Kampfstilfarbe",
|
||||||
"midgard5.mod-operation-set": "Basiswert",
|
"kido-style": "Art der Technik",
|
||||||
"midgard5.mod-operation-fixed": "Fester Wert",
|
"kido-rank": "Stufe der Technik",
|
||||||
"midgard5.mod-operation-subtract": "Subtrahieren",
|
"kido-grade": "Ausbildungsgrad",
|
||||||
"midgard5.mod-operation-multiply": "Multiplizieren",
|
"kido-enemy": "Einschränkungen durch Art der Gegner",
|
||||||
"midgard5.mod-operation-division": "Dividieren",
|
"kido-weapon": "Waffengruppe",
|
||||||
|
|
||||||
"midgard5.mod-stat-defenseBonus": "Abwehrbonus",
|
"kido-type-angriff": "Kido Angriff",
|
||||||
"midgard5.mod-stat-attackBonus": "Angriffsbonus",
|
"kido-type-verteidigung": "Kido Verteidigung",
|
||||||
"midgard5.mod-stat-damageBonus": "Schadensbonus",
|
"kido-type-finte": "Kido Finte",
|
||||||
"midgard5.mod-stat-movement": "Bewegung",
|
"kido-type-leib": "Kido Leibestechnik",
|
||||||
"midgard5.mod-stat-resistanceMind": "Resistenz Geist",
|
|
||||||
"midgard5.mod-stat-resistanceBody": "Resistenz Körper",
|
|
||||||
"midgard5.mod-stat-spellCasting": "Zaubern",
|
|
||||||
"midgard5.mod-stat-brawl": "Raufen",
|
|
||||||
"midgard5.mod-stat-poisonResistance": "Gifttolleranz",
|
|
||||||
"midgard5.mod-stat-lp": "Lebenspunkte",
|
|
||||||
"midgard5.mod-stat-ap": "Ausdauerpunkte",
|
|
||||||
"midgard5.mod-stat-lpProtection": "Rüstungsschutz (LP)",
|
|
||||||
"midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)",
|
|
||||||
"midgard5.mod-stat-perception": "Wahrnehmung",
|
|
||||||
"midgard5.mod-stat-drinking": "Trinken",
|
|
||||||
|
|
||||||
"midgard5.mod-type": "Typ der Modifikation",
|
"kido-variante-anspringen": "Anspringen",
|
||||||
"midgard5.mod-id": "Was soll modifiziert werden",
|
"kido-variante-attackieren": "Attackieren",
|
||||||
"midgard5.mod-operation": "Wie soll modifiziert werden",
|
"kido-variante-entwaffnen": "Entwaffnen",
|
||||||
"midgard5.mod-value": "Wert",
|
"kido-variante-werfen": "Werfen",
|
||||||
|
"kido-variante-ausweichen": "Ausweichen",
|
||||||
|
"kido-variante-blockieren": "Blockieren",
|
||||||
|
"kido-variante-bewegen": "Bewegen",
|
||||||
|
"kido-variante-kontrollieren": "Kontrollieren",
|
||||||
|
"kido-variante-finte": "Finte",
|
||||||
|
|
||||||
"midgard5.type": "Typ",
|
"mod-operation-add100": "Addieren (max 100)",
|
||||||
"midgard5.formula": "Formel",
|
"mod-operation-roll": "Wurf Modifikation",
|
||||||
"midgard5.roll": "Wurf"
|
"mod-operation-add": "Addieren",
|
||||||
|
"mod-operation-set": "Basiswert",
|
||||||
|
"mod-operation-fixed": "Fester Wert",
|
||||||
|
"mod-operation-subtract": "Subtrahieren",
|
||||||
|
"mod-operation-multiply": "Multiplizieren",
|
||||||
|
"mod-operation-division": "Dividieren",
|
||||||
|
|
||||||
|
"mod-stat-defenseBonus": "Abwehrbonus",
|
||||||
|
"mod-stat-attackBonus": "Angriffsbonus",
|
||||||
|
"mod-stat-damageBonus": "Schadensbonus",
|
||||||
|
"mod-stat-movement": "Bewegung",
|
||||||
|
"mod-stat-resistanceMind": "Resistenz Geist",
|
||||||
|
"mod-stat-resistanceBody": "Resistenz Körper",
|
||||||
|
"mod-stat-spellCasting": "Zaubern",
|
||||||
|
"mod-stat-brawl": "Raufen",
|
||||||
|
"mod-stat-poisonResistance": "Gifttolleranz",
|
||||||
|
"mod-stat-lp": "Lebenspunkte",
|
||||||
|
"mod-stat-ap": "Ausdauerpunkte",
|
||||||
|
"mod-stat-lpProtection": "Rüstungsschutz (LP)",
|
||||||
|
"mod-stat-apProtection": "Rüstungsschutz (AP)",
|
||||||
|
"mod-stat-deprivationCold": "Entbehrungen Kälte",
|
||||||
|
"mod-stat-deprivationHeat": "Entbehrungen Hitze",
|
||||||
|
"mod-stat-deprivationFood": "Entbehrungen Durst/Hunger",
|
||||||
|
|
||||||
|
"mod-type": "Typ der Modifikation",
|
||||||
|
"mod-id": "Was soll modifiziert werden",
|
||||||
|
"mod-operation": "Wie soll modifiziert werden",
|
||||||
|
"mod-value": "Wert",
|
||||||
|
|
||||||
|
"type": "Typ",
|
||||||
|
"formula": "Formel",
|
||||||
|
"roll": "Wurf",
|
||||||
|
|
||||||
|
"chat": {
|
||||||
|
"luckPoint": "Glückspunkt",
|
||||||
|
"destiny": "Schicksalsgunst",
|
||||||
|
"modify": "Nachträglich",
|
||||||
|
"cancel": "Abbrechen",
|
||||||
|
"roll": "Würfeln",
|
||||||
|
"reroll": "Neuwürfeln",
|
||||||
|
|
||||||
|
"options": {
|
||||||
|
"modifier": "Wurfmodifikator",
|
||||||
|
"difficulty": "Erfolg",
|
||||||
|
"rollMode": "Würfelmodus"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foundry-system-midgard5",
|
"name": "foundry-system-midgard5",
|
||||||
"version": "2.5.0",
|
"version": "2.7.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
/* global Handlebars, game, TextEditor, WOD5E */
|
||||||
|
|
||||||
|
import { M5Skill } from "./module/M5Base";
|
||||||
|
import { M5Character } from "./module/actors/M5Character";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define any helpers necessary for working with Handlebars
|
||||||
|
* @return {Promise}
|
||||||
|
*/
|
||||||
|
export const loadHelpers = async function () {
|
||||||
|
Handlebars.registerHelper("times", (n: number, block) => {
|
||||||
|
var accum = "";
|
||||||
|
for (let i = 0; i < n; ++i) accum += block.fn(i);
|
||||||
|
return accum;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("array", (arr: any[], index: number) => {
|
||||||
|
return arr[index];
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("m5concat", (...values) => {
|
||||||
|
const options = values.pop();
|
||||||
|
const join = options.hash?.join || "";
|
||||||
|
//return new Handlebars.SafeString(values.join(join));
|
||||||
|
return values.map((val) => val.toString()).join(join);
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("add", (...values) => {
|
||||||
|
const options = values.pop();
|
||||||
|
return values.reduce((prev, cur) => prev + cur);
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("localizeMidgard", (str: string) => {
|
||||||
|
const template = Handlebars.compile("{{localize value}}");
|
||||||
|
return template({
|
||||||
|
value: "midgard5." + str,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("skillBonus", (actorId: string, skill: M5Skill) => {
|
||||||
|
const actor = (game as Game).actors.get(actorId) as M5Character;
|
||||||
|
return actor.skillBonus(skill).toString();
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => {
|
||||||
|
const actor = (game as Game).actors.get(actorId) as M5Character;
|
||||||
|
return actor.skillEw(skill).toString();
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("skill", (skillId: string) => {
|
||||||
|
return (game as Game).items.get(skillId);
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("itemValue", (id: string, path: string) => {
|
||||||
|
let obj = (game as Game).items.get(id);
|
||||||
|
path.split(".").forEach((p) => (obj = obj[p]));
|
||||||
|
return `${obj}`;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string, token?: boolean) => {
|
||||||
|
//console.log("actorItemValue", actorId, itemId, path)
|
||||||
|
const actor = (game as Game).actors.get(actorId);
|
||||||
|
let obj = actor.items.get(itemId)?.system;
|
||||||
|
path.split(".").forEach((p) => {
|
||||||
|
if (obj) obj = obj[p];
|
||||||
|
});
|
||||||
|
return `${obj}`;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("icon", (relpath: string) => {
|
||||||
|
return `systems/midgard5/assets/icons/${relpath}`;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("isSkillInList", (skillName: string, list: any) => {
|
||||||
|
for (let key in list) {
|
||||||
|
if (list[key]?.label?.toLowerCase() === skillName?.toLowerCase()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("skillEwInList", (skillName: string, list: any) => {
|
||||||
|
for (let key in list) {
|
||||||
|
if (list[key]?.label?.toLowerCase() === skillName?.toLowerCase()) {
|
||||||
|
return list[key].calc.ew;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("stripHtml", function (param) {
|
||||||
|
var regex = /(<([^>]+)>)/gi;
|
||||||
|
return param.replace(regex, "");
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("contains", (label: string, contains: string) => {
|
||||||
|
return label.toLowerCase().includes(contains.toLowerCase());
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("count", (object: any) => {
|
||||||
|
var length = 0;
|
||||||
|
for (var key in object) {
|
||||||
|
if (object.hasOwnProperty(key)) {
|
||||||
|
++length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return length;
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("console", (object: any) => {
|
||||||
|
console.log(object);
|
||||||
|
});
|
||||||
|
};
|
||||||
110
source/index.ts
110
source/index.ts
|
|
@ -2,103 +2,18 @@ import Logger from "./utils/Logger";
|
||||||
import M5CharacterSheet from "./module/sheets/M5CharacterSheet";
|
import M5CharacterSheet from "./module/sheets/M5CharacterSheet";
|
||||||
import preloadTemplates from "./PreloadTemplates";
|
import preloadTemplates from "./PreloadTemplates";
|
||||||
import { M5Character } from "./module/actors/M5Character";
|
import { M5Character } from "./module/actors/M5Character";
|
||||||
import { M5ItemMod, M5ModOperation, M5Skill, M5TimeUnit } from "./module/M5Base";
|
import { M5ModOperation, M5TimeUnit } from "./module/M5Base";
|
||||||
import { M5ItemSheet } from "./module/sheets/M5ItemSheet";
|
import { M5ItemSheet } from "./module/sheets/M5ItemSheet";
|
||||||
import { M5Item } from "./module/items/M5Item";
|
import { M5Item } from "./module/items/M5Item";
|
||||||
|
import { reroll } from "./module/rolls/reroll";
|
||||||
|
import { loadHelpers } from "./helpers";
|
||||||
|
import { loadSettings } from "./settings";
|
||||||
|
|
||||||
Hooks.once("init", async () => {
|
Hooks.once("init", async () => {
|
||||||
Logger.log("M5 | Initialisierung Midgard 5");
|
Logger.log("M5 | Initialisierung Midgard 5");
|
||||||
|
|
||||||
Handlebars.registerHelper("times", (n: number, block) => {
|
// Load settings into Foundry
|
||||||
var accum = "";
|
loadSettings();
|
||||||
for (let i = 0; i < n; ++i) accum += block.fn(i);
|
|
||||||
return accum;
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("array", (arr: any[], index: number) => {
|
|
||||||
return arr[index];
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("m5concat", (...values) => {
|
|
||||||
const options = values.pop();
|
|
||||||
const join = options.hash?.join || "";
|
|
||||||
//return new Handlebars.SafeString(values.join(join));
|
|
||||||
return values.map((val) => val.toString()).join(join);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("add", (...values) => {
|
|
||||||
const options = values.pop();
|
|
||||||
return values.reduce((prev, cur) => prev + cur);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeMidgard", (str: string) => {
|
|
||||||
const template = Handlebars.compile("{{localize value}}");
|
|
||||||
return template({
|
|
||||||
value: "midgard5." + str,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("skillBonus", (actorId: string, skill: M5Skill) => {
|
|
||||||
const actor = (game as Game).actors.get(actorId) as M5Character;
|
|
||||||
return actor.skillBonus(skill).toString();
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => {
|
|
||||||
const actor = (game as Game).actors.get(actorId) as M5Character;
|
|
||||||
return actor.skillEw(skill).toString();
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("skill", (skillId: string) => {
|
|
||||||
return (game as Game).items.get(skillId);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("itemValue", (id: string, path: string) => {
|
|
||||||
let obj = (game as Game).items.get(id);
|
|
||||||
path.split(".").forEach((p) => (obj = obj[p]));
|
|
||||||
return `${obj}`;
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string, token?: boolean) => {
|
|
||||||
//console.log("actorItemValue", actorId, itemId, path)
|
|
||||||
const actor = (game as Game).actors.get(actorId);
|
|
||||||
let obj = actor.items.get(itemId)?.system;
|
|
||||||
path.split(".").forEach((p) => {
|
|
||||||
if (obj) obj = obj[p];
|
|
||||||
});
|
|
||||||
return `${obj}`;
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("icon", (relpath: string) => {
|
|
||||||
return `systems/midgard5/assets/icons/${relpath}`;
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("isSkillInList", (skillName: string, list: any) => {
|
|
||||||
for (let key in list) {
|
|
||||||
if (list[key]?.label?.toLowerCase() === skillName?.toLowerCase()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("stripHtml", function (param) {
|
|
||||||
var regex = /(<([^>]+)>)/gi;
|
|
||||||
return param.replace(regex, "");
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("contains", (label: string, contains: string) => {
|
|
||||||
return label.toLowerCase().includes(contains.toLowerCase());
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("count", (object: any) => {
|
|
||||||
var length = 0;
|
|
||||||
for (var key in object) {
|
|
||||||
if (object.hasOwnProperty(key)) {
|
|
||||||
++length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return length;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Default Sheet für Items definieren und das Standardsheet deaktivieren
|
// Default Sheet für Items definieren und das Standardsheet deaktivieren
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
|
|
@ -112,6 +27,8 @@ Hooks.once("init", async () => {
|
||||||
CONFIG.Item.documentClass = M5Item;
|
CONFIG.Item.documentClass = M5Item;
|
||||||
//RegisterSettings();
|
//RegisterSettings();
|
||||||
await preloadTemplates();
|
await preloadTemplates();
|
||||||
|
|
||||||
|
loadHelpers();
|
||||||
});
|
});
|
||||||
|
|
||||||
Hooks.once("setup", () => {
|
Hooks.once("setup", () => {
|
||||||
|
|
@ -163,6 +80,17 @@ Hooks.on("getChatLogEntryContext", function (html, options) {
|
||||||
return (game["user"].character || game["canvas"].tokens.controlled) && damageRolls > 0;
|
return (game["user"].character || game["canvas"].tokens.controlled) && damageRolls > 0;
|
||||||
},
|
},
|
||||||
callback: (li) => applyDamage(li, -2),
|
callback: (li) => applyDamage(li, -2),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Redo",
|
||||||
|
icon: '<i class="far fa-arrow-rotate-left"></i>',
|
||||||
|
condition: (li) => {
|
||||||
|
const message = (game as Game).messages.get(li.attr("data-message-id"));
|
||||||
|
|
||||||
|
// All must be true to show the reroll dialogue
|
||||||
|
return (game["user"].isGM || game["user"].character?.id === (game as Game).actors.get(message["speaker"].actor)?.id) && !message["flags"].rerolled;
|
||||||
|
},
|
||||||
|
callback: (li) => reroll(li),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,9 @@ export interface M5Attribute {
|
||||||
export interface M5RollData {
|
export interface M5RollData {
|
||||||
c: any;
|
c: any;
|
||||||
i: any;
|
i: any;
|
||||||
|
b: any;
|
||||||
iType: string;
|
iType: string;
|
||||||
rolls: {};
|
rolls: any;
|
||||||
res: {
|
res: {
|
||||||
label: string;
|
label: string;
|
||||||
};
|
};
|
||||||
|
|
@ -103,17 +104,9 @@ export enum M5Stats {
|
||||||
AP = "ap",
|
AP = "ap",
|
||||||
PROTECTION_LP = "lpProtection",
|
PROTECTION_LP = "lpProtection",
|
||||||
PROTECTION_AP = "apProtection",
|
PROTECTION_AP = "apProtection",
|
||||||
PERCEPTION = "perception",
|
DEPRIVATION_COLD = "deprivationCold",
|
||||||
DRINKING = "drinking",
|
DEPRIVATION_HEAT = "deprivationHeat",
|
||||||
HOARD = "hoard",
|
DEPRIVATION_FOOD = "deprivationFood",
|
||||||
HOARD_NEXT = "hoardNext",
|
|
||||||
HOARD_MIN = "hoardMin",
|
|
||||||
WEALTH = "wealth",
|
|
||||||
LOAD = "load",
|
|
||||||
HEAVY_LOAD = "heavyLoad",
|
|
||||||
LOAD_MAX = "loadMax",
|
|
||||||
THRUST_LOAD = "thrustLoad",
|
|
||||||
ENCUMBRANCE = "encumbrance",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum M5ModType {
|
export enum M5ModType {
|
||||||
|
|
@ -169,6 +162,7 @@ export interface M5AttributeCalculated extends M5ModResult {
|
||||||
|
|
||||||
export interface M5CharacterCalculatedData {
|
export interface M5CharacterCalculatedData {
|
||||||
level: number;
|
level: number;
|
||||||
|
movement: number;
|
||||||
attributes: {
|
attributes: {
|
||||||
st: M5AttributeCalculated;
|
st: M5AttributeCalculated;
|
||||||
gs: M5AttributeCalculated;
|
gs: M5AttributeCalculated;
|
||||||
|
|
@ -180,6 +174,7 @@ export interface M5CharacterCalculatedData {
|
||||||
pa: M5AttributeCalculated;
|
pa: M5AttributeCalculated;
|
||||||
wk: M5AttributeCalculated;
|
wk: M5AttributeCalculated;
|
||||||
};
|
};
|
||||||
|
|
||||||
stats: {
|
stats: {
|
||||||
lp: M5ModResult;
|
lp: M5ModResult;
|
||||||
ap: M5ModResult;
|
ap: M5ModResult;
|
||||||
|
|
@ -197,10 +192,9 @@ export interface M5CharacterCalculatedData {
|
||||||
brawlFw: number;
|
brawlFw: number;
|
||||||
poisonResistance: M5ModResult;
|
poisonResistance: M5ModResult;
|
||||||
enduranceBonus: number;
|
enduranceBonus: number;
|
||||||
perception: M5ModResult;
|
deprivationCold: M5ModResult;
|
||||||
perceptionFW: number;
|
deprivationHeat: M5ModResult;
|
||||||
drinking: M5ModResult;
|
deprivationFood: M5ModResult;
|
||||||
drinkingFW: number;
|
|
||||||
hoard: number;
|
hoard: number;
|
||||||
hoardNext: number;
|
hoardNext: number;
|
||||||
hoardMin: number;
|
hoardMin: number;
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,5 @@
|
||||||
import { M5Item } from "../items/M5Item";
|
import { M5Item } from "../items/M5Item";
|
||||||
import {
|
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated } from "../M5Base";
|
||||||
M5Attribute,
|
|
||||||
M5CharacterCalculatedData,
|
|
||||||
M5ItemMod,
|
|
||||||
M5ItemType,
|
|
||||||
M5ModOperation,
|
|
||||||
M5ModResult,
|
|
||||||
M5ModType,
|
|
||||||
M5RollData,
|
|
||||||
M5Skill,
|
|
||||||
M5SkillCalculated,
|
|
||||||
M5SkillLearned,
|
|
||||||
M5SkillType,
|
|
||||||
} from "../M5Base";
|
|
||||||
import M5ModAggregate from "./M5ModAggregate";
|
import M5ModAggregate from "./M5ModAggregate";
|
||||||
export class M5Character extends Actor {
|
export class M5Character extends Actor {
|
||||||
// constructor(
|
// constructor(
|
||||||
|
|
@ -94,6 +81,7 @@ export class M5Character extends Actor {
|
||||||
containers?: boolean;
|
containers?: boolean;
|
||||||
kampfkuenste?: boolean;
|
kampfkuenste?: boolean;
|
||||||
encumbrance?: boolean;
|
encumbrance?: boolean;
|
||||||
|
class?: boolean;
|
||||||
} = {}
|
} = {}
|
||||||
): M5CharacterCalculatedData {
|
): M5CharacterCalculatedData {
|
||||||
let ret: M5CharacterCalculatedData = {
|
let ret: M5CharacterCalculatedData = {
|
||||||
|
|
@ -126,10 +114,9 @@ export class M5Character extends Actor {
|
||||||
brawlFw: 0,
|
brawlFw: 0,
|
||||||
poisonResistance: { value: 0, mods: [] },
|
poisonResistance: { value: 0, mods: [] },
|
||||||
enduranceBonus: 0,
|
enduranceBonus: 0,
|
||||||
perception: { value: 0, mods: [] },
|
deprivationCold: { value: 0, mods: [] },
|
||||||
perceptionFW: 0,
|
deprivationHeat: { value: 0, mods: [] },
|
||||||
drinking: { value: 0, mods: [] },
|
deprivationFood: { value: 0, mods: [] },
|
||||||
drinkingFW: 0,
|
|
||||||
hoard: 0,
|
hoard: 0,
|
||||||
encumbrance: 0,
|
encumbrance: 0,
|
||||||
load: 0,
|
load: 0,
|
||||||
|
|
@ -165,6 +152,7 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
||||||
|
|
||||||
|
//Set all values that are not dependent on another Value
|
||||||
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
||||||
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
||||||
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
||||||
|
|
@ -189,41 +177,60 @@ export class M5Character extends Actor {
|
||||||
ret.stats.ap = this.modResult(data.ap);
|
ret.stats.ap = this.modResult(data.ap);
|
||||||
ret.stats.lpProtection = this.modResult(0);
|
ret.stats.lpProtection = this.modResult(0);
|
||||||
ret.stats.apProtection = this.modResult(0);
|
ret.stats.apProtection = this.modResult(0);
|
||||||
ret.stats.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.movement = this.modResult(data.movement);
|
||||||
ret.stats.resistanceMind = this.modResult(
|
|
||||||
(data.info.magicUsing ? 2 : 0) + ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.in.bonus : this.raceBonus(data.info.race))
|
|
||||||
);
|
|
||||||
ret.stats.resistanceBody = this.modResult(
|
|
||||||
(data.info.magicUsing ? 2 : 1) + ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race))
|
|
||||||
);
|
|
||||||
ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);
|
|
||||||
ret.stats.brawl = this.modResult(Math.floor((ret.attributes.st.value + ret.attributes.gw.value) / 20));
|
|
||||||
ret.stats.brawlFw = ret.stats.brawl.value + ret.stats.attackBonus.value + (data.info.race === "Zwerg" ? 1 : 0);
|
|
||||||
ret.stats.poisonResistance = this.modResult(30 + Math.floor(ret.attributes.ko.value / 2));
|
|
||||||
ret.stats.enduranceBonus = Math.floor(ret.attributes.ko.value / 10) + Math.floor(ret.attributes.st.value / 20);
|
|
||||||
ret.stats.perception = this.modResult(0);
|
|
||||||
ret.stats.perceptionFW = 6;
|
|
||||||
ret.stats.drinking = this.modResult(0);
|
|
||||||
ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10);
|
|
||||||
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
|
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
|
||||||
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
|
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
|
||||||
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
|
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(10));
|
||||||
ret.stats.hoard = 0;
|
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;
|
ret.stats.encumbrance = 0;
|
||||||
|
|
||||||
if (!skip?.mods) {
|
if (!skip?.mods) {
|
||||||
const aggregate = new M5ModAggregate(data, ret);
|
const aggregate = new M5ModAggregate(data, ret);
|
||||||
|
|
||||||
context.items
|
context.items
|
||||||
?.filter((item) => (item.type === "item" || item.type === "effect" || item.type === "armor" || item.type === "container") && item.system.equipped)
|
?.filter(
|
||||||
|
(item) =>
|
||||||
|
(item.type === "item" || item.type === "skill" || item.type === "effect" || item.type === "armor" || item.type === "container" || item.type === "class") && item.system.equipped
|
||||||
|
)
|
||||||
|
.forEach((item) => {
|
||||||
|
const mods = item.system.mods;
|
||||||
|
//console.log("Actor item mods", mods)
|
||||||
|
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.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);
|
||||||
|
ret.stats.brawl = this.modResult(Math.floor((ret.attributes.st.value + ret.attributes.gw.value) / 20));
|
||||||
|
ret.stats.brawlFw = ret.stats.brawl.value + ret.stats.attackBonus.value + (data.info.race === "Zwerg" ? 1 : 0);
|
||||||
|
ret.stats.poisonResistance = this.modResult(30 + Math.floor(ret.attributes.ko.value / 2));
|
||||||
|
ret.stats.enduranceBonus = Math.floor(ret.attributes.ko.value / 10) + Math.floor(ret.attributes.st.value / 20);
|
||||||
|
ret.stats.deprivationCold = 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.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);
|
||||||
|
|
||||||
|
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) => {
|
.forEach((item) => {
|
||||||
const mods = item.system.mods;
|
const mods = item.system.mods;
|
||||||
//console.log("Actor item mods", mods)
|
//console.log("Actor item mods", mods)
|
||||||
|
|
@ -266,6 +273,7 @@ export class M5Character extends Actor {
|
||||||
calc: item.system.calc,
|
calc: item.system.calc,
|
||||||
equipped: item.system?.equipped,
|
equipped: item.system?.equipped,
|
||||||
weight: item.system.weight || 0,
|
weight: item.system.weight || 0,
|
||||||
|
capacity: item.system.capacity || 0,
|
||||||
value: item.system.value || 0,
|
value: item.system.value || 0,
|
||||||
currency: item.system.currency || "",
|
currency: item.system.currency || "",
|
||||||
quantity: item.system.quantity || 0,
|
quantity: item.system.quantity || 0,
|
||||||
|
|
@ -294,6 +302,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;
|
||||||
}
|
}
|
||||||
|
|
@ -316,6 +325,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,
|
||||||
|
|
@ -363,8 +373,10 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.gear.weapons[item.id] = {
|
ret.gear.weapons[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
|
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,
|
||||||
|
|
@ -405,8 +417,10 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.gear.defensiveWeapons[item.id] = {
|
ret.gear.defensiveWeapons[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
|
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,
|
||||||
|
|
@ -448,7 +462,9 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.gear.armor[item.id] = {
|
ret.gear.armor[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
|
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,
|
||||||
|
|
@ -460,56 +476,26 @@ export class M5Character extends Actor {
|
||||||
containerId: item.system.containerId || "",
|
containerId: item.system.containerId || "",
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// if (!skip?.encumbrance) {
|
if (!skip?.class) {
|
||||||
// const item = context.items.filter((x) => x.name === "Belastung");
|
context.items
|
||||||
// if (ret.stats.encumbrance > ret.stats.heavyLoad) {
|
?.filter((item) => item.type === "class")
|
||||||
// if (item.length === 0) {
|
.sort((a, b) => b?.system.magicUsing - a?.system.magicUsing)
|
||||||
// this.createEffect("Belastung", [{ id: "movement", operation: M5ModOperation.DIVISION, type: M5ModType.STAT, value: 2 }]);
|
.forEach((item, index) => {
|
||||||
// } else if (item.length === 1) {
|
if (index !== 0) {
|
||||||
// item[0].update({
|
item.system.equipped = false;
|
||||||
// data: {
|
} else {
|
||||||
// equipped: true,
|
item.system.equipped = true;
|
||||||
// },
|
data.info.magicUsing = item.system.magicUsing;
|
||||||
// });
|
data.lernKostenZauber = item.system.lernKostenZauber;
|
||||||
// } else if (item.length === 2) {
|
}
|
||||||
// item[1]?.delete();
|
|
||||||
// }
|
|
||||||
// } else if (ret.stats.encumbrance <= ret.stats.heavyLoad) {
|
|
||||||
// if (item.length === 1) {
|
|
||||||
// item[0]?.update({
|
|
||||||
// data: {
|
|
||||||
// equipped: false,
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (!skip?.encumbrance) {
|
if (typeof data.info.class === "string") {
|
||||||
// const item = context.items.filter((x) => x.name === "Höchstlast");
|
data.info.class = {};
|
||||||
// if (ret.stats.encumbrance > ret.stats.loadMax) {
|
}
|
||||||
// if (item.length === 0) {
|
data.info.class[item.id] = item.name;
|
||||||
// this.createEffect("Höchstlast", [{ id: "ap", operation: M5ModOperation.SUBTRACT, type: M5ModType.STAT, value: 1 }]);
|
});
|
||||||
// } else if (item.length === 1) {
|
|
||||||
// item[0].update({
|
|
||||||
// data: {
|
|
||||||
// equipped: true,
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// } else if (item.length === 2) {
|
|
||||||
// item[1]?.delete();
|
|
||||||
// }
|
|
||||||
// } else if (ret.stats.encumbrance <= ret.stats.loadMax) {
|
|
||||||
// if (item.length === 1) {
|
|
||||||
// item[0]?.update({
|
|
||||||
// data: {
|
|
||||||
// equipped: false,
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip?.effects) {
|
if (!skip?.effects) {
|
||||||
|
|
@ -526,6 +512,7 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.gear.effects[item.id] = {
|
ret.gear.effects[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
|
icon: item.img,
|
||||||
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,
|
||||||
|
|
@ -543,21 +530,12 @@ export class M5Character extends Actor {
|
||||||
const skillMap = ret.skills[item.system.type];
|
const skillMap = ret.skills[item.system.type];
|
||||||
skillMap[item.id] = {
|
skillMap[item.id] = {
|
||||||
label: item.name,
|
label: item.name,
|
||||||
|
icon: item.img,
|
||||||
fw: item.system.fw,
|
fw: item.system.fw,
|
||||||
attribute: item.system.attribute,
|
attribute: item.system.attribute,
|
||||||
pp: item.system.pp,
|
pp: item.system.pp,
|
||||||
calc: item.system.calc,
|
calc: item.system.calc,
|
||||||
} as M5SkillCalculated;
|
} as M5SkillCalculated;
|
||||||
|
|
||||||
// Adjust attribute Aussehen based on Athletik skill
|
|
||||||
if (item.name === "Athletik") {
|
|
||||||
ret.attributes.au.value += Math.floor(item.system.fw / 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Adjust stat Bewegungsweite based on Laufen skill
|
|
||||||
if (item.name === "Laufen") {
|
|
||||||
ret.stats.movement.value += Math.floor(item.system.fw / 3);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -570,8 +548,17 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.spells[item.id] = {
|
ret.spells[item.id] = {
|
||||||
label: item.name,
|
label: item.name,
|
||||||
|
icon: item.img,
|
||||||
process: "midgard5.spell-process-" + item.system.process,
|
process: "midgard5.spell-process-" + item.system.process,
|
||||||
calc: item.system.calc,
|
calc: item.system.calc,
|
||||||
|
type: item.system.type,
|
||||||
|
castDuration: item.system.castDuration || 0,
|
||||||
|
ap: item.system.ap || 0,
|
||||||
|
range: item.system.range || 0,
|
||||||
|
effectTarget: item.system.effectTarget,
|
||||||
|
effectArea: item.system.effectArea,
|
||||||
|
effectDuration: item.system.effectDuration || 0,
|
||||||
|
equipped: item.system?.equipped || false,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -585,6 +572,7 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.kampfkuenste[item.id] = {
|
ret.kampfkuenste[item.id] = {
|
||||||
label: item.name,
|
label: item.name,
|
||||||
|
icon: item.img,
|
||||||
isKido: item.system.isKido,
|
isKido: item.system.isKido,
|
||||||
type: item.system.type,
|
type: item.system.type,
|
||||||
variante: item.system.variante,
|
variante: item.system.variante,
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,9 @@ export default class M5ModAggregate {
|
||||||
this.push({ type: M5ModType.STAT, id: M5Stats.AP, operation: M5ModOperation.SET, value: calc.stats.ap.value }, characterString);
|
this.push({ type: M5ModType.STAT, id: M5Stats.AP, operation: M5ModOperation.SET, value: calc.stats.ap.value }, characterString);
|
||||||
this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_LP, operation: M5ModOperation.SET, value: calc.stats.lpProtection.value }, characterString);
|
this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_LP, operation: M5ModOperation.SET, value: calc.stats.lpProtection.value }, characterString);
|
||||||
this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_AP, operation: M5ModOperation.SET, value: calc.stats.apProtection.value }, characterString);
|
this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_AP, operation: M5ModOperation.SET, value: calc.stats.apProtection.value }, characterString);
|
||||||
this.push({ type: M5ModType.STAT, id: M5Stats.PERCEPTION, operation: M5ModOperation.SET, value: calc.stats.perception.value }, characterString);
|
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_COLD, operation: M5ModOperation.SET, value: calc.stats.deprivationCold.value }, characterString);
|
||||||
this.push({ type: M5ModType.STAT, id: M5Stats.DRINKING, operation: M5ModOperation.SET, value: calc.stats.drinking.value }, characterString);
|
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_HEAT, operation: M5ModOperation.SET, value: calc.stats.deprivationHeat.value }, characterString);
|
||||||
|
this.push({ type: M5ModType.STAT, id: M5Stats.DEPRIVATION_FOOD, operation: M5ModOperation.SET, value: calc.stats.deprivationFood.value }, characterString);
|
||||||
}
|
}
|
||||||
|
|
||||||
push(mod: M5ItemMod, source: string) {
|
push(mod: M5ItemMod, source: string) {
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,13 @@ export class M5Item extends Item {
|
||||||
const character = actor as M5Character;
|
const character = actor as M5Character;
|
||||||
const itemData = (this as any).system;
|
const itemData = (this as any).system;
|
||||||
const calc = itemData.calc;
|
const calc = itemData.calc;
|
||||||
|
const name = (this as any).name;
|
||||||
|
|
||||||
if (itemType === "item") {
|
if (itemType === "item") {
|
||||||
calc.containers = null;
|
calc.containers = null;
|
||||||
|
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = actor.derivedData({ containers: false, items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
|
const actorCalc = actor.derivedData({ containers: false, items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true, class: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.containers = actorCalc.gear.containers;
|
calc.containers = actorCalc.gear.containers;
|
||||||
}
|
}
|
||||||
|
|
@ -45,14 +46,39 @@ export class M5Item extends Item {
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Adjust attribute Aussehen based on Athletik skill
|
||||||
|
if (name === "Athletik") {
|
||||||
|
itemData.mods[0] = { type: "attribute", id: "au", operation: "add100", value: Math.floor(calc.fw / 3) };
|
||||||
|
}
|
||||||
|
// Adjust stat Bewegungsweite based on Laufen skill
|
||||||
|
if (name === "Laufen") {
|
||||||
|
itemData.mods[0] = { type: "stat", id: "movement", operation: "add", value: Math.floor(calc.fw / 3) };
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adjust stat Kälte based on Überleben (Gebirge) skill
|
||||||
|
if (name === "Überleben (Gebirge)") {
|
||||||
|
itemData.mods[0] = { type: "stat", id: "deprivationCold", operation: "add", value: Math.floor(calc.fw * 5) };
|
||||||
|
}
|
||||||
|
|
||||||
|
// // Adjust stat Kälte based on Überleben (Steppe) skill
|
||||||
|
if (name === "Überleben (Steppe)") {
|
||||||
|
itemData.mods[0] = { type: "stat", id: "deprivationHeat", operation: "add", value: Math.floor(calc.fw * 5) };
|
||||||
|
}
|
||||||
|
// // Adjust stat Durst & Hunger based on Robustheit skill
|
||||||
|
if (name === "Robustheit") {
|
||||||
|
itemData.mods[0] = { type: "stat", id: "deprivationFood", operation: "add", value: Math.floor(calc.fw * 5) };
|
||||||
|
}
|
||||||
|
|
||||||
if (character) {
|
if (character) {
|
||||||
const actorCalc = character.derivedData({
|
const actorCalc = character.derivedData({
|
||||||
|
containers: true,
|
||||||
skills: true,
|
skills: true,
|
||||||
items: true,
|
items: true,
|
||||||
spells: true,
|
spells: true,
|
||||||
effects: true,
|
effects: true,
|
||||||
kampfkuenste: true,
|
kampfkuenste: true,
|
||||||
encumbrance: true,
|
encumbrance: true,
|
||||||
|
class: true,
|
||||||
});
|
});
|
||||||
if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {
|
if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {
|
||||||
pairs = pairs.concat(actorCalc.skillMods[itemId]);
|
pairs = pairs.concat(actorCalc.skillMods[itemId]);
|
||||||
|
|
@ -89,7 +115,7 @@ export class M5Item extends Item {
|
||||||
calc.containers = null;
|
calc.containers = null;
|
||||||
|
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
|
const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true, class: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.ew += actorCalc.stats.attackBonus.value;
|
calc.ew += actorCalc.stats.attackBonus.value;
|
||||||
calc.combatSkills = actorCalc.skills.combat;
|
calc.combatSkills = actorCalc.skills.combat;
|
||||||
|
|
@ -124,7 +150,7 @@ export class M5Item extends Item {
|
||||||
calc.containers = null;
|
calc.containers = null;
|
||||||
|
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
|
const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true, class: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;
|
calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;
|
||||||
calc.combatSkills = actorCalc.skills.combat;
|
calc.combatSkills = actorCalc.skills.combat;
|
||||||
|
|
@ -157,7 +183,7 @@ export class M5Item extends Item {
|
||||||
itemData.mods[5] = { type: "stat", id: "apProtection", operation: "set", value: itemData.apProtection };
|
itemData.mods[5] = { type: "stat", id: "apProtection", operation: "set", value: itemData.apProtection };
|
||||||
calc.containers = null;
|
calc.containers = null;
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = actor.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
|
const actorCalc = actor.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true, class: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.containers = actorCalc.gear.containers;
|
calc.containers = actorCalc.gear.containers;
|
||||||
}
|
}
|
||||||
|
|
@ -171,7 +197,7 @@ export class M5Item extends Item {
|
||||||
} else if (itemType === "spell") {
|
} else if (itemType === "spell") {
|
||||||
calc.fw = 0;
|
calc.fw = 0;
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
|
const actorCalc = character.derivedData({ containers: true, items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true, class: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.ew = actorCalc.stats.spellCasting.value;
|
calc.ew = actorCalc.stats.spellCasting.value;
|
||||||
}
|
}
|
||||||
|
|
@ -183,7 +209,7 @@ export class M5Item extends Item {
|
||||||
calc.generalSkills = null;
|
calc.generalSkills = null;
|
||||||
|
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
|
const actorCalc = character.derivedData({ containers: true, items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true, class: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.generalSkills = actorCalc.skills.general;
|
calc.generalSkills = actorCalc.skills.general;
|
||||||
}
|
}
|
||||||
|
|
@ -197,6 +223,9 @@ export class M5Item extends Item {
|
||||||
itemData.rolls.formulas[0].label = skill.name;
|
itemData.rolls.formulas[0].label = skill.name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (itemType === "class") {
|
||||||
|
itemData.mods[0] = { type: "stat", id: "resistanceBody", operation: "add", value: itemData.resistanceBody };
|
||||||
|
itemData.mods[1] = { type: "stat", id: "resistanceMind", operation: "add", value: itemData.resistanceMind };
|
||||||
}
|
}
|
||||||
if (itemData?.mods) {
|
if (itemData?.mods) {
|
||||||
calc.mods = {};
|
calc.mods = {};
|
||||||
|
|
@ -285,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.
|
||||||
|
|
@ -312,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);
|
|
||||||
return roll.toMessage();
|
|
||||||
} else {
|
} else {
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
speaker: speaker,
|
speaker: speaker,
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,12 @@ export class M5Roll {
|
||||||
public _total: number = 0;
|
public _total: number = 0;
|
||||||
public pool: PoolTerm = null;
|
public pool: PoolTerm = null;
|
||||||
|
|
||||||
constructor(public data: M5RollData, public actor: any, public label: string) {
|
constructor(
|
||||||
|
public data: M5RollData,
|
||||||
|
public actor: any,
|
||||||
|
public label: string,
|
||||||
|
public id?: string
|
||||||
|
) {
|
||||||
//super(null)
|
//super(null)
|
||||||
//this.data = rollData
|
//this.data = rollData
|
||||||
}
|
}
|
||||||
|
|
@ -26,10 +31,10 @@ export class M5Roll {
|
||||||
.map((rollName, index) => {
|
.map((rollName, index) => {
|
||||||
indexMap.set(index, rollName);
|
indexMap.set(index, rollName);
|
||||||
const formula = this.data.rolls[rollName];
|
const formula = this.data.rolls[rollName];
|
||||||
|
formula.formula = index === 0 && this.id !== "-1" ? formula.formula + `+ ${this.data.b.modifier}` : formula.formula;
|
||||||
const roll = new Roll(formula.formula, this.data);
|
const roll = new Roll(formula.formula, this.data);
|
||||||
return roll;
|
return roll;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.pool = PoolTerm.fromRolls(rolls);
|
this.pool = PoolTerm.fromRolls(rolls);
|
||||||
console.log("evaluate", this._evaluated, this.pool);
|
console.log("evaluate", this._evaluated, this.pool);
|
||||||
return this.pool.evaluate({ async: true }).then((results) => {
|
return this.pool.evaluate({ async: true }).then((results) => {
|
||||||
|
|
@ -66,7 +71,7 @@ export class M5Roll {
|
||||||
const parseResult = M5Roll.parseDiceSides(rollResult.formula);
|
const parseResult = M5Roll.parseDiceSides(rollResult.formula);
|
||||||
//console.log("evaluate roll", parseResult)
|
//console.log("evaluate roll", parseResult)
|
||||||
if (parseResult?.sides === 20) {
|
if (parseResult?.sides === 20) {
|
||||||
if (roll.total < 20) {
|
if (roll.total < this.data.b.difficulty) {
|
||||||
if (rowRes === M5EwResult.TBD || rowRes === M5EwResult.HIGH) rowRes = M5EwResult.FAIL;
|
if (rowRes === M5EwResult.TBD || rowRes === M5EwResult.HIGH) rowRes = M5EwResult.FAIL;
|
||||||
} else {
|
} else {
|
||||||
if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.PASS;
|
if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.PASS;
|
||||||
|
|
@ -88,6 +93,55 @@ export class M5Roll {
|
||||||
});
|
});
|
||||||
|
|
||||||
this.data.res.label = this.label;
|
this.data.res.label = this.label;
|
||||||
|
if ((game as Game).settings.get("midgard5", "automatedPP") && this.data.iType !== null) {
|
||||||
|
if ((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,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} 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: {
|
||||||
|
pp: this.data.i.pp + 1,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} 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({
|
||||||
|
system: {
|
||||||
|
pp: skill.system.pp + 1,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} 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({
|
||||||
|
system: {
|
||||||
|
pp: skill.system.pp + 1,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} 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({
|
||||||
|
system: {
|
||||||
|
lernKostenZauber: {
|
||||||
|
[this.data.i.process]: { pp: klasse.system.lernKostenZauber[this.data.i.process].pp + 1 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this._evaluated = true;
|
this._evaluated = true;
|
||||||
return this;
|
return this;
|
||||||
|
|
@ -98,10 +152,25 @@ export class M5Roll {
|
||||||
return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
|
return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
async toMessage() {
|
async toMessage(toggleAutomatedRoll = false) {
|
||||||
if (!this._evaluated) await this.evaluate();
|
let automatedRoll = (game as Game).settings.get("midgard5", "automatedRoll");
|
||||||
|
automatedRoll = toggleAutomatedRoll ? !automatedRoll : automatedRoll;
|
||||||
|
let rMode = (game as Game).settings.get("core", "rollMode");
|
||||||
|
|
||||||
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") });
|
||||||
|
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 chatData = {
|
const chatData = {
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
||||||
|
|
@ -109,10 +178,11 @@ export class M5Roll {
|
||||||
speaker: ChatMessage.getSpeaker({ actor: this.actor }),
|
speaker: ChatMessage.getSpeaker({ actor: this.actor }),
|
||||||
sound: CONFIG.sounds.dice,
|
sound: CONFIG.sounds.dice,
|
||||||
roll: Roll.fromTerms([this.pool]),
|
roll: Roll.fromTerms([this.pool]),
|
||||||
|
flags: { data: this.data, rerolled: false, faces: faces },
|
||||||
};
|
};
|
||||||
|
|
||||||
ChatMessage.applyRollMode(chatData, rMode);
|
let foo = ChatMessage.applyRollMode(chatData, rMode);
|
||||||
return ChatMessage.create(chatData);
|
return ChatMessage.implementation["create"](foo, { rollMode: rMode });
|
||||||
}
|
}
|
||||||
|
|
||||||
static fromAttributeValue(actor: any, attributeKey: string, attributeValue: number) {
|
static fromAttributeValue(actor: any, attributeKey: string, attributeValue: number) {
|
||||||
|
|
@ -152,7 +222,7 @@ export class M5Roll {
|
||||||
rollData.rolls["0"] = {
|
rollData.rolls["0"] = {
|
||||||
formula: "1d20 + @i.fw + @i.bonus",
|
formula: "1d20 + @i.fw + @i.bonus",
|
||||||
enabled: true,
|
enabled: true,
|
||||||
label: (game as Game).i18n.localize("midgard5.pw"),
|
label: (game as Game).i18n.localize("midgard5.ew"),
|
||||||
result: "",
|
result: "",
|
||||||
total: 0,
|
total: 0,
|
||||||
totalStr: "",
|
totalStr: "",
|
||||||
|
|
@ -195,13 +265,13 @@ export class M5Roll {
|
||||||
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.brawl"));
|
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.brawl"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static perception(actor: any) {
|
static deprivationCold(actor: any) {
|
||||||
const rollData = actor.getRollData() as M5RollData;
|
const rollData = actor.getRollData() as M5RollData;
|
||||||
|
|
||||||
rollData.rolls["0"] = {
|
rollData.rolls["0"] = {
|
||||||
formula: "1d20 + @c.calc.stats.perception.value + @c.calc.stats.perceptionFW",
|
formula: "@c.calc.stats.deprivationCold.value -1D100",
|
||||||
enabled: true,
|
enabled: true,
|
||||||
label: (game as Game).i18n.localize("midgard5.perception"),
|
label: (game as Game).i18n.localize("midgard5.deprivationCold"),
|
||||||
result: "",
|
result: "",
|
||||||
total: 0,
|
total: 0,
|
||||||
totalStr: "",
|
totalStr: "",
|
||||||
|
|
@ -209,16 +279,16 @@ export class M5Roll {
|
||||||
css: "",
|
css: "",
|
||||||
} as M5RollResult;
|
} as M5RollResult;
|
||||||
|
|
||||||
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.perception"));
|
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.deprivationCold"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static drinking(actor: any) {
|
static deprivationHeat(actor: any) {
|
||||||
const rollData = actor.getRollData() as M5RollData;
|
const rollData = actor.getRollData() as M5RollData;
|
||||||
|
|
||||||
rollData.rolls["0"] = {
|
rollData.rolls["0"] = {
|
||||||
formula: "1d20 + @c.calc.stats.drinking.value + @c.calc.stats.drinkingFW",
|
formula: "@c.calc.stats.deprivationHeat.value -1D100",
|
||||||
enabled: true,
|
enabled: true,
|
||||||
label: (game as Game).i18n.localize("midgard5.drinking"),
|
label: (game as Game).i18n.localize("midgard5.deprivationHeat"),
|
||||||
result: "",
|
result: "",
|
||||||
total: 0,
|
total: 0,
|
||||||
totalStr: "",
|
totalStr: "",
|
||||||
|
|
@ -226,7 +296,41 @@ export class M5Roll {
|
||||||
css: "",
|
css: "",
|
||||||
} as M5RollResult;
|
} as M5RollResult;
|
||||||
|
|
||||||
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.drinking"));
|
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.deprivationHeat"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static deprivationFood(actor: any) {
|
||||||
|
const rollData = actor.getRollData() as M5RollData;
|
||||||
|
|
||||||
|
rollData.rolls["0"] = {
|
||||||
|
formula: "@c.calc.stats.deprivationFood.value -1D100",
|
||||||
|
enabled: true,
|
||||||
|
label: (game as Game).i18n.localize("midgard5.deprivationFood"),
|
||||||
|
result: "",
|
||||||
|
total: 0,
|
||||||
|
totalStr: "",
|
||||||
|
dice: {},
|
||||||
|
css: "",
|
||||||
|
} as M5RollResult;
|
||||||
|
|
||||||
|
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.deprivationFood"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static cleanSpell(actor: any) {
|
||||||
|
const rollData = actor.getRollData() as M5RollData;
|
||||||
|
|
||||||
|
rollData.rolls["0"] = {
|
||||||
|
formula: "1d20 + @c.calc.stats.spellCasting.value",
|
||||||
|
enabled: true,
|
||||||
|
label: (game as Game).i18n.localize("midgard5.spellCasting"),
|
||||||
|
result: "",
|
||||||
|
total: 0,
|
||||||
|
totalStr: "",
|
||||||
|
dice: {},
|
||||||
|
css: "",
|
||||||
|
} as M5RollResult;
|
||||||
|
|
||||||
|
return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.spellCasting"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static defense(actor: any) {
|
static defense(actor: any) {
|
||||||
|
|
@ -313,6 +417,46 @@ export class M5Roll {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async popUp({
|
||||||
|
useFortune = false,
|
||||||
|
difficulty = 20,
|
||||||
|
modifier = 0,
|
||||||
|
rollModes = CONFIG.Dice.rollModes,
|
||||||
|
rollMode = "",
|
||||||
|
template = "systems/midgard5/templates/chat/task-check-dialog.hbs",
|
||||||
|
isPW = false,
|
||||||
|
} = {}) {
|
||||||
|
const html = await renderTemplate(template, { useFortune, difficulty, modifier, rollModes, rollMode, isPW });
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const data = {
|
||||||
|
title: (game as Game).i18n.localize("midgard5.chat.roll"),
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
roll: {
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.roll"),
|
||||||
|
callback: (html) => resolve(this._processTaskCheckOptions(html[0].querySelector("form"))),
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.cancel"),
|
||||||
|
callback: (html) => resolve({ cancelled: true }),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
default: "roll",
|
||||||
|
close: () => resolve({ cancelled: true }),
|
||||||
|
};
|
||||||
|
|
||||||
|
new Dialog(data, null).render(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
_processTaskCheckOptions(form) {
|
||||||
|
return {
|
||||||
|
difficulty: parseInt(form.difficulty?.value),
|
||||||
|
modifier: parseInt(form.modifier?.value),
|
||||||
|
rollMode: form.rollMode?.value,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface FormulaParseResult {
|
interface FormulaParseResult {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,108 @@
|
||||||
|
import { M5RollData, M5RollResult } from "../M5Base";
|
||||||
|
import { M5Roll } from "./M5Roll";
|
||||||
|
|
||||||
|
export const reroll = async (roll) => {
|
||||||
|
const message = (game as Game).messages.get(roll.attr("data-message-id"));
|
||||||
|
const actor = (game as Game).actors.get(message["speaker"].actor);
|
||||||
|
|
||||||
|
const template = "systems/midgard5/templates/chat/reroll-dialog.hbs";
|
||||||
|
const html = await renderTemplate(template, { sg: actor.system.sg, gp: actor.system.gp });
|
||||||
|
// Button defining
|
||||||
|
let buttons = {};
|
||||||
|
buttons = {
|
||||||
|
destiny: {
|
||||||
|
icon: '<i class="fas fa-rotate-left"></i>',
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.destiny"),
|
||||||
|
callback: () => rerollDie("destiny", "sg"),
|
||||||
|
},
|
||||||
|
luckPoints: {
|
||||||
|
icon: '<i class="fas fa-rotate-left"></i>',
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.luckPoint"),
|
||||||
|
callback: () => rerollDie("luckPoint", "gp"),
|
||||||
|
},
|
||||||
|
modify: {
|
||||||
|
icon: '<i class="fas fa-plus"></i>',
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.modify") + " +" + (message["flags"].faces[0] === 100 ? 10 : 2),
|
||||||
|
callback: () => rerollDie("modify", "gp"),
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.cancel"),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Dialog object
|
||||||
|
new Dialog(
|
||||||
|
{
|
||||||
|
title: (game as Game).i18n.localize("midgard5.chat.reroll"),
|
||||||
|
content: html,
|
||||||
|
buttons,
|
||||||
|
render: function () {},
|
||||||
|
default: "luckPoints",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
classes: ["midgard5"],
|
||||||
|
}
|
||||||
|
).render(true);
|
||||||
|
|
||||||
|
async function rerollDie(type, target) {
|
||||||
|
// Update the "content" field
|
||||||
|
let rollData = actor.getRollData() as M5RollData;
|
||||||
|
const flagData = message["flags"].data;
|
||||||
|
rollData.c = flagData.c;
|
||||||
|
rollData.i = flagData.i;
|
||||||
|
rollData.b = flagData.b;
|
||||||
|
rollData.iType = flagData.iType;
|
||||||
|
rollData.res.label = flagData.res.label + " (" + (game as Game).i18n.localize(`midgard5.chat.${type}`) + ")";
|
||||||
|
actor.update({
|
||||||
|
system: {
|
||||||
|
[target]: actor.system[target] - 1,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (type !== "modify") {
|
||||||
|
for (var key in flagData.rolls) {
|
||||||
|
if (!!flagData.rolls[key]) {
|
||||||
|
rollData.rolls[key] = {
|
||||||
|
formula: flagData.rolls[key]?.formula,
|
||||||
|
enabled: flagData.rolls[key]?.enabled,
|
||||||
|
label: flagData.rolls[key]?.label,
|
||||||
|
result: "",
|
||||||
|
total: 0,
|
||||||
|
totalStr: "",
|
||||||
|
dice: {},
|
||||||
|
css: "",
|
||||||
|
} as M5RollResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (var key in flagData.rolls) {
|
||||||
|
if (!!flagData.rolls[key]) {
|
||||||
|
rollData.rolls[key] = {
|
||||||
|
formula: key === "0" ? flagData.rolls[key]?.result + " + " + (message["flags"].faces[0] === 100 ? 10 : 2) : flagData.rolls[key]?.result,
|
||||||
|
enabled: flagData.rolls[key]?.enabled,
|
||||||
|
label: flagData.rolls[key]?.label,
|
||||||
|
result: "",
|
||||||
|
total: 0,
|
||||||
|
totalStr: "",
|
||||||
|
dice: {},
|
||||||
|
css: "",
|
||||||
|
} as M5RollResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const newRoll = new M5Roll(rollData, actor, rollData.res.label, "-1");
|
||||||
|
if (!newRoll._evaluated) await newRoll.evaluate();
|
||||||
|
|
||||||
|
const chatData = {
|
||||||
|
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
||||||
|
content: await newRoll.render(),
|
||||||
|
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||||
|
sound: CONFIG.sounds.dice,
|
||||||
|
roll: Roll.fromTerms([newRoll.pool]),
|
||||||
|
flags: { rerolled: true },
|
||||||
|
};
|
||||||
|
|
||||||
|
message.update(chatData);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -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>
|
||||||
|
|
||||||
|
|
@ -77,9 +84,9 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
let target = event.target.closest("[data-attribute]") as HTMLElement;
|
let target = event.target.closest("[data-attribute]") as HTMLElement;
|
||||||
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) => {
|
||||||
|
|
@ -139,7 +146,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await item.roll();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await item.roll(toggleAutomatedRoll);
|
||||||
this.render();
|
this.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -159,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) => {
|
||||||
|
|
@ -170,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) => {
|
||||||
|
|
@ -194,6 +204,36 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html.find(".pp-increase").on("click", async (event) => {
|
||||||
|
let target = event.target.closest("[data-pp-name]") as HTMLElement;
|
||||||
|
let ppName = target ? target.dataset.ppName : null;
|
||||||
|
const context = this.actor as any;
|
||||||
|
const item = context.items.find((x) => x.type === "class" && x.system.equipped);
|
||||||
|
item.update({
|
||||||
|
system: {
|
||||||
|
lernKostenZauber: {
|
||||||
|
[ppName]: { pp: context.system.lernKostenZauber[ppName].pp + 1 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.render();
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find(".pp-decrease").on("click", async (event) => {
|
||||||
|
let target = event.target.closest("[data-pp-name]") as HTMLElement;
|
||||||
|
let ppName = target ? target.dataset.ppName : null;
|
||||||
|
const context = this.actor as any;
|
||||||
|
const item = context.items.find((x) => x.type === "class" && x.system.equipped);
|
||||||
|
item.update({
|
||||||
|
system: {
|
||||||
|
lernKostenZauber: {
|
||||||
|
[ppName]: { pp: context.system.lernKostenZauber[ppName].pp - 1 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.render();
|
||||||
|
});
|
||||||
|
|
||||||
html.find(".fw-increase").on("click", async (event) => {
|
html.find(".fw-increase").on("click", async (event) => {
|
||||||
let target = event.target.closest("[data-item-id]") as HTMLElement;
|
let target = event.target.closest("[data-item-id]") as HTMLElement;
|
||||||
let itemId = target ? target.dataset.itemId : null;
|
let itemId = target ? target.dataset.itemId : null;
|
||||||
|
|
@ -238,38 +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-perception-button").on("click", async (event) => {
|
html.find(".roll-cleanSpell-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.perception(this.actor);
|
const roll = M5Roll.cleanSpell(this.actor);
|
||||||
await roll.toMessage();
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".roll-drinking-button").on("click", async (event) => {
|
html.find(".roll-deprivationCold-button").on("click", async (event) => {
|
||||||
const roll = M5Roll.drinking(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) => {
|
||||||
|
const roll = M5Roll.deprivationHeat(this.actor);
|
||||||
|
let toggleAutomatedRoll = (event.shiftKey)
|
||||||
|
await roll.toMessage(toggleAutomatedRoll);
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find(".roll-deprivationFood-button").on("click", async (event) => {
|
||||||
|
const roll = M5Roll.deprivationFood(this.actor);
|
||||||
|
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) => {
|
||||||
|
|
@ -433,6 +492,14 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html.find(".class-item-edit").on("click", async (event) => {
|
||||||
|
this.actor.items.find((x) => x.type === "class").sheet.render(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find(".class-item-delete").on("click", async (event) => {
|
||||||
|
this.actor.items.find((x) => x.type === "class").delete();
|
||||||
|
});
|
||||||
|
|
||||||
// Drag & Drop
|
// Drag & Drop
|
||||||
const dragDrop = new DragDrop({
|
const dragDrop = new DragDrop({
|
||||||
dragSelector: ".items-list .item",
|
dragSelector: ".items-list .item",
|
||||||
|
|
@ -479,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;
|
||||||
|
|
@ -488,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,13 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
width: 640,
|
width: 640,
|
||||||
height: 480,
|
height: 480,
|
||||||
classes: ["midgard5", "sheet", "item"],
|
classes: ["midgard5", "sheet", "item"],
|
||||||
|
tabs: [
|
||||||
|
{
|
||||||
|
navSelector: ".sheet-navigation",
|
||||||
|
contentSelector: ".sheet-content",
|
||||||
|
initial: "base_values",
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* global game */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define all game settings here
|
||||||
|
* @return {Promise}
|
||||||
|
*/
|
||||||
|
export const loadSettings = async function () {
|
||||||
|
(game as Game).settings.register("midgard5", "automatedPP", {
|
||||||
|
name: "Automatische Praxispunkte",
|
||||||
|
hint: "Falls aktiv, werden Praxispunkte automatisch angerechnet.",
|
||||||
|
scope: "world",
|
||||||
|
config: true,
|
||||||
|
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,
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
@ -374,4 +374,36 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.chip {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 25px;
|
||||||
|
height: 35px;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 35px;
|
||||||
|
border-radius: 25px;
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.closebtn {
|
||||||
|
padding-left: 10px;
|
||||||
|
color: #888;
|
||||||
|
font-weight: bold;
|
||||||
|
float: right;
|
||||||
|
font-size: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.closebtn:hover {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pp-listing {
|
||||||
|
margin: 0 2rem;
|
||||||
|
flex: 1 0 16%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: baseline;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
width: 64px;
|
width: 64px;
|
||||||
}
|
}
|
||||||
|
|
||||||
td, th {
|
td,
|
||||||
|
th {
|
||||||
padding: 0 0.5rem 0 0.5rem;
|
padding: 0 0.5rem 0 0.5rem;
|
||||||
|
|
||||||
&.center {
|
&.center {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,13 +3,17 @@
|
||||||
"name": "midgard5",
|
"name": "midgard5",
|
||||||
"title": "Midgard 5. Edition",
|
"title": "Midgard 5. Edition",
|
||||||
"description": "The German RPG Midgard 5. Edition",
|
"description": "The German RPG Midgard 5. Edition",
|
||||||
"version": "2.5.0",
|
"version": "2.7.2",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "10",
|
||||||
"verified": "11",
|
"verified": "11",
|
||||||
"maximum": "11"
|
"maximum": "11"
|
||||||
},
|
},
|
||||||
"authors": [{ "name": "Byroks" }, { "name": "Le-Frique" }, { "name": "Oskaloq" }],
|
"authors": [
|
||||||
|
{"name": "Byroks"},
|
||||||
|
{"name": "Le-Frique"},
|
||||||
|
{"name": "Oskaloq"}
|
||||||
|
],
|
||||||
"scripts": ["bundle.js"],
|
"scripts": ["bundle.js"],
|
||||||
"styles": ["bundle.css"],
|
"styles": ["bundle.css"],
|
||||||
"languages": [
|
"languages": [
|
||||||
|
|
@ -24,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.5.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.5.0/midgard5-v2.5.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"
|
||||||
}
|
}
|
||||||
|
|
@ -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,9 +22,12 @@
|
||||||
"occupation": "",
|
"occupation": "",
|
||||||
"origin": "",
|
"origin": "",
|
||||||
"faith": "",
|
"faith": "",
|
||||||
|
"level": 1,
|
||||||
"gold": 0,
|
"gold": 0,
|
||||||
"silver": 0,
|
"silver": 0,
|
||||||
"copper": 0
|
"copper": 0,
|
||||||
|
"showAllItems": false,
|
||||||
|
"showUnlearned": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"characterBars": {
|
"characterBars": {
|
||||||
|
|
@ -44,6 +50,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 +61,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": {
|
||||||
|
|
@ -72,6 +81,10 @@
|
||||||
"bergreiten": { "fw": 0, "attribute": "gw", "initial": 12, "pp": 0 },
|
"bergreiten": { "fw": 0, "attribute": "gw", "initial": 12, "pp": 0 },
|
||||||
"betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
|
"betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"betaeubungsgriff": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
"betaeubungsgriff": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
|
"bildendeKuensteA": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"bildendeKuensteB": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"bildendeKuensteG": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"bildendeKuensteM": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
"bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
|
"bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"dickhaeuterLenken": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
"dickhaeuterLenken": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
"ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
|
|
@ -101,7 +114,11 @@
|
||||||
"meditieren": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
|
"meditieren": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
|
||||||
"menschenkenntnis": { "fw": 3, "attribute": "in", "initial": 8, "pp": 0 },
|
"menschenkenntnis": { "fw": 3, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
"meucheln": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
"meucheln": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
|
||||||
"musizieren": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
"musizierenFloete": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"musizierenBlas": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"musizierenRythmus": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"musizierenStreich": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
|
"musizierenZupf": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
|
||||||
"ninjutsu": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
|
"ninjutsu": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
|
||||||
"naturkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
"naturkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
"orakelkunst": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
"orakelkunst": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
|
|
@ -131,7 +148,9 @@
|
||||||
"tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
|
"tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
|
||||||
"tanzen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
|
"tanzen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
|
||||||
"tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
"tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
"ueberleben": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
|
"ueberlebenWald": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
|
"ueberlebenSteppe": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
|
"ueberlebenGebirge": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
|
||||||
"verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
|
"verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
|
||||||
"verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
|
"verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
|
||||||
"verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
|
"verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
|
||||||
|
|
@ -144,17 +163,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gear": {
|
"gear": {
|
||||||
"gear": {
|
"gear": {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"character": {
|
"character": {
|
||||||
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
|
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
|
||||||
"calc": {}
|
"calc": {}
|
||||||
|
},
|
||||||
|
"npc": {
|
||||||
|
"templates": ["characterBars", "attributes", "characterDescription", "skills", "gear"],
|
||||||
|
"calc": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
"types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "kampfkunst", "item", "effect", "container"],
|
"types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "kampfkunst", "item", "effect", "container", "class"],
|
||||||
"templates": {
|
"templates": {
|
||||||
"itemDescription": {
|
"itemDescription": {
|
||||||
"description": ""
|
"description": ""
|
||||||
|
|
@ -217,8 +239,10 @@
|
||||||
"physical": {
|
"physical": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
|
"capacity": 0,
|
||||||
"containerId": "",
|
"containerId": "",
|
||||||
"magic": false
|
"magic": false,
|
||||||
|
"abw": 0
|
||||||
},
|
},
|
||||||
"durationSelection": {
|
"durationSelection": {
|
||||||
"durationSelection": {
|
"durationSelection": {
|
||||||
|
|
@ -231,29 +255,36 @@
|
||||||
"spellSelection": {
|
"spellSelection": {
|
||||||
"spellProcessSelection": {
|
"spellProcessSelection": {
|
||||||
"none": "midgard5.spell-process-none",
|
"none": "midgard5.spell-process-none",
|
||||||
|
"artefakte": "midgard5.spell-process-artefakte",
|
||||||
"beherrschen": "midgard5.spell-process-beherrschen",
|
"beherrschen": "midgard5.spell-process-beherrschen",
|
||||||
"bewegen": "midgard5.spell-process-bewegen",
|
"bewegen": "midgard5.spell-process-bewegen",
|
||||||
"blutzauber": "midgard5.spell-process-blutzauber",
|
"beschwoeren": "midgard5.spell-process-beschwoeren",
|
||||||
|
"blutmagie": "midgard5.spell-process-blutmagie",
|
||||||
"chaoswunder": "midgard5.spell-process-chaoswunder",
|
"chaoswunder": "midgard5.spell-process-chaoswunder",
|
||||||
|
"dweomer": "midgard5.spell-process-dweomer",
|
||||||
|
"erhaltung": "midgard5.spell-process-erhaltung",
|
||||||
"erkennen": "midgard5.spell-process-erkennen",
|
"erkennen": "midgard5.spell-process-erkennen",
|
||||||
"erschaffen": "midgard5.spell-process-erschaffen",
|
"erschaffen": "midgard5.spell-process-erschaffen",
|
||||||
"formen": "midgard5.spell-process-formen",
|
"formen": "midgard5.spell-process-formen",
|
||||||
"finstere_magie": "midgard5.spell-process-finstere_magie",
|
"finstere_magie": "midgard5.spell-process-finstere_magie",
|
||||||
"veraendern": "midgard5.spell-process-veraendern",
|
"kampfverse": "midgard5.spell-process-kampfverse",
|
||||||
"zerstoeren": "midgard5.spell-process-zerstoeren",
|
"namensmagie": "midgard5.spell-process-namensmagie",
|
||||||
"wundertat": "midgard5.spell-process-wundertat",
|
|
||||||
"dweomer": "midgard5.spell-process-dweomer",
|
|
||||||
"wilder_dweomer": "midgard5.spell-process-wilder_dweomer",
|
|
||||||
"zauberlied": "midgard5.spell-process-zauberlied",
|
|
||||||
"salz": "midgard5.spell-process-salz",
|
|
||||||
"thaumagraphie": "midgard5.spell-process-thaumagraphie",
|
|
||||||
"beschwoeren": "midgard5.spell-process-beschwoeren",
|
|
||||||
"nekromantie": "midgard5.spell-process-nekromantie",
|
"nekromantie": "midgard5.spell-process-nekromantie",
|
||||||
"thaumatherapie": "midgard5.spell-process-thaumatherapie",
|
"runenstaebe": "midgard5.spell-process-zauberrunen",
|
||||||
|
"thaumatherapie": "midgard5.spell-process-runenstaebe",
|
||||||
|
"veraendern": "midgard5.spell-process-veraendern",
|
||||||
|
"vigilsignien": "midgard5.spell-process-vigilsignien",
|
||||||
|
"wilder_dweomer": "midgard5.spell-process-wilder_dweomer",
|
||||||
|
"wundertat": "midgard5.spell-process-wundertat",
|
||||||
|
"zauberblaetter": "midgard5.spell-process-zauberblaetter",
|
||||||
|
"zauberlied": "midgard5.spell-process-zauberlied",
|
||||||
"zaubermittel": "midgard5.spell-process-zaubermittel",
|
"zaubermittel": "midgard5.spell-process-zaubermittel",
|
||||||
"zauberschutz": "midgard5.spell-process-zauberschutz",
|
|
||||||
"zauberrunen": "midgard5.spell-process-zauberrunen",
|
"zauberrunen": "midgard5.spell-process-zauberrunen",
|
||||||
"zaubersiegel": "midgard5.spell-process-siegel"
|
"zaubersalz": "midgard5.spell-process-zaubersalz",
|
||||||
|
"zauberschutz": "midgard5.spell-process-zauberschutz",
|
||||||
|
"zaubersiegel": "midgard5.spell-process-zaubersiegel",
|
||||||
|
"zaubertaenze": "midgard5.spell-process-zaubertaenze",
|
||||||
|
"zerstoeren": "midgard5.spell-process-zerstoeren"
|
||||||
},
|
},
|
||||||
"spellTypeSelection": {
|
"spellTypeSelection": {
|
||||||
"gedanke": "midgard5.spell-type-gedanke",
|
"gedanke": "midgard5.spell-type-gedanke",
|
||||||
|
|
@ -264,7 +295,8 @@
|
||||||
"umgebung": "midgard5.spell-target-umgebung",
|
"umgebung": "midgard5.spell-target-umgebung",
|
||||||
"geist": "midgard5.spell-target-geist",
|
"geist": "midgard5.spell-target-geist",
|
||||||
"koerper": "midgard5.spell-target-koerper"
|
"koerper": "midgard5.spell-target-koerper"
|
||||||
}
|
},
|
||||||
|
"spellSpecialization": "none"
|
||||||
},
|
},
|
||||||
"kampfkunstSelection": {
|
"kampfkunstSelection": {
|
||||||
"kampfkunstTypeSelection": {
|
"kampfkunstTypeSelection": {
|
||||||
|
|
@ -273,7 +305,7 @@
|
||||||
"finte": "midgard5.kampfkunst-type-finte",
|
"finte": "midgard5.kampfkunst-type-finte",
|
||||||
"geist": "midgard5.kampfkunst-type-geist",
|
"geist": "midgard5.kampfkunst-type-geist",
|
||||||
"schießkunst": "midgard5.kampfkunst-type-schießkunst",
|
"schießkunst": "midgard5.kampfkunst-type-schießkunst",
|
||||||
"fechten": "midgard5.kampfkunst-type-fechten"
|
"fechtkunst": "midgard5.kampfkunst-type-fechtkunst"
|
||||||
},
|
},
|
||||||
"kidoTypeSelection": {
|
"kidoTypeSelection": {
|
||||||
"angriff": "midgard5.kido-type-angriff",
|
"angriff": "midgard5.kido-type-angriff",
|
||||||
|
|
@ -284,7 +316,12 @@
|
||||||
"kampfkunstVarianteSelection": {
|
"kampfkunstVarianteSelection": {
|
||||||
"anstuermen": "midgard5.kampfkunst-variante-anstuermen",
|
"anstuermen": "midgard5.kampfkunst-variante-anstuermen",
|
||||||
"attackieren": "midgard5.kampfkunst-variante-attackieren",
|
"attackieren": "midgard5.kampfkunst-variante-attackieren",
|
||||||
"entwaffnen": "midgard5.kampfkunst-variante-entwaffnen"
|
"entwaffnen": "midgard5.kampfkunst-variante-entwaffnen",
|
||||||
|
"fechten": "midgard5.kampfkunst-variante-fechten",
|
||||||
|
"schusstechnik": "midgard5.kampfkunst-variante-schusstechnik",
|
||||||
|
"finten": "midgard5.kampfkunst-variante-finten",
|
||||||
|
"geistestechnik": "midgard5.kampfkunst-variante-geistestechnik",
|
||||||
|
"verteidigung": "midgard5.kampfkunst-variante-verteidigung"
|
||||||
},
|
},
|
||||||
"kidoVarianteSelection": {
|
"kidoVarianteSelection": {
|
||||||
"none": "midgard5.spell-process-none",
|
"none": "midgard5.spell-process-none",
|
||||||
|
|
@ -295,7 +332,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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -303,6 +341,7 @@
|
||||||
"templates": ["itemDescription", "attributeSelection"],
|
"templates": ["itemDescription", "attributeSelection"],
|
||||||
"fw": 0,
|
"fw": 0,
|
||||||
"attribute": "st",
|
"attribute": "st",
|
||||||
|
"equipped": true,
|
||||||
"skill": "",
|
"skill": "",
|
||||||
"type": "general",
|
"type": "general",
|
||||||
"rolls": {
|
"rolls": {
|
||||||
|
|
@ -316,10 +355,11 @@
|
||||||
"output": ""
|
"output": ""
|
||||||
},
|
},
|
||||||
"pp": 0,
|
"pp": 0,
|
||||||
"calc": {}
|
"calc": {},
|
||||||
|
"mods": {}
|
||||||
},
|
},
|
||||||
"item": {
|
"item": {
|
||||||
"templates": ["itemDescription", "equippable", "physical","valuable","hoarded"],
|
"templates": ["itemDescription", "equippable", "physical", "valuable", "hoarded"],
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {},
|
"formulas": {},
|
||||||
"output": ""
|
"output": ""
|
||||||
|
|
@ -346,13 +386,14 @@
|
||||||
"calc": {}
|
"calc": {}
|
||||||
},
|
},
|
||||||
"weapon": {
|
"weapon": {
|
||||||
"templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"],
|
"templates": ["itemDescription", "stats", "equippable", "physical", "valuable", "hoarded"],
|
||||||
"special": false,
|
"special": false,
|
||||||
"ranged": false,
|
"ranged": false,
|
||||||
"valuable": false,
|
"valuable": false,
|
||||||
"hoarded": false,
|
"hoarded": false,
|
||||||
"skillId": "",
|
"skillId": "",
|
||||||
"damageBase": "1d6",
|
"damageBase": "1d6",
|
||||||
|
"ew": 5,
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {
|
"formulas": {
|
||||||
"0": {
|
"0": {
|
||||||
|
|
@ -371,7 +412,7 @@
|
||||||
"calc": {}
|
"calc": {}
|
||||||
},
|
},
|
||||||
"defensiveWeapon": {
|
"defensiveWeapon": {
|
||||||
"templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"],
|
"templates": ["itemDescription", "stats", "equippable", "physical", "valuable", "hoarded"],
|
||||||
"special": false,
|
"special": false,
|
||||||
"valuable": false,
|
"valuable": false,
|
||||||
"hoarded": false,
|
"hoarded": false,
|
||||||
|
|
@ -389,7 +430,7 @@
|
||||||
"calc": {}
|
"calc": {}
|
||||||
},
|
},
|
||||||
"armor": {
|
"armor": {
|
||||||
"templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical","valuable","hoarded"],
|
"templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical", "valuable", "hoarded"],
|
||||||
"lpProtection": 0,
|
"lpProtection": 0,
|
||||||
"apProtection": 0,
|
"apProtection": 0,
|
||||||
"valuable": false,
|
"valuable": false,
|
||||||
|
|
@ -417,6 +458,7 @@
|
||||||
"agens": "",
|
"agens": "",
|
||||||
"reagens": "",
|
"reagens": "",
|
||||||
"material": "",
|
"material": "",
|
||||||
|
"rank": 0,
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {
|
"formulas": {
|
||||||
"0": {
|
"0": {
|
||||||
|
|
@ -436,6 +478,13 @@
|
||||||
"variante": "",
|
"variante": "",
|
||||||
"isKido": false,
|
"isKido": false,
|
||||||
"ap": "",
|
"ap": "",
|
||||||
|
"weapon": "",
|
||||||
|
"ep": "",
|
||||||
|
"rank": 0,
|
||||||
|
"enemy": "",
|
||||||
|
"color": "",
|
||||||
|
"style": "",
|
||||||
|
"grade": "",
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"formulas": {
|
"formulas": {
|
||||||
"0": {
|
"0": {
|
||||||
|
|
@ -447,6 +496,154 @@
|
||||||
"output": ""
|
"output": ""
|
||||||
},
|
},
|
||||||
"calc": {}
|
"calc": {}
|
||||||
|
},
|
||||||
|
"class": {
|
||||||
|
"templates": ["itemDescription"],
|
||||||
|
"magicUsing": false,
|
||||||
|
"equipped": true,
|
||||||
|
"resistanceBody": 1,
|
||||||
|
"resistanceMind": 0,
|
||||||
|
"calc": {},
|
||||||
|
"mods": {},
|
||||||
|
"lernKostenAllgemein": {
|
||||||
|
"alltag": 20,
|
||||||
|
"freiland": 20,
|
||||||
|
"halbwelt": 20,
|
||||||
|
"kampf": 20,
|
||||||
|
"koerper": 20,
|
||||||
|
"sozial": 20,
|
||||||
|
"unterwelt": 20,
|
||||||
|
"waffen": 20,
|
||||||
|
"wissen": 20
|
||||||
|
},
|
||||||
|
"lernKostenZauber": {
|
||||||
|
"beherrschen": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"bewegen": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"erkennen": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"erschaffen": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"formen": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"veraendern": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zerstoeren": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"wundertat": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"dweomer": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zauberlied": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"kampfverse": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zaubertaenze": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zaubersalz": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"runenstaebe": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zaubersiegel": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zauberrunen": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"thaumagraphie": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"erhaltung": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zaubermittel": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zauberschutz": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"zauberblaetter": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"vigilsignien": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"artefakte": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"chaoswunder": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"wilder_dweomer": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"nekromantie": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"finstere_magie": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"blutmagie": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"beschwoeren": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
},
|
||||||
|
"namensmagie": {
|
||||||
|
"kosten": 0,
|
||||||
|
"pp": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lernKostenKamptechnik": {
|
||||||
|
"kampfkunst": 90,
|
||||||
|
"fechtkunst": 90,
|
||||||
|
"schiesskunst": 90,
|
||||||
|
"kido": 90
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
<form>
|
||||||
|
<div class="window-content">
|
||||||
|
<label><b>Wahl der Kosten</b></label>
|
||||||
|
<hr />
|
||||||
|
<span class="dice-tooltip">
|
||||||
|
<div class="dice-rolls flexrow">
|
||||||
|
<div>
|
||||||
|
{{localize "midgard5.destiny"}}:
|
||||||
|
{{sg}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{localize "midgard5.luckPoints"}}:
|
||||||
|
{{gp}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
@ -64,38 +64,66 @@
|
||||||
<td>{{localize "midgard5.actor-ap"}}</td>
|
<td>{{localize "midgard5.actor-ap"}}</td>
|
||||||
<td class="roll-spell-details">{{i.ap}}</td>
|
<td class="roll-spell-details">{{i.ap}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kampfkunst-ep"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.ep}}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-type"}}</td>
|
<td>{{localize "midgard5.kampfkunst-type"}}</td>
|
||||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.kampfkunst-type-" i.type)}}</td>
|
<td class="roll-spell-details">{{localize (m5concat "midgard5.kampfkunst-type-" i.type)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{#if (eq i.type "angriff")}}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.kampfkunst-variante"}}</td>
|
<td>{{localize "midgard5.kampfkunst-variante"}}</td>
|
||||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.kampfkunst-variante-" i.variante)}}</td>
|
<td class="roll-spell-details">{{localize (m5concat "midgard5.kampfkunst-variante-" i.variante)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/if}}
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kampfkunst-enemy"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.enemy}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.weapon}}</td>
|
||||||
|
</tr>
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.actor-ap"}}</td>
|
<td>{{localize "midgard5.actor-ap"}}</td>
|
||||||
<td class="roll-spell-details">{{i.ap}}</td>
|
<td class="roll-spell-details">{{i.ap}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kampfkunst-ep"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.ep}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kido-color"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.color}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kido-style"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.style}}</td>
|
||||||
|
</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>
|
||||||
{{/if}}
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kido-enemy"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.enemy}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kido-weapon"}}</td>
|
||||||
|
<td class="roll-spell-details">{{i.weapon}}</td>
|
||||||
|
</tr>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#each rolls as |roll index|}}
|
{{#each rolls as |roll index|}}
|
||||||
{{#if roll.enabled}}
|
{{#if roll.enabled}}
|
||||||
<tr class="roll-row {{roll.css}}">
|
<tr class="roll-row {{roll.css}}">
|
||||||
<td>{{roll.label}}</td>
|
<td>{{roll.label}} {{#if (eq index '0')}} {{#if (gt ../b.modifier 0)}}+{{../b.modifier}}{{/if}}{{#if (gt 0 ../b.modifier)}}{{../b.modifier}}{{/if}}{{/if}}</td>
|
||||||
<td class="roll-result">
|
<td class="roll-result">
|
||||||
<span class="roll-total {{#if (contains roll.label "Schaden")}}apply damage{{/if}}{{#if (contains roll.label "Heilung")}}apply heal{{/if}}">{{roll.totalStr}}</span>
|
<span class="roll-total {{#if (contains roll.label "Schaden")}}apply damage{{/if}}{{#if (contains roll.label "Heilung")}}apply heal{{/if}}">{{roll.totalStr}}</span>
|
||||||
<span class="roll-detail">{{roll.result}}</span>
|
<span class="roll-detail">{{roll.result}}</span>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<form>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.options.modifier"}}</label>
|
||||||
|
<input type="number" name="modifier" value="{{modifier}}" />
|
||||||
|
</div>
|
||||||
|
{{#unless isPW}}
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.options.difficulty"}}</label>
|
||||||
|
<input type="number" name="difficulty" value="{{difficulty}}" />
|
||||||
|
</div>
|
||||||
|
{{/unless}}
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.options.rollMode"}}</label>
|
||||||
|
<select name="rollMode">
|
||||||
|
{{#select rollMode}}
|
||||||
|
{{#each rollModes as |label mode|}}
|
||||||
|
<option value="{{mode}}">{{localize label}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<td>{{localize "midgard5.grace"}}</td>
|
<td>{{localize "midgard5.grace"}}</td>
|
||||||
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
||||||
<td>{{localize "midgard5.exp-overall"}}</td>
|
<td>{{localize "midgard5.exp-overall"}}</td>
|
||||||
<td><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
<td width="40%"><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.destiny"}}</td>
|
<td>{{localize "midgard5.destiny"}}</td>
|
||||||
|
|
@ -46,8 +46,8 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.luckPoints"}}</td>
|
<td>{{localize "midgard5.luckPoints"}}</td>
|
||||||
<td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td>
|
<td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td>
|
||||||
<td></td>
|
<td>{{localize "midgard5.valuable"}}</td>
|
||||||
<td></td>
|
<td class="fixed-value">{{data.calc.stats.wealth}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.magicUsing"}}</td>
|
<td>{{localize "midgard5.magicUsing"}}</td>
|
||||||
<td><input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}></td>
|
<td><input id="data.info.magicUsing" type="checkbox" disabled="true" name="data.info.magicUsing" {{checked data.info.magicUsing}}></td>
|
||||||
<td>{{localize "midgard5.movementRange"}}</td>
|
<td>{{localize "midgard5.movementRange"}}</td>
|
||||||
<td><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></td>
|
<td><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -107,8 +107,6 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.hoard"}}</td>
|
<td>{{localize "midgard5.hoard"}}</td>
|
||||||
<td class="fixed-value">{{data.calc.stats.hoard}}</td>
|
<td class="fixed-value">{{data.calc.stats.hoard}}</td>
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.hoardMin"}}</td>
|
<td>{{localize "midgard5.hoardMin"}}</td>
|
||||||
|
|
@ -117,10 +115,32 @@
|
||||||
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
|
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/skills/wounds/injury-body-pain-gray.webp" class="flexpart-icon">{{localize "midgard5.deprivations"}} & {{localize "midgard5.deprivation"}}</div>
|
||||||
|
<table>
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
<tr>
|
||||||
|
<td class="flexpart-img"><img src="/icons/consumables/food/plate-fish-bowl-bones-brown.webp" class="flexpart-icon"></td>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.deprivationFood"}}</td>
|
||||||
|
<td class="center">{{data.calc.stats.deprivationFood.value}}</td>
|
||||||
|
<td class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-deprivationFood-button"></button></td>
|
||||||
|
<td class="flexpart-img"><img src="/icons/magic/fire/orb-lightning-sun.webp" class="flexpart-icon"></td>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.deprivationHeat"}}</td>
|
||||||
|
<td class="center">{{ data.calc.stats.deprivationHeat.value}}</td>
|
||||||
|
<td class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-deprivationHeat-button"></button></td>
|
||||||
|
<td class="flexpart-img"><img src="/icons/magic/water/snowflake-ice-blue.webp" class="flexpart-icon"></td>
|
||||||
|
<td class="padding highlight">{{localize "midgard5.deprivationCold"}}</td>
|
||||||
|
<td class="center">{{data.calc.stats.deprivationCold.value}}</td>
|
||||||
|
<td class="fixed-value"><button class="roll-button roll-deprivationCold-button"></button></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
@ -8,9 +8,22 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.movementRange"}}</td>
|
<td>{{localize "midgard5.movementRange"}}</td>
|
||||||
<td class="fixed-value">{{data.calc.stats.movement.value}}</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>{{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>
|
<td class="fixed-value"><a class="join-combat">{{data.calc.attributes.gw.value}}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
<td>{{localize "midgard5.defense"}}</td>
|
<td>{{localize "midgard5.defense"}}</td>
|
||||||
<td class="fixed-value">{{data.calc.stats.defense.value}}</td>
|
<td class="fixed-value">{{data.calc.stats.defense.value}}</td>
|
||||||
<td>{{localize "midgard5.defenseBonus"}}</td>
|
<td>{{localize "midgard5.defenseBonus"}}</td>
|
||||||
|
|
@ -28,7 +41,7 @@
|
||||||
|
|
||||||
<div class="flexcolumn-2">
|
<div class="flexcolumn-2">
|
||||||
<div class="flexpart" style="padding: 0 0.5rem;">
|
<div class="flexpart" style="padding: 0 0.5rem;">
|
||||||
<div class="flexpart-header">{{localize "midgard5.initiative"}}</div>
|
<div class="flexpart-header">{{localize "midgard5.actionrank"}}</div>
|
||||||
<button class="wide-button join-combat">{{localize "midgard5.combat-join"}}</button>
|
<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 ranged-combat">{{localize "midgard5.combat-ranged"}}</button>
|
||||||
<button class="wide-button spell-combat">{{localize "midgard5.combat-spell"}}</button>
|
<button class="wide-button spell-combat">{{localize "midgard5.combat-spell"}}</button>
|
||||||
|
|
@ -41,6 +54,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.weapon"}}</th>
|
||||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
<th class="title">{{localize "midgard5.damage"}}</th>
|
<th class="title">{{localize "midgard5.damage"}}</th>
|
||||||
|
|
@ -52,6 +66,7 @@
|
||||||
{{#each data.calc.gear.weapons as |item itemId|}}
|
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||||
{{#if item.equipped}}
|
{{#if item.equipped}}
|
||||||
<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="padding edit-item {{#if item.special}}highlight{{/if}}">{{item.label}}{{#if item.special}}(*){{/if}}</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.calc.ew}}</td>
|
||||||
<td class="fixed-value">{{item.damageBase}}</td>
|
<td class="fixed-value">{{item.damageBase}}</td>
|
||||||
|
|
@ -68,6 +83,7 @@
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
<tr data-item-id="{{itemId}}">
|
<tr data-item-id="{{itemId}}">
|
||||||
|
<td class="flexpart-img"><img src="icons/skills/melee/unarmed-punch-fist-yellow-red.webp" class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item">{{localize "midgard5.brawl"}}</td>
|
<td class="padding edit-item">{{localize "midgard5.brawl"}}</td>
|
||||||
<td class="fixed-value">{{data.calc.stats.brawlFw}}</td>
|
<td class="fixed-value">{{data.calc.stats.brawlFw}}</td>
|
||||||
<td class="fixed-value">1d6 -4</td>
|
<td class="fixed-value">1d6 -4</td>
|
||||||
|
|
@ -80,6 +96,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
<th class="title">{{localize "TYPES.Item.kampfkunst"}}</th>
|
<th class="title">{{localize "TYPES.Item.kampfkunst"}}</th>
|
||||||
<th class="title">{{localize "midgard5.kampfkunst-variante-short"}}</th>
|
<th class="title">{{localize "midgard5.kampfkunst-variante-short"}}</th>
|
||||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
|
|
@ -90,6 +107,7 @@
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.kampfkuenste as |item itemId|}}
|
{{#each data.calc.kampfkuenste as |item itemId|}}
|
||||||
<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="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
<td>
|
<td>
|
||||||
{{#if item.isKido}}
|
{{#if item.isKido}}
|
||||||
|
|
@ -99,10 +117,8 @@
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="spell-process">{{localize (m5concat "midgard5.kampfkunst-type-" item.type)}}</span>
|
<span class="spell-process">{{localize (m5concat "midgard5.kampfkunst-type-" item.type)}}</span>
|
||||||
{{#if (eq item.type "angriff")}}
|
|
||||||
<span class="spell-process">({{localize (m5concat "midgard5.kampfkunst-variante-" item.variante)}})</span>
|
<span class="spell-process">({{localize (m5concat "midgard5.kampfkunst-variante-" item.variante)}})</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
|
||||||
</td>
|
</td>
|
||||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
<td><button class="roll-button roll-weapon-button" /></td>
|
<td><button class="roll-button roll-weapon-button" /></td>
|
||||||
|
|
@ -120,17 +136,20 @@
|
||||||
<table>
|
<table>
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="flexpart-img"><img src="icons/magic/defensive/shield-barrier-glowing-blue.webp" class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item highlight">{{localize "midgard5.defense"}}</td>
|
<td class="padding edit-item highlight">{{localize "midgard5.defense"}}</td>
|
||||||
<td class="center">{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}</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>
|
<td class="fixed-value"><button class="roll-button roll-defense-button"></button></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="flexpart-img"><img src="icons/magic/nature/elemental-plant-humanoid.webp" class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item highlight">{{localize "midgard5.resistanceMind"}}</td>
|
<td class="padding edit-item highlight">{{localize "midgard5.resistanceMind"}}</td>
|
||||||
<td class="center">{{data.calc.stats.resistanceMind.value}}</td>
|
<td class="center">{{data.calc.stats.resistanceMind.value}}</td>
|
||||||
<td class="fixed-value"><button class="roll-button roll-resistanceMind-button"></button></td>
|
<td class="fixed-value"><button class="roll-button roll-resistanceMind-button"></button></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="flexpart-img"><img src="icons/magic/control/silhouette-hold-change-green.webp" class="flexpart-icon"></td>
|
||||||
<td class="padding edit-item highlight">{{localize "midgard5.resistanceBody"}}</td>
|
<td class="padding edit-item highlight">{{localize "midgard5.resistanceBody"}}</td>
|
||||||
<td class="center">{{data.calc.stats.resistanceBody.value}}</td>
|
<td class="center">{{data.calc.stats.resistanceBody.value}}</td>
|
||||||
<td class="fixed-value"><button class="roll-button roll-resistanceBody-button"></button></td>
|
<td class="fixed-value"><button class="roll-button roll-resistanceBody-button"></button></td>
|
||||||
|
|
@ -140,6 +159,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.defensiveWeapon"}}</th>
|
||||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
<th class="title">{{localize "midgard5.defenseBonus-short"}}</th>
|
<th class="title">{{localize "midgard5.defenseBonus-short"}}</th>
|
||||||
|
|
@ -151,6 +171,7 @@
|
||||||
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||||
{{#if item.equipped}}
|
{{#if item.equipped}}
|
||||||
<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="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
<td class="fixed-value">{{item.defenseBonus}}</td>
|
<td class="fixed-value">{{item.defenseBonus}}</td>
|
||||||
|
|
@ -171,6 +192,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.armor"}}</th>
|
||||||
<th class="title">{{localize "midgard5.actor-lp-short"}}</th>
|
<th class="title">{{localize "midgard5.actor-lp-short"}}</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>
|
||||||
|
|
@ -180,6 +202,7 @@
|
||||||
{{#each data.calc.gear.armor as |item itemId|}}
|
{{#each data.calc.gear.armor as |item itemId|}}
|
||||||
{{#if item.equipped}}
|
{{#if item.equipped}}
|
||||||
<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="padding">{{item.label}}</td>
|
<td class="padding">{{item.label}}</td>
|
||||||
<td class="fixed-value">{{lpProtection}}</td>
|
<td class="fixed-value">{{lpProtection}}</td>
|
||||||
<td class="change-equipped">
|
<td class="change-equipped">
|
||||||
|
|
@ -196,4 +219,44 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{#if actor.system.info.magicUsing }}
|
||||||
|
<div class="flexcolumn-2">
|
||||||
|
<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>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="title">{{localize "TYPES.Item.spell"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-castDuration"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.actor-ap"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.ew"}}</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>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="items-list">
|
||||||
|
{{#each data.calc.spells as |item itemId|}}
|
||||||
|
{{#if item.equipped}}
|
||||||
|
<tr data-item-id="{{itemId}}" class="item">
|
||||||
|
<td class="padding edit-item {{#if item.special}}highlight{{/if}}">{{item.label}}{{#if item.special}}(*){{/if}}</td>
|
||||||
|
<td class="fixed-value">{{item.castDuration}}</td>
|
||||||
|
<td class="fixed-value">{{item.ap}}</td>
|
||||||
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
|
<td class="change-equipped">
|
||||||
|
{{#if item.equipped}}
|
||||||
|
<i class="fa-solid fa-circle-check"></i>
|
||||||
|
{{else}}
|
||||||
|
<i class="fa-regular fa-circle"></i>
|
||||||
|
{{/if}}
|
||||||
|
</td>
|
||||||
|
<td><button class="roll-button roll-weapon-button"></button></td>
|
||||||
|
</tr>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<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>
|
<td><a class="title add-effect"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
|
|
||||||
|
|
@ -9,6 +10,7 @@
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.gear.effects as |item itemId|}}
|
{{#each data.calc.gear.effects as |item itemId|}}
|
||||||
<tr data-item-id="{{itemId}}" class="items">
|
<tr data-item-id="{{itemId}}" class="items">
|
||||||
|
<td class="flexpart-img"><img src={{item.icon}} class="flexpart-icon"></td>
|
||||||
<td class="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
{{#if item.equipped}}
|
{{#if item.equipped}}
|
||||||
|
|
@ -18,7 +20,9 @@
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</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>
|
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
|
{{!--{{/unless}}--}}
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,9 @@
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="fixed-value"><input type="number" disabled="true" name="data.info.load" value="{{data.calc.stats.load}}"></td>
|
<td class="fixed-value"><input type="number" disabled="true" name="data.info.load" value="{{data.calc.stats.load}}"></td>
|
||||||
<td class="fixed-value"><input type="number" disabled="true" {{#if (gte data.calc.stats.encumbrance data.calc.stats.heavyLoad) }}style="background:#FF6666"{{/if}} name="data.info.heavyLoad" value="{{data.calc.stats.heavyLoad}}"></td>
|
<td class="fixed-value"><input type="number" disabled="true" {{#if (gt data.calc.stats.encumbrance data.calc.stats.heavyLoad) }}style="background:#FF6666"{{/if}} name="data.info.heavyLoad" value="{{data.calc.stats.heavyLoad}}"></td>
|
||||||
<td class="fixed-value"><input type="number" disabled="true" {{#if (gte data.calc.stats.encumbrance data.calc.stats.loadMax) }}style="background:#FF6666"{{/if}} name="data.info.loadMax" value="{{data.calc.stats.loadMax}}"></td>
|
<td class="fixed-value"><input type="number" disabled="true" {{#if (gt data.calc.stats.encumbrance data.calc.stats.loadMax) }}style="background:#FF6666"{{/if}} name="data.info.loadMax" value="{{data.calc.stats.loadMax}}"></td>
|
||||||
<td class="fixed-value"><input type="number" disabled="true" {{#if (gte data.calc.stats.encumbrance data.calc.stats.thrustLoad) }}style="background:#FF6666"{{/if}} name="data.info.thrustLoad" value="{{data.calc.stats.thrustLoad}}"></td>
|
<td class="fixed-value"><input type="number" disabled="true" {{#if (gt data.calc.stats.encumbrance data.calc.stats.thrustLoad) }}style="background:#FF6666"{{/if}} name="data.info.thrustLoad" value="{{data.calc.stats.thrustLoad}}"></td>
|
||||||
<td class="fixed-value"><input type="number" disabled="true" name="data.info.encumbrance" value="{{data.calc.stats.encumbrance}}"></td>
|
<td class="fixed-value"><input type="number" disabled="true" name="data.info.encumbrance" value="{{data.calc.stats.encumbrance}}"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
|
|
@ -59,15 +59,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{#unless (eq (count data.calc.gear.containers) 0)}}
|
||||||
<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>
|
||||||
<thead class="theader">
|
<thead class="theader">
|
||||||
<tr>
|
<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">{{localize "TYPES.Item.item"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-quantity"}}</th>
|
<th class="title center">{{localize "midgard5.item-quantity"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
|
|
@ -82,6 +84,7 @@
|
||||||
{{#each ../data.calc.gear.items as |item itemId|}}
|
{{#each ../data.calc.gear.items as |item itemId|}}
|
||||||
{{#if (eq item.containerId containerId)}}
|
{{#if (eq item.containerId 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="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -115,6 +118,7 @@
|
||||||
{{#each ../data.calc.gear.weapons as |item itemId|}}
|
{{#each ../data.calc.gear.weapons as |item itemId|}}
|
||||||
{{#if (eq item.containerId containerId)}}
|
{{#if (eq item.containerId 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="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -144,6 +148,7 @@
|
||||||
{{#each ../data.calc.gear.defensiveWeapons as |item itemId|}}
|
{{#each ../data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||||
{{#if (eq item.containerId containerId)}}
|
{{#if (eq item.containerId 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="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -173,6 +178,7 @@
|
||||||
{{#each ../data.calc.gear.armor as |item itemId|}}
|
{{#each ../data.calc.gear.armor as |item itemId|}}
|
||||||
{{#if (eq item.containerId containerId)}}
|
{{#if (eq item.containerId 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="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -205,6 +211,9 @@
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
{{/unless}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
{{localize "midgard5.allItems"}}
|
{{localize "midgard5.allItems"}}
|
||||||
|
|
@ -218,18 +227,21 @@
|
||||||
<table>
|
<table>
|
||||||
<thead class="theader">
|
<thead class="theader">
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
<th class="title">{{localize "TYPES.Item.container"}}</th>
|
<th class="title">{{localize "TYPES.Item.container"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
||||||
|
<th class="title center">{{localize "midgard5.capacity"}}</th>
|
||||||
<th class="title center"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
<th class="title center"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||||
<td><a class="title add-container"><i class="fa-regular fa-plus"></i></a></th>
|
<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">
|
||||||
<tr height = 10px></tr>
|
<tr height = 10px></tr>
|
||||||
{{#each data.calc.gear.containers as |item itemId|}}
|
{{#each data.calc.gear.containers as |item itemId|}}
|
||||||
<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="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -239,8 +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}}
|
||||||
|
</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}}
|
{{/unless}}
|
||||||
</td>
|
</td>
|
||||||
<td class="change-equipped">
|
<td class="change-equipped">
|
||||||
|
|
@ -265,13 +282,14 @@
|
||||||
<table>
|
<table>
|
||||||
<thead class="theader">
|
<thead class="theader">
|
||||||
<tr>
|
<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">{{localize "TYPES.Item.item"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-quantity"}}</th>
|
<th class="title center">{{localize "midgard5.item-quantity"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
||||||
<th class="title"><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">
|
||||||
|
|
@ -279,6 +297,7 @@
|
||||||
{{#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.info.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="padding">
|
<td class="padding">
|
||||||
<span class="edit-item">{{item.label}}</span>
|
<span class="edit-item">{{item.label}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -321,11 +340,12 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.weapon"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
||||||
<th class="title"><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>
|
||||||
|
|
@ -333,6 +353,7 @@
|
||||||
{{#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.info.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="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
<td style="text-align: start">
|
<td style="text-align: start">
|
||||||
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
||||||
|
|
@ -366,17 +387,19 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.defensiveWeapon"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
||||||
<th class="title"><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.info.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="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
<td style="text-align: start">
|
<td style="text-align: start">
|
||||||
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
||||||
|
|
@ -410,17 +433,19 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.armor"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||||
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
<th class="title center">{{localize "midgard5.item-weight"}}</th>
|
||||||
<th class="title"><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.info.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="padding edit-item">{{item.label}}</td>
|
<td class="padding edit-item">{{item.label}}</td>
|
||||||
<td style="text-align: start">
|
<td style="text-align: start">
|
||||||
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,14 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td >{{localize "midgard5.class"}}</td>
|
<td >{{localize "midgard5.class"}}</td>
|
||||||
<td><input name="data.info.class" type="text" value="{{data.info.class}}" data-dtype="String" /></td>
|
<td >
|
||||||
|
{{#each data.info.class as |class id|}}
|
||||||
|
<div class="chip" data-item-id="{{id}}">
|
||||||
|
<a class="edit-item" name="data.info.class" type="text" disabled="true" value="" data-dtype="String">{{class}}</a>
|
||||||
|
<span><a class="closebtn item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></span>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</td>
|
||||||
<td >{{localize "midgard5.level"}}</td>
|
<td >{{localize "midgard5.level"}}</td>
|
||||||
<td>{{data.calc.level}}</td>
|
<td>{{data.calc.level}}</td>
|
||||||
</table>
|
</table>
|
||||||
|
|
@ -42,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>
|
||||||
|
|
@ -66,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>
|
||||||
|
|
||||||
|
|
@ -132,26 +139,26 @@
|
||||||
{{> "systems/midgard5/templates/sheets/character/base_values.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/base_values.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab base_values flexcol" data-group="primary" data-tab="skills">
|
<div class="tab skills flexcol" data-group="primary" data-tab="skills">
|
||||||
{{> "systems/midgard5/templates/sheets/character/skills.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/skills.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab base_values flexcol" data-group="primary" data-tab="gear">
|
<div class="tab gear flexcol" data-group="primary" data-tab="gear">
|
||||||
{{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab base_values flexcol" data-group="primary" data-tab="combat">
|
<div class="tab combat flexcol" data-group="primary" data-tab="combat">
|
||||||
{{> "systems/midgard5/templates/sheets/character/combat.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/combat.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
|
<div class="tab spells flexcol" data-group="primary" data-tab="spells">
|
||||||
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab base_values flexcol" data-group="primary" data-tab="effects">
|
<div class="tab effects flexcol" data-group="primary" data-tab="effects">
|
||||||
{{> "systems/midgard5/templates/sheets/character/effects.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/effects.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
<div class="tab base_values flexcol" data-group="primary" data-tab="description">
|
<div class="tab description flexcol" data-group="primary" data-tab="description">
|
||||||
{{> "systems/midgard5/templates/sheets/character/description.hbs"}}
|
{{> "systems/midgard5/templates/sheets/character/description.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
<th class="title">{{localize "midgard5.innate-ability"}}</th>
|
<th class="title">{{localize "midgard5.innate-ability"}}</th>
|
||||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||||
|
|
@ -17,6 +18,7 @@
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.skills.innate as |skill skillId|}}
|
{{#each data.calc.skills.innate as |skill skillId|}}
|
||||||
<tr data-item-id="{{skillId}}" class="item">
|
<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="padding edit-item">{{skill.label}}</td>
|
||||||
<td class="fixed-value">{{skill.fw}}</td>
|
<td class="fixed-value">{{skill.fw}}</td>
|
||||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||||
|
|
@ -25,22 +27,6 @@
|
||||||
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<tr data-item-id="{{itemId}}">
|
|
||||||
<td class="padding edit-item">{{localize "midgard5.perception"}}</td>
|
|
||||||
<td class="fixed-value">{{data.calc.stats.perceptionFW}}</td>
|
|
||||||
<td class="fixed-value">{{data.calc.stats.perception.value}}</td>
|
|
||||||
<td class="fixed-value">{{add data.calc.stats.perception.value data.calc.stats.perceptionFW}}</td>
|
|
||||||
<td><button class="roll-button roll-perception-button"></button></td>
|
|
||||||
<td class="fixed-value"></td>
|
|
||||||
</tr>
|
|
||||||
<tr data-item-id="{{itemId}}">
|
|
||||||
<td class="padding edit-item">{{localize "midgard5.drinking"}}</td>
|
|
||||||
<td class="fixed-value">{{data.calc.stats.drinkingFW}}</td>
|
|
||||||
<td class="fixed-value">{{data.calc.stats.drinking.value}}</td>
|
|
||||||
<td class="fixed-value">{{add data.calc.stats.drinking.value data.calc.stats.drinkingFW}}</td>
|
|
||||||
<td><button class="roll-button roll-drinking-button"></button></td>
|
|
||||||
<td class="fixed-value"></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -67,7 +53,7 @@
|
||||||
<i class="fa fa-minus-circle fw-decrease" style="cursor: pointer"></i>
|
<i class="fa fa-minus-circle fw-decrease" style="cursor: pointer"></i>
|
||||||
<span>{{skill.fw}}</span>
|
<span>{{skill.fw}}</span>
|
||||||
<i class="fa fa-plus-circle fw-increase" style="cursor: pointer"></i>
|
<i class="fa fa-plus-circle fw-increase" style="cursor: pointer"></i>
|
||||||
{{!-- {{</td><td class="fixed-value">{{skill.fw}}</td>}} --}}
|
</td>
|
||||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||||
<td class="fixed-value">{{skill.pp}}</td>
|
<td class="fixed-value">{{skill.pp}}</td>
|
||||||
|
|
@ -84,6 +70,7 @@
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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.weapon-skill"}}</th>
|
||||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||||
|
|
@ -96,8 +83,13 @@
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.skills.combat as |skill skillId|}}
|
{{#each data.calc.skills.combat as |skill skillId|}}
|
||||||
<tr data-item-id="{{skillId}}" class="item">
|
<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="padding edit-item">{{skill.label}}</td>
|
||||||
<td class="fixed-value">{{skill.fw}}</td>
|
<td>
|
||||||
|
<i class="fa fa-minus-circle fw-decrease" style="cursor: pointer"></i>
|
||||||
|
<span>{{skill.fw}}</span>
|
||||||
|
<i class="fa fa-plus-circle fw-increase" style="cursor: pointer"></i>
|
||||||
|
</td>
|
||||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||||
<td class="fixed-value">{{skill.pp}}</td>
|
<td class="fixed-value">{{skill.pp}}</td>
|
||||||
|
|
@ -110,10 +102,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header"><img src="icons/sundries/scrolls/scroll-runed-worn-tan.webp" class="flexpart-icon">{{localize "midgard5.languages"}}</div>
|
<div class="flexpart-header"><img src="icons/sundries/scrolls/scroll-runed-worn-tan.webp" class="flexpart-icon">{{localize "midgard5.languages"}} & {{localize "midgard5.writings"}}</div>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="title"><img src="/icons/svg/eye.svg" class="table-icon"></th>
|
||||||
<th class="title">{{localize "midgard5.language"}}</th>
|
<th class="title">{{localize "midgard5.language"}}</th>
|
||||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||||
|
|
@ -126,8 +119,13 @@
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.skills.language as |skill skillId|}}
|
{{#each data.calc.skills.language as |skill skillId|}}
|
||||||
<tr data-item-id="{{skillId}}" class="item">
|
<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="padding edit-item">{{skill.label}}</td>
|
||||||
<td class="fixed-value">{{skill.fw}}</td>
|
<td>
|
||||||
|
<i class="fa fa-minus-circle fw-decrease" style="cursor: pointer"></i>
|
||||||
|
<span>{{skill.fw}}</span>
|
||||||
|
<i class="fa fa-plus-circle fw-increase" style="cursor: pointer"></i>
|
||||||
|
</td>
|
||||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||||
<td class="fixed-value">{{skill.pp}}</td>
|
<td class="fixed-value">{{skill.pp}}</td>
|
||||||
|
|
@ -144,6 +142,8 @@
|
||||||
|
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
|
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
|
||||||
|
<input id="data.info.showUnlearned" class="checkbox" type="checkbox" name="data.info.showUnlearned" {{checked data.info.showUnlearned}} style="float: right;">
|
||||||
|
<label for="data.info.showUnlearned" style="font-size: small; font-weight: normal; font-style: italic; float: right;">{{localize "midgard5.showUnlearned"}} </label>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -156,6 +156,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
{{#unless (not data.info.showUnlearned)}}
|
||||||
{{#each data.skills.general as |skill key|}}
|
{{#each data.skills.general as |skill key|}}
|
||||||
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||||
<tr data-skill="{{key}}">
|
<tr data-skill="{{key}}">
|
||||||
|
|
@ -168,6 +169,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
{{/unless}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,108 @@
|
||||||
<table>
|
<div class="flexbox">
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/magic/symbols/star-inverted-yellow.webp" class="flexpart-icon">{{localize "midgard5.spellCasting"}}</div>
|
||||||
|
<table>
|
||||||
|
<tr height = 10px></tr>
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#eaead7" class="padding edit-item highlight" >{{localize "midgard5.spellCasting"}}</td>
|
||||||
|
<td bgcolor="#eaead7" class="center">{{data.calc.stats.spellCasting.value}}</td>
|
||||||
|
<td bgcolor="#eaead7" class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-cleanSpell-button" /></td>
|
||||||
|
<td class="padding edit-item highlight">{{localize "midgard5.defense"}}</td>
|
||||||
|
<td class="center">{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}</td>
|
||||||
|
<td class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-defense-button"></button></td>
|
||||||
|
<td bgcolor="#eaead7" class="padding edit-item highlight">{{localize "midgard5.resistanceMind"}}</td>
|
||||||
|
<td bgcolor="#eaead7" class="center">{{data.calc.stats.resistanceMind.value}}</td>
|
||||||
|
<td bgcolor="#eaead7" class="fixed-value" style="border-right: 1px solid black;"><button class="roll-button roll-resistanceMind-button"></button></td>
|
||||||
|
<td class="padding edit-item 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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header"><img src="icons/sundries/books/book-turquoise-moon.webp" class="flexpart-icon">{{localize "TYPES.Item.spell"}}</div>
|
||||||
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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 "TYPES.Item.spell"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-type"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-castDuration-short"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.actor-ap-short"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-range-short"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-effectTarget"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-effectArea-short"}}</th>
|
||||||
|
<th class="title">{{localize "midgard5.spell-effectDuration-short"}}</th>
|
||||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||||
<th class="title"></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>
|
||||||
<td><a class="title add-spell"><i class="fa-regular fa-plus"></i></a></th>
|
<td><a class="title add-spell"><i class="fa-regular fa-plus"></i></a></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="items-list">
|
<tbody class="items-list">
|
||||||
{{#each data.calc.spells as |item itemId|}}
|
{{#each data.calc.spells as |item itemId|}}
|
||||||
<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="padding edit-item">
|
<td class="padding edit-item">
|
||||||
<span>{{item.label}}</span>
|
<span>{{item.label}}</span>
|
||||||
<span class="spell-process">{{localize item.process}}</span>
|
<span class="spell-process">{{localize item.process}}</span>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="fixed-value">{{localize (m5concat 'midgard5.spell-type-' item.type)}}</td>
|
||||||
|
<td class="fixed-value">{{item.castDuration}}</td>
|
||||||
|
<td class="fixed-value">{{item.ap}}</td>
|
||||||
|
<td class="fixed-value">{{item.range}}</td>
|
||||||
|
<td class="fixed-value">{{localize (m5concat 'midgard5.spell-target-' item.effectTarget)}}</td>
|
||||||
|
<td class="fixed-value">{{item.effectArea}}</td>
|
||||||
|
<td class="fixed-value">{{item.effectDuration}}</td>
|
||||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||||
|
<td class="change-equipped">
|
||||||
|
{{#if item.equipped}}
|
||||||
|
<i class="fa-solid fa-circle-check"></i>
|
||||||
|
{{else}}
|
||||||
|
<i class="fa-regular fa-circle"></i>
|
||||||
|
{{/if}}
|
||||||
|
</td>
|
||||||
<td class="fixed-value"><button class="roll-button roll-weapon-button" /></td>
|
<td class="fixed-value"><button class="roll-button roll-weapon-button" /></td>
|
||||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcolumn-1">
|
||||||
|
<div class="flexpart">
|
||||||
|
<div class="flexpart-header">{{localize "midgard5.pp"}} {{localize "midgard5.spells"}}</div>
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<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 >
|
||||||
|
<i class="fa fa-minus-circle pp-decrease" style="cursor: pointer"></i>
|
||||||
|
<input style="width:15px" type="number" value={{group.pp}} data-dtype="Number" />
|
||||||
|
<i class="fa fa-plus-circle pp-increase" style="cursor: pointer"></i>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
{{/unless}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</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>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
<form class="" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||||
|
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||||
|
</header>
|
||||||
|
<nav class="sheet-navigation tabs" data-group="primary">
|
||||||
|
<a class="item active" data-tab="base_values">{{localize "midgard5.base_values"}}</a>
|
||||||
|
<a class="item" data-tab="skills">{{localize "midgard5.skills"}}</a>
|
||||||
|
<a class="item" data-tab="combat">{{localize "midgard5.combat"}}</a>
|
||||||
|
{{#if data.magicUsing}}
|
||||||
|
<a class="item" data-tab="spells">{{localize "midgard5.spells"}}</a>
|
||||||
|
{{/if}}
|
||||||
|
<a class="item" data-tab="description">{{localize "midgard5.description"}}</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section class="sheet-content">
|
||||||
|
|
||||||
|
<div class="tab base_values flexcol" data-group="primary" data-tab="base_values">
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>
|
||||||
|
<input id="data.magicUsing" type="checkbox" name="data.magicUsing" {{checked data.magicUsing}} />
|
||||||
|
<label for="data.magicUsing">{{localize "midgard5.magicUsing"}}</label>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.resistanceMind"}}</td>
|
||||||
|
<td><input style="width:35px" name="data.resistanceMind" type="number" value="{{data.resistanceMind}}" data-dtype="Number" /></td>
|
||||||
|
|
||||||
|
<td>{{localize "midgard5.resistanceBody"}}</td>
|
||||||
|
<td><input style="width:35px" name="data.resistanceBody" type="number" value="{{data.resistanceBody}}" data-dtype="Number" /></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab skills flexcol" data-group="primary" data-tab="skills">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<div class="flexrow">
|
||||||
|
{{#each data.lernKostenAllgemein as |wert name|}}
|
||||||
|
<span style="flex: 1 0 26%">
|
||||||
|
<label for="data.lernKostenAllgemein.{{name}}">{{localize (m5concat "midgard5.skill-goup-" name)}}</label>
|
||||||
|
<input style="width:35px" name="data.lernKostenAllgemein.{{name}}" type="number" value={{wert}} data-dtype="Number" />
|
||||||
|
</span>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab combat flexcol" data-group="primary" data-tab="combat">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<div class="flexrow">
|
||||||
|
{{#each data.lernKostenKamptechnik as |wert name|}}
|
||||||
|
<span style="flex: 1 0 26%">
|
||||||
|
<label for="data.lernKostenKamptechnik.{{name}}">{{localize (m5concat "midgard5." name)}}</label>
|
||||||
|
<input style="width:35px" name="data.lernKostenKamptechnik.{{name}}" type="number" value={{wert}} data-dtype="Number" />
|
||||||
|
</span>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab spells flexcol" data-group="primary" data-tab="spells">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
|
{{#each data.lernKostenZauber as |wert name|}}
|
||||||
|
<span style="flex: 1 0 26%">
|
||||||
|
<label for="data.lernKostenZauber.{{name}}">{{localize (m5concat "midgard5.spell-process-" name)}}</label>
|
||||||
|
<input style="width:35px" name="data.lernKostenZauber.{{name}}.kosten" type="number" value={{wert.kosten}} data-dtype="Number" />
|
||||||
|
</span>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab description flexcol" data-group="primary" data-tab="description">
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -26,6 +32,12 @@
|
||||||
<input id="data.quantity" type="number" name="data.quantity" value="{{data.quantity}}">
|
<input id="data.quantity" type="number" name="data.quantity" value="{{data.quantity}}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.capacity"}}</span>
|
||||||
|
<input id="data.capacity" type="number" name="data.capacity" value="{{data.capacity}}">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
|
@ -42,6 +54,12 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span>{{localize "midgard5.item-weight"}}</span>
|
||||||
|
<input id="data.weight" type="number" name="data.weight" value="{{data.weight}}">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,20 @@
|
||||||
<td>{{localize "midgard5.actor-ap"}}</td>
|
<td>{{localize "midgard5.actor-ap"}}</td>
|
||||||
<td><input name="data.ap" type="text" value="{{data.ap}}" data-dtype="String" /></td>
|
<td><input name="data.ap" type="text" value="{{data.ap}}" data-dtype="String" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<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}}
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{localize "midgard5.kampfkunst-weapon"}}</td>
|
||||||
|
<td><input name="data.weapon" type="text" value="{{data.weapon}}" data-dtype="String" /></td>
|
||||||
|
<td>{{localize "midgard5.kampfkunst-enemy"}}</td>
|
||||||
|
<td><input name="data.enemy" type="text" value="{{data.enemy}}" data-dtype="String" /></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
{{#unless item.system.isKido}}
|
{{#unless item.system.isKido}}
|
||||||
<td>{{localize "midgard5.kampfkunst-type"}}</td>
|
<td>{{localize "midgard5.kampfkunst-type"}}</td>
|
||||||
|
|
@ -47,7 +61,6 @@
|
||||||
</td>
|
</td>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{#unless item.system.isKido}}
|
{{#unless item.system.isKido}}
|
||||||
{{#if (eq item.system.type "angriff")}}
|
|
||||||
<td>{{localize "midgard5.kampfkunst-variante"}}</td>
|
<td>{{localize "midgard5.kampfkunst-variante"}}</td>
|
||||||
<td>
|
<td>
|
||||||
<select class="select-variante" name="data.variante" data-type="String">
|
<select class="select-variante" name="data.variante" data-type="String">
|
||||||
|
|
@ -58,7 +71,6 @@
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{#unless (eq item.system.type "finte")}}
|
{{#unless (eq item.system.type "finte")}}
|
||||||
<td>{{localize "midgard5.kido-variante"}}</td>
|
<td>{{localize "midgard5.kido-variante"}}</td>
|
||||||
|
|
@ -73,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.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>
|
||||||
|
|
@ -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.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"}} </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>
|
||||||
Loading…
Reference in New Issue