Compare commits
No commits in common. "main" and "0.9.2" have entirely different histories.
|
|
@ -35,7 +35,6 @@ export class CombatActionDialog extends HandlebarsApplicationMixin(ApplicationV2
|
|||
selectTarget: CombatActionDialog.#onSelectTarget,
|
||||
selectWeaponAndSkill: CombatActionDialog.#onSelectWeaponAndSkill,
|
||||
selectManeuver: CombatActionDialog.#onSelectManeuver,
|
||||
attack: CombatActionDialog.#onAttack
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -166,12 +165,6 @@ export class CombatActionDialog extends HandlebarsApplicationMixin(ApplicationV2
|
|||
event.preventDefault()
|
||||
|
||||
CombatActionDialog._instance.#processOnSubmitForm(event, form, formData)
|
||||
this.close()
|
||||
}
|
||||
|
||||
static async #onAttack(event, target) {
|
||||
CombatActionDialog._instance.#processOnSubmitForm(event, this.element, new FormData(this.element))
|
||||
this.close()
|
||||
}
|
||||
|
||||
_configureRenderOptions(options) {
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ export class DefenseActionDialog extends HandlebarsApplicationMixin(ApplicationV
|
|||
actions: {
|
||||
selectWeaponAndSkill: DefenseActionDialog.#onSelectWeaponAndSkill,
|
||||
selectManeuver: DefenseActionDialog.#onSelectManeuver,
|
||||
defend: DefenseActionDialog.#onDefend,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -103,11 +102,6 @@ export class DefenseActionDialog extends HandlebarsApplicationMixin(ApplicationV
|
|||
targetNumber: this._targetNumber,
|
||||
modDescription: maneuver?.modDescription?.replace("{}", "" + this._mod) ?? ""
|
||||
})
|
||||
this.close()
|
||||
}
|
||||
|
||||
static async #onDefend(event, target) {
|
||||
this.element.submit()
|
||||
}
|
||||
|
||||
_configureRenderOptions(options) {
|
||||
|
|
|
|||
|
|
@ -1,61 +0,0 @@
|
|||
const {
|
||||
ApplicationV2,
|
||||
HandlebarsApplicationMixin
|
||||
} = foundry.applications.api
|
||||
|
||||
export class XmlImportReportDialog extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ['dsa41', 'dialog', 'xmlimport'],
|
||||
tag: "form",
|
||||
position: {
|
||||
width: 320,
|
||||
height: 478
|
||||
},
|
||||
window: {
|
||||
resizable: false,
|
||||
},
|
||||
form: {
|
||||
submitOnChange: false,
|
||||
closeOnSubmit: true,
|
||||
},
|
||||
}
|
||||
|
||||
static PARTS = {
|
||||
form: {
|
||||
template: 'systems/DSA_4-1/templates/dialog/xml-import-report.hbs',
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Actor}
|
||||
* @private
|
||||
*/
|
||||
_actor = null
|
||||
_report = null
|
||||
|
||||
constructor(actor, report) {
|
||||
super();
|
||||
this._actor = actor
|
||||
this._report = report
|
||||
}
|
||||
|
||||
|
||||
_configureRenderOptions(options) {
|
||||
super._configureRenderOptions(options)
|
||||
options.window.title = `${this._actor.name} import abgeschlossen`
|
||||
return options
|
||||
}
|
||||
|
||||
async _prepareContext(options) {
|
||||
const context = await super._prepareContext(options)
|
||||
context.report = this._report
|
||||
return context
|
||||
}
|
||||
|
||||
_onRender(context, options) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -56,7 +56,6 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
openCombatAction: CharacterSheet.#openCombatAction,
|
||||
openLiturgyDialog: CharacterSheet.openLiturgyDialog,
|
||||
openSpellDialog: CharacterSheet.openSpellDialog,
|
||||
openSkillDialog: CharacterSheet.openSkillDialog,
|
||||
castSpell: CharacterSheet.castSpell,
|
||||
progressCooldown: CharacterSheet.#progressCooldown,
|
||||
cancelCooldown: CharacterSheet.#cancelCooldown,
|
||||
|
|
@ -74,8 +73,7 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
openStandaloneLiturgies: CharacterSheet.#openStandaloneLiturgies,
|
||||
openStandaloneHealth: CharacterSheet.#openStandaloneHealth,
|
||||
setWounds: CharacterSheet.#setWounds,
|
||||
switchSet: CharacterSheet.#switchSet,
|
||||
openInitiative: CharacterSheet.#openInitiative,
|
||||
switchSet: CharacterSheet.#switchSet
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -159,18 +157,6 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
new AttributeDialog(this.document, target.dataset.itemId).render(true)
|
||||
}
|
||||
|
||||
// TODO: add combat statistics and dialog
|
||||
static async #openInitiative(event, target) {
|
||||
const {formula} = target.dataset
|
||||
const evaluated = await new Roll(formula.replace("w", "d")).evaluate()
|
||||
const context = {
|
||||
formula,
|
||||
initiativeRolled: evaluated.terms[0].results[0].result,
|
||||
total: evaluated.total
|
||||
}
|
||||
await displayRoll(evaluated, game.user, this.document, false, false, 'systems/DSA_4-1/templates/chat/initiative-message.hbs', context)
|
||||
}
|
||||
|
||||
static async #progressCooldown(event, target) {
|
||||
const {cooldownId} = target.dataset
|
||||
const cooldowns = this.document.system.cooldowns
|
||||
|
|
@ -262,18 +248,12 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
this.document.itemTypes["Spell"]?.find(p => p.id === itemId)?.sheet.render(true)
|
||||
}
|
||||
|
||||
static openSkillDialog(event, target) {
|
||||
const {itemId} = target.dataset
|
||||
this.document.itemTypes["Skill"]?.find(p => p.id === itemId)?.sheet.render(true)
|
||||
}
|
||||
|
||||
static castSpell(event, target) {
|
||||
const {itemId} = target.dataset
|
||||
new SpellDialog(this.document, itemId).render(true)
|
||||
}
|
||||
|
||||
static #startResting(event, target) {
|
||||
|
||||
const dialog = new RestingDialog(this.document)
|
||||
|
||||
dialog.render(true)
|
||||
|
|
@ -375,8 +355,6 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
event.preventDefault()
|
||||
|
||||
await this.document.update(formData.object)
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
static async #rollDamage(event, target) {
|
||||
|
|
@ -517,7 +495,7 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
isRanged: true,
|
||||
at: `${this.document.system.fk.aktuell + skill.system.at}`,
|
||||
tp: `${fernkampf.system.rangedAttackDamage}`,
|
||||
ini: `${context.inidice}w6 + ${context.inivalue ?? 0}`,
|
||||
ini: `${context.inidice}w6 + ${context.inivalue + fernkampf.system.iniModifier ?? 0}`,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
@ -739,8 +717,6 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
Liturgies._onRender(context, options, this.element)
|
||||
Skills._onRender(context, options, this.element)
|
||||
Spells._onRender(context, options, this.element)
|
||||
|
||||
this._onPosition(this.position)
|
||||
}
|
||||
|
||||
async _canDragDrop() {
|
||||
|
|
@ -770,7 +746,7 @@ class CharacterSheet extends HandlebarsApplicationMixin(ActorSheetV2) {
|
|||
if (documentClass) {
|
||||
const document = await documentClass.fromDropData(data)
|
||||
|
||||
if (document.type === "Equipment" || document.type === "Advantage" || document.type === "Spell" || document.type === "Liturgy" || document.type === "ActiveEffect" || document.type === "SpecialAbility" || document.type === "Skill") {
|
||||
if (document.type === "Equipment" || document.type === "Advantage" || document.type === "Spell" || document.type === "Liturgy" || document.type === "ActiveEffect" || document.type === "SpecialAbility") {
|
||||
// No duplication by moving items from one actor to another
|
||||
|
||||
if ((targetDocument?.name ?? false) === document.name && targetDocument._id !== document._id && await foundry.applications.api.DialogV2.confirm({
|
||||
|
|
|
|||
|
|
@ -16,11 +16,8 @@ class EquipmentSheet extends HandlebarsApplicationMixin(DocumentSheetV2) {
|
|||
resizable: true,
|
||||
},
|
||||
actions: {
|
||||
editImage: DocumentSheetV2.DEFAULT_OPTIONS.actions.editImage,
|
||||
addToMelee: EquipmentSheet.#addToMelee,
|
||||
removeFromMelee: EquipmentSheet.#removeFromMelee,
|
||||
addToRanged: EquipmentSheet.#addToRanged,
|
||||
removeFromRanged: EquipmentSheet.#removeFromRanged
|
||||
editImage: DocumentSheetV2.DEFAULT_OPTIONS.actions.editImage
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -75,38 +72,6 @@ class EquipmentSheet extends HandlebarsApplicationMixin(DocumentSheetV2) {
|
|||
return options
|
||||
}
|
||||
|
||||
static async #addToMelee(event, target) {
|
||||
const optionId = this.element.querySelector(`[data-target-field="${target.dataset.targetField}"]`).value
|
||||
const meleeSkills = this.document.system.meleeSkills
|
||||
if (optionId.trim() !== '' && !meleeSkills.includes(optionId)) {
|
||||
meleeSkills.push(optionId)
|
||||
await this.document.update({'system.meleeSkills': meleeSkills})
|
||||
}
|
||||
}
|
||||
|
||||
static async #removeFromMelee(event, target) {
|
||||
const {optionId} = target.dataset
|
||||
let meleeSkills = this.document.system.meleeSkills
|
||||
meleeSkills = meleeSkills.toSpliced(meleeSkills.indexOf(optionId), 1)
|
||||
await this.document.update({'system.meleeSkills': meleeSkills})
|
||||
}
|
||||
|
||||
static async #addToRanged(event, target) {
|
||||
const optionId = this.element.querySelector(`[data-target-field="${target.dataset.targetField}"]`).value
|
||||
const rangedSkills = this.document.system.rangedSkills
|
||||
if (optionId.trim() !== '' && !rangedSkills.includes(optionId)) {
|
||||
rangedSkills.push(optionId)
|
||||
await this.document.update({'system.rangedSkills': rangedSkills})
|
||||
}
|
||||
}
|
||||
|
||||
static async #removeFromRanged(event, target) {
|
||||
const {optionId} = target.dataset
|
||||
let rangedSkills = this.document.system.rangedSkills
|
||||
rangedSkills = rangedSkills.toSpliced(rangedSkills.indexOf(optionId), 1)
|
||||
await this.document.update({'system.rangedSkills': rangedSkills})
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle form submission
|
||||
* @this {EquipmentSheet}
|
||||
|
|
@ -212,9 +177,7 @@ class EquipmentSheet extends HandlebarsApplicationMixin(DocumentSheetV2) {
|
|||
"Raufen": "Raufen"
|
||||
},
|
||||
entries: equipmentData.meleeSkills,
|
||||
targetField: "meleeSkills",
|
||||
removeOption: "removeFromMelee",
|
||||
addOption: "addToMelee",
|
||||
targetField: "meleeSkills"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -230,9 +193,7 @@ class EquipmentSheet extends HandlebarsApplicationMixin(DocumentSheetV2) {
|
|||
"Bogen": "Bogen",
|
||||
},
|
||||
entries: equipmentData.rangedSkills,
|
||||
targetField: "rangedSkills",
|
||||
removeOption: "removeFromRanged",
|
||||
addOption: "addToRanged",
|
||||
targetField: "rangedSkills"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ export class SpellSheet extends HandlebarsApplicationMixin(DocumentSheetV2) {
|
|||
|
||||
context.system = spellData.system;
|
||||
context.flags = spellData.flags;
|
||||
context.name = spellData.name;
|
||||
|
||||
return context;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,17 +5,8 @@ import {Culture} from "../documents/culture.mjs";
|
|||
import {Species} from "../documents/species.mjs";
|
||||
import {SpecialAbility} from "../documents/specialAbility.mjs";
|
||||
import {Equipment} from "../documents/equipment.mjs";
|
||||
import {XmlImportReportDialog} from "../dialog/xmlImportReportDialog.mjs";
|
||||
|
||||
export class XmlImport {
|
||||
|
||||
#unknownSkills = []
|
||||
#unknownSpells = []
|
||||
#unknownLiturgies = []
|
||||
#unknownItem = []
|
||||
#unknownSpecialAbilities = []
|
||||
#unknownAdvantage = []
|
||||
|
||||
#months = [
|
||||
"Praios",
|
||||
"Rondra",
|
||||
|
|
@ -97,19 +88,6 @@ export class XmlImport {
|
|||
let characterJson = this.#mapRawJson(actor, rawJson, options)
|
||||
|
||||
actor.update(characterJson)
|
||||
|
||||
const sumOfAllUnknowns = this.#unknownSkills.length + this.#unknownSpells.length + this.#unknownLiturgies.length + this.#unknownItem.length + this.#unknownSpecialAbilities.length + this.#unknownAdvantage.length
|
||||
|
||||
if (sumOfAllUnknowns > 0) {
|
||||
const report = []
|
||||
this.#unknownSkills.forEach( i => report.push({name: i, type: "Talent"}))
|
||||
this.#unknownSpells.forEach( i => report.push({name: i, type: "Zauber"}))
|
||||
this.#unknownLiturgies.forEach( i => report.push({name: i, type: "Liturgie"}))
|
||||
this.#unknownItem.forEach( i => report.push({name: i, type: "Gegenstand"}))
|
||||
this.#unknownSpecialAbilities.forEach( i => report.push({name: i, type: "Sonderfertigkeit"}))
|
||||
|
||||
new XmlImportReportDialog(actor, report).render(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -385,8 +363,6 @@ export class XmlImport {
|
|||
} catch (error) {
|
||||
console.error(`${talentName} not found in items`, error)
|
||||
}
|
||||
} else {
|
||||
this.#unknownSkills.push(talentName.trim())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -407,8 +383,6 @@ export class XmlImport {
|
|||
} catch (error) {
|
||||
console.error(`${advantageName} not found in items`, error)
|
||||
}
|
||||
} else {
|
||||
this.#unknownAdvantage.push(advantageName.trim())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -427,8 +401,6 @@ export class XmlImport {
|
|||
} catch (error) {
|
||||
console.error(`${spell} not found in items`, error)
|
||||
}
|
||||
} else {
|
||||
this.#unknownSpells.push(SCREAMING_NAME.trim())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -446,8 +418,6 @@ export class XmlImport {
|
|||
} catch (error) {
|
||||
console.error(`${liturgy} not found in items`, error)
|
||||
}
|
||||
} else {
|
||||
this.#unknownLiturgies.push(liturgyName.trim())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -574,7 +544,6 @@ export class XmlImport {
|
|||
}
|
||||
})
|
||||
])
|
||||
this.#unknownItem.push(e.modallgemein?.name?.value ?? e.name)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
@ -636,8 +605,6 @@ export class XmlImport {
|
|||
}
|
||||
})
|
||||
])
|
||||
|
||||
this.#unknownSpecialAbilities.push(specialAbility.name)
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
.array-editor {
|
||||
|
||||
.array-entry {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
|
||||
.label {
|
||||
flex: 1 0;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
button.remove {
|
||||
flex: 0 1;
|
||||
}
|
||||
|
||||
&:nth-child(odd) {
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.options {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
|
||||
select {
|
||||
flex: 1 0;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -97,17 +97,10 @@ $rollable_colours_font: (
|
|||
top: 0;
|
||||
height: 32px;
|
||||
padding-left: 24px;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
span.name {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
text-wrap: nowrap;
|
||||
line-height: 32px;
|
||||
vertical-align: middle;
|
||||
word-break: break-all;
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,9 +38,6 @@
|
|||
}
|
||||
|
||||
.rkp {
|
||||
overflow: hidden;
|
||||
padding-bottom: 6px;
|
||||
text-wrap: nowrap;
|
||||
|
||||
.pill {
|
||||
@include buttons.pill-button;
|
||||
|
|
|
|||
|
|
@ -92,136 +92,4 @@
|
|||
|
||||
}
|
||||
|
||||
.tab.melee.active > div {
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 48px auto 48px 48px;
|
||||
gap: 8px;
|
||||
grid-template-areas:
|
||||
"tp tpbonus"
|
||||
"applicableSkills applicableSkills"
|
||||
"initiativeMod breakFactor"
|
||||
"atMod paMod";
|
||||
|
||||
.tp {
|
||||
grid-area: tp;
|
||||
}
|
||||
|
||||
.tp-bonus {
|
||||
grid-area: tpbonus;
|
||||
display: grid;
|
||||
grid-template-rows: 16px 1fr;
|
||||
gap: 4px;
|
||||
grid-template-areas: "label label" "tp kk";
|
||||
label {
|
||||
grid-area: label;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.applicable-skills {
|
||||
grid-area: applicableSkills;
|
||||
|
||||
.array-editor {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
padding-bottom: 24px;
|
||||
|
||||
ul {
|
||||
flex: 1 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.initiative-modifier {
|
||||
grid-area: initiativeMod;
|
||||
}
|
||||
|
||||
.breakfactor {
|
||||
grid-area: breakFactor;
|
||||
}
|
||||
|
||||
.at-mod {
|
||||
grid-area: atMod;
|
||||
}
|
||||
|
||||
.pa-mod {
|
||||
grid-area: paMod;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.tab.armor.active > div {
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
grid-template-rows: 48px auto 48px 48px;
|
||||
gap: 8px;
|
||||
grid-template-areas:
|
||||
"head head chest chest"
|
||||
"back back belly belly"
|
||||
"leftArm leftArm rightArm rightArm"
|
||||
"leftLeg leftLeg rightLeg rightLeg"
|
||||
"totalArmor totalHandicap iniMod breakFactor"
|
||||
"atMod atMod paMod paMod";
|
||||
|
||||
.head {
|
||||
grid-area: head;
|
||||
}
|
||||
|
||||
.chest {
|
||||
grid-area: chest;
|
||||
}
|
||||
|
||||
.back {
|
||||
grid-area: back;
|
||||
}
|
||||
|
||||
.belly {
|
||||
grid-area: belly;
|
||||
}
|
||||
|
||||
.left-arm {
|
||||
grid-area: leftArm;
|
||||
}
|
||||
|
||||
.right-arm {
|
||||
grid-area: rightArm;
|
||||
}
|
||||
|
||||
.left-leg {
|
||||
grid-area: leftLeg;
|
||||
}
|
||||
|
||||
.right-leg {
|
||||
grid-area: rightLeg;
|
||||
}
|
||||
|
||||
.total {
|
||||
grid-area: totalArmor;
|
||||
}
|
||||
|
||||
.handicap {
|
||||
grid-area: totalHandicap;
|
||||
}
|
||||
|
||||
.initiative-modifier {
|
||||
grid-area: iniMod;
|
||||
}
|
||||
|
||||
.break-factor {
|
||||
grid-area: breakFactor;
|
||||
}
|
||||
|
||||
.at-mod {
|
||||
grid-area: atMod;
|
||||
}
|
||||
|
||||
.pa-mod {
|
||||
grid-area: paMod;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
.dsa41.sheet.item.spell {
|
||||
|
||||
.meta-details {
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
grid-template-rows: 52px 52px 1fr;
|
||||
|
||||
.name {
|
||||
grid-row: 1;
|
||||
grid-column: 1/span 3;
|
||||
}
|
||||
|
||||
.zfw {
|
||||
grid-row: 2;
|
||||
grid-column: 2;
|
||||
}
|
||||
|
||||
.probenmod {
|
||||
grid-row: 2;
|
||||
grid-column: 3;
|
||||
}
|
||||
|
||||
.statistics {
|
||||
grid-row: 2;
|
||||
grid-column: 1;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
grid-template-rows: auto 1fr;
|
||||
|
||||
& > label {
|
||||
grid-column: 1/4;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.effect {
|
||||
grid-row: 3;
|
||||
grid-column: 1/span 3;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
|
||||
label {
|
||||
display: block;
|
||||
}
|
||||
|
||||
textarea {
|
||||
display: block;
|
||||
height: 100%;
|
||||
resize: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@
|
|||
grid-template-rows: 32px 1fr 32px;
|
||||
gap: 8px 0;
|
||||
grid-template-areas: "file" "options" "actions";
|
||||
height: 100%;
|
||||
|
||||
.file-input {
|
||||
grid-area: file;
|
||||
|
|
@ -31,7 +30,6 @@
|
|||
|
||||
fieldset {
|
||||
grid-area: options;
|
||||
overflow-x: auto;
|
||||
|
||||
div {
|
||||
|
||||
|
|
|
|||
|
|
@ -54,9 +54,8 @@
|
|||
flex: 0;
|
||||
}
|
||||
|
||||
.editor, textarea {
|
||||
.editor {
|
||||
flex: 1;
|
||||
resize: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,9 +28,8 @@
|
|||
flex: 0;
|
||||
}
|
||||
|
||||
.editor, textarea {
|
||||
.editor {
|
||||
flex: 1;
|
||||
resize: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
@use "molecules/coins";
|
||||
@use "molecules/weights";
|
||||
@use "molecules/fieldset";
|
||||
@use "molecules/array-editor";
|
||||
|
||||
@use "molecules/tabs";
|
||||
@use "molecules/paperdoll";
|
||||
|
|
@ -23,7 +22,6 @@
|
|||
@use "organisms/equipment-sheet";
|
||||
@use "organisms/creature-sheet";
|
||||
@use "organisms/modify-liturgy";
|
||||
@use "organisms/spell-sheet";
|
||||
@use "organisms/skill-sheet";
|
||||
@use "organisms/active-effect-sheet";
|
||||
@use "organisms/advantage-sheet";
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"id": "DSA_4-1",
|
||||
"title": "Das Schwarze Auge 4.1",
|
||||
"description": "Noch ein Spielsystem für Das Schwarze Auge 4.1",
|
||||
"version": "0.10.1",
|
||||
"version": "0.9.1",
|
||||
"compatibility": {
|
||||
"minimum": 12,
|
||||
"verified": 13
|
||||
|
|
@ -364,5 +364,5 @@
|
|||
"primaryTokenAttribute": "lep.aktuell",
|
||||
"url": "https://git.macniel.online/macniel/foundry-dsa41-game",
|
||||
"manifest": "https://git.macniel.online/macniel/foundry-dsa41-game/raw/branch/main/src/system.json",
|
||||
"download": "https://git.macniel.online/macniel/foundry-dsa41-game/releases/download/0.10.1/release.zip"
|
||||
"download": "https://git.macniel.online/macniel/foundry-dsa41-game/releases/download/0.9.1/release.zip"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,18 +45,18 @@
|
|||
|
||||
{{#if this.hasLiturgies}}
|
||||
<div class="sidebar-element resource-bar">
|
||||
<label>KaP: {{this.kapcurrent}}</label><span class="resource-fill kap" style="width: {{this.keper}}%"></span>
|
||||
<label>KaP: {{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.aspcurrent}}</label><span class="resource-fill asp" style="width: {{this.aspper}}%"></span>
|
||||
<label>AsP: {{this.asp}}</label><span class="resource-fill asp" style="width: {{this.aspper}}%"></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="sidebar-element button">
|
||||
<button type="button" data-action="rest"><i class="fa-solid fa-bed"></i> Rasten</button>
|
||||
<button data-action="rest"><i class="fa-solid fa-bed"></i> Rasten</button>
|
||||
</div>
|
||||
|
||||
{{#each attacks}}
|
||||
|
|
@ -91,8 +91,7 @@
|
|||
{{/if}}
|
||||
{{#if this.ini}}
|
||||
<div data-tooltip="{{localize "WEAPON.initiative" weapon=this.name}}"
|
||||
class="ini sidebar-element rollable" data-action="openInitiative" data-formula="{{this.ini}}">
|
||||
<label>INI</label>
|
||||
class="ini sidebar-element rollable" data-action="openInitiative"><label>INI</label>
|
||||
<div class="formula">{{this.ini}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
@ -131,14 +130,14 @@
|
|||
|
||||
<div class="sidebuttons">
|
||||
<div>
|
||||
<button type="button" data-action="openStandaloneADVSF">Vorteile</button>
|
||||
<button type="button" data-action="openStandaloneHealth">Gesundheit</button>
|
||||
<button type="button" data-action="openStandaloneSkills">Talente</button>
|
||||
<button type="button" data-action="openBagpack">Inventar</button>
|
||||
<button data-action="openStandaloneADVSF">Vorteile</button>
|
||||
<button data-action="openStandaloneHealth">Gesundheit</button>
|
||||
<button data-action="openStandaloneSkills">Talente</button>
|
||||
<button data-action="openBagpack">Inventar</button>
|
||||
{{#if this.hasLiturgies}}
|
||||
<button type="button" data-action="openStandaloneLiturgies">Liturgien</button>{{/if}}
|
||||
<button data-action="openStandaloneLiturgies">Liturgien</button>{{/if}}
|
||||
{{#if this.hasSpells}}
|
||||
<button type="button" data-action="openStandaloneSpells">Zauber</button>{{/if}}
|
||||
<button data-action="openStandaloneSpells">Zauber</button>{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@
|
|||
|
||||
|
||||
<div class="buttons">
|
||||
<button type="button" data-action="newItem"><i class="fa-solid fa-sack" data-tooltip="Neuer Gegenstand"></i></button>
|
||||
<button type="button" data-action="openItemBrowser"><i class="fa-solid fa-store" data-tooltip="Einkaufen"></i></button>
|
||||
<button data-action="newItem"><i class="fa-solid fa-sack" data-tooltip="Neuer Gegenstand"></i></button>
|
||||
<button data-action="openItemBrowser"><i class="fa-solid fa-store" data-tooltip="Einkaufen"></i></button>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</td>
|
||||
<td>{{this.conditions}}</td>
|
||||
<td>{{#if ../isGM}}
|
||||
<button type="button" data-action="removeEffect" data-actor-id="{{actor}}" data-effect-id="{{id}}"><i
|
||||
<button data-action="removeEffect" data-actor-id="{{actor}}" data-effect-id="{{id}}"><i
|
||||
class="fa-solid fa-trash"></i></button>{{/if}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@
|
|||
<div class="inventory-header">
|
||||
<h3>Inventar</h3>
|
||||
<div class="buttons">
|
||||
<button type="button" data-action="newItem"><i class="fa-solid fa-sack" data-tooltip="Neuer Gegenstand"></i></button>
|
||||
<button type="button" data-action="openItemBrowser"><i class="fa-solid fa-store" data-tooltip="Einkaufen"></i></button>
|
||||
<button data-action="newItem"><i class="fa-solid fa-sack" data-tooltip="Neuer Gegenstand"></i></button>
|
||||
<button data-action="openItemBrowser"><i class="fa-solid fa-store" data-tooltip="Einkaufen"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inventory">
|
||||
|
|
|
|||
|
|
@ -11,27 +11,37 @@
|
|||
</div>
|
||||
|
||||
<div><label for="system.meta.groesse">Größe</label>
|
||||
<input type="text" name="system.meta.groesse" value="{{system.meta.groesse}}"/>
|
||||
<input type="number" name="system.meta.groesse" value="{{system.meta.groesse}}"/>
|
||||
</div>
|
||||
<div><label for="system.meta.gewicht">Gewicht</label>
|
||||
<input type="text" name="system.meta.gewicht" value="{{system.meta.gewicht}}"/>
|
||||
<input type="number" name="system.meta.gewicht" value="{{system.meta.gewicht}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="double"><label>Alter</label>
|
||||
<input type="text" name="system.meta.alter" value="{{system.meta.alter}}"/>
|
||||
<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>Notizen</label>
|
||||
<textarea
|
||||
<prose-mirror
|
||||
name="system.meta.notizen"
|
||||
editable="{{editable}}">{{{system.meta.notizen}}}</textarea>
|
||||
button="false"
|
||||
editable="{{editable}}"
|
||||
toggled="true"
|
||||
value="{{system.meta.notizen}}">
|
||||
{{{system.meta.notizen}}}
|
||||
</prose-mirror>
|
||||
</div>
|
||||
<div><label>Aussehen</label>
|
||||
<textarea
|
||||
<prose-mirror
|
||||
name="system.meta.aussehen"
|
||||
editable="{{editable}}">{{{system.meta.aussehen}}}</textarea>
|
||||
button="false"
|
||||
editable="{{editable}}"
|
||||
toggled="true"
|
||||
value="{{system.meta.aussehen}}">
|
||||
{{{system.meta.aussehen}}}
|
||||
</prose-mirror>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -15,9 +15,9 @@
|
|||
{{/each}}
|
||||
|
||||
{{#if setEquipped}}
|
||||
<button type="button" disabled="disabled">Ausgerüstet</button>
|
||||
<button disabled="disabled">Ausgerüstet</button>
|
||||
{{else}}
|
||||
<button type="button" data-action="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
<button data-action="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
{{/if}}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@
|
|||
src="{{this.icon}}"/></div>
|
||||
{{/each}}
|
||||
{{#if (eq ../actor.system.setEquipped @index)}}
|
||||
<button type="button" disabled="disabled">Ausgerüstet</button>
|
||||
<button disabled="disabled">Ausgerüstet</button>
|
||||
{{else}}
|
||||
<button type="button" data-operation="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
<button data-operation="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@
|
|||
src="{{this.icon}}"/></div>
|
||||
{{/each}}
|
||||
{{#if (eq ../actor.system.setEquipped @index)}}
|
||||
<button type="button" disabled="disabled">Ausgerüstet</button>
|
||||
<button disabled="disabled">Ausgerüstet</button>
|
||||
{{else}}
|
||||
<button type="button" data-operation="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
<button data-operation="switchSet" data-id="{{@index}}">Wechseln</button>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@
|
|||
<div class="social-line">
|
||||
|
||||
<div><label>Stand</label>
|
||||
<input id="stand" type="text" name="system.meta.stand" value="{{system.meta.stand}}"/>
|
||||
<input type="text" name="system.meta.stand" value="{{system.meta.stand}}"/>
|
||||
</div>
|
||||
<div><label>Titel</label>
|
||||
<input id="titel" type="text" name="system.meta.titel" value="{{system.meta.titel}}"/>
|
||||
<input type="text" name="system.meta.titel" value="{{system.meta.titel}}"/>
|
||||
</div>
|
||||
|
||||
<div><label>Sozialstatus</label>
|
||||
|
|
@ -17,14 +17,24 @@
|
|||
</div>
|
||||
<div class="meta-data html">
|
||||
<div><label>Verbindungen</label>
|
||||
<textarea
|
||||
<prose-mirror
|
||||
name="system.verbindungen"
|
||||
editable="{{editable}}">{{{system.meta.verbindungen}}}</textarea>
|
||||
button="false"
|
||||
editable="{{editable}}"
|
||||
toggled="true"
|
||||
value="{{system.meta.verbindungen}}">
|
||||
{{{system.meta.verbindungen}}}
|
||||
</prose-mirror>
|
||||
</div>
|
||||
<div><label>Familie</label>
|
||||
<textarea
|
||||
<prose-mirror
|
||||
name="system.meta.familie"
|
||||
editable="{{editable}}">{{{system.meta.familie}}}</textarea>
|
||||
button="false"
|
||||
editable="{{editable}}"
|
||||
toggled="true"
|
||||
value="{{system.meta.familie}}">
|
||||
{{{system.meta.familie}}}
|
||||
</prose-mirror>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -45,8 +45,9 @@
|
|||
value="{{this.tp}}"/>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="button-inline remove-attack" data-action="removeAttack" data-index="{{this.index}}">
|
||||
<i class="fa-solid fa-trash"></i></button>
|
||||
<button class="button-inline remove-attack" data-action="removeAttack" data-index="{{this.index}}">
|
||||
<i
|
||||
class="fa-solid fa-trash"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
|
|
@ -72,7 +73,7 @@
|
|||
<input type="text" id="attack_tp" placeholder="1d6+3"/>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" data-action="addAttack" class="button-inline add-attack"><i class="fa-solid fa-plus"></i>
|
||||
<button data-action="addAttack" class="button-inline add-attack"><i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
</td>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<img src="{{this.img}}" style="width: 32px; height: 32px;"/>
|
||||
<span class="name">{{this.name}}</span>
|
||||
<span class="price">{{currency this.system.price}}</span>
|
||||
<button type="button" data-action="buy" data-item-id="{{this._id}}"><i class="fa-solid fa-coins"></i></button>
|
||||
<button data-action="buy" data-item-id="{{this._id}}"><i class="fa-solid fa-coins"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<input type="number" name="system.services.{{@key}}.availability"
|
||||
value="{{this.availability}}"/>
|
||||
</label>
|
||||
<button type="button" class="actions" data-action="removeService" data-row-id="{{@key}}"><i
|
||||
<button class="actions" data-action="removeService" data-row-id="{{@key}}"><i
|
||||
class="fa-solid fa-trash"></i></button>
|
||||
<div class="description">
|
||||
<label class="description_label">Beschreibung</label>
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
<span class="availability {{#if
|
||||
(lte this.availability 0)}}infinite{{/if}}">{{#unless
|
||||
(lte this.availability 0)}}{{this.availability}}{{/unless}}</span>
|
||||
<button type="button" class="actions"><i class="fa-solid fa-coins"></i></button>
|
||||
<button class="actions"><i class="fa-solid fa-coins"></i></button>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
<div>
|
||||
<div>Formel: {{formula}}</div>
|
||||
<div>Gewürfelt: {{initiativeRolled}}</div>
|
||||
<hr/>
|
||||
<div>Initiative: {{total}}</div>
|
||||
</div>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
</fieldset>
|
||||
|
||||
|
||||
<button type="button" class="actions" data-action="use"><i class="fa-solid fa-bolt"></i> Eigenschaftseinsatz {{#if modResult}}
|
||||
<button class="actions" data-action="use"><i class="fa-solid fa-bolt"></i> Eigenschaftseinsatz {{#if modResult}}
|
||||
[{{displayModResult}}]{{/if}}</button>
|
||||
|
||||
</section>
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
<option value="glückspiel-v-glückspiel">Vergleichend: Glücksspiel</option>
|
||||
<option value="falschspiel-v-sinnenschärfe">Schummeln</option>
|
||||
</select>
|
||||
<button type="button" data-action="applyPreset"><i class="fa-solid fa-fill"></i></button>
|
||||
<button data-action="applyPreset"><i class="fa-solid fa-fill"></i></button>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
|
@ -338,7 +338,7 @@
|
|||
<div class="offenseActorSave"><label><input name="saveOffenseData" type="checkbox">Daten speichern</label>
|
||||
</div>
|
||||
{{/if}}
|
||||
<button type="button" data-action="doBattle"><i class="fa-solid fa-user-secret"></i> Würfeln</button>
|
||||
<button data-action="doBattle"><i class="fa-solid fa-user-secret"></i> Würfeln</button>
|
||||
{{#if (or (not defenseTalents) (not defenseAttributes))}}
|
||||
<div class="defenseActorSave"><label><input name="saveDefenseData" type="checkbox">Daten speichern</label>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
|
||||
|
||||
<div class="actions">
|
||||
<button type="button" data-action="attack" {{#if ready}}class="ready" {{else}}data-tooltip="{{notReadyReason}}"{{/if}}><i
|
||||
<button {{#if ready}}class="ready" {{else}}data-tooltip="{{notReadyReason}}"{{/if}} type="submit"><i
|
||||
class="fa-solid fa-swords"></i>Angreifen <span
|
||||
class="value"></span></button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
|
||||
<div class="actions">
|
||||
<button type="button" data-action="defend" {{#if ready}}class="ready" {{else}}data-tooltip="{{notReadyReason}}"{{/if}}><i
|
||||
<button {{#if ready}}class="ready" {{else}}data-tooltip="{{notReadyReason}}"{{/if}} type="submit"><i
|
||||
class="fa-solid fa-shield"></i>Verteidigen <span
|
||||
class="value"></span></button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
<td>{{this.displayRank}}</td>
|
||||
<td>{{this.mod}}</td>
|
||||
<td>
|
||||
<button type="button" data-action="removeMod" data-index="{{@key}}">
|
||||
<button data-action="removeMod" data-index="{{@key}}">
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
</button>
|
||||
</td>
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
<option value="castduration">Wirkzeit</option>
|
||||
<option value="duration">Wirkungsdauer</option>
|
||||
</select>
|
||||
<button type="button" data-action="addMod"><i class="fa fa-plus"></i></button>
|
||||
<button data-action="addMod"><i class="fa fa-plus"></i></button>
|
||||
<span id="info"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
</fieldset>
|
||||
|
||||
|
||||
<button type="button" class="actions" data-action="castLiturgy"><i class="fa-solid fa-sparkles"></i> Wirken {{#if modResult}}
|
||||
<button class="actions" data-action="castLiturgy"><i class="fa-solid fa-sparkles"></i> Wirken {{#if modResult}}
|
||||
[{{displayModResult}}]{{/if}}</button>
|
||||
|
||||
</section>
|
||||
|
|
@ -71,5 +71,5 @@
|
|||
</div>
|
||||
|
||||
</fieldset>
|
||||
<button type="button" class="actions" data-action="regenerate"><i class="fa-solid fa-bed"></i> Regenerieren</button>
|
||||
<button class="actions" data-action="regenerate"><i class="fa-solid fa-bed"></i> Regenerieren</button>
|
||||
</section>
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
</fieldset>
|
||||
{{/if}}
|
||||
|
||||
<button type="button" class="actions" {{#unless noSelectedRepresentation}}data-action="diceRoll"{{else}} disabled="disabled"{{/unless}}><i class="fa-solid fa-dice"></i> Zauber würfeln {{#if
|
||||
<button class="actions" {{#unless noSelectedRepresentation}}data-action="diceRoll"{{else}} disabled="disabled"{{/unless}}><i class="fa-solid fa-dice"></i> Zauber würfeln {{#if
|
||||
displayModResult}}
|
||||
[{{displayModResult}}]{{/if}}</button>
|
||||
|
||||
|
|
@ -137,11 +137,11 @@
|
|||
</fieldset>
|
||||
|
||||
<div class="actions">
|
||||
<button type="button" {{#if ready}}data-action="cast" {{else}}
|
||||
<button {{#if ready}}data-action="cast" {{else}}
|
||||
data-tooltip="{{{notReadyReasons}}}" disabled="disabled" {{/if}}><i class="fa-solid fa-sparkles"></i> Zauber
|
||||
wirken
|
||||
</button>
|
||||
<button type="button" data-action="cancel">
|
||||
<button data-action="cancel">
|
||||
Zauber abbrechen
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
</fieldset>
|
||||
|
||||
|
||||
<button type="button" class="actions" data-action="use"><i class="fa-solid fa-bolt"></i> Talenteinsatz {{#if modResult}}
|
||||
<button class="actions" data-action="use"><i class="fa-solid fa-bolt"></i> Talenteinsatz {{#if modResult}}
|
||||
[{{displayModResult}}]{{/if}}</button>
|
||||
|
||||
</section>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<section>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>Folgendes konnte nicht importiert werden</legend>
|
||||
|
||||
<div class="scroll-y">
|
||||
<ul>
|
||||
{{#each report}}
|
||||
<li><em>{{this.type}}</em> {{this.name}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</section>
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<img class="img" src="{{img}}" data-action="editImage" data-edit="img" alt="{{name}}" title="{{name}}"/>
|
||||
<input type="text" name="name" value="{{name}}"/>
|
||||
|
||||
<button type="button" class="editEffects" data-id="{{this.effectId}}" data-action="openEffect">
|
||||
<button class="editEffects" data-id="{{this.effectId}}" data-action="openEffect">
|
||||
<i class="fas fa-pencil-alt"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
{{#each liturgies.rank0}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="0" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="0" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="0" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
{{#each liturgies.rank1}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="1" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="1" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="1" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
{{#each liturgies.rank2}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="2" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="2" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="2" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
{{#each liturgies.rank3}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="3" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="3" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="3" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
{{#each liturgies.rank4}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="4" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="4" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="4" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -113,7 +113,7 @@
|
|||
{{#each liturgies.rank5}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="5" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="5" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="5" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -126,7 +126,7 @@
|
|||
{{#each liturgies.rank6}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="6" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="6" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="6" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -139,7 +139,7 @@
|
|||
{{#each liturgies.rank7}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="7" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="7" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="7" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -152,7 +152,7 @@
|
|||
{{#each liturgies.rank8}}
|
||||
<div class="liturgy" data-action="openLiturgy" data-rank="8" data-liturgy-id="{{this.id}}">
|
||||
<span>{{this.name}}</span>
|
||||
<button type="button" data-action="removeLiturgy" data-rank="8" data-liturgy-id="{{this.id}}"
|
||||
<button data-action="removeLiturgy" data-rank="8" data-liturgy-id="{{this.id}}"
|
||||
class="mini"><i class="fa fa-xmark"></i></button>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
|
|||
|
|
@ -3,81 +3,79 @@
|
|||
data-group="{{tabs.armor.group}}">
|
||||
<div>
|
||||
|
||||
<div class="head">
|
||||
<label>Kopf
|
||||
<input type="text" name="system.armorValue.kopf" value="{{system.armorValue.kopf}}"/>
|
||||
<fieldset>
|
||||
<legend>Rüstungswerte</legend>
|
||||
|
||||
<div>
|
||||
<label>Gesamt Rüstungswert
|
||||
<input type="text" name="system.armorValue.total" value="{{system.armorValue.total}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="chest">
|
||||
<label>Brust
|
||||
<input type="text" name="system.armorValue.brust" value="{{system.armorValue.brust}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="back">
|
||||
<label>Rücken
|
||||
<input type="text" name="system.armorValue.ruecken" value="{{system.armorValue.ruecken}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="belly">
|
||||
<label>Bauch
|
||||
<input type="text" name="system.armorValue.bauch" value="{{system.armorValue.bauch}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="left-arm">
|
||||
<div>
|
||||
<label>Linker Arm
|
||||
<input type="text" name="system.armorValue.armlinks" value="{{system.armorValue.armlinks}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="right-arm">
|
||||
<div>
|
||||
<label>Rechter Arm
|
||||
<input type="text" name="system.armorValue.armrechts" value="{{system.armorValue.armrechts}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="left-leg">
|
||||
<div>
|
||||
<label>Linkes Bein
|
||||
<input type="text" name="system.armorValue.beinlinks" value="{{system.armorValue.beinlinks}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="right-leg">
|
||||
<div>
|
||||
<label>Rechtes Bein
|
||||
<input type="text" name="system.armorValue.beinrechts" value="{{system.armorValue.beinrechts}}"/>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="total">
|
||||
<label>Rüstungswert
|
||||
<input type="text" name="system.armorValue.total" value="{{system.armorValue.total}}"/>
|
||||
<div>
|
||||
<label>Bauch
|
||||
<input type="text" name="system.armorValue.bauch" value="{{system.armorValue.bauch}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<label>Brust
|
||||
<input type="text" name="system.armorValue.brust" value="{{system.armorValue.brust}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<label>Rücken
|
||||
<input type="text" name="system.armorValue.ruecken" value="{{system.armorValue.ruecken}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<label>Kopf
|
||||
<input type="text" name="system.armorValue.kopf" value="{{system.armorValue.kopf}}"/>
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="handicap">
|
||||
<label>Behinderung
|
||||
<div>
|
||||
<label>Gesamt Behinderung
|
||||
<input type="text" name="system.armorHandicap" value="{{system.armorHandicap}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="initiative-modifier">
|
||||
<label>Initiative
|
||||
<div>
|
||||
<label>Initiative Modifaktor
|
||||
<input type="text" name="system.iniModifier" value="{{system.iniModifier}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="break-factor">
|
||||
<div>
|
||||
<label>Bruchfaktor
|
||||
<input type="text" name="system.breakFactor" value="{{system.breakFactor}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="at-mod">
|
||||
<div>
|
||||
<label>Attacke
|
||||
<input type="text" name="system.attackModifier" value="{{system.attackModifier}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="pa-mod">
|
||||
<div>
|
||||
<label>Parade
|
||||
<input type="text" name="system.parryModifier" value="{{system.parryModifier}}"/>
|
||||
</label>
|
||||
|
|
|
|||
|
|
@ -1,38 +1,40 @@
|
|||
<section class="tab {{tabs.melee.id}} {{tabs.melee.cssClass}}"
|
||||
data-tab="{{tabs.melee.id}}"
|
||||
data-group="{{tabs.melee.group}}">
|
||||
<div class="melee">
|
||||
<div class="tp">
|
||||
<div>
|
||||
<div>
|
||||
<label>TP
|
||||
<input type="text" name="system.meleeAttackDamage" value="{{system.meleeAttackDamage}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="tp-bonus">
|
||||
<label>TP/KK</label>
|
||||
<div>
|
||||
<label>TP/KK
|
||||
<input name="system.meleeAttackModifier" type="number" value="{{system.meleeAttackModifier}}"/>
|
||||
<input name="system.meleeAttackModifierIncrement" type="number"
|
||||
value="{{system.meleeAttackModifierIncrement}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="applicable-skills">
|
||||
<label>Geführte Talente</label>
|
||||
<div>
|
||||
<label>Geführte Talente
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-array-editor.hbs" this.meleeSkillsAndOptions}}
|
||||
</label>
|
||||
</div>
|
||||
<div class="initiative-modifier">
|
||||
<div>
|
||||
<label>Initiative
|
||||
<input name="system.iniModifier" type="number" value="{{system.iniModifier}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="breakfactor">
|
||||
<div>
|
||||
<label>Bruchfaktor
|
||||
<input name="system.breakFactor" type="number" value="{{system.breakFactor}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="at-mod">
|
||||
<div>
|
||||
<label>Attacke
|
||||
<input name="system.attackModifier" type="number" value="{{system.attackModifier}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="pa-mod">
|
||||
<div>
|
||||
<label>Parade
|
||||
<input name="system.parryModifier" type="number" value="{{system.parryModifier}}"/>
|
||||
</label>
|
||||
|
|
|
|||
|
|
@ -1,29 +1,29 @@
|
|||
<section class="tab {{tabs.ranged.id}} {{tabs.ranged.cssClass}}"
|
||||
data-tab="{{tabs.ranged.id}}"
|
||||
data-group="{{tabs.ranged.group}}">
|
||||
<div class="ranged">
|
||||
<div class="tp">
|
||||
<div>
|
||||
<div>
|
||||
<label>TP
|
||||
<input type="text" name="system.rangedAttackDamage" value="{{system.rangedAttackDamage}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ranges">
|
||||
<div>
|
||||
<label>Reichweiten
|
||||
<input type="text" name="system.rangedRangeModifier" value="{{system.rangedRangeModifier}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="tpmod">
|
||||
<div>
|
||||
<label>TP+
|
||||
<input type="text" name="system.rangeRangeDamageModifier"
|
||||
value="{{system.rangeRangeDamageModifier}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="applicable-skills">
|
||||
<div>
|
||||
<label>Geführte Talente
|
||||
{{> "systems/DSA_4-1/templates/ui/partial-array-editor.hbs" this.rangedSkillsAndOptions}}
|
||||
</label>
|
||||
</div>
|
||||
<div class="reload-time">
|
||||
<div>
|
||||
<label>Ladedauer (Aktionen)
|
||||
<input type="text" name="system.rangedReloadTime" value="{{system.rangedReloadTime}}"/>
|
||||
</label>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<input name="grad" type="number" min="0" max="7" step="1"/>
|
||||
</label>
|
||||
<div class="actions">
|
||||
<button type="button" data-action="addCommonality"><i class="fa-solid fa-plus"></i> Hinzugefügen</button>
|
||||
<button data-action="addCommonality"><i class="fa-solid fa-plus"></i> Hinzugefügen</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
<span class="deity">{{this.name}}</span>
|
||||
<span class="rank">Grad {{grad}}</span>
|
||||
{{#if ../editable}}
|
||||
<button type="button" class="action" data-action="removeCommonality" data-id="{{@key}}"><i
|
||||
<button class="action" data-action="removeCommonality" data-id="{{@key}}"><i
|
||||
class="fa-solid fa-xmark"></i></button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
</label>
|
||||
</div>
|
||||
<div class="taw">
|
||||
<label>TaW:
|
||||
<label>TAW:
|
||||
<input type="text" name="system.taw"
|
||||
value="{{system.taw}}"/>
|
||||
</label>
|
||||
|
|
|
|||
|
|
@ -1,39 +1,23 @@
|
|||
<section class="tab {{tabs.meta.id}} {{tabs.meta.cssClass}}"
|
||||
data-tab="{{tabs.meta.id}}"
|
||||
data-group="{{tabs.meta.group}}">
|
||||
<div class="meta-details">
|
||||
<div class="name">
|
||||
<div>
|
||||
<div>
|
||||
<label>Name
|
||||
<input type="text" name="name"
|
||||
value="{{name}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="zfw">
|
||||
<label>ZfW:
|
||||
<input type="text" name="system.zfw"
|
||||
value="{{system.zfw}}"/>
|
||||
<div>
|
||||
<label>Probe
|
||||
<input type="text" name="system.probe.0"
|
||||
value="{{system.probe.[0]}}"/>
|
||||
<input type="text" name="system.probe.1"
|
||||
value="{{system.probe.[1]}}"/>
|
||||
<input type="text" name="system.probe.2"
|
||||
value="{{system.probe.[2]}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="statistics">
|
||||
<label class="throw">Probe</label>
|
||||
<div><label><input type="text" name="system.probe.0"
|
||||
value="{{system.probe.[0]}}"/></label></div>
|
||||
<div><label><input type="text" name="system.probe.1"
|
||||
value="{{system.probe.[1]}}"/></label></div>
|
||||
<div><label><input type="text" name="system.probe.2"
|
||||
value="{{system.probe.[2]}}"/></label></div>
|
||||
</div>
|
||||
<div class="probenmod">
|
||||
<label>Proben-Mod
|
||||
<input type="text" name="system.probeMod"
|
||||
value="{{system.probeMod}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="effect">
|
||||
<label for="wirkung">Wirkung</label>
|
||||
<textarea id="wirkung" name="system.wirkung">{{system.wirkung}}</textarea>
|
||||
</div>
|
||||
<!--
|
||||
<div><label>Proben Modifikation
|
||||
<input type="text" name="system.probeMod"
|
||||
value="{{system.probeMod}}"/>
|
||||
|
|
@ -49,11 +33,16 @@
|
|||
<input type="text" name="system.kosten" value="{{system.kosten}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<label>Wirkung
|
||||
<input type="text" name="system.wirkung" value="{{system.wirkung}}"/>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<label>Wirkungsdauer
|
||||
<input type="text" name="system.wirkungsdauer" value="{{system.wirkungsdauer}}"/>
|
||||
</label>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -2,18 +2,10 @@
|
|||
|
||||
<ul>
|
||||
{{#each entries}}
|
||||
<li class="array-entry">
|
||||
<span class="label">{{this}}</span>
|
||||
<button class="remove" type="button" data-action="{{../removeOption}}" data-option-id="{{this}}">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</li>
|
||||
<li>{{this}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
<div class="options">
|
||||
<select class="selector" data-target-field="{{targetField}}">
|
||||
<select data-target-field="{{targetField}}">
|
||||
{{selectOptions options inverted=true}}
|
||||
</select>
|
||||
<button class=add" type="button" data-target-field="{{targetField}}" data-action="{{addOption}}"><i class="fa fa-plus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
data-action="activateCooldown"
|
||||
{{/if}}
|
||||
data-cooldown-id="{{@key}}">{{this.title}}</span>
|
||||
<button type="button" data-tooltip="{{localize "COOLDOWN.cancel" t=this.title}}" class="btn-right"
|
||||
<button data-tooltip="{{localize "COOLDOWN.cancel" t=this.title}}" class="btn-right"
|
||||
data-action="cancelCooldown" data-cooldown-id="{{@key}}">
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
</button>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
</span>
|
||||
</div>
|
||||
<div class="container">
|
||||
<span class="name" data-item-id="{{this.id}}" data-action="openSkillDialog">{{this.name}}</span>
|
||||
<span class="name" data-id="{{this.id}}">{{this.name}}</span>
|
||||
<div class="werte">
|
||||
{{#each this.werte}}
|
||||
<div class="eigenschaft"><span class="name">{{this.name}}</span><span
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
</span>
|
||||
</div>
|
||||
<div class="container">
|
||||
<span class="name" data-item-id="{{this.id}}" data-action="openSkillDialog">{{this.name}}</span>
|
||||
<span class="name" data-id="{{this.id}}">{{this.name}}</span>
|
||||
<div class="werte">
|
||||
<div class="eigenschaft"><span class="name">Komp</span><span
|
||||
class="value">{{this.komplexität}}</span></div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
<div class="block rollable {{this.type}} {{this.gruppe}}" data-id="{{this.id}}">
|
||||
|
||||
<div class="die" data-action="rollCombatSkill" data-tooltip="{{this.name}}<br/>{{#if this.at}}AT: {{this.at}} {{/if}}{{#if
|
||||
<div class="block rollable {{this.type}} {{this.gruppe}}" data-id="{{this.id}}"
|
||||
data-action="rollCombatSkill" data-tooltip="{{this.name}}<br/>{{#if this.at}}AT: {{this.at}} {{/if}}{{#if
|
||||
this.pa}}PA: {{this.pa}}{{/if}}<hr/><i class='fa-solid fa-computer-mouse'></i>: Attacke<br/><kbd>Shift</kbd>+<i class='fa-solid fa-computer-mouse'></i>: Parrieren">
|
||||
|
||||
<div class="die">
|
||||
{{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }}
|
||||
<span class="value"
|
||||
data-id="{{this.id}}">{{#if this.taw}}
|
||||
|
|
@ -14,7 +15,7 @@
|
|||
</span>
|
||||
</div>
|
||||
<div class="container">
|
||||
<span class="name" data-item-id="{{this.id}}" data-action="openSkillDialog">{{this.name}}</span>
|
||||
<span class="name" data-id="{{this.id}}">{{this.name}}</span>
|
||||
<div class="werte">
|
||||
|
||||
<div class="eigenschaft"><span class="name">AT</span><span class="value">{{this.at}}</span></div>
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
<legend class="variant-operator"><select name="variant">
|
||||
{{selectOptions variantChoices selected=currentSelectedVariantName inverted=true}}
|
||||
</select>
|
||||
<button type="button" {{#if currentSelectedVariant}}data-action="addVariant" {{else}}disabled="disabled"{{/if}}><i
|
||||
<button {{#if currentSelectedVariant}}data-action="addVariant" {{else}}disabled="disabled"{{/if}}><i
|
||||
class="fa-solid fa-plus"></i></button>
|
||||
<button type="button" {{#if currentSelectedVariant}}data-action="removeVariant" {{else}}disabled="disabled"{{/if}}><i
|
||||
<button {{#if currentSelectedVariant}}data-action="removeVariant" {{else}}disabled="disabled"{{/if}}><i
|
||||
class="fa-solid fa-minus"></i></button>
|
||||
</legend>
|
||||
|
||||
|
|
@ -91,7 +91,7 @@
|
|||
{{/if}}
|
||||
{{/if}}
|
||||
<td>
|
||||
<button type="button" data-action="removeRequirement" data-index="{{@key}}"><i
|
||||
<button data-action="removeRequirement" data-index="{{@key}}"><i
|
||||
class="fa-solid fa-trash"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<button type="button" {{#if currentSelectedVariant}}data-action="addRequirement"
|
||||
<button {{#if currentSelectedVariant}}data-action="addRequirement"
|
||||
{{else}}disabled="disabled"{{/if}}><i class="fa-solid fa-plus"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -116,7 +116,7 @@
|
|||
<td><input type="text" value="{{this.name}}" name="mod.{{@key}}.name"/></td>
|
||||
<td><input type="number" value="{{this.value}}" name="mod.{{@key}}.value"/></td>
|
||||
<td>
|
||||
<button type="button" data-action="removeMod" data-index="{{@key}}"><i class="fa-solid fa-trash"></i>
|
||||
<button data-action="removeMod" data-index="{{@key}}"><i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<button type="button" {{#if currentSelectedVariant}}data-action="addMod"
|
||||
<button {{#if currentSelectedVariant}}data-action="addMod"
|
||||
{{else}}disabled="disabled"{{/if}}><i class="fa-solid fa-plus"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -134,7 +134,7 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
<button type="button" {{#if currentSelectedVariant}}data-action="saveVariant" {{else}}disabled="disabled"{{/if}}><i
|
||||
<button {{#if currentSelectedVariant}}data-action="saveVariant" {{else}}disabled="disabled"{{/if}}><i
|
||||
class="fa-solid fa-save"></i> Speichern
|
||||
</button>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue