mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-03-07 14:36:13 +01:00
Merge branch 'main' into release
This commit is contained in:
commit
ae38245877
19 changed files with 125 additions and 98 deletions
|
|
@ -309,7 +309,7 @@ Hooks.on('chatMessage', (_, message) => {
|
|||
? CONFIG.DH.ACTIONS.advantageState.disadvantage.value
|
||||
: undefined;
|
||||
const difficulty = rollCommand.difficulty;
|
||||
const grantResources = Boolean(rollCommand.grantResources);
|
||||
const grantResources = rollCommand.grantResources;
|
||||
|
||||
const target = getCommandTarget({ allowNull: true });
|
||||
const title =
|
||||
|
|
|
|||
|
|
@ -2111,7 +2111,6 @@
|
|||
"tier4": "tier 4",
|
||||
"domains": "Domains",
|
||||
"downtime": "Downtime",
|
||||
"itemFeatures": "Item Features",
|
||||
"roll": "Roll",
|
||||
"rules": "Rules",
|
||||
"partyMembers": "Party Members",
|
||||
|
|
@ -2120,7 +2119,8 @@
|
|||
"questions": "Questions",
|
||||
"configuration": "Configuration",
|
||||
"base": "Base",
|
||||
"triggers": "Triggers"
|
||||
"triggers": "Triggers",
|
||||
"deathMoves": "Deathmoves"
|
||||
},
|
||||
"Tiers": {
|
||||
"singular": "Tier",
|
||||
|
|
@ -2144,6 +2144,7 @@
|
|||
"armorSlots": "Armor Slots",
|
||||
"artistAttribution": "Artwork By: {artist}",
|
||||
"attack": "Attack",
|
||||
"automation": "Automation",
|
||||
"basics": "Basics",
|
||||
"bonus": "Bonus",
|
||||
"burden": "Burden",
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV
|
|||
return context;
|
||||
}
|
||||
|
||||
async handleAvoidDeath() {
|
||||
async handleAvoidDeath(useAutomation) {
|
||||
const target = this.actor.uuid;
|
||||
const config = await enrichedFateRoll({
|
||||
target,
|
||||
|
|
@ -53,6 +53,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV
|
|||
});
|
||||
|
||||
if (!config.roll.fate) return;
|
||||
if (!useAutomation) return '';
|
||||
|
||||
let returnMessage = game.i18n.localize('DAGGERHEART.UI.Chat.deathMove.avoidScar');
|
||||
if (config.roll.fate.value <= this.actor.system.levelData.level.current) {
|
||||
|
|
@ -75,7 +76,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV
|
|||
return returnMessage;
|
||||
}
|
||||
|
||||
async handleRiskItAll() {
|
||||
async handleRiskItAll(useAutomation) {
|
||||
const config = await enrichedDualityRoll({
|
||||
reaction: true,
|
||||
traitValue: null,
|
||||
|
|
@ -90,6 +91,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV
|
|||
});
|
||||
|
||||
if (!config.roll.result) return;
|
||||
if (!useAutomation) return '';
|
||||
|
||||
const clearAllStressAndHitpointsUpdates = [
|
||||
{ key: 'hitPoints', clear: true },
|
||||
|
|
@ -128,7 +130,9 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV
|
|||
return chatMessage;
|
||||
}
|
||||
|
||||
async handleBlazeOfGlory() {
|
||||
async handleBlazeOfGlory(useAutomation) {
|
||||
if (!useAutomation) return '';
|
||||
|
||||
this.actor.createEmbeddedDocuments('ActiveEffect', [
|
||||
{
|
||||
name: game.i18n.localize('DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name'),
|
||||
|
|
@ -160,19 +164,23 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV
|
|||
|
||||
let result = '';
|
||||
|
||||
const deathMoveAutomation = game.settings.get(
|
||||
CONFIG.DH.id,
|
||||
CONFIG.DH.SETTINGS.gameSettings.Automation
|
||||
).deathMoveAutomation;
|
||||
if (CONFIG.DH.GENERAL.deathMoves.blazeOfGlory === this.selectedMove) {
|
||||
result = await this.handleBlazeOfGlory();
|
||||
result = await this.handleBlazeOfGlory(deathMoveAutomation.blazeOfGlory);
|
||||
}
|
||||
|
||||
if (CONFIG.DH.GENERAL.deathMoves.avoidDeath === this.selectedMove) {
|
||||
result = await this.handleAvoidDeath();
|
||||
result = await this.handleAvoidDeath(deathMoveAutomation.avoidDeath);
|
||||
}
|
||||
|
||||
if (CONFIG.DH.GENERAL.deathMoves.riskItAll === this.selectedMove) {
|
||||
result = await this.handleRiskItAll();
|
||||
result = await this.handleRiskItAll(deathMoveAutomation.riskItAll);
|
||||
}
|
||||
|
||||
if (!result) return;
|
||||
if (result === undefined) return;
|
||||
|
||||
const autoExpandDescription = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance)
|
||||
.expandRollMessage?.desc;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ export default class DhAutomationSettings extends HandlebarsApplicationMixin(App
|
|||
tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' },
|
||||
header: { template: 'systems/daggerheart/templates/settings/automation-settings/header.hbs' },
|
||||
general: { template: 'systems/daggerheart/templates/settings/automation-settings/general.hbs' },
|
||||
rules: { template: 'systems/daggerheart/templates/settings/automation-settings/rules.hbs' },
|
||||
rules: { template: 'systems/daggerheart/templates/settings/automation-settings/deathMoves.hbs' },
|
||||
roll: { template: 'systems/daggerheart/templates/settings/automation-settings/roll.hbs' },
|
||||
footer: { template: 'systems/daggerheart/templates/settings/automation-settings/footer.hbs' }
|
||||
};
|
||||
|
|
@ -42,7 +42,7 @@ export default class DhAutomationSettings extends HandlebarsApplicationMixin(App
|
|||
/** @inheritdoc */
|
||||
static TABS = {
|
||||
main: {
|
||||
tabs: [{ id: 'general' }, { id: 'rules' }, { id: 'roll' }],
|
||||
tabs: [{ id: 'general' }, { id: 'deathMoves' }, { id: 'roll' }],
|
||||
initial: 'general',
|
||||
labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,8 +94,10 @@ export default class DHDomainCard extends BaseDataItem {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!this.actor.system.loadoutSlot.available) {
|
||||
if (!this.actor.system.loadoutSlot.available && !this.loadoutIgnore) {
|
||||
data.system.inVault = true;
|
||||
await this.updateSource({ inVault: true });
|
||||
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.loadoutMaxReached'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,23 @@ export default class DhAutomation extends foundry.abstract.DataModel {
|
|||
initial: true,
|
||||
label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.resourceScrollTexts.label'
|
||||
}),
|
||||
deathMoveAutomation: new fields.SchemaField({
|
||||
avoidDeath: new fields.BooleanField({
|
||||
required: true,
|
||||
initial: true,
|
||||
label: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.name'
|
||||
}),
|
||||
riskItAll: new fields.BooleanField({
|
||||
required: true,
|
||||
initial: true,
|
||||
label: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.name'
|
||||
}),
|
||||
blazeOfGlory: new fields.BooleanField({
|
||||
required: true,
|
||||
initial: true,
|
||||
label: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name'
|
||||
})
|
||||
}),
|
||||
defeated: new fields.SchemaField({
|
||||
enabled: new fields.BooleanField({
|
||||
required: true,
|
||||
|
|
|
|||
|
|
@ -86,19 +86,22 @@ export const enrichedDualityRoll = async (
|
|||
{ reaction, traitValue, target, difficulty, title, label, advantage, grantResources, customConfig },
|
||||
event
|
||||
) => {
|
||||
const shouldGrantResources = grantResources === undefined ? true : grantResources;
|
||||
|
||||
const config = {
|
||||
event: event ?? {},
|
||||
title: title,
|
||||
headerTitle: label,
|
||||
actionType: reaction ? 'reaction' : null,
|
||||
roll: {
|
||||
trait: traitValue && target ? traitValue : null,
|
||||
difficulty: difficulty,
|
||||
advantage,
|
||||
type: reaction ? 'reaction' : null
|
||||
advantage
|
||||
// type: reaction ? 'reaction' : null //not needed really but keeping it for troubleshooting
|
||||
},
|
||||
skips: {
|
||||
resources: !grantResources,
|
||||
triggers: !grantResources
|
||||
resources: !shouldGrantResources,
|
||||
triggers: !shouldGrantResources
|
||||
},
|
||||
type: 'trait',
|
||||
hasRoll: true,
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export function rollCommandToJSON(text) {
|
|||
const flavor = flavorMatch ? flavorMatch[1] : null;
|
||||
|
||||
// Match key="quoted string" OR key=unquotedValue
|
||||
const PAIR_RE = /(\w+)=("(?:[^"\\]|\\.)*"|\S+)/g;
|
||||
const PAIR_RE = /(\w+)\s*=\s*("(?:[^"\\]|\\.)*"|[^\]\}\s]+)/g; //updated regex to allow escaped quotes in quoted strings and avoid matching closing brackets/braces
|
||||
const result = {};
|
||||
for (const [, key, raw] of text.matchAll(PAIR_RE)) {
|
||||
let value;
|
||||
|
|
|
|||
|
|
@ -14,15 +14,7 @@
|
|||
"description": "<p><span style=\"box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track); color: rgb(239, 230, 216); font-family: Montserrat, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgba(24, 22, 46, 0.376); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial\"><strong>Once per long rest</strong></span>, you can give a heartfelt, inspiring speech. </span><span style=\"box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track); color: rgb(239, 230, 216); font-family: Montserrat, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgba(24, 22, 46, 0.376); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial\"><strong>All allies</strong></span> within </span><span style=\"box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track); color: rgb(239, 230, 216); font-family: Montserrat, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgba(24, 22, 46, 0.376); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial\"><strong>Far</strong></span> range </span><span style=\"box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track); color: rgb(239, 230, 216); font-family: Montserrat, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgba(24, 22, 46, 0.376); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial\"><strong>clear 2 Stress</strong></span><strong>.</strong></p>",
|
||||
"chatDisplay": false,
|
||||
"actionType": "action",
|
||||
"cost": [
|
||||
{
|
||||
"scalable": false,
|
||||
"key": "hitPoints",
|
||||
"value": 1,
|
||||
"step": null,
|
||||
"consumeOnSuccess": false
|
||||
}
|
||||
],
|
||||
"cost": [],
|
||||
"uses": {
|
||||
"value": null,
|
||||
"max": "1",
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@
|
|||
|
||||
input[type='checkbox'],
|
||||
input[type='radio'] {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
|
||||
&:checked::after {
|
||||
color: light-dark(@dark, @golden);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@
|
|||
.status-effects {
|
||||
.effect-control {
|
||||
filter: none;
|
||||
background: var(--dark-blue-90);
|
||||
}
|
||||
|
||||
.effect-control-container {
|
||||
.effect-control {
|
||||
filter: none;
|
||||
background: var(--dark-blue-90);
|
||||
}
|
||||
|
||||
.effect-control-disabled-marker {
|
||||
|
|
@ -22,6 +24,7 @@
|
|||
.palette-category-title {
|
||||
grid-column: span var(--effect-columns);
|
||||
font-weight: bold;
|
||||
color: light-dark(@dark-blue, @golden);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
&:not(.duality .fate) {
|
||||
&:not(.duality):not(.fate) {
|
||||
.font-20 {
|
||||
color: @dark;
|
||||
}
|
||||
|
|
@ -176,7 +176,6 @@
|
|||
}
|
||||
|
||||
&.fate {
|
||||
|
||||
&.hope {
|
||||
--text-color: @golden;
|
||||
--bg-color: @golden-40;
|
||||
|
|
@ -194,7 +193,6 @@
|
|||
background-color: @chat-blue-bg;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&.duality {
|
||||
|
|
|
|||
|
|
@ -3,68 +3,70 @@
|
|||
|
||||
.daggerheart.chat-sidebar.theme-light,
|
||||
#interface.theme-light {
|
||||
.chat-message:not(.duality) .message-content {
|
||||
color: @dark;
|
||||
.chat-message:not(.duality):not(.fate) {
|
||||
.message-content {
|
||||
color: @dark;
|
||||
|
||||
blockquote {
|
||||
border-left: 5px solid @dark-blue-40;
|
||||
}
|
||||
blockquote {
|
||||
border-left: 5px solid @dark-blue-40;
|
||||
}
|
||||
|
||||
a[href] {
|
||||
color: @dark-blue;
|
||||
}
|
||||
|
||||
a[href]:hover,
|
||||
a[href].active {
|
||||
font-weight: bold;
|
||||
text-shadow: 0 0 8px @dark-blue;
|
||||
}
|
||||
|
||||
button {
|
||||
background: transparent;
|
||||
border: 1px solid @dark-blue;
|
||||
color: @dark-blue;
|
||||
|
||||
&:hover {
|
||||
background: @light-black;
|
||||
a[href] {
|
||||
color: @dark-blue;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
a[href]:hover,
|
||||
a[href].active {
|
||||
font-weight: bold;
|
||||
text-shadow: 0 0 8px @dark-blue;
|
||||
}
|
||||
|
||||
button {
|
||||
background: transparent;
|
||||
border: 1px solid @dark-blue;
|
||||
color: @dark-blue;
|
||||
|
||||
&:hover {
|
||||
background: @light-black;
|
||||
color: @dark-blue;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
background: transparent;
|
||||
color: @dark-blue;
|
||||
|
||||
&:hover {
|
||||
background: transparent;
|
||||
color: @dark-blue;
|
||||
}
|
||||
}
|
||||
|
||||
&.reverted {
|
||||
background: @dark-blue-10;
|
||||
color: @dark-blue;
|
||||
border: 1px solid @dark;
|
||||
&:hover {
|
||||
background: transparent;
|
||||
color: @dark-blue;
|
||||
}
|
||||
img {
|
||||
border-radius: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.reverted {
|
||||
background: @dark-blue-10;
|
||||
.roll-buttons button {
|
||||
height: 40px;
|
||||
font-family: @font-body;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.dice-roll .dice-formula,
|
||||
.dice-roll .dice-total {
|
||||
background: @dark-blue-40;
|
||||
color: @dark-blue;
|
||||
border: 1px solid @dark;
|
||||
&:hover {
|
||||
background: transparent;
|
||||
color: @dark-blue;
|
||||
}
|
||||
img {
|
||||
border-radius: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.roll-buttons button {
|
||||
height: 40px;
|
||||
font-family: @font-body;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.dice-roll .dice-formula,
|
||||
.dice-roll .dice-total {
|
||||
background: @dark-blue-40;
|
||||
color: @dark-blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -227,16 +227,6 @@ aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip.card-s
|
|||
outline: 1px solid light-dark(@dark-blue, @golden);
|
||||
}
|
||||
|
||||
.theme-light #tooltip:has(div.daggerheart.dh-style.tooltip.card-style),
|
||||
.theme-light aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
|
||||
background-image: url('../assets/parchments/dh-parchment-light.png');
|
||||
}
|
||||
|
||||
.theme-light aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip) {
|
||||
box-shadow: 0 0 25px @dark-blue-90;
|
||||
outline: 1px solid light-dark(@dark-blue, @golden);
|
||||
}
|
||||
|
||||
#tooltip,
|
||||
.locked-tooltip,
|
||||
.daggerheart.dh-style.tooltip {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"id": "daggerheart",
|
||||
"title": "Daggerheart",
|
||||
"description": "An unofficial implementation of the Daggerheart system",
|
||||
"version": "1.6.0",
|
||||
"version": "1.6.1",
|
||||
"compatibility": {
|
||||
"minimum": "13.346",
|
||||
"verified": "13.351",
|
||||
|
|
|
|||
|
|
@ -125,7 +125,6 @@
|
|||
</fieldset>
|
||||
{{/if}}
|
||||
<fieldset class="modifier-container {{#if (eq @root.rollType 'DualityRoll')}}two-columns{{else}}one-column{{/if}}">
|
||||
{{#if @root.advantage}}
|
||||
<legend>{{localize "DAGGERHEART.GENERAL.Modifier.plural"}}</legend>
|
||||
<div class="nest-inputs">
|
||||
<button class="advantage-chip flex1 {{#if (eq advantage 1)}}selected{{/if}}" data-action="updateIsAdvantage" data-advantage="1">
|
||||
|
|
@ -169,7 +168,6 @@
|
|||
</select>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{#if @root.rallyDie.length}}
|
||||
<span class="formula-label">{{localize "DAGGERHEART.CLASS.Feature.rallyDice"}}</span>
|
||||
<select name="roll.dice._rallyIndex">
|
||||
|
|
|
|||
|
|
@ -1,8 +1,17 @@
|
|||
<section
|
||||
class="tab {{tabs.rules.cssClass}} {{tabs.rules.id}}"
|
||||
data-tab="{{tabs.rules.id}}"
|
||||
data-group="{{tabs.rules.group}}"
|
||||
class="tab {{tabs.deathMoves.cssClass}} {{tabs.deathMoves.id}}"
|
||||
data-tab="{{tabs.deathMoves.id}}"
|
||||
data-group="{{tabs.deathMoves.group}}"
|
||||
>
|
||||
<fieldset>
|
||||
<legend>
|
||||
{{localize "DAGGERHEART.GENERAL.automation"}}
|
||||
</legend>
|
||||
|
||||
{{formGroup settingFields.schema.fields.deathMoveAutomation.fields.avoidDeath value=settingFields._source.deathMoveAutomation.avoidDeath localize=true}}
|
||||
{{formGroup settingFields.schema.fields.deathMoveAutomation.fields.riskItAll value=settingFields._source.deathMoveAutomation.riskItAll localize=true}}
|
||||
{{formGroup settingFields.schema.fields.deathMoveAutomation.fields.blazeOfGlory value=settingFields._source.deathMoveAutomation.blazeOfGlory localize=true}}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>
|
||||
{{localize "DAGGERHEART.SETTINGS.Automation.defeated.title"}}
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
{{formGroup settingFields.schema.fields.summaryMessages.fields.damage value=settingFields._source.summaryMessages.damage localize=true}}
|
||||
{{formGroup settingFields.schema.fields.summaryMessages.fields.effects value=settingFields._source.summaryMessages.effects localize=true}}
|
||||
</div>
|
||||
|
||||
{{formGroup settingFields.schema.fields.countdownAutomation value=settingFields._source.countdownAutomation localize=true}}
|
||||
{{formGroup settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints localize=true}}
|
||||
{{formGroup settingFields.schema.fields.hordeDamage value=settingFields._source.hordeDamage localize=true}}
|
||||
|
|
|
|||
|
|
@ -7,19 +7,19 @@
|
|||
<legend>{{localize tabs.settings.label}}</legend>
|
||||
|
||||
<span>{{localize "DAGGERHEART.GENERAL.type"}}</span>
|
||||
{{formField systemFields.type value=source.system.type localize=true}}
|
||||
{{formInput systemFields.type value=source.system.type localize=true}}
|
||||
<span>{{localize "DAGGERHEART.GENERAL.Domain.single"}}</span>
|
||||
{{formField systemFields.domain value=source.system.domain choices=domainChoices valueAttr="id" labelAttr="label" localize=true}}
|
||||
{{formInput systemFields.domain value=source.system.domain choices=domainChoices valueAttr="id" labelAttr="label" localize=true}}
|
||||
<span>{{localize "DAGGERHEART.GENERAL.level"}}</span>
|
||||
{{formField systemFields.level value=source.system.level data-dtype="Number"}}
|
||||
{{formInput systemFields.level value=source.system.level data-dtype="Number"}}
|
||||
<span>{{localize "DAGGERHEART.ITEMS.DomainCard.recallCost"}}</span>
|
||||
{{formField systemFields.recallCost value=source.system.recallCost data-dtype="Number"}}
|
||||
{{formInput systemFields.recallCost value=source.system.recallCost data-dtype="Number"}}
|
||||
<span>{{localize "DAGGERHEART.ITEMS.DomainCard.vaultActive"}}</span>
|
||||
{{formField systemFields.vaultActive value=source.system.vaultActive}}
|
||||
{{formInput systemFields.vaultActive value=source.system.vaultActive}}
|
||||
<span>{{localize "DAGGERHEART.ITEMS.DomainCard.loadoutIgnore"}}</span>
|
||||
{{formField systemFields.loadoutIgnore value=source.system.loadoutIgnore}}
|
||||
{{formInput systemFields.loadoutIgnore value=source.system.loadoutIgnore}}
|
||||
<span>{{localize "DAGGERHEART.ITEMS.DomainCard.domainTouched"}}</span>
|
||||
{{formField systemFields.domainTouched value=source.system.domainTouched placeholder=0 }}
|
||||
{{formInput systemFields.domainTouched value=source.system.domainTouched placeholder=0 }}
|
||||
</fieldset>
|
||||
|
||||
{{> "systems/daggerheart/templates/sheets/global/partials/resource-section/resource-section.hbs" }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue