diff --git a/src/assets/character.svg b/src/assets/character.svg
index ba098a65..cd425510 100644
--- a/src/assets/character.svg
+++ b/src/assets/character.svg
@@ -2,10 +2,14 @@
diff --git a/src/lang/de.json b/src/lang/de.json
index 98a53114..c49e41c0 100644
--- a/src/lang/de.json
+++ b/src/lang/de.json
@@ -28,6 +28,22 @@
"damage": "Mit {weapon} schaden machen",
"initiative": "Initiative würfeln"
},
+ "EQUIPMENT": {
+ "SLOTS": {
+ "links": "Waffe (Links)",
+ "rechts": "Waffe (Rechts)",
+ "brust": "Brust",
+ "ruecken": "Rücken",
+ "kopf": "Kopf",
+ "fernkampf": "Waffe (Fernkampf)",
+ "munition": "Fernkampfmunition",
+ "armlinks": "Rüstungsteil (Linker Arm)",
+ "armrechts": "Rüstungsteil (Rechter Arm)",
+ "bauch": "Bauch",
+ "beinlinks": "Rüstungsteil (Linkes Bein)",
+ "beinrechts": "Rüstungsteil (Rechtes Bein)"
+ }
+ },
"COMBAT_DIALOG": {
"notReadyReason": {
"title": "Angriff kann aus folgenden Gründen nicht ausgeführt werden:",
diff --git a/src/lang/en.json b/src/lang/en.json
index 4236611f..47aca2ed 100644
--- a/src/lang/en.json
+++ b/src/lang/en.json
@@ -28,6 +28,22 @@
"damage": "Deal damage with {weapon}",
"initiative": "Roll initiative"
},
+ "EQUIPMENT": {
+ "SLOTS": {
+ "links": "Weapon (Worn Left)",
+ "rechts": "Weapon (Worn Right)",
+ "brust": "Chest",
+ "ruecken": "Back",
+ "kopf": "head",
+ "fernkampf": "Weapon (Ranged)",
+ "munition": "Ammunition",
+ "armlinks": "Bracers (Left)",
+ "armrechts": "Bracers (Right)",
+ "bauch": "Belly",
+ "beinlinks": "Greaves (Left)",
+ "beinrechts": "Greaves (Right)"
+ }
+ },
"COMBAT_DIALOG": {
"notReadyReason": {
"title": "Attack can't be executed due to:",
@@ -44,7 +60,30 @@
"bonusDamage": "Additional damage formula:",
"buttonText": "Roll Dice"
},
+ "SPELL_DIALOG": {
+ "notReadyReason": {
+ "title": "Spell can't be cast due to:",
+ "noRepresentation": "No representation selected",
+ "tooManySpoMods": "Too many spontaneous modifications selected",
+ "noZFPDataAvailable": "Cast Check wasn't performed yet",
+ "overspentZFP": "ZfP were overspent"
+ }
+ },
"ITEM_BROWSER": {
"progress": "{current}/{max}: imported from {compendium}"
+ },
+ "RESOURCE_DIALOG": {
+ "Lep": {
+ "title": "Adjust Life Points"
+ },
+ "Aup": {
+ "title": "Adjust Stamina Points"
+ },
+ "Asp": {
+ "title": "Adjust Astral Points"
+ },
+ "Kap": {
+ "title": "Adjust Karmic Points"
+ }
}
}
diff --git a/src/module/sheets/character/equipment.mjs b/src/module/sheets/character/equipment.mjs
index 9b851d5e..3f6eca43 100644
--- a/src/module/sheets/character/equipment.mjs
+++ b/src/module/sheets/character/equipment.mjs
@@ -60,73 +60,85 @@ export default {
target: "links",
id: actorData.system.heldenausruestung[setIndex]?.links,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.links)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.links)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.links)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.links")
},
{
target: "rechts",
id: actorData.system.heldenausruestung[setIndex]?.rechts,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.rechts)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.rechts)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.rechts)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.rechts")
},
{
target: "brust",
id: actorData.system.heldenausruestung[setIndex]?.brust,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.brust)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.brust)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.brust)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.brust")
},
{
target: "ruecken",
id: actorData.system.heldenausruestung[setIndex]?.ruecken,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.ruecken)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.ruecken)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.ruecken)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.ruecken")
},
{
target: "kopf",
id: actorData.system.heldenausruestung[setIndex]?.kopf,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.kopf)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.kopf)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.kopf)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.kopf")
},
{
target: "fernkampf",
id: actorData.system.heldenausruestung[setIndex]?.fernkampf,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.fernkampf)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.fernkampf)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.fernkampf)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.fernkampf")
},
{
target: "munition",
id: actorData.system.heldenausruestung[setIndex]?.munition,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.munition)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.munition)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.munition)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.munition")
},
{
target: "armlinks",
id: actorData.system.heldenausruestung[setIndex]?.armlinks,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.armlinks)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.armlinks)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.armlinks)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.armlinks")
},
{
target: "armrechts",
id: actorData.system.heldenausruestung[setIndex]?.armrechts,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.armrechts)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.armrechts)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.armrechts)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.armrechts")
},
{
target: "bauch",
id: actorData.system.heldenausruestung[setIndex]?.bauch,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.bauch)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.bauch)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.bauch)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.bauch")
},
{
target: "beinlinks",
id: actorData.system.heldenausruestung[setIndex]?.beinlinks,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.beinlinks)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.beinlinks)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.beinlinks)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.beinlinks")
},
{
target: "beinrechts",
id: actorData.system.heldenausruestung[setIndex]?.beinrechts,
name: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.beinrechts)?.name,
- icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.beinrechts)?.img
+ icon: actorData.items.get(actorData.system.heldenausruestung[setIndex]?.beinrechts)?.img,
+ tooltip: game.i18n.localize("EQUIPMENT.SLOTS.beinrechts")
}
]
})
diff --git a/src/style/molecules/_equipment.scss b/src/style/molecules/_equipment.scss
index 3a0902fb..8cdaab3f 100644
--- a/src/style/molecules/_equipment.scss
+++ b/src/style/molecules/_equipment.scss
@@ -11,7 +11,13 @@
margin: 4px 0 0 4px;
gap: 8px;
scale: 0.98;
- background: assets.$tab-pane-background;
+
+ @if $darkmode {
+ background: rgba(255, 255, 255, 0.1);
+ } @else {
+ background: assets.$tab-pane-background;
+ }
+
.icon {
object-fit: cover;
@@ -49,8 +55,13 @@
@include colour.highlight;
}
- border: 1px solid #ccc;
- box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
+ @if $darkmode {
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
+ } @else {
+ border: 1px solid #ccc;
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
+ }
scale: 1;
z-index: 2;
}
diff --git a/src/style/molecules/_paperdoll.scss b/src/style/molecules/_paperdoll.scss
index 28315811..1c73e312 100644
--- a/src/style/molecules/_paperdoll.scss
+++ b/src/style/molecules/_paperdoll.scss
@@ -1,3 +1,46 @@
+.theme-dark {
+ .paperdoll {
+ .paperdoll-image {
+ fill: rgba(255, 255, 255, 0.05);
+ stroke: rgba(255, 255, 255, 0.2);
+ }
+ .equipped {
+
+ background-color: rgba(255, 255, 255, 0.1);
+ border-radius: 4px;
+ border-color: rgba(255, 255, 255, 0.2);
+
+ &.munition::before {
+ position: absolute;
+ display: block;
+ width: 34px;
+ height: 34px;
+ left: 0;
+ bottom: 0;
+ content: '';
+ background-color: rgba(255, 255, 255, 0.2);
+ -webkit-mask-image: url('/systems/DSA_4-1/assets/quiver.svg');
+ mask-image: url('/systems/DSA_4-1/assets/quiver.svg');
+ }
+
+ &.munition::after {
+ content: "";
+ position: relative;
+ display: block;
+ border: 5px solid rgba(255, 255, 255, 0.4);
+ border-left: 8px solid transparent;
+ border-top: 8px solid transparent;
+ border-right: 8px solid transparent;
+ height: 4px;
+ background-color: transparent;
+ top: -20px;
+ width: 16px;
+ left: 8px;
+ }
+ }
+ }
+}
+
.paperdoll {
grid-area: equipment;
@@ -73,9 +116,37 @@
}
&.munition {
- top: 80px;
+ top: 90px;
left: 240px;
}
+
+ &.munition::before {
+ position: absolute;
+ display: block;
+ width: 34px;
+ height: 34px;
+ left: 0;
+ bottom: 0;
+ content: '';
+ background-color: rgba(0, 0, 0, 0.2);
+ -webkit-mask-image: url('/systems/DSA_4-1/assets/quiver.svg');
+ mask-image: url('/systems/DSA_4-1/assets/quiver.svg');
+ }
+
+ &.munition::after {
+ content: "";
+ position: relative;
+ display: block;
+ border: 5px solid rgba(0, 0, 0, 0.4);
+ border-left: 8px solid transparent;
+ border-top: 8px solid transparent;
+ border-right: 8px solid transparent;
+ height: 4px;
+ background-color: transparent;
+ top: -20px;
+ width: 16px;
+ left: 8px;
+ }
}
}
diff --git a/src/system.json b/src/system.json
index 21ec658b..21932c0f 100644
--- a/src/system.json
+++ b/src/system.json
@@ -2,7 +2,7 @@
"id": "DSA_4-1",
"title": "Das Schwarze Auge 4.1",
"description": "Noch ein Spielsystem für Das Schwarze Auge 4.1",
- "version": "0.11.3",
+ "version": "0.0.1",
"compatibility": {
"minimum": 12,
"verified": 13
@@ -364,5 +364,5 @@
"primaryTokenAttribute": "lep.aktuell",
"url": "https://git.macniel.online/macniel/foundry-dsa41-game",
"manifest": "https://git.macniel.online/macniel/foundry-dsa41-game/raw/branch/main/src/system.json",
- "download": "https://git.macniel.online/macniel/foundry-dsa41-game/releases/download/0.11.3/release.zip"
+ "download": "https://git.macniel.online/macniel/foundry-dsa41-game/releases/download/0.0.1/release.zip"
}
diff --git a/src/templates/actor/character/standalone/health.hbs b/src/templates/actor/character/standalone/health.hbs
index e259fc5f..6e729f25 100644
--- a/src/templates/actor/character/standalone/health.hbs
+++ b/src/templates/actor/character/standalone/health.hbs
@@ -105,8 +105,10 @@
height="530"
viewBox="0 0 70 140"
xmlns="http://www.w3.org/2000/svg">
-