Squashed commit of the following:
commit33c65735bdAuthor: Byroks <byroks@gmail.com> Date: Sat Jan 20 15:31:35 2024 +0100 v2.4.0 commit2bfd3a7d6aAuthor: Byroks <byroks@gmail.com> Date: Sat Jan 20 13:58:22 2024 +0100 #46-problems-with-character-description-editor (#50) Changes: + adjust height and width of the editor WIP for #46 Closes #44 Reviewed-on: #50 commit03b87f2df0Author: Byroks <byroks@gmail.com> Date: Sat Jan 20 13:44:06 2024 +0100 update url commit9d72b31d5fAuthor: Byroks <byroks@gmail.com> Date: Sat Jan 20 12:37:05 2024 +0100 Add Items on Character Sheet Changes: + add button to add all different kind of items directly onto the character sheet + fix #1 by correctly updating the item commitc13fef5103Author: oskaloq <os_ka_loq@gmx.de> Date: Tue Jan 16 11:25:39 2024 +0100 Zusammenführung-von-Fertigkeiten,-Waffen-und-Rüstungen-im-Kampf-Tab-#15 (#48) - Created character description tab - Redesigned skill, gear and combat tab - Weapons, defense weapons and armor is still in the gear tab. If you equip them (now directly possible via click on the equip icon), they appear in the combat tab. Reason: This holds the combat tab clean for combat stuff. Co-authored-by: Ender <harald@drueppels.de> Reviewed-on: #48 Reviewed-by: Byroks <byroks@gmail.com> commitabf8077131Author: Byroks <byroks@gmail.com> Date: Tue Jan 16 08:29:14 2024 +0100 #33 Wrong wealth calculation (#34) Changes: + add function to adjust item value depending on currency Co-authored-by: Simon Gustavs <simon.gustavs@bms-cs.de> Reviewed-on: #34 Reviewed-by: oskaloq <os_ka_loq@gmx.de> commitb5b75aa2c6Author: Byroks <byroks@gmail.com> Date: Mon Jan 15 14:15:30 2024 +0100 #18 Remove ContainerId from containers (#29) Changes + remove containerId variable from containers as it's not needed Reviewed-on: #29 Reviewed-by: oskaloq <os_ka_loq@gmx.de> commit7368673ba3Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 20:42:22 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commita606750b23Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 20:41:15 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit7358b67da2Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 20:41:05 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit2a36b8eaa1Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 20:38:50 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitf38ef8aa6dAuthor: Byroks <byroks@gmail.com> Date: Mon Jan 8 16:16:04 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit2ac8a6bba4Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 16:09:13 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit41fb1a8879Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 16:02:37 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitff74871a0cAuthor: Byroks <byroks@gmail.com> Date: Mon Jan 8 12:56:49 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitf8b65c030fAuthor: Byroks <byroks@gmail.com> Date: Mon Jan 8 12:39:39 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit31a4ccfda1Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 12:37:43 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitc24e2b7af2Author: Byroks <byroks@gmail.com> Date: Mon Jan 8 12:28:41 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitcfdba0ee75Author: oskaloq <os_ka_loq@gmx.de> Date: Sun Jan 7 22:53:16 2024 +0100 Anpassung-des-Character-Sheet-Headers-#13 (#28) - Made character sheet header more responsive - Changed Logo - Changed "all gear items" container, that it shows items not in dedicated containers ( unless "Alle" checkbox is set) Co-authored-by: Ender <harald@drueppels.de> Co-authored-by: Byroks <byroks@gmail.com> Reviewed-on: #28 Reviewed-by: Byroks <byroks@gmail.com> commitd67de1b064Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 16:47:12 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit718f1eab99Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 16:38:35 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit47fd5b7763Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 16:37:27 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitad884994ddAuthor: Byroks <byroks@gmail.com> Date: Sun Jan 7 16:17:20 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitb08bd195c7Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 15:45:46 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitc83cd8f079Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 15:40:56 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitb1ef88235fAuthor: Byroks <byroks@gmail.com> Date: Sun Jan 7 15:37:37 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commitda1ae4e16eAuthor: Byroks <byroks@gmail.com> Date: Sun Jan 7 15:35:54 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit840a7c1dc4Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 15:33:26 2024 +0100 Update .gitea/workflows/add-issue-to-project.yaml commit4825166f87Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 15:06:01 2024 +0100 Add .gitea/workflows/add-issue-to-project.yaml commitb8e873537cAuthor: LeFrique <lefrique@live.de> Date: Sun Jan 7 14:31:20 2024 +0100 Zwergenhort (#4) Mein Geschenk zu Weihnachten: Implementierung des Zwergenhort gem. KOD S. 167 mit Angabe aktueller Mindesthort für aktuellen Grad und benötigtem Hort für nächsten Grad bei Zwergen. Der Hort erscheint nur bei ausgewählter Rasse Zwerg und wird bei allen anderen Rassen versteckt. Die Anrechnung von Gold oder Gegenständen wie auch im KOD erwähnt erfordert die Implementierung eines Goldmanagements und am besten auch eine Neustrukturierung des Charakterbogens (s. weitere Issues). Frohe Weihnachten ;) Co-authored-by: Byroks <byroks@gmail.com> Reviewed-on: #4 Co-authored-by: LeFrique <lefrique@live.de> Co-committed-by: LeFrique <lefrique@live.de> commit975bcd1e15Author: Byroks <byroks@gmail.com> Date: Sun Jan 7 14:29:39 2024 +0100 #10 Kampfkunst nicht öffenbar (#11) Änderungen: + auskommentierte if Bedingung wieder drin + if Bedingung angepasst Reviewed-on: #11 Reviewed-by: Le-Frique <lefrique@live.de> commitb945f22710Author: oskaloq <os_ka_loq@gmx.de> Date: Wed Jan 3 15:57:15 2024 +0100 Charakterbogen anpassen #7 (#9) - Use of flexboxes in two columns for better display - Introduction of item containers for the different storage of items Co-authored-by: Ender <harald@drueppels.de> Co-authored-by: Byroks <byroks@gmail.com> Reviewed-on: Byroks/foundry-vtt-system-midgard5#9 Reviewed-by: Byroks <byroks@gmail.com> commit6baf9a0269Author: Byroks <byroks@gmail.com> Date: Mon Dec 18 19:53:37 2023 +0100 Change git Path (#3) Changes: + change github urls to git.byroks Reviewed-on: Byroks/foundry-vtt-system-midgard5#3 Reviewed-by: Le-Frique <lefrique@live.de>
|
|
@ -0,0 +1,15 @@
|
|||
name: Move new issues into To Do
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
jobs:
|
||||
createCard:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Close Issue
|
||||
run: >
|
||||
curl -X PATCH -H "Content-Type: application/xml"
|
||||
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}
|
||||
-d '{ "state": "To Do" }'
|
||||
"${{ gitea.event.issue.url }}"
|
||||
|
After Width: | Height: | Size: 173 KiB |
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512"><path fill="#fff" d="M262.406 17.188c-27.22 8.822-54.017 28.012-72.375 55.53 17.544 47.898 17.544 57.26 0 105.157 19.92 15.463 40.304 24.76 60.782 27.47-2.063-25.563-3.63-51.13 1.125-76.69-13.625-1.483-23.374-5.995-37-13.874V82.563c35.866 19.096 61.84 18.777 98.813 0v32.22c-13.364 6.497-21.886 11.16-35.25 13.218 3.614 25.568 3.48 51.15 1.375 76.72 18.644-3.265 37.236-12.113 55.5-26.845-14.353-47.897-14.355-57.26 0-105.156-16.982-28.008-47.453-46.633-72.97-55.532zm-129.594 8.218c-25.906 110.414-27.35 215.33-27.4 330.922-18.84-1.537-37.582-5.12-56.027-11.12v28.554h69.066c8.715 35.025 6.472 70.052-1.036 105.078h28.13c-7.195-35.026-8.237-70.053-.872-105.078h68.904v-28.555c-18.49 4.942-37.256 8.552-56.097 10.46.082-114.94 2.496-223.068-24.667-330.26zm89.47 202.375c0 117.27 25.517 233.342 120.155 257.97C446.62 464.716 462.72 345.374 462.72 227.78H222.28z"/></svg>
|
||||
|
After Width: | Height: | Size: 956 B |
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512"><path fill="#000" d="M256 16C123.5 16 16 123.5 16 256c0 132.6 107.5 240 240 240 132.6 0 240-107.4 240-240S388.6 16 256 16zm0 60c99.4 0 180 80.6 180 180s-80.6 180-180 180S76 355.4 76 256 156.6 76 256 76zm91.3 64.2c-6.5 0-12.5 2.4-16.8 8.2-52 70.1-69 96.5-106 169.8-8.4-11.1-65.6-72.4-93.9-94.1-14.2-10.9-41.3 27.2-31.6 37.1C142.6 306.1 220.1 406 232.7 405c21.4-1.7 75.1-136.8 148.8-233.7 8-10.4-15-31.3-34.2-31.1z"/></svg>
|
||||
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 11 KiB |
|
|
@ -6,7 +6,7 @@ _**Warnung:** Das System befindet sich noch in der Entwicklung._
|
|||
|
||||
Gehe auf die Setup-Seite deiner Foundry VTT Instanz. Klicke im Reiter **Game Systems** auf den Button **Install System**. In dem dann geöffneten Dialog, unten in der Zeile **Manifest URL** den Link zur aktuellen (oder gewünschten) Version der _system.json_ eintragen und auf **Install** klicken:
|
||||
|
||||
https://github.com/byroks/foundry-vtt-system-midgard5/releases/download/v1.3.0/system.json
|
||||
https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v1.3.0/system.json
|
||||
|
||||
Danach kann eine Spielwelt mit dem System erstellt werden.
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ Dieser Reiter enthält (mit Ausname von Zaubern) alle zu erlernenden Dinge des C
|
|||
|
||||

|
||||
|
||||
Es kann einfach per Drag'n'Drop die entsprechende Blaupause auf den Charakterbogen gezogen werden, um eine Fertigkeit/Fähigkeit/Sprache zu *lernen.* Alternativ kann auch der **Lernen** Button bei den **ungelernten Fertigkeiten** geklickt werden.
|
||||
Es kann einfach per Drag'n'Drop die entsprechende Blaupause auf den Charakterbogen gezogen werden, um eine Fertigkeit/Fähigkeit/Sprache zu _lernen._ Alternativ kann auch der **Lernen** Button bei den **ungelernten Fertigkeiten** geklickt werden.
|
||||
|
||||
Um den **Fertigkeitswert** und die **Leiteigenschaft** einer Fertigkeit anzupassen, kann man auf die Fertigkeit klicken. Dann geht folgender Dialog auf:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"moduleName": "Midgard 5. Edition",
|
||||
"repository": "https://github.com/Byroks/foundry-vtt-system-midgard5",
|
||||
"rawURL": "https://raw.githubusercontent.com/Byroks/foundry-vtt-system-midgard5"
|
||||
"repository": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -423,7 +423,7 @@ const updateManifest = (cb: any) => {
|
|||
cb(Error("Manifest JSON not found"));
|
||||
return;
|
||||
}
|
||||
if (!rawURL || !repoURL) cb(Error("Repository URLs not configured in foundryconfig.json"));
|
||||
if (!repoURL) cb(Error("Repository URLs not configured in foundryconfig.json"));
|
||||
|
||||
try {
|
||||
const version = argv.update || argv.u;
|
||||
|
|
|
|||
47
lang/de.json
|
|
@ -4,12 +4,14 @@
|
|||
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
||||
|
||||
"TYPES.Item.item": "Gegenstand",
|
||||
"TYPES.Item.skill": "Fertigkeit",
|
||||
"TYPES.Item.weapon": "Waffe",
|
||||
"TYPES.Item.defensiveWeapon": "Verteidigungswaffe",
|
||||
"TYPES.Item.armor": "Rüstung",
|
||||
"TYPES.Item.spell": "Zauber",
|
||||
"TYPES.Item.effect": "Aktive Effekte",
|
||||
"TYPES.Item.kampfkunst": "Kampfkünste",
|
||||
"TYPES.Item.effect": "Aktiver Effekt",
|
||||
"TYPES.Item.kampfkunst": "Kampfkunst",
|
||||
"TYPES.Item.container": "Aufbewahrung",
|
||||
|
||||
"midgard5.phase-action": "Handlungsphase",
|
||||
"midgard5.phase-movement": "Bewegungsphase",
|
||||
|
|
@ -27,11 +29,20 @@
|
|||
|
||||
"midgard5.label": "Bezeichnung",
|
||||
"midgard5.description": "Beschreibung",
|
||||
"midgard5.attribute": "Leiteigenschaft",
|
||||
"midgard5.Characteristic": "Merkmal",
|
||||
"midgard5.characteristics": "Merkmale",
|
||||
"midgard5.background": "Hintergrund",
|
||||
"midgard5.attribute": "Eigenschaft",
|
||||
"midgard5.attributes": "Eigenschaften",
|
||||
"midgard5.points": "Punkte",
|
||||
"midgard5.calculated-value": "Berechneter Wert",
|
||||
"midgard5.calculated-values": "Sonstige Werte",
|
||||
|
||||
"midgard5.skill": "Fertigkeit",
|
||||
"midgard5.skill-value": "Fertigkeitswert",
|
||||
"midgard5.fw": "FW",
|
||||
"midgard5.bonus": "Bonus",
|
||||
"midgard5.bonuses": "Boni",
|
||||
"midgard5.ew": "EW",
|
||||
"midgard5.pp-short": "PP",
|
||||
"midgard5.pp": "Praxispunkte",
|
||||
|
|
@ -40,6 +51,7 @@
|
|||
"midgard5.item-quantity": "Menge",
|
||||
"midgard5.item-onbody": "Am Körper",
|
||||
"midgard5.item-ismagic": "Ist Magisch",
|
||||
"midgard5.item-wealth": "Vermögenswert",
|
||||
|
||||
"midgard5.actor-lp": "Lebenspunkte",
|
||||
"midgard5.actor-lp-short": "LP",
|
||||
|
|
@ -77,8 +89,12 @@
|
|||
"midgard5.spells": "Zauber",
|
||||
"midgard5.effects": "Aktive Effekte",
|
||||
"midgard5.kampfkuenste": "Kampfkünste",
|
||||
"midgard5.combat": "Kampf",
|
||||
|
||||
"midgard5.class": "Klasse",
|
||||
|
||||
"midgard5.actor-name": "Figur",
|
||||
"midgard5.level": "Grad",
|
||||
"midgard5.class": "Typ",
|
||||
"midgard5.race": "Rasse",
|
||||
"midgard5.magicUsing": "Zauberkundig",
|
||||
"midgard5.gender": "Geschlecht",
|
||||
|
|
@ -91,9 +107,18 @@
|
|||
"midgard5.origin": "Heimat",
|
||||
"midgard5.faith": "Glaube",
|
||||
|
||||
"midgard5.currency": "Geld",
|
||||
"midgard5.currency-gold": "Gold",
|
||||
"midgard5.currency-silver": "Silber",
|
||||
"midgard5.currency-copper": "Kupfer",
|
||||
"midgard5.currency-wealth": "Vermögen in GS",
|
||||
"midgard5.currency-available": "verfügbares Vermögen",
|
||||
"midgard5.hoard": "aktueller Hort",
|
||||
"midgard5.hoardMin": "benötigter Mindesthort",
|
||||
"midgard5.hoard-next": "Hort für nächsten Grad",
|
||||
"midgard5.hoarded": "Hort",
|
||||
|
||||
"midgard5.no-container": "Ohne",
|
||||
|
||||
"midgard5.exp-overall": "Erfahrungsschatz",
|
||||
"midgard5.exp-available": "Erfahrungspunkte",
|
||||
|
|
@ -207,19 +232,28 @@
|
|||
"midgard5.new-skill": "Neue Fertigkeit",
|
||||
"midgard5.special": "Spezial",
|
||||
"midgard5.learned-skill": "Gelernte Fertigkeit",
|
||||
"midgard5.learned-skills": "Gelernte Fertigkeiten",
|
||||
"midgard5.language": "Sprache",
|
||||
"midgard5.languages": "Sprachen",
|
||||
"midgard5.weapon-skill": "Waffenfertigkeit",
|
||||
"midgard5.weapon-skills": "Waffenfertigkeiten",
|
||||
"midgard5.unlearned-skill": "Ungelernte Fertigkeit",
|
||||
"midgard5.innate-ability": "Angeborene Fähigkeit",
|
||||
"midgard5.unlearned-skills": "Ungelernte Fertigkeiten",
|
||||
"midgard5.innate-ability": "Angeborene/Besondere Fertigkeit",
|
||||
"midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit",
|
||||
|
||||
"midgard5.base-damage": "Grundschaden",
|
||||
"midgard5.weapon": "Waffe",
|
||||
"midgard5.weapons": "Waffen",
|
||||
"midgard5.defensive-weapon": "Verteidigungswaffe",
|
||||
"midgard5.defensive-weapons": "Verteidigungswaffen",
|
||||
"midgard5.no-skill": "Keine Fertigkeit",
|
||||
"midgard5.magic": "magisch",
|
||||
"midgard5.valuable": "Vermögen",
|
||||
"midgard5.equipped": "Ausgerüstet",
|
||||
"midgard5.active": "Aktiv",
|
||||
"midgard5.rangedWeapon": "Schusswaffe",
|
||||
"midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um Fähigkeit auwählen zu können",
|
||||
"midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
|
||||
|
||||
"midgard5.pw": "Prüfwurf",
|
||||
"midgard5.attack": "Angriff",
|
||||
|
|
@ -263,6 +297,7 @@
|
|||
|
||||
"midgard5.kampfkunst-type": "Kampfkunst Art",
|
||||
"midgard5.kampfkunst-variante": "Kampfkunst Variante",
|
||||
"midgard5.kampfkunst-variante-short": "Var",
|
||||
"midgard5.kido-type": "Kido Art",
|
||||
"midgard5.kido-variante": "Kido Variante",
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "foundry-system-midgard5",
|
||||
"version": "2.3.1",
|
||||
"version": "2.4.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -6,12 +6,14 @@ const preloadTemplates = async (): Promise<Handlebars.TemplateDelegate<any>[]> =
|
|||
// const templates = [ rootPath + "actor/actor-sheet.hbs" ]
|
||||
// This would map to our local folder of /Assets/Templates/Actor/actor-sheet.hbs
|
||||
const templates: Array<string> = [
|
||||
"sheets/character/description.hbs",
|
||||
"sheets/character/attribute.hbs",
|
||||
"sheets/character/base_values.hbs",
|
||||
"sheets/character/main.hbs",
|
||||
"sheets/character/skills.hbs",
|
||||
"sheets/character/gear.hbs",
|
||||
"sheets/character/spells.hbs",
|
||||
"sheets/character/kampfkuenste.hbs",
|
||||
"sheets/character/combat.hbs",
|
||||
"sheets/character/effects.hbs",
|
||||
"sheets/partial/mod.hbs",
|
||||
"sheets/item/rolls.hbs",
|
||||
|
|
|
|||
|
|
@ -49,6 +49,18 @@ export interface M5RollResult extends M5RollTemplate {
|
|||
css: string;
|
||||
}
|
||||
|
||||
export enum M5ItemType {
|
||||
SKILL = "skill",
|
||||
ITEM = "item",
|
||||
WEAPON = "weapon",
|
||||
DEFENSIVE_WEAPON = "defensiveWeapon",
|
||||
ARMOR = "armor",
|
||||
CONTAINER = "container",
|
||||
SPELL = "spell",
|
||||
KAMPFKUNST = "kampfkunst",
|
||||
EFFECT = "effect",
|
||||
}
|
||||
|
||||
export enum M5EwResult {
|
||||
TBD = "",
|
||||
FUMBLE = "roll-ew-result-fumble",
|
||||
|
|
@ -86,6 +98,10 @@ export enum M5Stats {
|
|||
PROTECTION_AP = "apProtection",
|
||||
PERCEPTION = "perception",
|
||||
DRINKING = "drinking",
|
||||
HOARD = "hoard",
|
||||
HOARD_NEXT = "hoardNext",
|
||||
HOARD_MIN = "hoardMin",
|
||||
WEALTH = "wealth",
|
||||
}
|
||||
|
||||
export enum M5ModType {
|
||||
|
|
@ -173,6 +189,10 @@ export interface M5CharacterCalculatedData {
|
|||
perceptionFW: number;
|
||||
drinking: M5ModResult;
|
||||
drinkingFW: number;
|
||||
hoard: number;
|
||||
hoardNext: number;
|
||||
hoardMin: number;
|
||||
wealth: number;
|
||||
};
|
||||
skillMods: {};
|
||||
skills: {
|
||||
|
|
@ -187,6 +207,7 @@ export interface M5CharacterCalculatedData {
|
|||
defensiveWeapons: {};
|
||||
armor: {};
|
||||
items: {};
|
||||
containers: {};
|
||||
effects: {};
|
||||
};
|
||||
spells: {};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import { M5Item } from "../items/M5Item";
|
||||
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base";
|
||||
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base";
|
||||
import M5ModAggregate from "./M5ModAggregate";
|
||||
|
||||
export class M5Character extends Actor {
|
||||
// constructor(
|
||||
// data: ConstructorParameters<typeof foundry.documents.BaseActor>[0],
|
||||
|
|
@ -32,6 +31,7 @@ export class M5Character extends Actor {
|
|||
defensiveWeapons?: boolean;
|
||||
armor?: boolean;
|
||||
items?: boolean;
|
||||
containers?: boolean;
|
||||
spells?: boolean;
|
||||
effects?: boolean;
|
||||
kampfkuenste?: boolean;
|
||||
|
|
@ -71,6 +71,7 @@ export class M5Character extends Actor {
|
|||
perceptionFW: 0,
|
||||
drinking: { value: 0, mods: [] },
|
||||
drinkingFW: 0,
|
||||
hoard: 0,
|
||||
},
|
||||
skillMods: {},
|
||||
skills: {
|
||||
|
|
@ -85,6 +86,7 @@ export class M5Character extends Actor {
|
|||
defensiveWeapons: {},
|
||||
armor: {},
|
||||
items: {},
|
||||
containers: {},
|
||||
effects: {},
|
||||
},
|
||||
spells: {},
|
||||
|
|
@ -97,7 +99,7 @@ export class M5Character extends Actor {
|
|||
const data = (this as any).system;
|
||||
if (!data) return null;
|
||||
|
||||
ret.level = M5Character.levelFromExp(data.es);
|
||||
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
||||
|
||||
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
||||
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
||||
|
|
@ -143,12 +145,16 @@ export class M5Character extends Actor {
|
|||
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.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
|
||||
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
|
||||
ret.stats.hoard = 0;
|
||||
|
||||
if (!skip?.mods) {
|
||||
const aggregate = new M5ModAggregate(data, ret);
|
||||
|
||||
context.items
|
||||
?.filter((item) => (item.type === "item" || item.type === "effect" || item.type === "armor") && item.system.equipped)
|
||||
?.filter((item) => (item.type === "item" || item.type === "effect" || item.type === "armor" || item.type === "container") && item.system.equipped)
|
||||
.forEach((item) => {
|
||||
const mods = item.system.mods;
|
||||
//console.log("Actor item mods", mods)
|
||||
|
|
@ -171,6 +177,14 @@ export class M5Character extends Actor {
|
|||
if (item.system.magic) {
|
||||
label += "*";
|
||||
}
|
||||
if (item.system.valuable) {
|
||||
ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
|
||||
}
|
||||
if (item.system.hoarded) {
|
||||
ret.stats.hoard += item.system.value || 0;
|
||||
}
|
||||
|
||||
let icon = item.img;
|
||||
let rollable = false;
|
||||
|
||||
// console.log(item.system.rolls.formulas.map((p) => p.enabled));
|
||||
|
|
@ -180,11 +194,54 @@ export class M5Character extends Actor {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ret.gear.items[item.id] = {
|
||||
label: label,
|
||||
icon: icon,
|
||||
magic: item.system.magic,
|
||||
calc: item.system.calc,
|
||||
equipped: item.system?.equipped,
|
||||
valuable: item.system?.valuable,
|
||||
hoarded: item.system?.hoarded,
|
||||
weight: item.system.weight || 0,
|
||||
containerId: item.system.containerId || "",
|
||||
value: item.system.value || 0,
|
||||
currency: item.system.currency || "",
|
||||
quantity: item.system.quantity || 0,
|
||||
rollExist: rollable,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
if (!skip?.containers) {
|
||||
context.items
|
||||
?.filter((item) => item.type === "container")
|
||||
.forEach((item) => {
|
||||
item.prepareDerivedData();
|
||||
|
||||
let label = item.name;
|
||||
if (item.system.magic) {
|
||||
label += "*";
|
||||
}
|
||||
let icon = item.img;
|
||||
let rollable = false;
|
||||
|
||||
// console.log(item.system.rolls.formulas.map((p) => p.enabled));
|
||||
for (let key in item.system.rolls.formulas) {
|
||||
rollable = item.system.rolls.formulas[key].enabled;
|
||||
if (rollable) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ret.gear.containers[item.id] = {
|
||||
label: label,
|
||||
icon: icon,
|
||||
magic: item.system.magic,
|
||||
valuable: item.system?.valuable,
|
||||
hoarded: item.system?.hoarded,
|
||||
calc: item.system.calc,
|
||||
equipped: item.system?.equipped,
|
||||
weight: item.system.weight || 0,
|
||||
value: item.system.value || 0,
|
||||
currency: item.system.currency || "",
|
||||
quantity: item.system.quantity || 0,
|
||||
|
|
@ -247,12 +304,25 @@ export class M5Character extends Actor {
|
|||
item.system.stats.damageBonus +
|
||||
")";
|
||||
}
|
||||
if (item.system.valuable) {
|
||||
ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
|
||||
}
|
||||
if (item.system.hoarded) {
|
||||
ret.stats.hoard += item.system.value || 0;
|
||||
}
|
||||
|
||||
ret.gear.weapons[item.id] = {
|
||||
label: label,
|
||||
skillId: item.system.skillId,
|
||||
magic: item.system.magic,
|
||||
valuable: item.system?.valuable,
|
||||
hoarded: item.system?.hoarded,
|
||||
value: item.system.value || 0,
|
||||
calc: item.system.calc,
|
||||
special: item.system.special,
|
||||
damageBase: item.system.damageBase,
|
||||
equipped: item.system?.equipped,
|
||||
containerId: item.system.containerId || "",
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
@ -267,12 +337,24 @@ export class M5Character extends Actor {
|
|||
if (item.system.magic) {
|
||||
label += "*(" + (item.system.stats.defenseBonus < 0 ? "" : "+") + item.system.stats.defenseBonus + ")";
|
||||
}
|
||||
if (item.system.valuable) {
|
||||
ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
|
||||
}
|
||||
if (item.system.hoarded) {
|
||||
ret.stats.hoard += item.system.value || 0;
|
||||
}
|
||||
|
||||
ret.gear.defensiveWeapons[item.id] = {
|
||||
label: label,
|
||||
skillId: item.system.skillId,
|
||||
magic: item.system.magic,
|
||||
valuable: item.system?.valuable,
|
||||
hoarded: item.system?.hoarded,
|
||||
value: item.system.value || 0,
|
||||
defenseBonus: item.system.stats.defenseBonus,
|
||||
calc: item.system.calc,
|
||||
equipped: item.system?.equipped,
|
||||
containerId: item.system.containerId || "",
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
@ -287,12 +369,23 @@ export class M5Character extends Actor {
|
|||
if (item.system.magic) {
|
||||
label += "*";
|
||||
}
|
||||
if (item.system.valuable) {
|
||||
ret.stats.wealth += this.calculateValue(item.system.value, item.system.currency);
|
||||
}
|
||||
if (item.system.hoarded) {
|
||||
ret.stats.hoard += item.system.value || 0;
|
||||
}
|
||||
|
||||
ret.gear.armor[item.id] = {
|
||||
label: label,
|
||||
magic: item.system.magic,
|
||||
valuable: item.system?.valuable,
|
||||
hoarded: item.system?.hoarded,
|
||||
value: item.system.value || 0,
|
||||
lpProtection: item.system.lpProtection,
|
||||
calc: item.system.calc,
|
||||
equipped: item.system?.equipped,
|
||||
containerId: item.system.containerId || "",
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
@ -429,11 +522,36 @@ export class M5Character extends Actor {
|
|||
});
|
||||
}
|
||||
|
||||
createItem(itemName: string, itemType: M5ItemType): Promise<M5Item> {
|
||||
const itemData = {
|
||||
name: itemName,
|
||||
type: itemType,
|
||||
};
|
||||
|
||||
return (this as any).createEmbeddedDocuments("Item", [itemData]).then((docs) => {
|
||||
const item = docs[0];
|
||||
return item;
|
||||
});
|
||||
}
|
||||
|
||||
getItem(itemId: string): any {
|
||||
if (!(this as any).items) return null;
|
||||
return (this as any).getEmbeddedDocument("Item", itemId);
|
||||
}
|
||||
|
||||
private calculateValue(value: number, currency: string): number {
|
||||
switch (currency) {
|
||||
case "gold":
|
||||
return value;
|
||||
case "silver":
|
||||
return parseFloat((value / 10).toPrecision(3));
|
||||
case "copper":
|
||||
return parseFloat((value / 100).toPrecision(3));
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private modResult(value: number): M5ModResult {
|
||||
return {
|
||||
value: value,
|
||||
|
|
|
|||
|
|
@ -14,7 +14,22 @@ export class M5Item extends Item {
|
|||
const itemData = (this as any).system;
|
||||
const calc = itemData.calc;
|
||||
|
||||
if (itemType === "skill") {
|
||||
if (itemType === "item") {
|
||||
calc.containers = null;
|
||||
|
||||
if (actor) {
|
||||
const actorCalc = actor.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
|
||||
if (actorCalc) {
|
||||
calc.containers = actorCalc.gear.containers;
|
||||
}
|
||||
const container = character.getItem(itemData.containerId);
|
||||
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
|
||||
if (container) {
|
||||
container.prepareDerivedData();
|
||||
const containerData = container.system;
|
||||
}
|
||||
}
|
||||
} else if (itemType === "skill") {
|
||||
calc.fw = itemData.fw;
|
||||
calc.bonus = 0;
|
||||
|
||||
|
|
@ -64,12 +79,21 @@ export class M5Item extends Item {
|
|||
calc.special = itemData.special ? 2 : 0;
|
||||
calc.ew = calc.special + itemData.stats.attackBonus;
|
||||
calc.combatSkills = null;
|
||||
calc.containers = null;
|
||||
|
||||
|
||||
if (actor) {
|
||||
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
|
||||
if (actorCalc) {
|
||||
calc.ew += actorCalc.stats.attackBonus.value;
|
||||
calc.combatSkills = actorCalc.skills.combat;
|
||||
calc.containers = actorCalc.gear.containers;
|
||||
}
|
||||
const container = character.getItem(itemData.containerId);
|
||||
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
|
||||
if (container) {
|
||||
container.prepareDerivedData();
|
||||
const containerData = container.system;
|
||||
}
|
||||
|
||||
const skill = character.getItem(itemData.skillId);
|
||||
|
|
@ -88,12 +112,21 @@ export class M5Item extends Item {
|
|||
calc.special = itemData.special ? 2 : 0;
|
||||
calc.ew = calc.special + itemData.stats.defenseBonus;
|
||||
calc.combatSkills = null;
|
||||
calc.containers = null;
|
||||
|
||||
if (actor) {
|
||||
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
|
||||
if (actorCalc) {
|
||||
calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;
|
||||
calc.combatSkills = actorCalc.skills.combat;
|
||||
calc.containers = actorCalc.gear.containers;
|
||||
}
|
||||
|
||||
const container = character.getItem(itemData.containerId);
|
||||
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
|
||||
if (container) {
|
||||
container.prepareDerivedData();
|
||||
const containerData = container.system;
|
||||
}
|
||||
|
||||
const skill = character.getItem(itemData.skillId);
|
||||
|
|
@ -113,6 +146,19 @@ export class M5Item extends Item {
|
|||
itemData.mods[3] = { type: "attribute", id: "gw", operation: "add100", value: itemData.attributeMod.gw };
|
||||
itemData.mods[4] = { type: "stat", id: "lpProtection", operation: "set", value: itemData.lpProtection };
|
||||
itemData.mods[5] = { type: "stat", id: "apProtection", operation: "set", value: itemData.apProtection };
|
||||
calc.containers = null;
|
||||
if (actor) {
|
||||
const actorCalc = actor.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
|
||||
if (actorCalc) {
|
||||
calc.containers = actorCalc.gear.containers;
|
||||
}
|
||||
const container = character.getItem(itemData.containerId);
|
||||
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
|
||||
if (container) {
|
||||
container.prepareDerivedData();
|
||||
const containerData = container.system;
|
||||
}
|
||||
}
|
||||
} else if (itemType === "spell") {
|
||||
calc.fw = 0;
|
||||
if (actor) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import Logger from "../../utils/Logger";
|
||||
import { M5Character } from "../actors/M5Character";
|
||||
import { M5Item } from "../items/M5Item";
|
||||
import { M5SkillLearned, M5SkillUnlearned } from "../M5Base";
|
||||
import { M5ItemType, M5SkillLearned, M5SkillUnlearned } from "../M5Base";
|
||||
import { M5Roll } from "../rolls/M5Roll";
|
||||
|
||||
export default class M5CharacterSheet extends ActorSheet {
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
template: "systems/midgard5/templates/sheets/character/main.hbs",
|
||||
width: 800,
|
||||
width: 1000,
|
||||
height: 800,
|
||||
classes: ["midgard5", "sheet", "character"],
|
||||
tabs: [{ navSelector: ".sheet-navigation", contentSelector: ".sheet-content", initial: "base_values" }],
|
||||
|
|
@ -111,7 +111,11 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||
if (!item.system.quantity) {
|
||||
item.system.quantity = 0;
|
||||
}
|
||||
item.system.quantity += 1;
|
||||
item.update({
|
||||
data: {
|
||||
quantity: item.system.quantity + 1,
|
||||
},
|
||||
});
|
||||
this.render();
|
||||
});
|
||||
|
||||
|
|
@ -127,7 +131,11 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||
const context = this.actor as any;
|
||||
const item = context.items.get(itemId);
|
||||
if (item.system.quantity > 0) {
|
||||
item.system.quantity -= 1;
|
||||
item.update({
|
||||
data: {
|
||||
quantity: item.system.quantity - 1,
|
||||
},
|
||||
});
|
||||
}
|
||||
this.render();
|
||||
});
|
||||
|
|
@ -144,7 +152,11 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||
const context = this.actor as any;
|
||||
const item = context.items.get(itemId);
|
||||
if (item.system.quantity > 0) {
|
||||
item.system.quantity -= 1;
|
||||
item.update({
|
||||
data: {
|
||||
quantity: item.system.quantity - 1,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
await item.roll();
|
||||
|
|
@ -246,6 +258,111 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||
const roll = M5Roll.resistanceBody(this.actor);
|
||||
await roll.toMessage();
|
||||
});
|
||||
|
||||
html.find(".change-equipped").on("click", async (event) => {
|
||||
let row = event.target.parentElement;
|
||||
let itemId = row.dataset["item"];
|
||||
while (!itemId) {
|
||||
row = row.parentElement;
|
||||
if (!row) return;
|
||||
itemId = row.dataset["item"];
|
||||
}
|
||||
|
||||
const context = this.actor as any;
|
||||
const item = context.items.get(itemId);
|
||||
if (item.system.equipped === true) {
|
||||
item.system.equipped = false;
|
||||
} else {
|
||||
item.system.equipped = true;
|
||||
}
|
||||
this.render();
|
||||
});
|
||||
|
||||
html.find(".add-item").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.item"), M5ItemType.ITEM).then((i) => {
|
||||
const item = i as any;
|
||||
item.update({
|
||||
data: {
|
||||
quantity: 1,
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
html.find(".add-weapon").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.weapon"), M5ItemType.WEAPON);
|
||||
});
|
||||
|
||||
html.find(".add-defensiveWeapon").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.defensiveWeapon"), M5ItemType.DEFENSIVE_WEAPON);
|
||||
});
|
||||
|
||||
html.find(".add-armor").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.armor"), M5ItemType.ARMOR);
|
||||
});
|
||||
|
||||
html.find(".add-container").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.container"), M5ItemType.CONTAINER).then((i) => {
|
||||
const item = i as any;
|
||||
item.update({
|
||||
data: {
|
||||
quantity: 1,
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
html.find(".add-spell").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.spell"), M5ItemType.SPELL).then((i) => {
|
||||
const item = i as any;
|
||||
item.update({
|
||||
data: {
|
||||
process: "none",
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
html.find(".add-kampfkunst").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.kampfkunst"), M5ItemType.KAMPFKUNST).then((i) => {
|
||||
const item = i as any;
|
||||
item.update({
|
||||
data: {
|
||||
type: "angriff",
|
||||
variante: "anstuermen",
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
html.find(".add-effect").on("click", async (event) => {
|
||||
const data = this.actor.system;
|
||||
|
||||
const character = this.actor as M5Character;
|
||||
character.createItem((game as Game).i18n.localize("TYPES.Item.effect"), M5ItemType.EFFECT);
|
||||
});
|
||||
|
||||
// Drag & Drop
|
||||
const dragDrop = new DragDrop({
|
||||
dragSelector: ".items-list .item",
|
||||
|
|
@ -270,7 +387,7 @@ export default class M5CharacterSheet extends ActorSheet {
|
|||
const item = this.actor.items.get(li.dataset.itemId);
|
||||
|
||||
// limit transfer on personal weapons/armour/gear
|
||||
if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell", "effect", "kampfkunst"].includes(item.type)) {
|
||||
if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell", "effect", "kampfkunst", "container"].includes(item.type)) {
|
||||
const dragData = {
|
||||
type: "Transfer",
|
||||
actorId: this.actor.id,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,62 @@
|
|||
@attributeBorderColor: rgba(0, 0, 0, 0.5);
|
||||
|
||||
.midgard5 {
|
||||
.flexbox {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexcolumn {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexcolumn-1 {
|
||||
flex: 100%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexcolumn-2 {
|
||||
flex: 50%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexcolumn-3 {
|
||||
flex: 33%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexcolumn-4 {
|
||||
flex: 25%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexcolumn-5 {
|
||||
flex: 20%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flexpart {
|
||||
gap: 0;
|
||||
padding: 0;
|
||||
margin: 5px;
|
||||
background-color: beige;
|
||||
border: 2px solid black;
|
||||
}
|
||||
|
||||
.flexpart-header {
|
||||
font-weight: bold;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.flexpart-icon {
|
||||
height: 2rem;
|
||||
float: left;
|
||||
border: 0px solid transparent;
|
||||
}
|
||||
|
||||
.flexrow {
|
||||
align-items: center;
|
||||
}
|
||||
|
|
@ -15,6 +71,15 @@
|
|||
color: white;
|
||||
}
|
||||
|
||||
.profile-img {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
height: 100%;
|
||||
width: auto;
|
||||
border: 0px solid black;
|
||||
}
|
||||
|
||||
.sheet.character {
|
||||
form {
|
||||
display: flex;
|
||||
|
|
@ -31,12 +96,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.profile-img {
|
||||
max-width: 128px;
|
||||
height: 160px;
|
||||
border: 0px solid black;
|
||||
}
|
||||
|
||||
.description {
|
||||
flex: 0 0 100%;
|
||||
margin: 0;
|
||||
|
|
@ -68,6 +127,14 @@
|
|||
|
||||
table {
|
||||
background-color: beige;
|
||||
border: 0px solid transparent;
|
||||
&.bordered {
|
||||
border-collapse: separate;
|
||||
border: 2px solid black;
|
||||
border-radius: 10px;
|
||||
font-size: larger;
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
|
||||
td,
|
||||
|
|
@ -104,8 +171,23 @@
|
|||
padding: 0.5rem 0.5rem 0.5rem 0.5rem;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
background-color: dimgray;
|
||||
}
|
||||
|
||||
&.highlight {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
.table-icon {
|
||||
height: 1rem;
|
||||
width: 1rem;
|
||||
float: left;
|
||||
border: 0px solid transparent;
|
||||
}
|
||||
|
||||
input {
|
||||
border: 0px solid black;
|
||||
}
|
||||
|
||||
input.skill {
|
||||
|
|
@ -116,22 +198,34 @@
|
|||
width: 5rem;
|
||||
}
|
||||
|
||||
input.checkbox {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
}
|
||||
|
||||
.new-skill {
|
||||
font-style: italic;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
color: rgba(255, 255, 255);
|
||||
|
||||
button {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
button.roll-button {
|
||||
.roll-button {
|
||||
background: url(/icons/svg/d20-black.svg) no-repeat;
|
||||
background-size: 24px 24px;
|
||||
background-size: 1rem 1rem;
|
||||
border: #000000 solid 0px;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
}
|
||||
|
||||
.learn-button {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 1rem;
|
||||
width: 4rem;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
line-height: 0.8rem;
|
||||
}
|
||||
|
||||
span.spell-process {
|
||||
|
|
@ -184,15 +278,27 @@
|
|||
}
|
||||
}
|
||||
|
||||
.biography {
|
||||
margin: 0.5rem 0.5rem 0.5rem 0.5rem;
|
||||
height: 180px;
|
||||
background-color: #eaead7;
|
||||
.editor {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.attributes {
|
||||
padding: 0.5rem 0.5rem 0.5rem 0.5rem;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 0.5rem;
|
||||
background-color: beige;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
|
||||
.attribute {
|
||||
flex: 0 0 7rem;
|
||||
flex: 0 0 6rem;
|
||||
margin: 0;
|
||||
border: 1px solid @attributeBorderColor;
|
||||
//border-bottom: none;
|
||||
|
|
|
|||
|
|
@ -3,13 +3,17 @@
|
|||
"name": "midgard5",
|
||||
"title": "Midgard 5. Edition",
|
||||
"description": "The German RPG Midgard 5. Edition",
|
||||
"version": "2.3.1",
|
||||
"version": "2.4.0",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "11",
|
||||
"maximum": "11"
|
||||
},
|
||||
"authors": [{"name": "Byroks"}],
|
||||
"authors": [
|
||||
{"name": "Byroks"},
|
||||
{"name": "Le-Frique"},
|
||||
{"name": "Oskaloq"}
|
||||
],
|
||||
"scripts": ["bundle.js"],
|
||||
"styles": ["bundle.css"],
|
||||
"packs": [
|
||||
|
|
@ -153,9 +157,9 @@
|
|||
"gridUnits": "m",
|
||||
"primaryTokenAttribute": "lp",
|
||||
"secondaryTokenAttribute": "ap",
|
||||
"url": "https://github.com/Byroks/foundry-vtt-system-midgard5",
|
||||
"manifest": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v2.3.1/system.json",
|
||||
"download": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v2.3.1/midgard5-v2.3.1.zip",
|
||||
"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.4.0/system.json",
|
||||
"download": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.4.0/midgard5-v2.4.0.zip",
|
||||
"initiative": "@c.calc.attributes.gw.value",
|
||||
"license": "LICENSE.txt"
|
||||
}
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
"characterDescription": {
|
||||
"info": {
|
||||
"description": "",
|
||||
"background": "",
|
||||
"class": "",
|
||||
"race": "",
|
||||
"magicUsing": false,
|
||||
"showAllItems": false,
|
||||
"gender": "",
|
||||
"weight": "",
|
||||
"height": "",
|
||||
|
|
@ -140,15 +142,19 @@
|
|||
"zauberkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"gear": {
|
||||
"gear": {
|
||||
}
|
||||
}
|
||||
},
|
||||
"character": {
|
||||
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills"],
|
||||
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
|
||||
"calc": {}
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
"types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "kampfkunst", "item", "effect"],
|
||||
"types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "kampfkunst", "item", "effect", "container"],
|
||||
"templates": {
|
||||
"itemDescription": {
|
||||
"description": ""
|
||||
|
|
@ -198,10 +204,20 @@
|
|||
},
|
||||
"equippable": {
|
||||
"equippable": false,
|
||||
"equipped": true
|
||||
"equipped": false
|
||||
},
|
||||
"valuable": {
|
||||
"valuable": false,
|
||||
"item-wealth": true
|
||||
},
|
||||
"hoarded": {
|
||||
"hoarded": false,
|
||||
"inHoard": true
|
||||
},
|
||||
"physical": {
|
||||
"value": 0,
|
||||
"weight": 0,
|
||||
"containerId": "",
|
||||
"magic": false
|
||||
},
|
||||
"durationSelection": {
|
||||
|
|
@ -297,6 +313,15 @@
|
|||
"calc": {}
|
||||
},
|
||||
"item": {
|
||||
"templates": ["itemDescription", "equippable", "physical","valuable","hoarded"],
|
||||
"rolls": {
|
||||
"formulas": {},
|
||||
"output": ""
|
||||
},
|
||||
"mods": {},
|
||||
"calc": {}
|
||||
},
|
||||
"container": {
|
||||
"templates": ["itemDescription", "equippable", "physical"],
|
||||
"rolls": {
|
||||
"formulas": {},
|
||||
|
|
@ -315,9 +340,11 @@
|
|||
"calc": {}
|
||||
},
|
||||
"weapon": {
|
||||
"templates": ["itemDescription", "stats", "equippable", "physical"],
|
||||
"templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"],
|
||||
"special": false,
|
||||
"ranged": false,
|
||||
"valuable": false,
|
||||
"hoarded": false,
|
||||
"skillId": "",
|
||||
"damageBase": "1d6",
|
||||
"rolls": {
|
||||
|
|
@ -338,8 +365,10 @@
|
|||
"calc": {}
|
||||
},
|
||||
"defensiveWeapon": {
|
||||
"templates": ["itemDescription", "stats", "equippable", "physical"],
|
||||
"templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"],
|
||||
"special": false,
|
||||
"valuable": false,
|
||||
"hoarded": false,
|
||||
"skillId": "",
|
||||
"rolls": {
|
||||
"formulas": {
|
||||
|
|
@ -354,9 +383,11 @@
|
|||
"calc": {}
|
||||
},
|
||||
"armor": {
|
||||
"templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical"],
|
||||
"templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical","valuable","hoarded"],
|
||||
"lpProtection": 0,
|
||||
"apProtection": 0,
|
||||
"valuable": false,
|
||||
"hoarded": false,
|
||||
"rolls": {
|
||||
"formulas": {},
|
||||
"output": ""
|
||||
|
|
|
|||
|
|
@ -1,18 +1,36 @@
|
|||
<div class="flexbox">
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title" colspan="4">Eigenschaften</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/skills/melee/maneuver-sword-katana-yellow.webp" class="flexpart-icon">{{localize "midgard5.attributes"}}</div>
|
||||
<br>
|
||||
<div class="attributes">
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="st" attribute=data.attributes.st calc=data.calc.attributes.st}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="gs" attribute=data.attributes.gs calc=data.calc.attributes.gs}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="gw" attribute=data.attributes.gw calc=data.calc.attributes.gw}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="ko" attribute=data.attributes.ko calc=data.calc.attributes.ko}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="in" attribute=data.attributes.in calc=data.calc.attributes.in}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="zt" attribute=data.attributes.zt calc=data.calc.attributes.zt}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="au" attribute=data.attributes.au calc=data.calc.attributes.au}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="pa" attribute=data.attributes.pa calc=data.calc.attributes.pa}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="wk" attribute=data.attributes.wk calc=data.calc.attributes.wk}}
|
||||
<div class="filler"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexcolumn-2">
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/skills/social/theft-pickpocket-bribery-brown.webp" class="flexpart-icon">{{localize "midgard5.points"}}</div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.magicUsing"}}</td>
|
||||
<td><input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}></td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.grace"}}</td>
|
||||
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
||||
|
|
@ -28,57 +46,27 @@
|
|||
<tr>
|
||||
<td>{{localize "midgard5.luckPoints"}}</td>
|
||||
<td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr height = 10px></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexcolumn-2">
|
||||
<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>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.magicUsing"}}</td>
|
||||
<td><input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}></td>
|
||||
<td>{{localize "midgard5.movementRange"}}</td>
|
||||
<td><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
<tr height = 10px></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table style="background-color: beige;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">Leiteigenschaften</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><div class="attributes">
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="st" attribute=data.attributes.st calc=data.calc.attributes.st}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="gs" attribute=data.attributes.gs calc=data.calc.attributes.gs}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="gw" attribute=data.attributes.gw calc=data.calc.attributes.gw}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="ko" attribute=data.attributes.ko calc=data.calc.attributes.ko}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="in" attribute=data.attributes.in calc=data.calc.attributes.in}}
|
||||
</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="attributes">
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="zt" attribute=data.attributes.zt calc=data.calc.attributes.zt}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="au" attribute=data.attributes.au calc=data.calc.attributes.au}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="pa" attribute=data.attributes.pa calc=data.calc.attributes.pa}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="wk" attribute=data.attributes.wk calc=data.calc.attributes.wk}}
|
||||
<div class="filler"></div>
|
||||
</div></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title" colspan="4">Berechnete Werte</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.brawl"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.brawl.value}}</td>
|
||||
|
|
@ -109,56 +97,24 @@
|
|||
<td>{{localize "midgard5.resistanceBody"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td>
|
||||
</tr>
|
||||
{{#if (eq data.info.race "Zwerg")}}
|
||||
<tr>
|
||||
<td>{{localize "midgard5.resistanceMind"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.resistanceMind.value}}</td>
|
||||
<td>{{localize "midgard5.resistanceBody"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td>
|
||||
<td>{{localize "midgard5.hoard"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoard}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.movementRange"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.movement.value}}</td>
|
||||
<td>{{localize "midgard5.actor-git-long"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.poisonResistance.value}}</td>
|
||||
<td>{{localize "midgard5.hoardMin"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoardMin}}</td>
|
||||
<td>{{localize "midgard5.hoard-next"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
|
||||
<tr height = 10px></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title" colspan="4">Beschreibung</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.origin"}}</td>
|
||||
<td><input name="data.info.origin" type="text" value="{{data.info.origin}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.gender"}}</td>
|
||||
<td><input name="data.info.gender" type="text" value="{{data.info.gender}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.weight"}}</td>
|
||||
<td><input name="data.info.weight" type="text" value="{{data.info.weight}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.height"}}</td>
|
||||
<td><input name="data.info.height" type="text" value="{{data.info.height}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.shape"}}</td>
|
||||
<td><input name="data.info.shape" type="text" value="{{data.info.shape}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.age"}}</td>
|
||||
<td><input name="data.info.age" type="text" value="{{data.info.age}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.caste"}}</td>
|
||||
<td><input name="data.info.caste" type="text" value="{{data.info.caste}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.faith"}}</td>
|
||||
<td><input name="data.info.faith" type="text" value="{{data.info.faith}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr height = 10px></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
<div class="flexbox">
|
||||
<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">{{localize "TYPES.Item.weapon"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.damage"}}</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>
|
||||
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||
{{#if item.equipped}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<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 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}}
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{localize "midgard5.brawl"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.brawlFw}}</td>
|
||||
<td class="fixed-value">1d6 -4</td>
|
||||
<td> </td>
|
||||
<td><button class="roll-button roll-brawl-button"></button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.kampfkunst"}}</th>
|
||||
<th class="title">{{localize "midgard5.kampfkunst-variante-short"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||
<th class="title add-kampfkunst"><i class="fa-regular fa-plus"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.kampfkuenste as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td>
|
||||
{{#if item.isKido}}
|
||||
<span class="spell-process">{{localize (m5concat "midgard5.kido-type-" item.type)}}</span>
|
||||
{{#unless (eq item.type "finte")}}
|
||||
<span class="spell-process">({{localize (m5concat "midgard5.kido-variante-" item.variante)}})</span>
|
||||
{{/unless}}
|
||||
{{else}}
|
||||
<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>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td><button class="roll-button roll-weapon-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/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>
|
||||
<td>{{localize "midgard5.defense"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.defense.value}}</td>
|
||||
<td>{{localize "midgard5.defenseBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.defenseBonus.value}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.damageBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.damageBonus.value}}</td>
|
||||
<td>{{localize "midgard5.attackBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.attackBonus.value}}</td>
|
||||
</tr>
|
||||
</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 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"><button class="roll-button roll-defense-button"></button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding edit-item 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 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>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.defensiveWeapon"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.defenseBonus-short"}}</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>
|
||||
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||
{{#if item.equipped}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td class="fixed-value">{{item.defenseBonus}}</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>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.armor"}}</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>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.armor as |item itemId|}}
|
||||
{{#if item.equipped}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding">{{item.label}}</td>
|
||||
<td class="fixed-value">{{lpProtection}}</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>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<div class="flexbox">
|
||||
<div class="flexcolumn-1">
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/commodities/cloth/thread-spindle-white-needle.webp" class="flexpart-icon" />{{localize "midgard5.characteristics"}}</div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr height="10px"></tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.origin"}}</td>
|
||||
<td><input name="data.info.origin" type="text" value="{{data.info.origin}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.gender"}}</td>
|
||||
<td><input name="data.info.gender" type="text" value="{{data.info.gender}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.shape"}}</td>
|
||||
<td><input name="data.info.shape" type="text" value="{{data.info.shape}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.age"}}</td>
|
||||
<td><input name="data.info.age" type="text" value="{{data.info.age}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.weight"}}</td>
|
||||
<td><input name="data.info.weight" type="text" value="{{data.info.weight}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.height"}}</td>
|
||||
<td><input name="data.info.height" type="text" value="{{data.info.height}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.caste"}}</td>
|
||||
<td><input name="data.info.caste" type="text" value="{{data.info.caste}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.faith"}}</td>
|
||||
<td><input name="data.info.faith" type="text" value="{{data.info.faith}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr height="10px"></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 content=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 content=data.info.background target="data.info.background" button=true owner=owner editable=editable}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -2,7 +2,8 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.effect"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title add-effect"><i class="fa-regular fa-plus"></i></th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
|
|||
|
|
@ -1,143 +1,60 @@
|
|||
<table>
|
||||
<thead>
|
||||
<div class="flexbox">
|
||||
<div class="flexcolumn-2">
|
||||
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/commodities/currency/coins-assorted-mix-copper-silver-gold.webp" class="flexpart-icon">{{localize "midgard5.currency"}}</div>
|
||||
<table>
|
||||
<thead class="theader">
|
||||
<tr>
|
||||
<th class="title" style="text-align: center">{{localize "midgard5.currency-wealth"}}</th>
|
||||
<th class="title" style="text-align: center">{{localize "midgard5.currency-gold"}}</th>
|
||||
<th class="title" style="text-align: center">{{localize "midgard5.currency-silver"}}</th>
|
||||
<th class="title" style="text-align: center">{{localize "midgard5.currency-copper"}}</th>
|
||||
{{#if (eq data.info.race "Zwerg")}}
|
||||
<th class="title" style="text-align: center">{{localize "midgard5.hoard"}}</th>
|
||||
{{/if}}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
<td class="fixed-value"><input type="number" name="data.info.wealth" value="{{data.calc.stats.wealth}}"></td>
|
||||
<td class="fixed-value"><input type="number" name="data.info.gold" value="{{data.info.gold}}"></td>
|
||||
<td class="fixed-value"><input type="number" name="data.info.silver" value="{{data.info.silver}}"></td>
|
||||
<td class="fixed-value"><input type="number" name="data.info.copper" value="{{data.info.copper}}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.weapon"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-weapon-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{localize "midgard5.brawl"}}</td>
|
||||
<td class="center">{{data.calc.stats.brawlFw}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-brawl-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.defensiveWeapon"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-weapon-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{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>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{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>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{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>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.armor"}}</th>
|
||||
<th class="title">{{localize "midgard5.actor-lp-short"}}</th>
|
||||
<th class="title">{{localize "midgard5.actor-ap-short"}}</th>
|
||||
<th class="title">{{localize "midgard5.attackBonus-short"}}</th>
|
||||
<th class="title">{{localize "midgard5.defenseBonus-short"}}</th>
|
||||
<th class="title">B</th>
|
||||
<th class="title">Gw</th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.armor as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding">
|
||||
<span class="edit-item">{{item.label}}</span>
|
||||
{{#if item.equipped}}
|
||||
<span class="spell-process">{{localize "midgard5.equipped"}}</span>
|
||||
{{#if (eq data.info.race "Zwerg")}}
|
||||
<td class="fixed-value"><input type="number" name="midgard5.hoard" value="{{data.calc.stats.hoard}}"></td>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "lpProtection" ../actor.isToken}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "apProtection"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "stats.attackBonus"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "stats.defenseBonus"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "stats.movementBonus"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "attributeMod.gw"}}</td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header">
|
||||
<img src="icons/tools/hand/scale-balances-merchant-brown.webp" class="flexpart-icon">
|
||||
{{localize "midgard5.gear"}}
|
||||
(alle <input id="data.info.showAllItems" class="checkbox" type="checkbox" name="data.info.showAllItems" {{checked data.info.showAllItems}}>)
|
||||
</div>
|
||||
<table>
|
||||
<thead class="theader">
|
||||
<tr>
|
||||
<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>
|
||||
<th class="title"></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></th>
|
||||
<th class="title add-item"><i class="fa-regular fa-plus"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
</tr>
|
||||
{{#each data.calc.gear.items as |item itemId|}}
|
||||
{{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding">
|
||||
<span class="edit-item">{{item.label}}</span>
|
||||
{{#if item.equipped}}
|
||||
<span class="spell-process">{{localize "midgard5.equipped"}}</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
<i class="fa fa-minus-circle quantity-decrease" style="cursor: pointer"></i>
|
||||
|
|
@ -149,9 +66,214 @@
|
|||
<span class="spell-process">{{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}}</span>
|
||||
{{/unless}}
|
||||
</td>
|
||||
<td class="fixed-value">{{#if item.rollExist}}<button class="roll-button roll-consumable-item"></button>{{/if}}</td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></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>{{#if item.rollExist}}<button class="roll-button roll-consumable-item"></button>{{/if}}</td>
|
||||
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/weapons/swords/sword-guard-engraved-worn.webp" class="flexpart-icon">{{localize "midgard5.weapons"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.weapon"}}</th>
|
||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||
<th class="title add-weapon"><i class="fa-regular fa-plus"></i></th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</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 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><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/equipment/shield/heater-wooden-brown-axe.webp" class="flexpart-icon">{{localize "midgard5.defensive-weapons"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.defensiveWeapon"}}</th>
|
||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||
<th class="title add-defensiveWeapon"><i class="fa-regular fa-plus"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</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 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><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/equipment/hand/gauntlet-armored-steel-grey.webp" class="flexpart-icon">{{localize "midgard5.armor"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.armor"}}</th>
|
||||
<th class="title center">{{localize "midgard5.item-value"}}</th>
|
||||
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
|
||||
<th class="title add-armor"><i class="fa-regular fa-plus"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.armor as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</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 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><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexcolumn-2">
|
||||
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/containers/chest/chest-simple-box-brown.webp" class="flexpart-icon">{{localize "TYPES.Item.container"}}</div>
|
||||
<table>
|
||||
<thead class="theader">
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.container"}}</th>
|
||||
<th class="title center">{{localize "midgard5.item-value"}}</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 add-container"><i class="fa-regular fa-plus"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
{{#each data.calc.gear.containers as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding">
|
||||
<span class="edit-item">{{item.label}}</span>
|
||||
</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 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>{{#if item.rollExist}}<button class="roll-button roll-consumable-item"></button>{{/if}}</td>
|
||||
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{#each data.calc.gear.containers as |container containerId|}}
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="{{container.icon}}" class="flexpart-icon">{{container.label}}</div>
|
||||
<table>
|
||||
<thead class="theader">
|
||||
<tr>
|
||||
<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>
|
||||
<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"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr height = 10px></tr>
|
||||
{{#each ../data.calc.gear.items as |item itemId|}}
|
||||
{{#if (eq item.containerId containerId)}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<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 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>{{#if item.rollExist}}<button class="roll-button roll-consumable-item"></button>{{/if}}</td>
|
||||
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "TYPES.Item.kampfkunst"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.kampfkuenste as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">
|
||||
<span>{{item.label}}</span>
|
||||
{{#if item.isKido}}
|
||||
<span class="spell-process">{{localize (m5concat "midgard5.kido-type-" item.type)}}</span>
|
||||
{{#unless (eq item.type "finte")}}
|
||||
<span class="spell-process">({{localize (m5concat "midgard5.kido-variante-" item.variante)}})</span>
|
||||
{{/unless}}
|
||||
{{else}}
|
||||
<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>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</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>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -1,23 +1,29 @@
|
|||
<form class="actor-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<table style="padding: 5px;">
|
||||
<tr height = 5px></tr>
|
||||
<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 style="text-align: left;" colspan="4" rowspan="2"><img style="border: 0px solid black;" src="/systems/midgard5/assets/icons/logo/midgard.webp" alt="Midgard"></td>
|
||||
<td></td>
|
||||
<td colspan="5" style="font-size: x-large; font-weigh: bold;"><input name="name" type="text" value="{{actor.name}}" data-dtype="String" /></td>
|
||||
<td style="font-size: x-large; font-weigh: bold; text-align: center; text-align-vertical: middle;" ><div style="border: 2px solid black; border-radius: 10px; background-color: white;">{{data.calc.level}}</div></td>
|
||||
<td >{{localize "midgard5.actor-name"}}</td>
|
||||
<td colspan="3"><input name="name" type="text" value="{{actor.name}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="5"><b>Name</b></td>
|
||||
<td style="text-align: center;"><b>Grad</b></td>
|
||||
</tr>
|
||||
<td >{{localize "midgard5.class"}}</td>
|
||||
<td><input name="data.info.class" type="text" value="{{data.info.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 rowspan="8" width=128><img style="max-width: 128px; height: 160px; border: 0px solid black;" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" /></td>
|
||||
<td></td>
|
||||
<td colspan="3">
|
||||
<td >
|
||||
<input list="races" type="search" name="data.info.race" value="{{data.info.race}}" />
|
||||
<datalist id="races">
|
||||
<option value="Mensch">
|
||||
|
|
@ -27,49 +33,15 @@
|
|||
<option value="Zwerg">
|
||||
</datalist>
|
||||
</td>
|
||||
<td colspan="3"><input name="data.info.class" type="text" value="{{data.info.class}}" data-dtype="String" /></td>
|
||||
<td colspan="3"><b><input name="data.info.occupation" type="text" value="{{data.info.occupation}}" data-dtype="String" /></b></td>
|
||||
<td ><input name="data.info.occupation" type="text" value="{{data.info.occupation}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="3"><b>{{localize "midgard5.race"}}</b></td>
|
||||
<td colspan="3"><b>{{localize "midgard5.class"}}</b></td>
|
||||
<td colspan="3"><b>{{localize "midgard5.occupation"}}</b></td>
|
||||
<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>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
<td style="text-align: right"><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}}
|
||||
<input name="data.lp.max" type="text" value="{{data.lp.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: right"><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}}
|
||||
<input name="data.ap.max" type="text" value="{{data.ap.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr height = 10px></tr>
|
||||
</table>
|
||||
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td class="attribute">{{localize "midgard5.actor-st"}}</td>
|
||||
<td class="attribute">{{localize "midgard5.actor-gs"}}</td>
|
||||
|
|
@ -94,8 +66,51 @@
|
|||
<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 height = 5px></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}}
|
||||
<input name="data.lp.max" type="text" value="{{data.lp.max}}" data-dtype="Number" />
|
||||
</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}}
|
||||
<input name="data.ap.max" type="text" value="{{data.ap.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Character Sheet Navigation --}}
|
||||
|
|
@ -103,11 +118,12 @@
|
|||
<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="gear">{{ localize "midgard5.gear" }}</a>
|
||||
<a class="item" data-tab="combat">{{ localize "midgard5.combat" }}</a>
|
||||
{{#if actor.system.info.magicUsing }}
|
||||
<a class="item" data-tab="spells">{{ localize "midgard5.spells" }}</a>
|
||||
{{/if}}
|
||||
<a class="item" data-tab="kampfkuenste">{{ localize "midgard5.kampfkuenste" }}</a>
|
||||
<a class="item" data-tab="effects">{{ localize "midgard5.effects" }}</a>
|
||||
<a class="item" data-tab="description">{{ localize "midgard5.description" }}</a>
|
||||
</nav>
|
||||
|
||||
<section class="sheet-content">
|
||||
|
|
@ -124,16 +140,20 @@
|
|||
{{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
|
||||
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="combat">
|
||||
{{> "systems/midgard5/templates/sheets/character/combat.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="kampfkuenste">
|
||||
{{> "systems/midgard5/templates/sheets/character/kampfkuenste.hbs"}}
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
|
||||
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="effects">
|
||||
{{> "systems/midgard5/templates/sheets/character/effects.hbs"}}
|
||||
</div>
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="description">
|
||||
{{> "systems/midgard5/templates/sheets/character/description.hbs"}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
|
|
@ -1,65 +1,16 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "midgard5.learned-skill"}}</th>
|
||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.pp-short"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.general as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="flexbox">
|
||||
<div class="flexcolumn-2">
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "midgard5.language"}}</th>
|
||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.pp-short"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.language as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/creatures/eyes/human-single-brown.webp" class="flexpart-icon">{{localize "midgard5.innate-abilities"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "midgard5.innate-ability"}}</th>
|
||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -70,8 +21,8 @@
|
|||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></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}}
|
||||
<tr data-item="{{itemId}}">
|
||||
|
|
@ -79,22 +30,54 @@
|
|||
<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 class="fixed-value"><button class="roll-button roll-perception-button"></button></td>
|
||||
<td><button class="roll-button roll-perception-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
|
||||
<tr data-item="{{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 class="fixed-value"><button class="roll-button roll-drinking-button"></button></td>
|
||||
<td><button class="roll-button roll-drinking-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/skills/trades/construction-mason-stonecutter-sculpture.webp" class="flexpart-icon">{{localize "midgard5.learned-skills"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "midgard5.learned-skill"}}</th>
|
||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.pp-short"}}</th>
|
||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.general as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value"><input name="data.skills.general.{{key}}.pp" type="text" value="{{skill.pp}}" 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}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/weapons/swords/swords-short.webp" class="flexpart-icon">{{localize "midgard5.weapon-skills"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "midgard5.weapon-skill"}}</th>
|
||||
|
|
@ -102,7 +85,7 @@
|
|||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.pp-short"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -114,14 +97,50 @@
|
|||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></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>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<div class="flexpart">
|
||||
<div class="flexpart-header"><img src="icons/sundries/scrolls/scroll-runed-worn-tan.webp" class="flexpart-icon">{{localize "midgard5.languages"}}</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title">{{localize "midgard5.language"}}</th>
|
||||
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.pp-short"}}</th>
|
||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||
<th class="title"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.language as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</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-2">
|
||||
|
||||
<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>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="title"></th>
|
||||
|
|
@ -129,9 +148,7 @@
|
|||
<th class="title">{{localize "midgard5.fw"}}</th>
|
||||
<th class="title">{{localize "midgard5.bonus"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title">{{localize "midgard5.pp-short"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -139,15 +156,16 @@
|
|||
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||
<tr data-skill="{{key}}">
|
||||
<td><button class="learn-button">{{localize "midgard5.learn"}}</button></td>
|
||||
<td class="padding">{{localizeMidgard key}}</td>
|
||||
<td class="padding" style="font-style: italic;">{{localizeMidgard key}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skillBonus ../actor._id skill}}</td>
|
||||
<td class="fixed-value">{{skillEw ../actor._id skill}}</td>
|
||||
<td class="fixed-value"><input name="data.skills.general.{{key}}.pp" type="text" value="{{skill.pp}}" data-dtype="Number" /></td>
|
||||
<td class="fixed-value"><button class="roll-button roll-general-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
<td><button class="roll-button roll-general-button"></button></td>
|
||||
</tr>
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<th class="title">{{localize "TYPES.Item.spell"}}</th>
|
||||
<th class="title">{{localize "midgard5.ew"}}</th>
|
||||
<th class="title"></th>
|
||||
<th class="title"></th>
|
||||
<th class="title add-spell"><i class="fa-regular fa-plus"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,53 @@
|
|||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}} />
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="data.valuable" type="checkbox" name="data.valuable" {{checked data.valuable}}>
|
||||
<label for="data.valuable">{{localize "midgard5.valuable"}}</label>
|
||||
</span>
|
||||
|
||||
{{#if (eq item.parent.system.info.race "Zwerg")}}
|
||||
<span>
|
||||
<input id="data.hoarded" type="checkbox" name="data.hoarded" {{checked data.hoarded}}>
|
||||
<label for="data.hoarded">{{localize "midgard5.hoarded"}}</label>
|
||||
</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-value"}}</span>
|
||||
<input name="data.value" type="number" value="{{data.value}}" data-dtype="Number" />
|
||||
<select class="select-mod-operation" name="data.currency" data-type="String">
|
||||
{{#select data.currency}}
|
||||
<option value=""></option>
|
||||
<option value="copper">{{localize "midgard5.currency-copper"}}</option>
|
||||
<option value="silver">{{localize "midgard5.currency-silver"}}</option>
|
||||
<option value="gold">{{localize "midgard5.currency-gold"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "TYPES.Item.container"}}</span>
|
||||
{{#if data.calc.containers}}
|
||||
<select class="select-container" name="data.containerId" data-type="String">
|
||||
{{#select data.containerId}}
|
||||
<option value="">{{localize "midgard5.no-container"}}</option>
|
||||
{{#each data.calc.containers as |container key|}}
|
||||
<option value="{{key}}">{{container.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{else}}
|
||||
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
<form class="item-sheet {{cssClass}} m5item-item" 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>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=4>
|
||||
<div class="flexrow">
|
||||
<span>
|
||||
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
|
||||
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
|
||||
</span>
|
||||
<span>
|
||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-quantity"}}</span>
|
||||
<input id="data.quantity" type="number" name="data.quantity" value="{{data.quantity}}">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-value"}}</span>
|
||||
<input name="data.value" type="number" value="{{data.value}}" data-dtype="Number" />
|
||||
<select class="select-mod-operation" name="data.currency" data-type="String">
|
||||
{{#select data.currency}}
|
||||
<option value=""></option>
|
||||
<option value="copper">{{localize "midgard5.currency-copper"}}</option>
|
||||
<option value="silver">{{localize "midgard5.currency-silver"}}</option>
|
||||
<option value="gold">{{localize "midgard5.currency-gold"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{> "systems/midgard5/templates/sheets/partial/mod.hbs" mods=data.mods calc=data.calc}}
|
||||
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -7,8 +7,12 @@
|
|||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan=4>
|
||||
<td colspan="4">
|
||||
<div class="flexrow">
|
||||
<span>
|
||||
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
|
||||
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
|
||||
</span>
|
||||
<span>
|
||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
|
|
@ -18,6 +22,53 @@
|
|||
<input id="data.special" type="checkbox" name="data.special" {{checked data.special}}>
|
||||
<label for="data.special">{{localize "midgard5.special"}}</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="data.valuable" type="checkbox" name="data.valuable" {{checked data.valuable}}>
|
||||
<label for="data.valuable">{{localize "midgard5.valuable"}}</label>
|
||||
</span>
|
||||
|
||||
{{#if (eq item.parent.system.info.race "Zwerg")}}
|
||||
<span>
|
||||
<input id="data.hoarded" type="checkbox" name="data.hoarded" {{checked data.hoarded}}>
|
||||
<label for="data.hoarded">{{localize "midgard5.hoarded"}}</label>
|
||||
</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-value"}}</span>
|
||||
<input name="data.value" type="number" value="{{data.value}}" data-dtype="Number" />
|
||||
<select class="select-mod-operation" name="data.currency" data-type="String">
|
||||
{{#select data.currency}}
|
||||
<option value=""></option>
|
||||
<option value="copper">{{localize "midgard5.currency-copper"}}</option>
|
||||
<option value="silver">{{localize "midgard5.currency-silver"}}</option>
|
||||
<option value="gold">{{localize "midgard5.currency-gold"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "TYPES.Item.container"}}</span>
|
||||
{{#if data.calc.containers}}
|
||||
<select class="select-container" name="data.containerId" data-type="String">
|
||||
{{#select data.containerId}}
|
||||
<option value="">{{localize "midgard5.no-container"}}</option>
|
||||
{{#each data.calc.containers as |container key|}}
|
||||
<option value="{{key}}">{{container.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{else}}
|
||||
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="sheet-content">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=4>
|
||||
<td colspan="4">
|
||||
<div class="flexrow">
|
||||
<span>
|
||||
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
|
||||
|
|
@ -16,6 +16,17 @@
|
|||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
</span>
|
||||
<span>
|
||||
<input id="data.valuable" type="checkbox" name="data.valuable" {{checked data.valuable}}>
|
||||
<label for="data.valuable">{{localize "midgard5.valuable"}}</label>
|
||||
</span>
|
||||
|
||||
{{#if (eq item.parent.system.info.race "Zwerg")}}
|
||||
<span>
|
||||
<input id="data.hoarded" type="checkbox" name="data.hoarded" {{checked data.hoarded}}>
|
||||
<label for="data.hoarded">{{localize "midgard5.hoarded"}}</label>
|
||||
</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -28,7 +39,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<td colspan="4">
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-value"}}</span>
|
||||
<input name="data.value" type="number" value="{{data.value}}" data-dtype="Number" />
|
||||
|
|
@ -43,6 +54,26 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "TYPES.Item.container"}}</span>
|
||||
{{#if data.calc.containers}}
|
||||
<select class="select-container" name="data.containerId" data-type="String">
|
||||
{{#select data.containerId}}
|
||||
<option value="">{{localize "midgard5.no-container"}}</option>
|
||||
{{#each data.calc.containers as |container key|}}
|
||||
<option value="{{key}}">{{container.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{else}}
|
||||
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5/templates/sheets/item/rolls.hbs"}}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
</tr>
|
||||
<td>{{localize "midgard5.skill"}}</td>
|
||||
<td>
|
||||
{{!-- {{#if data.calc.skills.general}} --}}
|
||||
{{#if data.calc.generalSkills}}
|
||||
<select class="select-skill" name="data.skillId" data-type="String">
|
||||
{{#select data.skillId}}
|
||||
<option value="">{{localize "midgard5.no-skill"}}</option>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,12 @@
|
|||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan=4>
|
||||
<td colspan="5">
|
||||
<div class="flexrow">
|
||||
<span>
|
||||
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
|
||||
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
|
||||
</span>
|
||||
<span>
|
||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
|
|
@ -23,6 +27,53 @@
|
|||
<input id="data.special" type="checkbox" name="data.special" {{checked data.special}}>
|
||||
<label for="data.special">{{localize "midgard5.special"}}</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="data.valuable" type="checkbox" name="data.valuable" {{checked data.valuable}}>
|
||||
<label for="data.valuable">{{localize "midgard5.valuable"}}</label>
|
||||
</span>
|
||||
|
||||
{{#if (eq item.parent.system.info.race "Zwerg")}}
|
||||
<span>
|
||||
<input id="data.hoarded" type="checkbox" name="data.hoarded" {{checked data.hoarded}}>
|
||||
<label for="data.hoarded">{{localize "midgard5.hoarded"}}</label>
|
||||
</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-value"}}</span>
|
||||
<input name="data.value" type="number" value="{{data.value}}" data-dtype="Number" />
|
||||
<select class="select-mod-operation" name="data.currency" data-type="String">
|
||||
{{#select data.currency}}
|
||||
<option value=""></option>
|
||||
<option value="copper">{{localize "midgard5.currency-copper"}}</option>
|
||||
<option value="silver">{{localize "midgard5.currency-silver"}}</option>
|
||||
<option value="gold">{{localize "midgard5.currency-gold"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "TYPES.Item.container"}}</span>
|
||||
{{#if data.calc.containers}}
|
||||
<select class="select-container" name="data.containerId" data-type="String">
|
||||
{{#select data.containerId}}
|
||||
<option value="">{{localize "midgard5.no-container"}}</option>
|
||||
{{#each data.calc.containers as |container key|}}
|
||||
<option value="{{key}}">{{container.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{else}}
|
||||
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||