first push of charactersheet
parent
f74bb38f3a
commit
561e34d0ff
|
|
@ -5,7 +5,7 @@ import {SkillDataModel} from "./module/data/skill.mjs";
|
|||
import {SpellDataModel} from "./module/data/spell.mjs";
|
||||
import {VornachteileDataModel} from "./module/data/vornachteile.mjs";
|
||||
import {Character} from "./module/documents/character.mjs";
|
||||
import {CharacterSheet} from "./module/sheets/characterSheet.mjs";
|
||||
import CharacterSheet from "./module/sheets/characterSheet.mjs";
|
||||
import {AdvantageSheet} from "./module/sheets/advantageSheet.mjs";
|
||||
import {GroupDataModel} from "./module/data/group.mjs";
|
||||
import {GroupSheet} from "./module/sheets/groupSheet.mjs";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,127 @@
|
|||
export default {
|
||||
_prepareContext: async (context, options, object) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
context.advantages = []
|
||||
|
||||
const getModsOfAttribute = async (keyPath, object) => {
|
||||
let returnValue = [];
|
||||
Array.from(object.appliedEffects).forEach(
|
||||
(e) =>
|
||||
e.changes.filter(c => c.key === keyPath).forEach(change => {
|
||||
returnValue.push({
|
||||
name: e.name,
|
||||
value: change.value > 0 ? "+" + change.value : "" + change.value,
|
||||
icon: e.icon,
|
||||
})
|
||||
}))
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
context.mods = {
|
||||
"mu": await getModsOfAttribute('system.attribute.mu.mod', actorData),
|
||||
"kl": await getModsOfAttribute('system.attribute.kl.mod', actorData),
|
||||
"in": await getModsOfAttribute('system.attribute.in.mod', actorData),
|
||||
"ch": await getModsOfAttribute('system.attribute.ch.mod', actorData),
|
||||
"ff": await getModsOfAttribute('system.attribute.ff.mod', actorData),
|
||||
"ge": await getModsOfAttribute('system.attribute.ge.mod', actorData),
|
||||
"ko": await getModsOfAttribute('system.attribute.ko.mod', actorData),
|
||||
"kk": await getModsOfAttribute('system.attribute.kk.mod', actorData),
|
||||
"at": await getModsOfAttribute('system.at.mod', actorData),
|
||||
"pa": await getModsOfAttribute('system.pa.mod', actorData),
|
||||
"fk": await getModsOfAttribute('system.fk.mod', actorData),
|
||||
|
||||
}
|
||||
context.attributes = [
|
||||
{
|
||||
eigenschaft: "mu",
|
||||
name: "MU",
|
||||
tooltip: "Mut",
|
||||
wert: context.derived.attribute.mu.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "kl",
|
||||
name: "KL",
|
||||
tooltip: "Klugheit",
|
||||
wert: context.derived.attribute.kl.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "in",
|
||||
name: "IN",
|
||||
tooltip: "Intuition",
|
||||
wert: context.derived.attribute.in.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "ch",
|
||||
name: "CH",
|
||||
tooltip: "Charisma",
|
||||
wert: context.derived.attribute.ch.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "ff",
|
||||
name: "FF",
|
||||
tooltip: "Fingerfertigkeit",
|
||||
wert: context.derived.attribute.ff.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "ge",
|
||||
name: "GE",
|
||||
tooltip: "Geschicklichkeit",
|
||||
wert: context.derived.attribute.ge.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "ko",
|
||||
name: "KO",
|
||||
tooltip: "Konstitution",
|
||||
wert: context.derived.attribute.ko.aktuell ?? 0,
|
||||
},
|
||||
{
|
||||
eigenschaft: "kk",
|
||||
name: "KK",
|
||||
tooltip: "Körperkraft",
|
||||
wert: context.derived.attribute.kk.aktuell ?? 0,
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
Object.values(actorData.items).forEach((item) => {
|
||||
if (item.type === "Advantage") {
|
||||
context.advantages.push({
|
||||
id: item._id,
|
||||
name: item.name,
|
||||
value: item.system.value,
|
||||
options: item.system.auswahl,
|
||||
description: item.system.description,
|
||||
isAdvantage: !item.system.nachteil,
|
||||
isDisadvantage: item.system.nachteil,
|
||||
isBadAttribute: item.system.schlechteEigenschaft
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
context.specialAbilities = [];
|
||||
Object.values(actorData.items).forEach((item) => {
|
||||
if (item.type === "SpecialAbility") {
|
||||
context.specialAbilities.push({
|
||||
id: item._id,
|
||||
name: item.name,
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "attributes", group: "sheet", label: "Eigenschaften"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-attributes.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
import {ActionManager} from "../actions/action-manager.mjs";
|
||||
|
||||
export default {
|
||||
_prepareContext: async (context, object) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
|
||||
const findEquipmentOnSlot = (slot, setNumber, object) => {
|
||||
return object.items.get(object.system.heldenausruestung[setNumber]?.[slot])
|
||||
}
|
||||
|
||||
const am = new ActionManager(actorData)
|
||||
context.actions = am.evaluate()
|
||||
|
||||
|
||||
context.inidice = actorData.system.ini.wuerfel
|
||||
context.inivalue = actorData.system.ini.aktuell
|
||||
context.inimod = actorData.system.ini.mod
|
||||
|
||||
context.aupper = Math.min((actorData.system.aup.aktuell / actorData.system.aup.max) * 100, 100)
|
||||
context.lepper = Math.min((actorData.system.lep.aktuell / actorData.system.lep.max) * 100, 100)
|
||||
context.keper = Math.min((actorData.system.kap.aktuell / actorData.system.kap.max) * 100, 100)
|
||||
context.aspper = Math.min((actorData.system.asp.aktuell / actorData.system.asp.max) * 100, 100)
|
||||
context.lepcurrent = actorData.system.lep.aktuell ?? 0
|
||||
|
||||
context.aupcurrent = actorData.system.aup.aktuell ?? 0
|
||||
|
||||
const fernkampf = findEquipmentOnSlot("fernkampf", actorData.system.setEquipped, actorData)
|
||||
const links = findEquipmentOnSlot("links", actorData.system.setEquipped, actorData)
|
||||
const rechts = findEquipmentOnSlot("rechts", actorData.system.setEquipped, actorData)
|
||||
context.attacks = [];
|
||||
|
||||
if (fernkampf) {
|
||||
const fkitems = fernkampf.system.rangedSkills.map((skillInQuestion) => actorData.items.find(p => p.name === skillInQuestion))
|
||||
fkitems.forEach(async skill => {
|
||||
const obj = await skill
|
||||
context.attacks.push({
|
||||
name: obj.name,
|
||||
using: fernkampf.name,
|
||||
atroll: `1d20cs<${object.system.fk.aktuell + obj.system.at}`,
|
||||
at: `${object.system.fk.aktuell + obj.system.at}`,
|
||||
tproll: `${fernkampf.system.rangedAttackDamage}`, // TODO consider adding TP/KK mod and Range mod
|
||||
tp: `${fernkampf.system.rangedAttackDamage}`,
|
||||
iniroll: `(${context.inidice})d6 + ${context.inivalue + fernkampf.system.iniModifier ?? 0}`,
|
||||
ini: `${context.inidice}w6 + ${context.inivalue + fernkampf.system.iniModifier ?? 0}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
if (links) {
|
||||
const meitems = []
|
||||
links.system.meleeSkills.forEach((skillInQuestion) => {
|
||||
const item = actorData.items.find(p => p.name === skillInQuestion)
|
||||
if (item) {
|
||||
meitems.push(item)
|
||||
}
|
||||
})
|
||||
meitems.forEach(skill => {
|
||||
const obj = skill
|
||||
context.attacks.push({
|
||||
name: obj.name,
|
||||
using: links.name,
|
||||
atroll: `1d20cs<${object.system.at.links.aktuell + obj.system.at + links.system.attackModifier}`, // TODO consider adding W/M
|
||||
at: `${object.system.at.links.aktuell + obj.system.at + links.system.attackModifier}`,
|
||||
paroll: `1d20cs<${object.system.pa.links.aktuell + obj.system.pa + links.system.parryModifier}`, // TODO consider adding W/M
|
||||
pa: `${object.system.pa.links.aktuell + obj.system.pa + links.system.parryModifier}`,
|
||||
tproll: `${links.system.meleeAttackDamage}`, // TODO consider adding TP/KK mod
|
||||
tp: `${links.system.meleeAttackDamage}`,
|
||||
iniroll: `(${context.inidice})d6 + ${context.inivalue + links.system.iniModifier ?? 0}`,
|
||||
ini: `${context.inidice}w6 + ${context.inivalue + links.system.iniModifier ?? 0}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
if (rechts) {
|
||||
const meitems = []
|
||||
rechts.system.meleeSkills.forEach((skillInQuestion) => {
|
||||
const item = actorData.items.find(p => p.name === skillInQuestion)
|
||||
if (item) {
|
||||
meitems.push(item)
|
||||
}
|
||||
})
|
||||
meitems.forEach(skill => {
|
||||
const obj = skill
|
||||
context.attacks.push({
|
||||
name: obj.name,
|
||||
using: rechts.name,
|
||||
atroll: `1d20cs<${object.system.at.rechts.aktuell + obj.system.at + rechts.system.attackModifier}`, // TODO consider adding W/M
|
||||
at: `${object.system.at.rechts.aktuell + obj.system.at + rechts.system.attackModifier}`,
|
||||
paroll: `1d20cs<${object.system.pa.rechts.aktuell + obj.system.pa + rechts.system.parryModifier}`, // TODO consider adding W/M
|
||||
pa: `${object.system.pa.rechts.aktuell + obj.system.pa + rechts.system.parryModifier}`,
|
||||
tproll: `${rechts.system.meleeAttackDamage}`, // TODO consider adding TP/KK mod
|
||||
tp: `${rechts.system.meleeAttackDamage}`,
|
||||
iniroll: `(${context.inidice})d6 + ${context.inivalue + rechts.system.iniModifier ?? 0}`,
|
||||
ini: `${context.inidice}w6 + ${context.inivalue + rechts.system.iniModifier ?? 0}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "combat", group: "sheet", label: "Kampf"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-combat.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
export default {
|
||||
_prepareContext: (context, object) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.spells = []
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
|
||||
context.isGM = game.user.isGM
|
||||
context.effects = []
|
||||
Object.values(actorData.items).forEach((item, index) => {
|
||||
if (item.type === "ActiveEffect") {
|
||||
const effect = item.effects[0];
|
||||
const conditions = []
|
||||
|
||||
if (effect) {
|
||||
effect.changes.forEach(change => {
|
||||
if (change.key.indexOf("wunden") === -1) {
|
||||
const key = change.key
|
||||
.replace(/system\./g, "")
|
||||
.replace(/\.mod/g, "")
|
||||
.replace(/attribute./g, "")
|
||||
.replace(/.links/g, "(Links)")
|
||||
.replace(/.rechts/g, "(Rechts)")
|
||||
const value = Number(change.value) > 0 ? "+" + change.value : change.value
|
||||
conditions.push(
|
||||
`${key}${value}`
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
context.effects.push({
|
||||
name: item.name,
|
||||
conditions: conditions.join(" "),
|
||||
id: item._id,
|
||||
actor: actorData._id
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "effects", group: "sheet", label: "Effekte"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-effects.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
import {PlayerCharacterDataModel} from "../../data/character.mjs";
|
||||
|
||||
export default {
|
||||
_prepareContext: (context) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.spells = []
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
|
||||
const isWorn = (itemId, object) => {
|
||||
|
||||
const slots = PlayerCharacterDataModel.getSlots()
|
||||
const set = object.system.heldenausruestung[object.system.setEquipped]
|
||||
if (set) {
|
||||
for (const slot of slots) {
|
||||
const equipmentSlotId = set[slot]
|
||||
if (equipmentSlotId === itemId) {
|
||||
return slot
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
context.equipments = []
|
||||
context.carryingweight = 0
|
||||
Object.values(actorData.items).forEach((item, index) => {
|
||||
if (item.type === "Equipment") {
|
||||
|
||||
// worn items are halved weight
|
||||
|
||||
let effectiveWeight = item.system.weight ?? 0
|
||||
if (isWorn(item._id, object)) {
|
||||
effectiveWeight = item.system.weight ? item.system.weight / 2 : 0
|
||||
}
|
||||
|
||||
context.equipments.push({
|
||||
index: index,
|
||||
id: item._id,
|
||||
quantity: item.system.quantity,
|
||||
name: item.name,
|
||||
icon: item.img ?? "",
|
||||
weight: item.system.weight,
|
||||
worn: isWorn(item._id, object)
|
||||
})
|
||||
context.carryingweight += item.system.quantity * effectiveWeight;
|
||||
}
|
||||
})
|
||||
context.maxcarryingcapacity = actorData.system.attribute.kk.aktuell
|
||||
context.carryingpercentage = Math.min((context.carryingweight / context.maxcarryingcapacity) * 100, 100);
|
||||
|
||||
const maxSets = 3
|
||||
const romanNumerals = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"]
|
||||
context.sets = []
|
||||
for (let setIndex = 0; setIndex < maxSets; setIndex++) {
|
||||
|
||||
context.sets.push({
|
||||
tab: "set" + (setIndex + 1),
|
||||
name: romanNumerals[setIndex],
|
||||
index: setIndex,
|
||||
slots: [
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
},
|
||||
{
|
||||
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
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
},
|
||||
_onRender: (context, options, element) => {
|
||||
const mapAllSets = () => {
|
||||
const updateObject = {}
|
||||
Array.from(context.document.system.heldenausruestung).forEach((equipmentSet, index) => {
|
||||
updateObject[`system.heldenausruestung.${index}.links`] = equipmentSet.links;
|
||||
updateObject[`system.heldenausruestung.${index}.rechts`] = equipmentSet.rechts;
|
||||
updateObject[`system.heldenausruestung.${index}.brust`] = equipmentSet.brust;
|
||||
updateObject[`system.heldenausruestung.${index}.bauch`] = equipmentSet.bauch;
|
||||
updateObject[`system.heldenausruestung.${index}.ruecken`] = equipmentSet.ruecken;
|
||||
updateObject[`system.heldenausruestung.${index}.kopf`] = equipmentSet.kopf;
|
||||
updateObject[`system.heldenausruestung.${index}.fernkampf`] = equipmentSet.fernkampf;
|
||||
updateObject[`system.heldenausruestung.${index}.munition`] = equipmentSet.munition;
|
||||
updateObject[`system.heldenausruestung.${index}.armlinks`] = equipmentSet.armlinks;
|
||||
updateObject[`system.heldenausruestung.${index}.armrechts`] = equipmentSet.armrechts;
|
||||
updateObject[`system.heldenausruestung.${index}.beinlinks`] = equipmentSet.beinlinks;
|
||||
updateObject[`system.heldenausruestung.${index}.beinrechts`] = equipmentSet.beinrechts;
|
||||
|
||||
})
|
||||
return updateObject;
|
||||
}
|
||||
|
||||
new foundry.applications.ux.ContextMenu(element, '.equipped', [
|
||||
{
|
||||
name: "Gegenstand vom Set entfernen",
|
||||
callback: (event) => {
|
||||
const {setId, target, actor} = event[0].dataset
|
||||
|
||||
const updateObject = mapAllSets()
|
||||
updateObject[`system.heldenausruestung.${setId}.${target}`] = null;
|
||||
|
||||
object.update(updateObject);
|
||||
},
|
||||
condition: () => true
|
||||
}
|
||||
], {
|
||||
jQuery: false
|
||||
});
|
||||
|
||||
new foundry.applications.ux.ContextMenu(element, '.equipment', [
|
||||
{
|
||||
name: "Aus dem Inventar entfernen",
|
||||
icon: '<i class="fa-solid fa-trash"></i>',
|
||||
callback: (event) => {
|
||||
// TODO find id on heldenausruestung to remove the worn items as well
|
||||
object.deleteEmbeddedDocuments('Item', [event[0].dataset.id])
|
||||
},
|
||||
condition: () => true
|
||||
}
|
||||
], {
|
||||
jQuery: false
|
||||
});
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "equipment", group: "sheet", label: "Ausrüstung"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-equipment.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
import {LiturgyData} from "../../data/miracle/liturgydata.mjs";
|
||||
|
||||
export default {
|
||||
_prepareContext: (context) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
|
||||
context.effects = actorData.effects ?? []
|
||||
context.liturgies = [];
|
||||
context.blessings = [];
|
||||
|
||||
Object.values(actorData.items).forEach((item, index) => {
|
||||
if (item.type === "Blessing") {
|
||||
context.blessings.push({
|
||||
deity: item.system.gottheit,
|
||||
value: item.system.wert
|
||||
})
|
||||
}
|
||||
})
|
||||
Object.values(actorData.items).forEach((item, index) => {
|
||||
if (item.type === "Liturgy") {
|
||||
|
||||
context.blessings.forEach(({deity, value}) => {
|
||||
let insertObject = context.liturgies.find(p => p.deity === deity);
|
||||
if (!insertObject) {
|
||||
insertObject = {
|
||||
deity: deity,
|
||||
lkp: value,
|
||||
O: [],
|
||||
I: [],
|
||||
II: [],
|
||||
III: [],
|
||||
IV: [],
|
||||
V: [],
|
||||
VI: [],
|
||||
VII: [],
|
||||
VIII: [],
|
||||
"NA": [],
|
||||
countO: 1,
|
||||
countI: 1,
|
||||
countII: 1,
|
||||
countIII: 1,
|
||||
countIV: 1,
|
||||
countV: 1,
|
||||
countVI: 1,
|
||||
countVII: 1,
|
||||
countVIII: 1,
|
||||
countNA: 0,
|
||||
total: 3,
|
||||
|
||||
}
|
||||
context.liturgies.push(insertObject);
|
||||
}
|
||||
|
||||
// sort by rank
|
||||
const rankData = LiturgyData.getRankOfLiturgy(item.system, deity)
|
||||
if (rankData) {
|
||||
let {index, name, lkp, mod, costKaP} = rankData;
|
||||
|
||||
insertObject["count" + name] = insertObject["count" + name] + 1;
|
||||
|
||||
insertObject[name].push({
|
||||
id: item._id,
|
||||
name: item.name,
|
||||
lkpReq: lkp,
|
||||
lkpMod: mod,
|
||||
costKaP,
|
||||
rank: index, // get effective liturgy rank based on deity
|
||||
liturgiekenntnis: deity,
|
||||
})
|
||||
insertObject.total = insertObject.total + 2;
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// clean up counter
|
||||
Object.values(context.liturgies).forEach((litObject) => {
|
||||
|
||||
if (litObject.I.length === 0) litObject.countI = false;
|
||||
if (litObject.II.length === 0) litObject.countII = false;
|
||||
if (litObject.III.length === 0) litObject.countIII = false;
|
||||
if (litObject.IV.length === 0) litObject.countIV = false;
|
||||
if (litObject.V.length === 0) litObject.countV = false;
|
||||
if (litObject.VI.length === 0) litObject.countVI = false;
|
||||
if (litObject.VII.length === 0) litObject.countVII = false;
|
||||
if (litObject.VIII.length === 0) litObject.countVIII = false;
|
||||
if (litObject.NA.length === 0) litObject.countNA = false;
|
||||
|
||||
|
||||
})
|
||||
|
||||
context.hasLiturgies = context.blessings.length > 0;
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "liturgies", group: "sheet", label: "Liturgien"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-liturgies.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
export default {
|
||||
_prepareContext: (context, object) => {
|
||||
const actorData = context.document
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "meta", group: "sheet", label: "Meta"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-meta.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
export default {
|
||||
_prepareContext: (context) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.spells = []
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
|
||||
const prepareEigenschaftRoll = (actorData, name) => {
|
||||
if (name && name !== "*") {
|
||||
return actorData.system.attribute[name.toLowerCase()].aktuell
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
context.skills = {};
|
||||
context.flatSkills = [];
|
||||
|
||||
Object.values(actorData.items).forEach((item, index) => {
|
||||
if (item.type === "Skill") {
|
||||
|
||||
const talentGruppe = item.system.gruppe;
|
||||
const eigenschaften = Object.values(item.system.probe);
|
||||
const werte = [
|
||||
{name: eigenschaften[0], value: prepareEigenschaftRoll(actorData, eigenschaften[0])},
|
||||
{name: eigenschaften[1], value: prepareEigenschaftRoll(actorData, eigenschaften[1])},
|
||||
{name: eigenschaften[2], value: prepareEigenschaftRoll(actorData, eigenschaften[2])}
|
||||
]
|
||||
if (context.skills[talentGruppe] == null) {
|
||||
context.skills[talentGruppe] = [];
|
||||
}
|
||||
const obj = {
|
||||
type: "talent",
|
||||
gruppe: talentGruppe,
|
||||
name: item.name,
|
||||
taw: "" + item.system.taw,
|
||||
tawPath: `system.items.${index}.taw`,
|
||||
werte,
|
||||
rollEigenschaft1: werte[0].value,
|
||||
rollEigenschaft2: werte[1].value,
|
||||
rollEigenschaft3: werte[2].value,
|
||||
eigenschaft1: werte[0].name,
|
||||
eigenschaft2: werte[1].name,
|
||||
eigenschaft3: werte[2].name,
|
||||
probe: `(${eigenschaften.join("/")})`,
|
||||
id: item._id,
|
||||
at: item.system.at,
|
||||
pa: item.system.pa,
|
||||
komplexität: item.system.komplexität
|
||||
};
|
||||
|
||||
if (talentGruppe === "Kampf") {
|
||||
|
||||
if (item.system.pa != null) { // has no parry value so it must be ranged talent (TODO: but it isnt as there can be combatstatistics which has no pa value assigned to)
|
||||
obj.at = item.system.at + context.derived.at.aktuell
|
||||
obj.pa = item.system.pa + context.derived.pa.aktuell
|
||||
} else {
|
||||
obj.at = item.system.at + context.derived.fk.aktuell
|
||||
}
|
||||
}
|
||||
|
||||
context.skills[talentGruppe].push(obj);
|
||||
context.flatSkills.push(obj);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "skills", group: "sheet", label: "Talente"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-skills.hbs`
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
export default {
|
||||
_prepareContext: (context) => {
|
||||
|
||||
const actorData = context.document
|
||||
context.spells = []
|
||||
context.system = actorData.system
|
||||
context.flags = actorData.flags
|
||||
context.derived = context.document.system
|
||||
context.originalName = actorData.name
|
||||
context.name = context.derived.name ?? actorData.name
|
||||
context.effects = actorData.effects ?? []
|
||||
|
||||
const cleanUpMerkmal = (merkmale) => {
|
||||
return merkmale.split(",").map((merkmal) => merkmal.trim())
|
||||
}
|
||||
|
||||
|
||||
Object.values(actorData.items).forEach((item, index) => {
|
||||
if (item.type === "Spell") {
|
||||
const eigenschaften = item.system.probe;
|
||||
const werte = [
|
||||
{name: eigenschaften[0], value: this.prepareEigenschaftRoll(actorData, eigenschaften[0])},
|
||||
{name: eigenschaften[1], value: this.prepareEigenschaftRoll(actorData, eigenschaften[1])},
|
||||
{name: eigenschaften[2], value: this.prepareEigenschaftRoll(actorData, eigenschaften[2])}
|
||||
]
|
||||
context.spells.push({
|
||||
id: item._id,
|
||||
name: item.name,
|
||||
zfw: item.system.zfw,
|
||||
hauszauber: item.system.hauszauber,
|
||||
merkmal: cleanUpMerkmal(item.system.merkmal),
|
||||
rollEigenschaft1: werte[0].value,
|
||||
rollEigenschaft2: werte[1].value,
|
||||
rollEigenschaft3: werte[2].value,
|
||||
eigenschaft1: werte[0].name,
|
||||
eigenschaft2: werte[1].name,
|
||||
eigenschaft3: werte[2].name,
|
||||
})
|
||||
}
|
||||
})
|
||||
context.hasSpells = context.spells.length > 0;
|
||||
},
|
||||
_onRender: (context, options) => {
|
||||
|
||||
},
|
||||
_getTabConfig: (group) => {
|
||||
group.tabs.push({id: "spells", group: "sheet", label: "Zauber"})
|
||||
},
|
||||
template: `systems/DSA_4-1/templates/actor/character/tab-spells.hbs`
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -75,21 +75,6 @@ export class GroupSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
await this.document.update(formData.object) // Note: formData.object
|
||||
}
|
||||
|
||||
#createDragDropHandlers() {
|
||||
return this.options.dragDrop.map((d) => {
|
||||
d.permissions = {
|
||||
dragstart: this._canDragStart.bind(this),
|
||||
drop: this._canDragDrop.bind(this)
|
||||
}
|
||||
d.callbacks = {
|
||||
dragstart: this._onDragStart.bind(this),
|
||||
dragover: this._onDragOver.bind(this),
|
||||
drop: this._onDrop.bind(this)
|
||||
}
|
||||
return new DragDrop(d)
|
||||
})
|
||||
}
|
||||
|
||||
#stringToKeyFieldName(s) {
|
||||
return s
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,814 +0,0 @@
|
|||
<form class="{{cssClass}} {{actor.type}} flexcol" autocomplete="off">
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
<header class="sheet-header">
|
||||
{{!-- Header stuff goes here --}}
|
||||
<div class="header-fields">
|
||||
<div class="attributes">
|
||||
{{#each attributes}}
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-attribute-button.hbs" this}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="head-data">
|
||||
<h1 class="charname {{#if owner}}secret-identity{{/if}}" {{#if owner}}title="{{originalName}}"{{/if}} ><input
|
||||
name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{name}}"/>
|
||||
<h2 class="sidebar-element header">Kampf Daten</h2>
|
||||
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>LeP: {{this.lep}}</label><span class="resource-fill lep" style="width: {{this.lepper}}%"></span>
|
||||
</div>
|
||||
|
||||
{{#if ausdauer}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>AuP: {{this.aup}}</label><span class="resource-fill aup" style="width: {{this.aupper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if this.hasLiturgies}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>KE: {{this.ke}}</label><span class="resource-fill kap" style="width: {{this.keper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if this.hasSpells}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>AsP: {{this.asp}}</label><span class="resource-fill asp" style="width: {{this.aspper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#each attacks}}
|
||||
<div>
|
||||
<h3>{{this.using}} ({{this.name}})</h3>
|
||||
<div class="combined">
|
||||
{{#if this.at}}
|
||||
<div class="sidebar-element rollable" data-roll="{{this.atroll}}" data-label="Attacke">
|
||||
<label>AT</label>
|
||||
<div class="formula">{{this.at}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if this.pa}}
|
||||
<div class="sidebar-element rollable" data-roll="{{this.paroll}}" data-label="Parade">
|
||||
<label>PA</label>
|
||||
<div class="formula">{{this.pa}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if this.at}}
|
||||
<div class="sidebar-element rollable" data-roll="{{this.tproll}}" data-label="Schaden">
|
||||
<label>Schaden</label>
|
||||
<div class="formula">{{this.tp}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if this.ini}}
|
||||
<div class="sidebar-element rollable" data-label="Initiative" data-roll="{{this.iniroll}}"><label>Initiative</label>
|
||||
<div class="formula">{{this.ini}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
<h2 class="sidebar-element header">Favouriten</h2>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="overview">Übersicht</a>
|
||||
<a class="item" data-tab="attributes">Eigenschaften</a>
|
||||
<a class="item" data-tab="combat">Kampf</a>
|
||||
<a class="item" data-tab="skills">Talente</a>
|
||||
<a class="item" data-tab="backpack">Inventar</a>
|
||||
{{#if this.hasSpells}}<a class="item" data-tab="spells">Zauber</a>{{/if}}
|
||||
{{#if this.hasLiturgies}}<a class="item" data-tab="liturgies">Liturgien</a>{{/if}}
|
||||
<a class="item" data-tab="effects">Effekte</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
<div class="tab overview" data-group="primary" data-tab="overview">
|
||||
|
||||
<div class="meta-data">
|
||||
|
||||
<div><label>Spezies
|
||||
<input type="text" name="system.meta.spezies" value="{{system.meta.spezies}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div><label for="system.meta.kultur">Kultur</label>
|
||||
<input type="text" name="system.meta.kultur"
|
||||
value="{{system.meta.kultur}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.profession">Profession</label>
|
||||
<input type="text" name="system.meta.profession"
|
||||
value="{{system.meta.profession}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.geschlecht">Geschlecht</label>
|
||||
<input type="text" name="system.meta.geschlecht"
|
||||
value="{{system.meta.geschlecht}}"/>
|
||||
</div>
|
||||
<div class="double"><label>Sozialstatus</label>
|
||||
<input type="text" name="system.meta.stand" value="{{system.meta.stand}}"/>
|
||||
<input type="text" name="system.meta.titel" value="{{system.meta.titel}}"/>
|
||||
</div>
|
||||
|
||||
<div><label for="system.meta.groesse">Größe</label>
|
||||
<input type="number" name="system.meta.groesse" value="{{system.meta.groesse}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.gewicht">Gewicht</label>
|
||||
<input type="number" name="system.meta.gewicht" value="{{system.meta.gewicht}}"/>
|
||||
</div>
|
||||
<div class="double"><label>Alter</label>
|
||||
<input type="number" name="system.meta.groesse" value="{{system.meta.alter}}"/>
|
||||
<input type="text" name="system.meta.geburtsdatum" value="{{system.meta.geburtstag}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="meta-data html">
|
||||
<div><label>Aussehen</label>
|
||||
{{editor system.meta.aussehen target="system.meta.aussehen" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
<div><label>Familie</label>
|
||||
{{editor system.meta.familie target="system.meta.familie" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="tab attributes" data-group="primary" data-tab="attributes">
|
||||
<div class="attributes-overview">
|
||||
<div class="attribute">
|
||||
<label>Mut</label>
|
||||
<input value="{{this.system.attribute.mu.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.mu}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Klugheit</label>
|
||||
<input value="{{this.system.attribute.kl.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.kl}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Intuition</label>
|
||||
<input value="{{this.system.attribute.in.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.in}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Charisma</label>
|
||||
<input value="{{this.system.attribute.ch.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ch}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Fingerfertigkeit</label>
|
||||
<input value="{{this.system.attribute.ff.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ff}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Geschicklichkeit</label>
|
||||
<input value="{{this.system.attribute.ge.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ge}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Konstitution</label>
|
||||
<input value="{{this.system.attribute.ko.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ko}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Körperkraft</label>
|
||||
<input value="{{this.system.attribute.kk.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.kk}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Sozialstatus</label>
|
||||
<input value="{{this.system.attribute.so.aktuell}}">
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>AT-Basis</label>
|
||||
<input value="{{derived.at.basis}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.at}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>PA-Basis</label>
|
||||
<input value="{{derived.pa.basis}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.pa}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>FK-Basis</label>
|
||||
<input value="{{derived.fk.basis}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.fk}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="resources-overview">
|
||||
<div class="attribute">
|
||||
<label>Lebensenergie</label>
|
||||
<input value="{{actor.system.lep.aktuell}}">
|
||||
<input value="{{actor.system.lep.max}}">
|
||||
</div>
|
||||
{{#if ausdauer}}
|
||||
<div class="attribute">
|
||||
<label>Ausdauer</label>
|
||||
<input value="{{actor.system.aup.aktuell}}">
|
||||
<input value="{{actor.system.aup.max}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if hasSpells}}
|
||||
<div class="attribute">
|
||||
<label>Astralenergie</label>
|
||||
<input value="{{actor.system.asp.aktuell}}">
|
||||
<input value="{{actor.system.asp.max}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if hasLiturgies}}
|
||||
<div class="attribute">
|
||||
<label>Karmaenergie</label>
|
||||
<input value="{{actor.system.kap.aktuell}}">
|
||||
<input value="{{actor.system.kap.max}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="advantages">
|
||||
<h3>Vor- und Nachteile</h3>
|
||||
<ul>
|
||||
{{#each this.advantages}}
|
||||
<li>{{> "systems/DSA_4-1/templates/ui/partial-advantage-button.hbs" this}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="special-abilities">
|
||||
<h3>Sonderfertigkeiten</h3>
|
||||
<ul>
|
||||
{{#each this.specialAbilities}}
|
||||
<li>{{> "systems/DSA_4-1/templates/ui/partial-sf-button.hbs" this}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab combat {{#if (or trefferzonen zonenruestung)}}zones{{/if}}" data-group="primary"
|
||||
data-tab="combat">
|
||||
|
||||
<div class="tab-resources">
|
||||
|
||||
<div class="initiaitve">
|
||||
<label>Initiative:</label>
|
||||
<input type="number" name="system.attribute.ini.wuerfel" value="{{this.inidice}}"/>
|
||||
<span class="inline">w6</span>
|
||||
<input type="number" name="system.attribute.ini.aktuell" value="{{this.inivalue}}"/>
|
||||
</div>
|
||||
<div class="lebensenergie">
|
||||
<label>Lebensenergie:</label>
|
||||
<input type="number" name="system.lep.aktuell" value="{{actor.system.lep.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{actor.system.lep.max}}"/>
|
||||
</div>
|
||||
{{#if ausdauer}}
|
||||
<div class="ausdauer">
|
||||
<label>Ausdauerpunkte:</label>
|
||||
<input type="number" name="system.aup.aktuell" value="{{actor.system.aup.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{actor.system.aup.max}}"/>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (not zonenruestung)}}
|
||||
<div class="armor">
|
||||
<label>RS:</label>
|
||||
{{derived.rs}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="handicap">
|
||||
<label>BE:</label>
|
||||
{{derived.be}}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
{{#if (not trefferzonen)}}
|
||||
<div class="wounds">
|
||||
<label data-operation="reduceWounds" data-value="0">Wunden: {{this.wounds}} / {{this.maxWounds}}</label>
|
||||
{{#each this.woundsFilled}}
|
||||
{{#if this}}
|
||||
<div class="filled-segment" data-operation="reduceWounds"
|
||||
data-value="{{@index}}">{{@index}}</div>
|
||||
{{else}}
|
||||
<div class="empty-segment" data-operation="addWounds" data-value="{{@index}}">{{@index}}</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
|
||||
<div class="actions">
|
||||
<h3>Aktionen im Kampf</h3>
|
||||
{{#each this.actions}}
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-action-button.hbs" this}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
{{#if (or trefferzonen zonenruestung)}}
|
||||
<div class="paperdoll">
|
||||
<h3>{{#if (and trefferzonen zonenruestung)}}Trefferzonen{{/if}}{{#if
|
||||
(and trefferzonen (not zonenruestung))}}Wunden{{/if}}{{#if
|
||||
(and (not trefferzonen) zonenruestung)}}Rüstung{{/if}}</h3>
|
||||
<div>
|
||||
<svg
|
||||
width="280"
|
||||
height="530"
|
||||
viewBox="0 0 70 140"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="paperdoll-image"
|
||||
d="m 22.868053,0.6591628 0.658626,-0.52687462 6.270125,4.42573652 3.97809,0.5795595 0.605938,-4.58379633 11.828915,2.02846193 0.07905,2.3182421 3.556578,-0.9220267 6.691636,3.7671414 2.292014,3.7671454 -4.030787,0.05268 0.89573,3.951549 -1.106491,2.23921 -3.345818,-0.632247 0.869387,4.241332 v 2.476303 l 1.422627,-0.02634 0.500563,1.343527 h 3.29312 l 1.975878,3.424677 0.05267,2.818774 2.371046,6.243447 6.665292,14.72611 1.949534,0.658592 0.34249,4.794545 -0.289802,1.606966 0.922074,1.765023 -0.395167,2.897805 2.002222,6.743979 1.027449,1.949433 -0.737657,5.031644 -3.925413,4.399394 -0.922074,-0.553222 0.579595,-1.844054 -1.896847,1.264499 -0.526897,-0.790314 1.475315,-1.369869 -1.36994,-5.690236 -0.974762,4.083275 -1.053803,-0.342473 -0.790345,-3.108552 0.579584,-2.370933 0.526907,-0.658592 -0.263459,-0.500527 0.289803,-1.554277 0.948418,-2.739737 -0.447865,-2.212876 -1.106492,-0.974715 -1.554356,-1.501588 -2.423744,-4.030581 0.711314,-1.264496 -3.793683,-5.532171 -0.02638,-1.554275 -1.475326,-1.554276 -1.185522,-3.213929 -0.869387,-0.763967 -3.029682,4.820892 -1.159179,0.447843 0.447865,0.974716 -0.790345,0.974716 -0.21076,2.002118 0.368823,1.343527 -0.289792,1.923087 1.71243,2.397274 0.02638,1.791371 1.23821,1.975774 2.950651,13.013779 -0.421522,0.684934 2.713536,14.278264 7.113157,18.150786 1.132835,0.0791 3.767339,9.19394 -2.344701,0.73762 1.92318,7.42891 -1.738774,3.87253 1.001116,3.79348 2.687192,4.10961 -0.68497,2.44996 -10.643392,0.079 -0.684969,-8.42997 1.106491,-1.42257 -1.659742,-1.47524 0.07905,-2.00211 -1.949535,-2.18653 -0.55325,-3.84617 -1.422628,0.15805 -0.500553,-7.71869 1.02745,-1.05374 -2.133941,-4.21499 0.421521,-2.42362 -4.32059,-6.322483 -1.317252,-4.056921 -9.247098,-17.702946 -0.395178,0.210749 -3.609266,18.783038 -1.975878,3.635422 -0.289802,10.721871 0.764011,-0.0264 2.397389,7.71869 -4.663069,0.97472 -0.737658,6.74398 -2.212983,1.92309 1.422638,6.74397 -1.896847,3.10855 -4.504997,0.34248 -0.105385,-0.86934 -3.714641,1.2118 -8.140618,0.21075 -0.131729,-2.00212 8.483107,-5.47948 0.711314,-1.89674 -0.316146,-2.18653 0.869386,-0.71128 -1.027449,-1.36986 1.659732,-6.55958 -2.502775,-0.76396 1.317252,-3.42469 -0.289792,-1.2645 2.397389,-3.05585 2.107608,-12.592278 -0.948419,-7.349881 0.316136,-13.90946 -1.554356,-1.159119 4.504996,-21.153968 0.316147,-4.557454 0.948418,-3.345646 -2.160295,2.924147 -4.847487,4.135956 1.264565,1.080091 -3.42485,2.397275 -3.29313,2.766082 -0.68497,1.923087 -1.791461,-0.57956 -1.001116,1.633307 0.07905,4.87358 L 9.168636,68.889233 4.2948053,70.180074 1.5812697,67.466679 0.13228831,66.070468 2.9775532,60.801731 6.5868297,58.825953 6.692205,57.245334 8.0884885,56.059869 v -1.923064 l 2.9769935,-7.824067 2.897953,0.553216 7.323918,-8.166536 v -0.500531 l 3.872714,-4.689172 -0.263448,-2.028463 2.766234,-5.1897 5.163622,-1.448903 0.158063,-1.844055 -0.922074,-2.291899 0.948428,-5.95367 -0.658626,-4.294017 -4.926518,-3.9515498 z"/>
|
||||
</svg>
|
||||
{{#if trefferzonen}}
|
||||
<span class="wound kopf">{{derived.wunden.kopf}}</span>
|
||||
<span class="wound brust">{{derived.wunden.brust}}</span>
|
||||
<span class="wound armlinks">{{derived.wunden.armlinks}}</span>
|
||||
<span class="wound armrechts">{{derived.wunden.armrechts}}</span>
|
||||
<span class="wound bauch">{{derived.wunden.bauch}}</span>
|
||||
<span class="wound beinlinks">{{derived.wunden.beinlinks}}</span>
|
||||
<span class="wound beinrechts">{{derived.wunden.beinrechts}}</span>
|
||||
{{/if}}
|
||||
{{#if zonenruestung}}
|
||||
<span class="armor kopf">{{derived.rs.kopf}}</span>
|
||||
<span class="armor brust">{{derived.rs.brust}}</span>
|
||||
<span class="armor armlinks">{{derived.rs.armlinks}}</span>
|
||||
<span class="armor armrechts">{{derived.rs.armrechts}}</span>
|
||||
<span class="armor bauch">{{derived.rs.bauch}}</span>
|
||||
<span class="armor beinlinks">{{derived.rs.beinlinks}}</span>
|
||||
<span class="armor beinrechts">{{derived.rs.beinrechts}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
<div class="tab skills" data-group="primary" data-tab="skills">
|
||||
<div class="talent-group">
|
||||
<h2>Kampftalente</h2>
|
||||
<ul>
|
||||
{{#each skills.Kampf}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-weaponskill-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Körperliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Körperlich}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Gesellschaftliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Gesellschaft}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Natur Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Natur}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Wissenstalente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Wissen}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Schriften & Sprachen</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Schriften}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-language-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each skills.Sprachen}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-language-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Handwerkliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Handwerk}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="tab backpack" data-group="primary" data-tab="backpack">
|
||||
|
||||
<div class="capacity">
|
||||
<label>Tragkraft: {{this.carryingweight}} von maximal {{this.maxcarryingcapacity}} Stein</label>
|
||||
<div class="resource">
|
||||
<span class="fill" style="width: {{this.carryingpercentage}}%"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="inventory">
|
||||
<h3>Inventar</h3>
|
||||
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-equipment-button.hbs" equipments}}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="paperdoll">
|
||||
<h3>Ausrüstung</h3>
|
||||
{{!-- Set Tab Navigation --}}
|
||||
<nav class="sheet-tabs paperdoll-tabs tabs" data-group="secondary">
|
||||
{{#each this.sets}}
|
||||
<a class="item" data-tab="{{this.tab}}">{{this.name}}</a>
|
||||
{{/each}}
|
||||
</nav>
|
||||
{{!-- Set Body --}}
|
||||
<section class="sheet-body paperdoll-sets">
|
||||
{{#each this.sets}}
|
||||
<div class="tab {{this.tab}}" data-group="secondary" data-tab="{{this.tab}}">
|
||||
|
||||
<div class="paperdoll">
|
||||
<svg
|
||||
width="280"
|
||||
height="530"
|
||||
viewBox="0 0 70 140"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="paperdoll-image"
|
||||
d="m 22.868053,0.6591628 0.658626,-0.52687462 6.270125,4.42573652 3.97809,0.5795595 0.605938,-4.58379633 11.828915,2.02846193 0.07905,2.3182421 3.556578,-0.9220267 6.691636,3.7671414 2.292014,3.7671454 -4.030787,0.05268 0.89573,3.951549 -1.106491,2.23921 -3.345818,-0.632247 0.869387,4.241332 v 2.476303 l 1.422627,-0.02634 0.500563,1.343527 h 3.29312 l 1.975878,3.424677 0.05267,2.818774 2.371046,6.243447 6.665292,14.72611 1.949534,0.658592 0.34249,4.794545 -0.289802,1.606966 0.922074,1.765023 -0.395167,2.897805 2.002222,6.743979 1.027449,1.949433 -0.737657,5.031644 -3.925413,4.399394 -0.922074,-0.553222 0.579595,-1.844054 -1.896847,1.264499 -0.526897,-0.790314 1.475315,-1.369869 -1.36994,-5.690236 -0.974762,4.083275 -1.053803,-0.342473 -0.790345,-3.108552 0.579584,-2.370933 0.526907,-0.658592 -0.263459,-0.500527 0.289803,-1.554277 0.948418,-2.739737 -0.447865,-2.212876 -1.106492,-0.974715 -1.554356,-1.501588 -2.423744,-4.030581 0.711314,-1.264496 -3.793683,-5.532171 -0.02638,-1.554275 -1.475326,-1.554276 -1.185522,-3.213929 -0.869387,-0.763967 -3.029682,4.820892 -1.159179,0.447843 0.447865,0.974716 -0.790345,0.974716 -0.21076,2.002118 0.368823,1.343527 -0.289792,1.923087 1.71243,2.397274 0.02638,1.791371 1.23821,1.975774 2.950651,13.013779 -0.421522,0.684934 2.713536,14.278264 7.113157,18.150786 1.132835,0.0791 3.767339,9.19394 -2.344701,0.73762 1.92318,7.42891 -1.738774,3.87253 1.001116,3.79348 2.687192,4.10961 -0.68497,2.44996 -10.643392,0.079 -0.684969,-8.42997 1.106491,-1.42257 -1.659742,-1.47524 0.07905,-2.00211 -1.949535,-2.18653 -0.55325,-3.84617 -1.422628,0.15805 -0.500553,-7.71869 1.02745,-1.05374 -2.133941,-4.21499 0.421521,-2.42362 -4.32059,-6.322483 -1.317252,-4.056921 -9.247098,-17.702946 -0.395178,0.210749 -3.609266,18.783038 -1.975878,3.635422 -0.289802,10.721871 0.764011,-0.0264 2.397389,7.71869 -4.663069,0.97472 -0.737658,6.74398 -2.212983,1.92309 1.422638,6.74397 -1.896847,3.10855 -4.504997,0.34248 -0.105385,-0.86934 -3.714641,1.2118 -8.140618,0.21075 -0.131729,-2.00212 8.483107,-5.47948 0.711314,-1.89674 -0.316146,-2.18653 0.869386,-0.71128 -1.027449,-1.36986 1.659732,-6.55958 -2.502775,-0.76396 1.317252,-3.42469 -0.289792,-1.2645 2.397389,-3.05585 2.107608,-12.592278 -0.948419,-7.349881 0.316136,-13.90946 -1.554356,-1.159119 4.504996,-21.153968 0.316147,-4.557454 0.948418,-3.345646 -2.160295,2.924147 -4.847487,4.135956 1.264565,1.080091 -3.42485,2.397275 -3.29313,2.766082 -0.68497,1.923087 -1.791461,-0.57956 -1.001116,1.633307 0.07905,4.87358 L 9.168636,68.889233 4.2948053,70.180074 1.5812697,67.466679 0.13228831,66.070468 2.9775532,60.801731 6.5868297,58.825953 6.692205,57.245334 8.0884885,56.059869 v -1.923064 l 2.9769935,-7.824067 2.897953,0.553216 7.323918,-8.166536 v -0.500531 l 3.872714,-4.689172 -0.263448,-2.028463 2.766234,-5.1897 5.163622,-1.448903 0.158063,-1.844055 -0.922074,-2.291899 0.948428,-5.95367 -0.658626,-4.294017 -4.926518,-3.9515498 z"/>
|
||||
</svg>
|
||||
|
||||
{{#each this.slots}}
|
||||
<div class="equipped {{this.target}}" data-set-id="{{../index}}"
|
||||
data-target="{{this.target}}" data-actor="{{../../actor.id}}"><img
|
||||
src="{{this.icon}}"/></div>
|
||||
{{/each}}
|
||||
{{#if (eq ../actor.system.setEquipped @index)}}
|
||||
<button disabled="disabled">Ausgerüstet</button>
|
||||
{{else}}
|
||||
<button data-operation="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{{#if this.hasSpells}}
|
||||
<div class="tab spells" data-group="primary" data-tab="spells">
|
||||
|
||||
<div class="tab-resources">
|
||||
|
||||
<div class="astralpoints">
|
||||
<label>AsP:</label>
|
||||
<input type="number" name="system.asp.aktuell" value="{{system.asp.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{derived.asp.max}}"/>
|
||||
</div>
|
||||
<div class="mr">
|
||||
<label>MR: </label>
|
||||
<input type="number" disabled value="{{derived.mr.aktuell}}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="die-column"></th>
|
||||
<th>Zaubername</th>
|
||||
<th colspan="3">Probe</th>
|
||||
<th>ZfW</th>
|
||||
<th>Merkmale</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each this.spells}}
|
||||
<tr>
|
||||
<td class="spell rollable">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}" data-operation="openActorSheet">
|
||||
<span>{{this.name}}</span></td>
|
||||
<td>{{this.eigenschaft1}}</td>
|
||||
<td>{{this.eigenschaft2}}</td>
|
||||
<td>{{this.eigenschaft3}}</td>
|
||||
<td>{{this.zfw}}</td>
|
||||
<td>
|
||||
<ul class="merkmal-list">{{#each this.merkmal}}
|
||||
<li>{{this}}</li>{{/each}}</ul>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if this.hasLiturgies}}
|
||||
<div class="tab liturgies" data-group="primary" data-tab="liturgies">
|
||||
|
||||
<div class="tab-resources">
|
||||
|
||||
<div class="karmapoints">
|
||||
<label>KaP:</label>
|
||||
<input type="number" name="system.kap.aktuell" value="{{system.kap.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{derived.kap.max}}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#each this.liturgies}}
|
||||
<table class="{{this.deity}}">
|
||||
<thead class="liturgy-header">
|
||||
<tr class="liturgy-header">
|
||||
<th style="width: 0"></th>
|
||||
<th class="banner-top" style="width: 90px"><img
|
||||
src="systems/DSA_4-1/assets/deities/{{this.deity}}.png"/></th>
|
||||
<th colspan="2">Liturgiekenntnis: {{this.lkp}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#if this.countO}}
|
||||
<tr>
|
||||
<th rowspan="{{this.total}}" class="background"></th>
|
||||
<th class="banner-mid" rowspan="{{countO}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.count0}}0{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.O}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}" data-operation="openActorSheet">
|
||||
{{this.name}}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countI}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countI}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countI}}I{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.I}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}" data-operation="openActorSheet">
|
||||
{{this.name}}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countII}}II{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.II}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countIII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countIII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countIII}}III{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.III}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countIV}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countIV}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countIV}}IV{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.IV}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}{{/if}}
|
||||
{{#if this.countV}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countV}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countV}}V{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.V}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countVI}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countVI}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countVI}}VI{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.VI}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}{{#if this.countVII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countVII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countVII}}VII{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.VII}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}{{#if this.countVIII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countVIII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countVIII}}VIII{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.VIII}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{/each}}
|
||||
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="tab effects" data-group="primary" data-tab="effects">
|
||||
<table class="effects">
|
||||
<thead>
|
||||
<th>Effekt</th>
|
||||
<th>Veränderungen</th>
|
||||
<th></th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each this.effects}}
|
||||
<tr>
|
||||
<td>
|
||||
{{this.name}}
|
||||
</td>
|
||||
<td>{{this.conditions}}</td>
|
||||
<td>{{#if ../isGM}}
|
||||
<button data-operation="removeEffect" data-actor-id="{{actor}}" data-effect-id="{{id}}"><i
|
||||
class="fa-solid fa-trash"></i></button>{{/if}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
<div>
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
<header class="sheet-header">
|
||||
{{!-- Header stuff goes here --}}
|
||||
<div class="header-fields">
|
||||
<div class="attributes">
|
||||
{{#each attributes}}
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-attribute-button.hbs" this}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="head-data">
|
||||
<h1 class="charname {{#if owner}}secret-identity{{/if}}" {{#if owner}}title="{{originalName}}"{{/if}} ><input
|
||||
name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{name}}"/>
|
||||
<h2 class="sidebar-element header">Kampf Daten</h2>
|
||||
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>LeP: {{this.lep}}</label><span class="resource-fill lep" style="width: {{this.lepper}}%"></span>
|
||||
</div>
|
||||
|
||||
{{#if ausdauer}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>AuP: {{this.aup}}</label><span class="resource-fill aup" style="width: {{this.aupper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if this.hasLiturgies}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>KE: {{this.ke}}</label><span class="resource-fill kap" style="width: {{this.keper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if this.hasSpells}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>AsP: {{this.asp}}</label><span class="resource-fill asp" style="width: {{this.aspper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#each attacks}}
|
||||
<div>
|
||||
<h3>{{this.using}} ({{this.name}})</h3>
|
||||
<div class="combined">
|
||||
{{#if this.at}}
|
||||
<div class="sidebar-element rollable" data-roll="{{this.atroll}}" data-label="Attacke">
|
||||
<label>AT</label>
|
||||
<div class="formula">{{this.at}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if this.pa}}
|
||||
<div class="sidebar-element rollable" data-roll="{{this.paroll}}" data-label="Parade">
|
||||
<label>PA</label>
|
||||
<div class="formula">{{this.pa}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if this.at}}
|
||||
<div class="sidebar-element rollable" data-roll="{{this.tproll}}" data-label="Schaden">
|
||||
<label>Schaden</label>
|
||||
<div class="formula">{{this.tp}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if this.ini}}
|
||||
<div class="sidebar-element rollable" data-label="Initiative" data-roll="{{this.iniroll}}"><label>Initiative</label>
|
||||
<div class="formula">{{this.ini}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
<h2 class="sidebar-element header">Favouriten</h2>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs{{#if verticalTabs}} vertical{{/if}}"
|
||||
aria-roledescription="{{localize "SHEETS.FormNavLabel"}}">
|
||||
{{#each tabs as |tab|}}
|
||||
<a data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}"
|
||||
{{#if tab.cssClass}}class="{{tab.cssClass}}"{{/if}}
|
||||
{{#if tab.tooltip}}data-tooltip="{{tab.tooltip}}"{{/if}}>
|
||||
{{#if tab.icon}}<i class="{{tab.icon}}" inert></i>{{/if}}
|
||||
{{#if tab.label}}<span>{{localize tab.label}}</span>{{/if}}
|
||||
</a>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
<section class="tab {{tabs.attributes.id}} {{tabs.attributes.cssClass}}"
|
||||
data-tab="{{tabs.attributes.id}}"
|
||||
data-group="{{tabs.attributes.group}}">
|
||||
|
||||
<div class="attributes-overview">
|
||||
<div class="attribute">
|
||||
<label>Mut</label>
|
||||
<input value="{{this.system.attribute.mu.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.mu}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Klugheit</label>
|
||||
<input value="{{this.system.attribute.kl.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.kl}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Intuition</label>
|
||||
<input value="{{this.system.attribute.in.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.in}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Charisma</label>
|
||||
<input value="{{this.system.attribute.ch.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ch}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Fingerfertigkeit</label>
|
||||
<input value="{{this.system.attribute.ff.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ff}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Geschicklichkeit</label>
|
||||
<input value="{{this.system.attribute.ge.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ge}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Konstitution</label>
|
||||
<input value="{{this.system.attribute.ko.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.ko}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Körperkraft</label>
|
||||
<input value="{{this.system.attribute.kk.aktuell}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.kk}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>Sozialstatus</label>
|
||||
<input value="{{this.system.attribute.so.aktuell}}">
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>AT-Basis</label>
|
||||
<input value="{{derived.at.basis}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.at}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>PA-Basis</label>
|
||||
<input value="{{derived.pa.basis}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.pa}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attribute">
|
||||
<label>FK-Basis</label>
|
||||
<input value="{{derived.fk.basis}}">
|
||||
<div class="mods">
|
||||
{{#each this.mods.fk}}
|
||||
<span class="mod" title="{{this.name}}">{{this.value}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="resources-overview">
|
||||
<div class="attribute">
|
||||
<label>Lebensenergie</label>
|
||||
<input value="{{actor.system.lep.aktuell}}">
|
||||
<input value="{{actor.system.lep.max}}">
|
||||
</div>
|
||||
{{#if ausdauer}}
|
||||
<div class="attribute">
|
||||
<label>Ausdauer</label>
|
||||
<input value="{{actor.system.aup.aktuell}}">
|
||||
<input value="{{actor.system.aup.max}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if hasSpells}}
|
||||
<div class="attribute">
|
||||
<label>Astralenergie</label>
|
||||
<input value="{{actor.system.asp.aktuell}}">
|
||||
<input value="{{actor.system.asp.max}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if hasLiturgies}}
|
||||
<div class="attribute">
|
||||
<label>Karmaenergie</label>
|
||||
<input value="{{actor.system.kap.aktuell}}">
|
||||
<input value="{{actor.system.kap.max}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="advantages">
|
||||
<h3>Vor- und Nachteile</h3>
|
||||
<ul>
|
||||
{{#each this.advantages}}
|
||||
<li>{{> "systems/DSA_4-1/templates/ui/partial-advantage-button.hbs" this}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="special-abilities">
|
||||
<h3>Sonderfertigkeiten</h3>
|
||||
<ul>
|
||||
{{#each this.specialAbilities}}
|
||||
<li>{{> "systems/DSA_4-1/templates/ui/partial-sf-button.hbs" this}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
<section class="tab {{#if (or trefferzonen zonenruestung)}}zones{{/if}} {{tabs.combat.id}} {{tabs.combat.cssClass}}"
|
||||
data-tab="{{tabs.combat.id}}"
|
||||
data-group="{{tabs.combat.group}}">
|
||||
|
||||
<div class="tab-resources">
|
||||
|
||||
<div class="initiaitve">
|
||||
<label>Initiative:</label>
|
||||
<input type="number" name="system.attribute.ini.wuerfel" value="{{this.inidice}}"/>
|
||||
<span class="inline">w6</span>
|
||||
<input type="number" name="system.attribute.ini.aktuell" value="{{this.inivalue}}"/>
|
||||
</div>
|
||||
<div class="lebensenergie">
|
||||
<label>Lebensenergie:</label>
|
||||
<input type="number" name="system.lep.aktuell" value="{{actor.system.lep.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{actor.system.lep.max}}"/>
|
||||
</div>
|
||||
{{#if ausdauer}}
|
||||
<div class="ausdauer">
|
||||
<label>Ausdauerpunkte:</label>
|
||||
<input type="number" name="system.aup.aktuell" value="{{actor.system.aup.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{actor.system.aup.max}}"/>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (not zonenruestung)}}
|
||||
<div class="armor">
|
||||
<label>RS:</label>
|
||||
{{derived.rs}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="handicap">
|
||||
<label>BE:</label>
|
||||
{{derived.be}}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
{{#if (not trefferzonen)}}
|
||||
<div class="wounds">
|
||||
<label data-operation="reduceWounds" data-value="0">Wunden: {{this.wounds}} / {{this.maxWounds}}</label>
|
||||
{{#each this.woundsFilled}}
|
||||
{{#if this}}
|
||||
<div class="filled-segment" data-operation="reduceWounds"
|
||||
data-value="{{@index}}">{{@index}}</div>
|
||||
{{else}}
|
||||
<div class="empty-segment" data-operation="addWounds" data-value="{{@index}}">{{@index}}</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
|
||||
<div class="actions">
|
||||
<h3>Aktionen im Kampf</h3>
|
||||
{{#each this.actions}}
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-action-button.hbs" this}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
{{#if (or trefferzonen zonenruestung)}}
|
||||
<div class="paperdoll">
|
||||
<h3>{{#if (and trefferzonen zonenruestung)}}Trefferzonen{{/if}}{{#if
|
||||
(and trefferzonen (not zonenruestung))}}Wunden{{/if}}{{#if
|
||||
(and (not trefferzonen) zonenruestung)}}Rüstung{{/if}}</h3>
|
||||
<div>
|
||||
<svg
|
||||
width="280"
|
||||
height="530"
|
||||
viewBox="0 0 70 140"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="paperdoll-image"
|
||||
d="m 22.868053,0.6591628 0.658626,-0.52687462 6.270125,4.42573652 3.97809,0.5795595 0.605938,-4.58379633 11.828915,2.02846193 0.07905,2.3182421 3.556578,-0.9220267 6.691636,3.7671414 2.292014,3.7671454 -4.030787,0.05268 0.89573,3.951549 -1.106491,2.23921 -3.345818,-0.632247 0.869387,4.241332 v 2.476303 l 1.422627,-0.02634 0.500563,1.343527 h 3.29312 l 1.975878,3.424677 0.05267,2.818774 2.371046,6.243447 6.665292,14.72611 1.949534,0.658592 0.34249,4.794545 -0.289802,1.606966 0.922074,1.765023 -0.395167,2.897805 2.002222,6.743979 1.027449,1.949433 -0.737657,5.031644 -3.925413,4.399394 -0.922074,-0.553222 0.579595,-1.844054 -1.896847,1.264499 -0.526897,-0.790314 1.475315,-1.369869 -1.36994,-5.690236 -0.974762,4.083275 -1.053803,-0.342473 -0.790345,-3.108552 0.579584,-2.370933 0.526907,-0.658592 -0.263459,-0.500527 0.289803,-1.554277 0.948418,-2.739737 -0.447865,-2.212876 -1.106492,-0.974715 -1.554356,-1.501588 -2.423744,-4.030581 0.711314,-1.264496 -3.793683,-5.532171 -0.02638,-1.554275 -1.475326,-1.554276 -1.185522,-3.213929 -0.869387,-0.763967 -3.029682,4.820892 -1.159179,0.447843 0.447865,0.974716 -0.790345,0.974716 -0.21076,2.002118 0.368823,1.343527 -0.289792,1.923087 1.71243,2.397274 0.02638,1.791371 1.23821,1.975774 2.950651,13.013779 -0.421522,0.684934 2.713536,14.278264 7.113157,18.150786 1.132835,0.0791 3.767339,9.19394 -2.344701,0.73762 1.92318,7.42891 -1.738774,3.87253 1.001116,3.79348 2.687192,4.10961 -0.68497,2.44996 -10.643392,0.079 -0.684969,-8.42997 1.106491,-1.42257 -1.659742,-1.47524 0.07905,-2.00211 -1.949535,-2.18653 -0.55325,-3.84617 -1.422628,0.15805 -0.500553,-7.71869 1.02745,-1.05374 -2.133941,-4.21499 0.421521,-2.42362 -4.32059,-6.322483 -1.317252,-4.056921 -9.247098,-17.702946 -0.395178,0.210749 -3.609266,18.783038 -1.975878,3.635422 -0.289802,10.721871 0.764011,-0.0264 2.397389,7.71869 -4.663069,0.97472 -0.737658,6.74398 -2.212983,1.92309 1.422638,6.74397 -1.896847,3.10855 -4.504997,0.34248 -0.105385,-0.86934 -3.714641,1.2118 -8.140618,0.21075 -0.131729,-2.00212 8.483107,-5.47948 0.711314,-1.89674 -0.316146,-2.18653 0.869386,-0.71128 -1.027449,-1.36986 1.659732,-6.55958 -2.502775,-0.76396 1.317252,-3.42469 -0.289792,-1.2645 2.397389,-3.05585 2.107608,-12.592278 -0.948419,-7.349881 0.316136,-13.90946 -1.554356,-1.159119 4.504996,-21.153968 0.316147,-4.557454 0.948418,-3.345646 -2.160295,2.924147 -4.847487,4.135956 1.264565,1.080091 -3.42485,2.397275 -3.29313,2.766082 -0.68497,1.923087 -1.791461,-0.57956 -1.001116,1.633307 0.07905,4.87358 L 9.168636,68.889233 4.2948053,70.180074 1.5812697,67.466679 0.13228831,66.070468 2.9775532,60.801731 6.5868297,58.825953 6.692205,57.245334 8.0884885,56.059869 v -1.923064 l 2.9769935,-7.824067 2.897953,0.553216 7.323918,-8.166536 v -0.500531 l 3.872714,-4.689172 -0.263448,-2.028463 2.766234,-5.1897 5.163622,-1.448903 0.158063,-1.844055 -0.922074,-2.291899 0.948428,-5.95367 -0.658626,-4.294017 -4.926518,-3.9515498 z"/>
|
||||
</svg>
|
||||
{{#if trefferzonen}}
|
||||
<span class="wound kopf">{{derived.wunden.kopf}}</span>
|
||||
<span class="wound brust">{{derived.wunden.brust}}</span>
|
||||
<span class="wound armlinks">{{derived.wunden.armlinks}}</span>
|
||||
<span class="wound armrechts">{{derived.wunden.armrechts}}</span>
|
||||
<span class="wound bauch">{{derived.wunden.bauch}}</span>
|
||||
<span class="wound beinlinks">{{derived.wunden.beinlinks}}</span>
|
||||
<span class="wound beinrechts">{{derived.wunden.beinrechts}}</span>
|
||||
{{/if}}
|
||||
{{#if zonenruestung}}
|
||||
<span class="armor kopf">{{derived.rs.kopf}}</span>
|
||||
<span class="armor brust">{{derived.rs.brust}}</span>
|
||||
<span class="armor armlinks">{{derived.rs.armlinks}}</span>
|
||||
<span class="armor armrechts">{{derived.rs.armrechts}}</span>
|
||||
<span class="armor bauch">{{derived.rs.bauch}}</span>
|
||||
<span class="armor beinlinks">{{derived.rs.beinlinks}}</span>
|
||||
<span class="armor beinrechts">{{derived.rs.beinrechts}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<section class="tab {{tabs.effects.id}} {{tabs.effects.cssClass}}"
|
||||
data-tab="{{tabs.effects.id}}"
|
||||
data-group="{{tabs.effects.group}}">
|
||||
|
||||
<table class="effects">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Effekt</th>
|
||||
<th>Veränderungen</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each this.effects}}
|
||||
<tr>
|
||||
<td>
|
||||
{{this.name}}
|
||||
</td>
|
||||
<td>{{this.conditions}}</td>
|
||||
<td>{{#if ../isGM}}
|
||||
<button data-operation="removeEffect" data-actor-id="{{actor}}" data-effect-id="{{id}}"><i
|
||||
class="fa-solid fa-trash"></i></button>{{/if}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
<section class="tab {{tabs.skills.id}} {{tabs.skills.cssClass}}"
|
||||
data-tab="{{tabs.skills.id}}"
|
||||
data-group="{{tabs.skills.group}}">
|
||||
<div class="talent-group">
|
||||
<h2>Kampftalente</h2>
|
||||
<ul>
|
||||
{{#each skills.Kampf}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-weaponskill-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Körperliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Körperlich}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Gesellschaftliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Gesellschaft}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Natur Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Natur}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Wissenstalente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Wissen}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Schriften & Sprachen</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Schriften}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-language-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each skills.Sprachen}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-language-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Handwerkliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Handwerk}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
<section class="tab {{tabs.liturgies.id}} {{tabs.liturgies.cssClass}}"
|
||||
data-tab="{{tabs.liturgies.id}}"
|
||||
data-group="{{tabs.liturgies.group}}">
|
||||
|
||||
<div class="tab-resources">
|
||||
|
||||
<div class="karmapoints">
|
||||
<label>KaP:</label>
|
||||
<input type="number" name="system.kap.aktuell" value="{{system.kap.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{derived.kap.max}}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#each this.liturgies}}
|
||||
<table class="{{this.deity}}">
|
||||
<thead class="liturgy-header">
|
||||
<tr class="liturgy-header">
|
||||
<th style="width: 0"></th>
|
||||
<th class="banner-top" style="width: 90px"><img
|
||||
src="systems/DSA_4-1/assets/deities/{{this.deity}}.png"/></th>
|
||||
<th colspan="2">Liturgiekenntnis: {{this.lkp}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#if this.countO}}
|
||||
<tr>
|
||||
<th rowspan="{{this.total}}" class="background"></th>
|
||||
<th class="banner-mid" rowspan="{{countO}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.count0}}0{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.O}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}" data-operation="openActorSheet">
|
||||
{{this.name}}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countI}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countI}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countI}}I{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.I}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}" data-operation="openActorSheet">
|
||||
{{this.name}}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countII}}II{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.II}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countIII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countIII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countIII}}III{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.III}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countIV}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countIV}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countIV}}IV{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.IV}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}{{/if}}
|
||||
{{#if this.countV}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countV}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countV}}V{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.V}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if this.countVI}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countVI}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countVI}}VI{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.VI}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}{{#if this.countVII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countVII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countVII}}VII{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.VII}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}{{#if this.countVIII}}
|
||||
<tr>
|
||||
<th class="banner-mid" rowspan="{{countVIII}}">
|
||||
<div>
|
||||
<div class="rank-label">{{#if this.countVIII}}VIII{{/if}}</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{#each this.VIII}}
|
||||
<tr>
|
||||
<td class="liturgy rollable" data-id="{{this.id}}" data-rank="{{this.rank}}"
|
||||
data-lkp="{{../lkp}}" data-deity="{{this.deity}}">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}"
|
||||
data-operation="openActorSheet">{{this.name}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{/each}}
|
||||
|
||||
|
||||
</section>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<section class="tab {{tabs.meta.id}} {{tabs.meta.cssClass}}"
|
||||
data-tab="{{tabs.meta.id}}"
|
||||
data-group="{{tabs.meta.group}}">
|
||||
|
||||
<div class="meta-data">
|
||||
|
||||
<div><label>Spezies
|
||||
<input type="text" name="system.meta.spezies" value="{{system.meta.spezies}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div><label for="system.meta.kultur">Kultur</label>
|
||||
<input type="text" name="system.meta.kultur"
|
||||
value="{{system.meta.kultur}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.profession">Profession</label>
|
||||
<input type="text" name="system.meta.profession"
|
||||
value="{{system.meta.profession}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.geschlecht">Geschlecht</label>
|
||||
<input type="text" name="system.meta.geschlecht"
|
||||
value="{{system.meta.geschlecht}}"/>
|
||||
</div>
|
||||
<div class="double"><label>Sozialstatus</label>
|
||||
<input type="text" name="system.meta.stand" value="{{system.meta.stand}}"/>
|
||||
<input type="text" name="system.meta.titel" value="{{system.meta.titel}}"/>
|
||||
</div>
|
||||
|
||||
<div><label for="system.meta.groesse">Größe</label>
|
||||
<input type="number" name="system.meta.groesse" value="{{system.meta.groesse}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.gewicht">Gewicht</label>
|
||||
<input type="number" name="system.meta.gewicht" value="{{system.meta.gewicht}}"/>
|
||||
</div>
|
||||
<div class="double"><label>Alter</label>
|
||||
<input type="number" name="system.meta.groesse" value="{{system.meta.alter}}"/>
|
||||
<input type="text" name="system.meta.geburtsdatum" value="{{system.meta.geburtstag}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="meta-data html">
|
||||
<div><label>Aussehen</label>
|
||||
{{editor system.meta.aussehen target="system.meta.aussehen" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
<div><label>Familie</label>
|
||||
{{editor system.meta.familie target="system.meta.familie" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
<section class="tab {{tabs.skills.id}} {{tabs.skills.cssClass}}"
|
||||
data-tab="{{tabs.skills.id}}"
|
||||
data-group="{{tabs.skills.group}}">
|
||||
<div class="talent-group">
|
||||
<h2>Kampftalente</h2>
|
||||
<ul>
|
||||
{{#each skills.Kampf}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-weaponskill-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Körperliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Körperlich}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Gesellschaftliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Gesellschaft}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Natur Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Natur}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Wissenstalente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Wissen}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Schriften & Sprachen</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Schriften}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-language-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each skills.Sprachen}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-language-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="talent-group">
|
||||
<h2>Handwerkliche Talente</h2>
|
||||
<ul>
|
||||
<li>
|
||||
{{#each skills.Handwerk}}
|
||||
<li>
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-rollable-button.hbs" this}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<section class="tab {{tabs.spells.id}} {{tabs.spells.cssClass}}"
|
||||
data-tab="{{tabs.spells.id}}"
|
||||
data-group="{{tabs.spells.group}}">
|
||||
|
||||
<div class="tab-resources">
|
||||
|
||||
<div class="astralpoints">
|
||||
<label>AsP:</label>
|
||||
<input type="number" name="system.asp.aktuell" value="{{system.asp.aktuell}}"/>
|
||||
<span class="inline">von</span>
|
||||
<input type="number" disabled value="{{derived.asp.max}}"/>
|
||||
</div>
|
||||
<div class="mr">
|
||||
<label>MR: </label>
|
||||
<input type="number" disabled value="{{derived.mr.aktuell}}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="die-column"></th>
|
||||
<th>Zaubername</th>
|
||||
<th colspan="3">Probe</th>
|
||||
<th>ZfW</th>
|
||||
<th>Merkmale</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each this.spells}}
|
||||
<tr>
|
||||
<td class="spell rollable">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
</td>
|
||||
<td class="clickable" data-id="{{this.id}}" data-operation="openActorSheet">
|
||||
<span>{{this.name}}</span></td>
|
||||
<td>{{this.eigenschaft1}}</td>
|
||||
<td>{{this.eigenschaft2}}</td>
|
||||
<td>{{this.eigenschaft3}}</td>
|
||||
<td>{{this.zfw}}</td>
|
||||
<td>
|
||||
<ul class="merkmal-list">{{#each this.merkmal}}
|
||||
<li>{{this}}</li>{{/each}}</ul>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
Loading…
Reference in New Issue