Compare commits
3 Commits
2468c83e86
...
e338b79d3a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e338b79d3a | ||
|
|
60036fc37f | ||
|
|
ae3e9a2fb9 |
@ -92,9 +92,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="center">{{localize "DSA41.allgemein.biografie"}}</div>
|
<div class="center">{{localize "DSA41.allgemein.biografie"}}</div>
|
||||||
{{DSA41_input "system.allgemein.biografie" elementType="prose-mirror"}}
|
{{DSA41_input "system.allgemein.biografie" elementType="prose-mirror"}}
|
||||||
@ -337,6 +334,7 @@
|
|||||||
{{else}}
|
{{else}}
|
||||||
<div></div>
|
<div></div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
<div class="center fas fa-trash" data-action="item-delete"></div>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
@ -443,6 +441,46 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab Kampf {{#if (eq tabGroups.primary 'kampf')}}active{{/if}}" data-group="primary" data-tab="kampf">
|
<div class="tab Kampf {{#if (eq tabGroups.primary 'kampf')}}active{{/if}}" data-group="primary" data-tab="kampf">
|
||||||
|
<div class="list Wunden">
|
||||||
|
<div class="list-header">
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.label"}}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#*inline "wunden"}}
|
||||||
|
<div class="center" data-location="{{location}}">
|
||||||
|
<img class="wunde{{#if (gte (lookup @root.actor.system.wunden location) 1)}} active{{/if}}" data-action="toggle-wound">
|
||||||
|
<img class="wunde{{#if (gte (lookup @root.actor.system.wunden location) 2)}} active{{/if}}" data-action="toggle-wound">
|
||||||
|
<img class="wunde{{#if (gte (lookup @root.actor.system.wunden location) 3)}} active{{/if}}" data-action="toggle-wound">
|
||||||
|
</div>
|
||||||
|
{{/inline}}
|
||||||
|
|
||||||
|
<div class="list-item">
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.kopf"}}</div>
|
||||||
|
{{>wunden location="kopf"}}
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.brust"}}</div>
|
||||||
|
{{>wunden location="brust"}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-item">
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.bauch"}}</div>
|
||||||
|
{{>wunden location="bauch"}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-item">
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.linker_arm"}}</div>
|
||||||
|
{{>wunden location="linker_arm"}}
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.rechter_arm"}}</div>
|
||||||
|
{{>wunden location="rechter_arm"}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-item">
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.linkes_bein"}}</div>
|
||||||
|
{{>wunden location="linkes_bein"}}
|
||||||
|
<div>{{localize "DSA41.kampf.wunden.rechtes_bein"}}</div>
|
||||||
|
{{>wunden location="rechtes_bein"}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="list Bewaffnung">
|
<div class="list Bewaffnung">
|
||||||
<div class="list-header ">
|
<div class="list-header ">
|
||||||
<div>{{localize "DSA41.kampf.bewaffnung"}}</div>
|
<div>{{localize "DSA41.kampf.bewaffnung"}}</div>
|
||||||
|
|||||||
@ -537,6 +537,18 @@
|
|||||||
"still": "Still",
|
"still": "Still",
|
||||||
"seitenwind": "Böiger Seitenwind",
|
"seitenwind": "Böiger Seitenwind",
|
||||||
"starker_seitenwind": "Starker Seitenwind"
|
"starker_seitenwind": "Starker Seitenwind"
|
||||||
|
},
|
||||||
|
|
||||||
|
"wunden": {
|
||||||
|
"label": "Wunden",
|
||||||
|
|
||||||
|
"kopf": "Kopf",
|
||||||
|
"brust": "Brust",
|
||||||
|
"bauch": "Bauch",
|
||||||
|
"linker_arm": "Linker Arm",
|
||||||
|
"rechter_arm": "Rechter Arm",
|
||||||
|
"linkes_bein": "Linkes Bein",
|
||||||
|
"rechtes_bein": "Rechtes Bein"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
34
src/main.css
34
src/main.css
@ -575,7 +575,7 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
& .Kampftalente {
|
& .Kampftalente {
|
||||||
grid-template-columns: minmax(0, max-content) repeat(5, minmax(0, 1fr));
|
grid-template-columns: minmax(0, max-content) repeat(5, minmax(0, 1fr)) min-content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,6 +592,38 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&[data-tab="kampf"] {
|
&[data-tab="kampf"] {
|
||||||
|
& .Wunden {
|
||||||
|
grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content) minmax(0, 1fr);
|
||||||
|
|
||||||
|
& .wunde {
|
||||||
|
display: inline;
|
||||||
|
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
margin: 0 .25em 0 .25em;
|
||||||
|
|
||||||
|
content: url("/icons/skills/wounds/injury-triple-slash-bleed.webp");
|
||||||
|
|
||||||
|
mix-blend-mode: difference;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
filter: grayscale(0.0);
|
||||||
|
|
||||||
|
&:hover, &:hover ~ .wunde.active {
|
||||||
|
filter: grayscale(0.75);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.active) {
|
||||||
|
filter: grayscale(1.0);
|
||||||
|
|
||||||
|
&:hover, &:has( ~ .wunde:hover) {
|
||||||
|
filter: grayscale(0.25);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
& .Bewaffnung {
|
& .Bewaffnung {
|
||||||
grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, auto));
|
grid-template-columns: minmax(0, max-content) repeat(3, minmax(0, auto));
|
||||||
|
|
||||||
|
|||||||
114
src/main.mjs
114
src/main.mjs
@ -598,6 +598,16 @@ class DSA41_CharacterData extends TypeDataModel {
|
|||||||
modifikator_attacke: new NumberField({integer: true, initial: 0}),
|
modifikator_attacke: new NumberField({integer: true, initial: 0}),
|
||||||
modifikator_parade: new NumberField({integer: true, initial: 0}),
|
modifikator_parade: new NumberField({integer: true, initial: 0}),
|
||||||
modifikator_fernkampf: new NumberField({integer: true, initial: 0}),
|
modifikator_fernkampf: new NumberField({integer: true, initial: 0}),
|
||||||
|
|
||||||
|
wunden: new SchemaField({
|
||||||
|
kopf: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
brust: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
bauch: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
linker_arm: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
rechter_arm: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
linkes_bein: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
rechtes_bein: new NumberField({integer: true, initial: 0, min: 0, max: 3 }),
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -634,14 +644,97 @@ class DSA41_CharacterData extends TypeDataModel {
|
|||||||
gesamt_behinderung: 0.0,
|
gesamt_behinderung: 0.0,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
wunden_modifiers: {
|
||||||
|
courage: 0,
|
||||||
|
cleverness: 0,
|
||||||
|
intuition: 0,
|
||||||
|
dexterity: 0,
|
||||||
|
agility: 0,
|
||||||
|
constitution: 0,
|
||||||
|
strength: 0,
|
||||||
|
initiative_basis: 0,
|
||||||
|
initiative: "",
|
||||||
|
attacke: 0,
|
||||||
|
parade: 0,
|
||||||
|
schaden: "",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (this.wunden.kopf >= 1) {
|
||||||
|
this.computed.wunden_modifiers.courage += -2 * this.wunden.kopf;
|
||||||
|
this.computed.wunden_modifiers.cleverness += -2 * this.wunden.kopf;
|
||||||
|
this.computed.wunden_modifiers.intuition += -2 * this.wunden.kopf;
|
||||||
|
this.computed.wunden_modifiers.initiative_basis += -2 * this.wunden.kopf;
|
||||||
|
this.computed.wunden_modifiers.initiative += (-2 * this.wunden.kopf) + "d6";
|
||||||
|
|
||||||
|
if (this.wunden.kopf >= 3) this.computed.wunden_modifiers.schaden += "+ 2d6";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.wunden.brust >= 1) {
|
||||||
|
this.computed.wunden_modifiers.attacke += -this.wunden.brust;
|
||||||
|
this.computed.wunden_modifiers.parade += -this.wunden.brust;
|
||||||
|
this.computed.wunden_modifiers.constitution += -this.wunden.brust;
|
||||||
|
this.computed.wunden_modifiers.strength += -this.wunden.brust;
|
||||||
|
this.computed.wunden_modifiers.schaden += "+" + this.wunden.brust + "d6";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.wunden.bauch >= 1) {
|
||||||
|
this.computed.wunden_modifiers.attacke += -this.wunden.bauch;
|
||||||
|
this.computed.wunden_modifiers.parade += -this.wunden.bauch;
|
||||||
|
this.computed.wunden_modifiers.constitution += -this.wunden.bauch;
|
||||||
|
this.computed.wunden_modifiers.strength += -this.wunden.bauch;
|
||||||
|
this.computed.wunden_modifiers.initiative_basis += -this.wunden.bauch;
|
||||||
|
this.computed.wunden_modifiers.schaden += "+" + this.wunden.bauch + "d6";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.wunden.linker_arm >= 1) {
|
||||||
|
this.computed.wunden_modifiers.attacke += -2 * this.wunden.linker_arm;
|
||||||
|
this.computed.wunden_modifiers.parade += -2 * this.wunden.linker_arm;
|
||||||
|
this.computed.wunden_modifiers.strength += -2 * this.wunden.linker_arm;
|
||||||
|
this.computed.wunden_modifiers.dexterity += -2 * this.wunden.linker_arm;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.wunden.rechter_arm >= 1) {
|
||||||
|
this.computed.wunden_modifiers.attacke += -2 * this.wunden.rechter_arm;
|
||||||
|
this.computed.wunden_modifiers.parade += -2 * this.wunden.rechter_arm;
|
||||||
|
this.computed.wunden_modifiers.strength += -2 * this.wunden.rechter_arm;
|
||||||
|
this.computed.wunden_modifiers.dexterity += -2 * this.wunden.rechter_arm;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.wunden.linkes_bein >= 1) {
|
||||||
|
this.computed.wunden_modifiers.attacke += -2 * this.wunden.linkes_bein;
|
||||||
|
this.computed.wunden_modifiers.parade += -2 * this.wunden.linkes_bein;
|
||||||
|
this.computed.wunden_modifiers.agility += -2 * this.wunden.linkes_bein;
|
||||||
|
this.computed.wunden_modifiers.initiative_basis += -2 * this.wunden.linkes_bein;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.wunden.rechtes_bein >= 1) {
|
||||||
|
this.computed.wunden_modifiers.attacke += -2 * this.wunden.rechtes_bein;
|
||||||
|
this.computed.wunden_modifiers.parade += -2 * this.wunden.rechtes_bein;
|
||||||
|
this.computed.wunden_modifiers.agility += -2 * this.wunden.rechtes_bein;
|
||||||
|
this.computed.wunden_modifiers.initiative_basis += -2 * this.wunden.rechtes_bein;
|
||||||
|
}
|
||||||
|
|
||||||
this.computed.abenteuerpunkte.uebrig = this.abenteuerpunkte.gesamt - this.abenteuerpunkte.ausgegeben;
|
this.computed.abenteuerpunkte.uebrig = this.abenteuerpunkte.gesamt - this.abenteuerpunkte.ausgegeben;
|
||||||
|
|
||||||
for (const [attribute, values] of Object.entries(this.attributes)) {
|
this.computed.attributes_without_modifiers.courage = this.attributes.courage.initial + this.attributes.courage.advancement;
|
||||||
this.computed.attributes[attribute] = values.initial + values.advancement + values.modifier;
|
this.computed.attributes_without_modifiers.cleverness = this.attributes.cleverness.initial + this.attributes.cleverness.advancement;
|
||||||
this.computed.attributes_without_modifiers[attribute] = values.initial + values.advancement;
|
this.computed.attributes_without_modifiers.intuition = this.attributes.intuition.initial + this.attributes.intuition.advancement;
|
||||||
}
|
this.computed.attributes_without_modifiers.charisma = this.attributes.charisma.initial + this.attributes.charisma.advancement;
|
||||||
|
this.computed.attributes_without_modifiers.dexterity = this.attributes.dexterity.initial + this.attributes.dexterity.advancement;
|
||||||
|
this.computed.attributes_without_modifiers.agility = this.attributes.agility.initial + this.attributes.agility.advancement;
|
||||||
|
this.computed.attributes_without_modifiers.constitution = this.attributes.constitution.initial + this.attributes.constitution.advancement;
|
||||||
|
this.computed.attributes_without_modifiers.strength = this.attributes.strength.initial + this.attributes.strength.advancement;
|
||||||
|
|
||||||
|
this.computed.attributes.courage = this.computed.attributes_without_modifiers.courage + this.attributes.courage.modifier + this.computed.wunden_modifiers.courage;
|
||||||
|
this.computed.attributes.cleverness = this.computed.attributes_without_modifiers.cleverness + this.attributes.cleverness.modifier + this.computed.wunden_modifiers.cleverness;
|
||||||
|
this.computed.attributes.intuition = this.computed.attributes_without_modifiers.intuition + this.attributes.intuition.modifier + this.computed.wunden_modifiers.intuition;
|
||||||
|
this.computed.attributes.charisma = this.computed.attributes_without_modifiers.charisma + this.attributes.charisma.modifier;
|
||||||
|
this.computed.attributes.dexterity = this.computed.attributes_without_modifiers.dexterity + this.attributes.dexterity.modifier + this.computed.wunden_modifiers.dexterity;
|
||||||
|
this.computed.attributes.agility = this.computed.attributes_without_modifiers.agility + this.attributes.agility.modifier + this.computed.wunden_modifiers.agility;
|
||||||
|
this.computed.attributes.constitution = this.computed.attributes_without_modifiers.constitution + this.attributes.constitution.modifier + this.computed.wunden_modifiers.constitution;
|
||||||
|
this.computed.attributes.strength = this.computed.attributes_without_modifiers.strength + this.attributes.strength.modifier + this.computed.wunden_modifiers.strength;
|
||||||
|
|
||||||
this.computed.lebenspunkte = {};
|
this.computed.lebenspunkte = {};
|
||||||
this.computed.ausdauer = {};
|
this.computed.ausdauer = {};
|
||||||
@ -694,9 +787,9 @@ class DSA41_CharacterData extends TypeDataModel {
|
|||||||
this.computed.kampf.ruestungen_gesamt[key] = Math.round(value);
|
this.computed.kampf.ruestungen_gesamt[key] = Math.round(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.computed.initiative.wert = this.computed.initiative.basiswert + this.modifikator_initiative - this.computed.kampf.ruestungen_gesamt.gesamt_behinderung;
|
this.computed.initiative.wert = this.computed.initiative.basiswert + this.modifikator_initiative - this.computed.kampf.ruestungen_gesamt.gesamt_behinderung + this.computed.wunden_modifiers.initiative_basis;
|
||||||
this.computed.attacke.wert = this.computed.attacke.basiswert + this.modifikator_attacke;
|
this.computed.attacke.wert = this.computed.attacke.basiswert + this.modifikator_attacke + this.computed.wunden_modifiers.attacke;
|
||||||
this.computed.parade.wert = this.computed.parade.basiswert + this.modifikator_parade;
|
this.computed.parade.wert = this.computed.parade.basiswert + this.modifikator_parade + this.computed.wunden_modifiers.parade;
|
||||||
this.computed.fernkampf.wert = this.computed.fernkampf.basiswert + this.modifikator_fernkampf;
|
this.computed.fernkampf.wert = this.computed.fernkampf.basiswert + this.modifikator_fernkampf;
|
||||||
|
|
||||||
this.kampftalente = this.parent.items.filter((x) => x.type === "Kampftalent").sort((a, b) => a.name > b.name);
|
this.kampftalente = this.parent.items.filter((x) => x.type === "Kampftalent").sort((a, b) => a.name > b.name);
|
||||||
@ -1560,6 +1653,13 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
content: item.system.beschreibung,
|
content: item.system.beschreibung,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"toggle-wound": async function(event, target) {
|
||||||
|
const location = event.target.closest("[data-location]").dataset.location;
|
||||||
|
const current_count = this.document.system.wunden[location];
|
||||||
|
const toggled_count = Array.prototype.indexOf.call(event.target.parentNode.children, event.target) + 1;
|
||||||
|
this.document.update({ ["system.wunden." + location]: toggled_count > current_count ? toggled_count : toggled_count - 1 });
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user