Initial commit

This commit is contained in:
WBHarry 2025-05-22 16:53:39 +02:00
commit aa4021d1a2
163 changed files with 26530 additions and 0 deletions

View file

@ -0,0 +1,15 @@
<div class="daggerheart chat domain-card">
<div class="domain-card-title">
<div>{{title}}</div>
<h2>{{name}}</h2>
</div>
<img src="{{img}}" />
<div>{{{description}}}</div>
<footer class="ability-card-footer">
{{#each actions as |action index|}}
<button class="ability-use-button" data-index="{{index}}">
{{action.name}}
</button>
{{/each}}
</footer>
</div>

View file

@ -0,0 +1,35 @@
<div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{roll}}</div>
<div class="dice-tooltip">
<ol class="dice-rolls">
<div class="dice-hope-container">
{{#each diceResults}}
<li class="roll die d20 {{#if this.discarded}}discarded{{/if}}">{{this.value}}</li>
{{/each}}
</div>
<div class="modifiers-container">
{{#each modifiers}}
<li class="modifier-value" data-value="{{this.value}}" title="{{this.title}}">{{this.label}}</li>
{{/each}}
</div>
</ol>
</div>
<div class="dice-total">
<div class="dice-total-value">{{total}}</div>
</div>
{{#if (gt targets.length 0)}}
<div class="target-section">
{{#each targets as |target|}}
<div class="dice-total target-container {{#if target.hit}}hit{{else}}miss{{/if}}" data-token="{{target.id}}">
<img src="{{target.img}}" />
<div class="target-inner-container">
{{#if target.hit}}{{localize "Hit"}}{{else}}{{localize "Miss"}}{{/if}}
</div>
</div>
{{/each}}
</div>
{{/if}}
<button class="roll-damage-button" data-value="{{this.total.normal}}" data-damage="{{this.damage.value}}" data-damage-type="{{this.damage.type}}" {{#if this.damage.disabled}}disabled{{/if}}><span>Roll Damage</span></button>
</div>
</div>

View file

@ -0,0 +1,22 @@
<div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{roll}}</div>
<div class="dice-tooltip">
<ol class="dice-rolls">
<div class="dice-hope-container">
{{#each diceResults}}
<li class="roll die d20 {{#if this.discarded}}discarded{{/if}}">{{this.value}}</li>
{{/each}}
</div>
<div class="modifiers-container">
{{#each modifiers}}
<li class="modifier-value" data-value="{{this.value}}" title="{{this.title}}">{{this.label}}</li>
{{/each}}
</div>
</ol>
</div>
<div class="dice-total">
<div class="dice-total-value">{{total}}</div>
</div>
</div>
</div>

View file

@ -0,0 +1,49 @@
<div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{roll}}</div>
<div class="dice-tooltip {{#if advantage.value}}expanded{{/if}}">
<ol class="dice-rolls">
<div class="dice-hope-container">
<li id="hope" class="roll die {{hope.dice}} hope {{#if (or (eq advantageSelected 2) (and disadvantage.value (gt hope.value disadvantage.value)))}}unused{{/if}} {{#if (and advantage.value (eq advantageSelected 0))}}advantage{{/if}}">{{hope.value}}</li>
{{#if advantage.value}}
<li class="roll die {{advantage.dice}} hope {{#if (eq advantageSelected 1)}}unused{{/if}} {{#if (eq advantageSelected 0)}}advantage{{/if}}">{{ advantage.value}}</li>
{{/if}}
{{#if disadvantage.value}}
<li class="roll die {{disadvantage.dice}} disadvantage {{#if (gte disadvantage.value hope.value)}}unused{{/if}}">{{disadvantage.value}}</li>
{{/if}}
</div>
<li class="roll die {{fear.dice}} fear">{{fear.value}}</li>
<div class="modifiers-container">
{{#each modifiers}}
<li class="modifier-value" data-value="{{this.value}}" title="{{this.title}}">{{this.label}}</li>
{{/each}}
</div>
</ol>
</div>
<div class="dice-total">
<div class="dice-total-label">{{totalLabel}}</div>
<div class="dice-total-value">
{{#if total.alternate}}
{{#with dualityDiceStates}}
<span class="{{this.hope}}">{{../total.normal}}</span> - <span class="{{this.alternate}}">{{../total.alternate}}</span>
{{/with}}
{{else}}
{{total.normal}}
{{/if}}
</div>
</div>
{{#if (gt targets.length 0)}}
<div class="target-section">
{{#each targets as |target|}}
<div class="dice-total target-container {{#if target.hit}}hit{{else}}{{#if (not ../total.alternate)}}miss{{/if}}{{/if}}" data-token="{{target.id}}">
<img src="{{target.img}}" />
<div class="target-inner-container">
{{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}}
</div>
</div>
{{/each}}
</div>
{{/if}}
<button class="roll-damage-button" data-value="{{this.total.normal}}" data-damage="{{this.damage.value}}" data-damage-type="{{this.damage.type}}" {{#if this.damage.disabled}}disabled{{/if}}><span>Roll Damage</span></button>
</div>
</div>

View file

@ -0,0 +1,19 @@
<div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{this.roll}}</div>
<div class="dice-tooltip">
<ol class="dice-rolls">
{{#each dice}}
<li class="roll die {{this.type}}">{{this.value}}</li>
{{/each}}
{{#each modifiers}}
<li class="modifier-value">{{this}}</li>
{{/each}}
</ol>
</div>
<div class="dice-total">{{this.total}}</div>
<div class="flexrow">
<button class="damage-button" data-value="{{this.total}}" data-type="{{this.type}}"><span>{{localize "DAGGERHEART.Chat.DamageRoll.DealDamage"}}</span></button>
</div>
</div>
</div>

View file

@ -0,0 +1,8 @@
<div class="daggerheart chat downtime">
<h2 class="downtime-title-container">
<div>{{this.player}} {{localize "DAGGERHEART.Chat.DeathMove.Title"}}</div>
<div class="downtime-subtitle">{{this.title}}</div>
</h2>
<img class="downtime-image" src="{{this.img}}" />
<div>{{{this.description}}}</div>
</div>

View file

@ -0,0 +1,16 @@
<div class="daggerheart chat downtime">
<h2 class="downtime-title-container">
<div>{{this.player}} {{localize "DAGGERHEART.Chat.Downtime.Title"}}</div>
<div class="downtime-subtitle">{{this.title}}</div>
</h2>
<img class="downtime-image" src="{{this.img}}" />
<div>{{{this.description}}}</div>
<div class="downtime-refresh-container">
<div class="refresh-title">Refreshed Features</div>
{{#each this.refreshedFeatures}}
<div class="refresh-inner-container">
<div>{{this.name}}</div>
</div>
{{/each}}
</div>
</div>

View file

@ -0,0 +1,68 @@
<div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{roll}}</div>
<div class="dice-tooltip {{#if advantage.value}}expanded{{/if}}">
<ol class="dice-rolls">
<div class="dice-hope-container">
<li id="hope" class="roll die {{hope.dice}} hope" title="{{localize "DAGGERHEART.General.Hope"}}">{{hope.value}}</li>
<li class="roll die {{fear.dice}} fear" title="{{localize "DAGGERHEART.General.Fear"}}">{{fear.value}}</li>
{{#if advantage.value}}
<li class="roll die {{advantage.dice}} advantage" title="{{localize "DAGGERHEART.General.Advantage"}}">{{ advantage.value}}</li>
{{/if}}
{{#if disadvantage.value}}
<li class="roll die {{disadvantage.dice}} disadvantage" title="{{localize "DAGGERHEART.General.Disadvantage"}}">{{disadvantage.value}}</li>
{{/if}}
</div>
<div class="modifiers-container">
{{#each modifiers}}
<li class="modifier-value" data-value="{{this.value}}" title="{{this.title}}">{{this.label}}</li>
{{/each}}
</div>
</ol>
</div>
<div class="dice-total">
<div class="dice-total-label">{{totalLabel}}</div>
<div class="dice-total-value">
{{total}}
</div>
</div>
</div>
</div>
{{!-- V1.3 --}}
{{!-- <div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{roll}}</div>
<div class="dice-tooltip {{#if advantage.value}}expanded{{/if}}">
<ol class="dice-rolls">
<div class="dice-hope-container">
<li id="hope" class="roll die {{hope.dice}} hope {{#if (or (eq advantageSelected 2) (and disadvantage.value (gt hope.value disadvantage.value)))}}unused{{/if}} {{#if (and advantage.value (eq advantageSelected 0))}}advantage{{/if}}">{{hope.value}}</li>
{{#if advantage.value}}
<li class="roll die {{advantage.dice}} hope {{#if (eq advantageSelected 1)}}unused{{/if}} {{#if (eq advantageSelected 0)}}advantage{{/if}}">{{ advantage.value}}</li>
{{/if}}
{{#if disadvantage.value}}
<li class="roll die {{disadvantage.dice}} disadvantage {{#if (gte disadvantage.value hope.value)}}unused{{/if}}">{{disadvantage.value}}</li>
{{/if}}
</div>
<li class="roll die {{fear.dice}} fear">{{fear.value}}</li>
<div class="modifiers-container">
{{#each modifiers}}
<li class="modifier-value" data-value="{{this.value}}" title="{{this.title}}">{{this.label}}</li>
{{/each}}
</div>
</ol>
</div>
<div class="dice-total">
<div class="dice-total-label">{{totalLabel}}</div>
<div class="dice-total-value">
{{#if total.alternate}}
{{#with dualityDiceStates}}
<span class="{{this.hope}}">{{../total.normal}}</span> - <span class="{{this.alternate}}">{{../total.alternate}}</span>
{{/with}}
{{else}}
{{total.normal}}
{{/if}}
</div>
</div>
</div>
</div> --}}

View file

@ -0,0 +1,19 @@
<div class="dice-roll daggerheart chat roll">
<div class="dice-result">
<div class="dice-formula">{{this.roll}}</div>
<div class="dice-tooltip">
<ol class="dice-rolls">
{{#each dice}}
<li class="roll die {{this.type}}">{{this.value}}</li>
{{/each}}
{{#each modifiers}}
<li class="modifier-value">{{this}}</li>
{{/each}}
</ol>
</div>
<div class="dice-total">{{this.total}}</div>
<div class="flexrow">
<button class="healing-button" data-value="{{this.total}}" data-type="{{this.type}}"><span>{{localize "DAGGERHEART.Chat.HealingRoll.Heal"}}</span></button>
</div>
</div>
</div>

View file

@ -0,0 +1,5 @@
<div class="slider-container">
<div data-action="toggleSlider" class="slider-inner-container">
<i class="fa-solid fa-wrench slider-icon {{#if this.editMode}}editMode{{/if}}"></i>
</div>
</div>

View file

@ -0,0 +1,5 @@
<form class="flexcol">
{{#each this.items as |item index|}}
<button class="item-button" data-index="{{index}}">{{localize item.name}} <i class="fa-solid fa-check item-icon"></i></button>
{{/each}}
</form>

View file

@ -0,0 +1,243 @@
<div>
<header class="adversary-header-container">
<div class="adversary-header flexrow">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="adversary-title">
{{#if this.editMode}}
{{formInput fields.name value=source.name rootId=partId placeholder="{{ localize 'Name' }}"}}
{{else}}
<div class="title-text">{{this.title}}</div>
{{/if}}
</div>
</div>
<i class="fa-solid fa-wrench icon-button secondary {{#if this.editMode}}active{{/if}}" data-action="toggleSlider" style="position: absolute; right: 4px; top: 4px;"></i>
</header>
<section class="sheet-body">
{{#if this.editMode}}
<div>
<h2>{{localize "DAGGERHEART.Sheets.Adversary.Description"}}</h2>
<textarea name="system.description">{{source.system.description}}</textarea>
<h2 class="motive-container">
<div class="motive-title">
<div>{{localize "DAGGERHEART.Sheets.Adversary.MotivesAndTactics"}}</div>
<i class="fa-solid fa-plus" data-action="addMotive"></i>
</div>
</h2>
<div class="ability-choices">
{{#each source.system.motivesAndTactics as |motive index|}}
<div class="ability-chip">
<input type="text" name="system.motivesAndTactics.{{index}}" value="{{motive}}" />
<button><i data-action="removeMotive" data-motive="{{index}}" class="fa-solid fa-x"></i></button>
</div>
{{/each}}
</div>
</div>
<div class="adversary-content-container">
<div class="adversary-statistics-container">
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Tier"}}</label>
<div class="form-fields">
<select name="system.tier">
{{selectOptions config.GENERAL.tiers selected=source.system.tier labelAttr="key"}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Type"}}</label>
<div class="form-fields">
<select name="system.type">
{{selectOptions config.ACTOR.adversaryTypes selected=source.system.type labelAttr="name" localize=true}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Modifier"}}</label>
<div class="form-fields">
<input type="text" name="system.attackModifier" value="{{source.system.attackModifier}}" data-dtype="Number" />
</div>
</div>
<div class="attack-container">
<h2>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Title"}}</h2>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Name"}}</label>
<div class="form-fields">
<input type="text" name="system.attack.name" value="{{source.system.attack.name}}" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Range"}}</label>
<div class="form-fields">
<select name="system.attack.range">
{{selectOptions config.GENERAL.range selected=source.system.attack.range labelAttr="name" localize=true}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Damage.Title"}}</label>
<div class="form-fields">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Damage.Value"}}</label>
<input type="text" name="system.attack.damage.value" value="{{source.system.attack.damage.value}}" />
<label>{{localize "DAGGERHEART.Sheets.Adversary.Attack.Damage.Type"}}</label>
<select name="system.attack.damage.type">
{{selectOptions config.GENERAL.damageTypes selected=source.system.attack.damage.type labelAttr="name" localize=true}}
</select>
</div>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Difficulty"}}</label>
<div class="form-fields">
<input type="text" name="system.difficulty" value="{{source.system.difficulty}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds.Title"}}</label>
<div class="form-fields adversary-damage-threshold-container">
<label>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds.Minor"}}</label>
<input type="text" name="system.damageThresholds.minor" value="{{source.system.damageThresholds.minor}}" data-dtype="Number" />
<label>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds.Major"}}</label>
<input type="text" name="system.damageThresholds.major" value="{{source.system.damageThresholds.major}}" data-dtype="Number" />
<label>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds.Severe"}}</label>
<input type="text" name="system.damageThresholds.severe" value="{{source.system.damageThresholds.severe}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.HP"}}</label>
<div class="form-fields">
<input type="text" name="system.resources.health.max" value="{{source.system.resources.health.max}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Stress"}}</label>
<div class="form-fields">
<input type="text" name="system.resources.stress.max" value="{{source.system.resources.stress.max}}" data-dtype="Number" />
</div>
</div>
<h2 class="experience-container">
<div class="flex-centered">
<div>{{localize "DAGGERHEART.Sheets.Adversary.Experiences"}}</div>
<i class="fa-solid fa-plus" data-action="addExperience"></i>
</div>
</h2>
{{#each source.system.experiences as |experience index|}}
<div class="experience-chip">
<input class="experience.value" type="text" name="system.experiences.{{index}}.name" value="{{experience.name}}" />
<input class="experience-value" type="text" name="system.experiences.{{index}}.value" value="{{experience.value}}" data-dtype="Number" />
<button class="experience-button"><i data-action="removeExperience" data-experience="{{index}}" class="fa-solid fa-x"></i></button>
</div>
{{/each}}
</div>
<div class="adversary-moves-container">
<h2 class="moves-edit-container">{{localize "DAGGERHEART.Sheets.Adversary.Moves"}} <i class="fa-solid fa-plus" data-action="addMove"></i></h2>
{{#each this.data.moves as |move key|}}
<div class="chip-container">
<div class="chip-inner-container">
<img src="{{move.img}}" />
<div class="move-title">{{move.name}}</div>
</div>
<div class="chip-inner-container">
<button data-action="viewMove" data-move={{move.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
<button data-action="removeMove" data-move={{move.uuid}}><i class="fa-solid fa-trash"></i></button>
</div>
</div>
{{/each}}
</div>
</div>
{{else}}
<div class="motive-container">
<div class="motive-title">
<span class="motive-title-value"><strong>{{localize "DAGGERHEART.Sheets.Adversary.Description"}}:</strong> {{this.data.description}}</span>
</div>
<div class="motive-title">
<span class="motive-title-value"><strong>{{localize "DAGGERHEART.Sheets.Adversary.MotivesAndTactics"}}:</strong> {{this.data.motivesAndTactics}}</span>
</div>
</div>
<div class="adversary-content-container">
<div class="adversary-statistics-container">
<div class="statistic-section">
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Tier"}}:</label>
<span class="statistic-value">{{this.data.tier}}</span>
</div>
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Type"}}:</label>
<span class="statistic-value">{{this.data.type}}</span>
</div>
</div>
<div class="statistic-section">
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Difficulty"}}:</label>
<span class="statistic-value">{{this.data.difficulty}}</span>
</div>
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Reaction"}}</label>
<img class="adversary-roll" data-action="reactionRoll" src="icons/svg/d20-grey.svg" />
</div>
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Attack.Modifier"}}:</label>
<span class="statistic-value">+{{this.data.attack.attackModifier}}</span>
<img class="adversary-roll" data-action="attackRoll" data-value="{{this.data.attack.attackModifier}}" data-damage="{{this.data.attack.damage.value}}" data-damage-type="{{this.data.attack.damage.type}}" src="icons/svg/d20-grey.svg" />
</div>
<div class="statistic-row">
<label class="statistic-title">{{localize this.data.attack.name}}</label>
<span class="statistic-value">{{this.data.attack.range}} | {{this.data.attack.damage.value}} {{this.data.attack.damage.typeName}}</span>
</div>
</div>
<div class="statistic-section">
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.PC.Health.Minor"}}</label>
<span class="statistic-value">{{this.data.damageThresholds.minor}}</span>
<div class="vertical-separator" style="height: 16px; margin: 0 4px;"></div>
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.PC.Health.Major"}}</label>
<span class="statistic-value">{{this.data.damageThresholds.major}}</span>
<div class="vertical-separator" style="height: 16px; margin: 0 4px;"></div>
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.PC.Health.Severe"}}</label>
<span class="statistic-value">{{this.data.damageThresholds.severe}}</span>
</div>
<div class="statistic-resource-container">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.HP"}}</label>
<div class="statistic-resource-inner-container">
{{#times this.data.hp.max}}
<input class="statistic-resource-input" type="checkbox" data-action="toggleHP" data-index="{{this}}" {{checked (gt ../data.hp.value this)}} />
{{/times}}
</div>
</div>
<div class="statistic-resource-container">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Stress"}}</label>
<div class="statistic-resource-inner-container">
{{#times this.data.stress.max}}
<input class="statistic-resource-input" type="checkbox" data-action="toggleStress" data-index="{{this}}" {{checked (gt ../data.stress.value this)}} />
{{/times}}
</div>
</div>
</div>
<div class="statistic-section">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Experience"}}</label>
{{#each source.system.experiences as |experience index|}}
<div class="experience-row">
<span>{{experience.name}}</span>
&nbsp;
<span>{{#if (gte experience.value 0)}}+{{else}}-{{/if}}{{experience.value}}</span>
</div>
{{/each}}
</div>
{{!-- <div class="statistic-resource-container">
<label class="statistic-title">{{localize "HP:"}}</label>
<span class="statistic-value">{{this.data.hp.max}}</span>
</div> --}}
</div>
<div class="adversary-moves-container">
<div class="moves-title">{{localize "DAGGERHEART.Sheets.Adversary.Moves"}}</div>
{{#each this.data.moves as |move index|}}
<div class="move-container">
<label class="moves-name">{{move.name}}</label>
<div class="move-description">{{{move.system.description}}}</div>
</div>
{{/each}}
</div>
</div>
{{/if}}
</section>
</div>

View file

@ -0,0 +1,11 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
</header>
{{> "systems/daggerheart/templates/sheets/parts/heritage.hbs" }}
</div>

View file

@ -0,0 +1,37 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
</header>
<section class="sheet-body">
{{formField systemFields.baseScore value=source.system.baseScore label=(localize "DAGGERHEART.Sheets.Armor.BaseScore") }}
{{formField systemFields.feature value=source.system.feature label=(localize "DAGGERHEART.Sheets.Armor.Feature") localize=true blank=""}}
<div class="feature-description">
<h2>{{localize "DAGGERHEART.Sheets.Armor.Description"}}</h2>
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
</div>
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Armor.BaseScore"}}</label>
<div class="form-fields">
<input type="text" name="system.baseScore" value={{item.system.baseScore}} data-dtype="Number" />
</div>
</div> --}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Armor.Feature"}}</label>
<div class="form-fields">
<select name="system.feature">
{{selectOptions config.ITEM.armorFeatures selected=item.system.feature labelAttr="name" localize=true blank="" }}
</select>
</div>
</div>
<div class="feature-description">
<h2>{{localize "DAGGERHEART.Sheets.Armor.Description"}}</h2>
{{editor item.system.description target="system.description" button=true}}
</div> --}}
</section>
</div>

300
templates/sheets/class.hbs Normal file
View file

@ -0,0 +1,300 @@
<div>
<header class="flexcol">
<div class="flexrow">
<img class="flex0" src="{{source.img}}" data-edit="img" data-action="onEditImage" title="{{source.name}}" height="64" width="64"/>
<div class="flexcol">
<h2 style="margin-bottom: 4px; margin-left: 8px;"><input name="name" type="text" value="{{source.name}}" placeholder="{{ localize 'Name' }}"/></h2>
{{!-- <nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="features" data-action="tabSwitch">{{localize "DAGGERHEART.Sheets.Class.Tabs.Features"}}</a>
<a class="item" data-tab="guide">{{localize "DAGGERHEART.Sheets.Class.Tabs.Guide"}}</a>
</nav> --}}
<nav class="sheet-tabs tabs">
{{#each tabs as |tab|}}
<a class="{{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav>
</div>
</div>
</header>
<section class="sheet-body flexcol">
<div class="tab features {{this.tabs.features.cssClass}}" data-group="primary" data-tab="features">
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Domains"}}</label>
<div class="form-fields">
<input class="domain-input" value="{{domains}}" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.DamageThresholds.Title"}}</label>
<div class="form-fields">
<label>{{localize "DAGGERHEART.Sheets.Class.DamageThresholds.Minor"}}</label>
<input name="system.damageThresholds.minor" value="{{source.system.damageThresholds.minor}}" placeholder="Minor" type="text" data-dtype="Number" />
<label>{{localize "DAGGERHEART.Sheets.Class.DamageThresholds.Major"}}</label>
<input name="system.damageThresholds.major" value="{{source.system.damageThresholds.major}}" placeholder="Major" type="text" data-dtype="Number" />
<label>{{localize "DAGGERHEART.Sheets.Class.DamageThresholds.Severe"}}</label>
<input name="system.damageThresholds.severe" value="{{source.system.damageThresholds.severe}}" placeholder="Severe" type="text" data-dtype="Number" />
</div>
</div>
{{formField systemFields.evasion value=source.system.evasion label=(localize "DAGGERHEART.Sheets.Class.Evasion")}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Evasion"}}</label>
<div class="form-fields">
<input name="system.evasion" value="{{source.system.evasion}}" placeholder="Minor" type="text" data-dtype="Number" />
</div>
</div> --}}
<div>
<h2>{{localize "DAGGERHEART.Sheets.Class.ClassFeatures"}}</h2>
<div>
{{#each source.system.features as |feature index|}}
<div class="feature-container">
<div class="feature-inner-container">
<img src="{{feature.img}}" />
<div class="feature-title">{{feature.name}}</div>
</div>
<div class="subclass-inner-container">
<button data-action="viewFeature" data-feature={{feature.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
<button data-action="removeFeature" data-feature={{feature.uuid}}><i class="fa-solid fa-trash"></i></button>
</div>
</div>
{{/each}}
</div>
</div>
<div>
<h2>{{localize "DAGGERHEART.Sheets.Class.Subclasses"}}</h2>
<div>
{{#each source.system.subclasses as |subclass index|}}
<div class="feature-container">
<div class="feature-inner-container">
<img src="{{subclass.img}}" />
<div class="feature-title">{{subclass.name}}</div>
</div>
<div class="subclass-inner-container">
<button data-action="viewSubclass" data-subclass={{subclass.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
<button data-action="removeSubclass" data-subclass={{subclass.uuid}}><i class="fa-solid fa-trash"></i></button>
</div>
</div>
{{/each}}
</div>
</div>
</div>
<div class="tab guide {{this.tabs.guide.cssClass}}" data-group="primary" data-tab="guide">
<div class="flexcol">
<div class="guide-section flexrow flex1">
<div class="flex-col-centered">
<div class="guide-section-title-centered">{{localize "DAGGERHEART.Sheets.Class.Guide.Suggestions.Title"}}</div>
<fieldset class="drop-section">
<legend>
{{localize "DAGGERHEART.Sheets.Class.Guide.Suggestions.Traits.Title"}}
</legend>
<div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Abilities.Agility.Name"}}</label>
<div class="form-fields flex0 trait-input">
<input type="text" name="system.characterGuide.suggestedTraits.agility" value="{{source.system.characterGuide.suggestedTraits.agility}}" />
</div>
</div>
<div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Abilities.Strength.Name"}}</label>
<div class="form-fields flex0 trait-input">
<input type="text" name="system.characterGuide.suggestedTraits.strength" value="{{source.system.characterGuide.suggestedTraits.strength}}" />
</div>
</div>
<div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Abilities.Finesse.Name"}}</label>
<div class="form-fields flex0 trait-input">
<input type="text" name="system.characterGuide.suggestedTraits.finesse" value="{{source.system.characterGuide.suggestedTraits.finesse}}" />
</div>
</div>
<div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Abilities.Instinct.Name"}}</label>
<div class="form-fields flex0 trait-input">
<input type="text" name="system.characterGuide.suggestedTraits.instinct" value="{{source.system.characterGuide.suggestedTraits.instinct}}" />
</div>
</div>
<div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Abilities.Presence.Name"}}</label>
<div class="form-fields flex0 trait-input">
<input type="text" name="system.characterGuide.suggestedTraits.presence" value="{{source.system.characterGuide.suggestedTraits.presence}}" />
</div>
</div>
<div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Abilities.Knowledge.Name"}}</label>
<div class="form-fields flex0 trait-input">
<input type="text" name="system.characterGuide.suggestedTraits.knowledge" value="{{source.system.characterGuide.suggestedTraits.knowledge}}" />
</div>
</div>
</fieldset>
<fieldset class="drop-section primary-weapon-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.SuggestedPrimaryWeaponTitle"}}
</legend>
<div class="drop-section-body">
{{#if source.system.characterGuide.suggestedPrimaryWeapon}}
<div data-action="viewItem" data-item="{{source.system.characterGuide.suggestedPrimaryWeapon.uuid}}" class="suggested-item suggested-primary-weapon">
<img src="{{source.system.characterGuide.suggestedPrimaryWeapon.img}}" />
<div>{{source.system.characterGuide.suggestedPrimaryWeapon.name}}</div>
<i data-action="removePrimaryWeapon" class="fa-solid fa-trash icon-button"></i>
</div>
{{/if}}
</div>
</fieldset>
<fieldset class="drop-section secondary-weapon-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.SuggestedSecondaryWeaponTitle"}}
</legend>
<div class="drop-section-body">
{{#if source.system.characterGuide.suggestedSecondaryWeapon}}
<div data-action="viewItem" data-item="{{source.system.characterGuide.suggestedSecondaryWeapon.uuid}}" class="suggested-item">
<img src="{{source.system.characterGuide.suggestedSecondaryWeapon.img}}" />
<div>{{source.system.characterGuide.suggestedSecondaryWeapon.name}}</div>
<i data-action="removeSecondaryWeapon" class="fa-solid fa-trash icon-button"></i>
</div>
{{/if}}
</div>
</fieldset>
<fieldset class="drop-section armor-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.SuggestedArmorTitle"}}
</legend>
<div class="drop-section-body">
{{#if source.system.characterGuide.suggestedArmor}}
<div data-action="viewItem" data-item="{{source.system.characterGuide.suggestedArmor.uuid}}" class="suggested-item">
<img src="{{source.system.characterGuide.suggestedArmor.img}}" />
<div>{{source.system.characterGuide.suggestedArmor.name}}</div>
<i data-action="removeArmor" class="fa-solid fa-trash icon-button"></i>
</div>
{{/if}}
</div>
</fieldset>
</div>
<div class="flex-col-centered">
<div class="guide-section-title-centered">{{localize "DAGGERHEART.Sheets.Class.Guide.Inventory.Title"}}</div>
<fieldset class="drop-section take-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.Inventory.Take"}}
</legend>
<div class="drop-section-body">
{{#each source.system.inventory.take}}
<div data-action="viewItem" data-item="{{this.uuid}}" class="suggested-item">
<img src="{{this.img}}" />
<div>{{this.name}}</div>
<i data-action="removeItem" data-type="take" data-item="{{this.uuid}}" class="fa-solid fa-trash icon-button"></i>
</div>
{{/each}}
</div>
</fieldset>
<fieldset class="drop-section choice-a-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.Inventory.ThenChoose"}}
</legend>
<div class="drop-section-body">
{{#each source.system.inventory.choiceA}}
<div data-action="viewItem" data-item="{{this.uuid}}" class="suggested-item">
<img src="{{this.img}}" />
<div>{{this.name}}</div>
<i data-action="removeItem" data-type="choiceA" data-item="{{this.uuid}}" class="fa-solid fa-trash icon-button"></i>
</div>
{{/each}}
</div>
</fieldset>
<fieldset class="drop-section choice-b-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.Inventory.AndEither"}}
</legend>
<div class="drop-section-body">
{{#each source.system.inventory.choiceB}}
<div data-action="viewItem" data-item="{{this.uuid}}" class="suggested-item">
<img src="{{this.img}}" />
<div>{{this.name}}</div>
<i data-action="removeItem" data-type="choiceB" data-item="{{this.uuid}}" class="fa-solid fa-trash icon-button"></i>
</div>
{{/each}}
</div>
</fieldset>
</div>
<div class="flex-col-centered">
<div class="guide-section-title-centered">{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Title"}}</div>
<div class="choice-a-section">
<div class="inventory-title">{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Explanation"}}</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Clothes"}}</label>
<div class="form-fields">
<input type="text" name="system.characterGuide.characterDescription.clothes" value="{{source.system.characterGuide.characterDescription.clothes}}" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Eyes"}}</label>
<div class="form-fields">
<input type="text" name="system.characterGuide.characterDescription.eyes" value="{{source.system.characterGuide.characterDescription.eyes}}" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Body"}}</label>
<div class="form-fields">
<input type="text" name="system.characterGuide.characterDescription.body" value="{{source.system.characterGuide.characterDescription.body}}" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Color"}}</label>
<div class="form-fields">
<input type="text" name="system.characterGuide.characterDescription.color" value="{{source.system.characterGuide.characterDescription.color}}" />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Class.Guide.Description.Attitude"}}</label>
<div class="form-fields">
<input type="text" name="system.characterGuide.characterDescription.attitude" value="{{source.system.characterGuide.characterDescription.attitude}}" />
</div>
</div>
</div>
<fieldset class="drop-section">
<legend class="levelup-legend">
{{localize "DAGGERHEART.Sheets.Class.Guide.Extra.Title"}}
</legend>
<div class="extra-section">
<div class="extra-title">{{localize "DAGGERHEART.Sheets.Class.Guide.Extra.Subtitle"}}</div>
<input class="extra-input" type="text" name="system.inventory.extra.title" value="{{source.system.inventory.extra.title}}" />
<textarea name="system.inventory.extra.description">{{source.system.inventory.extra.description}}</textarea>
</div>
</fieldset>
</div>
</div>
<div class="guide-section flexrow flex2">
<fieldset class="drop-section">
<legend>{{localize "DAGGERHEART.Sheets.Class.Guide.BackgroundQuestions.Title"}}</legend>
<div class="flex-col-centered">
{{#times 3}}
<div class="guide-section-title-centered">{{localize "DAGGERHEART.Sheets.Class.Guide.BackgroundQuestions.Question"}} {{add this 1}}</div>
<input type="text" name="system.characterGuide.backgroundQuestions.{{this}}" value="{{lookup ../source.system.characterGuide.backgroundQuestions this}}" />
{{/times}}
</div>
</fieldset>
<fieldset class="drop-section">
<legend>
{{localize "DAGGERHEART.Sheets.Class.Guide.Connections.Title"}}
</legend>
<div class="flex-col-centered">
{{#times 3}}
<div class="guide-section-title-centered">{{localize "DAGGERHEART.Sheets.Class.Guide.Connections.Question"}} {{add this 1}}</div>
<input type="text" name="system.characterGuide.connections.{{this}}" value="{{lookup ../source.system.characterGuide.connections this}}" />
{{/times}}
</div>
</fieldset>
</div>
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,11 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
</header>
{{> "systems/daggerheart/templates/sheets/parts/heritage.hbs" }}
</div>

View file

@ -0,0 +1,36 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
</header>
<section class="sheet-body">
<div class="flexrow item-container">
<div class="item-sidebar">
{{formField systemFields.quantity value=source.system.quantity label=(localize "DAGGERHEART.Sheets.Consumable.Quantity") }}
{{formField systemFields.consumeOnUse value=source.system.consumeOnUse label=(localize "DAGGERHEART.Sheets.Consumable.ConsumeOnUse")}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Consumable.Quantity"}}</label>
<div class="form-fields">
<input type="text" name="system.quantity" value="{{item.system.quantity}}" data-dtype="Number" />
</div>
</div> --}}
{{!-- <div class="form-group flexrow">
<label>{{localize "DAGGERHEART.Sheets.Consumable.ConsumeOnUse"}}</label>
<div class="form-fields flex0">
<input type="checkbox" name="system.consumeOnUse" {{checked item.system.consumeOnUse}} />
</div>
</div> --}}
</div>
<div>
<h2 class="flex-col-centered">{{localize "DAGGERHEART.General.Description"}}</h2>
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
{{!-- {{editor item.system.description target="system.description" button=true}} --}}
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,101 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{source.img}}" data-edit="img" data-action="onEditImage" title="{{source.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
<nav class="sheet-tabs tabs">
{{#each tabs as |tab|}}
<a class="{{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav>
</header>
<section class="sheet-body">
<div class="tab {{this.tabs.general.cssClass}}" data-group="primary" data-tab="general">
{{formField systemFields.type value=source.system.type label="Type" localize=true blank=""}}
{{formField systemFields.foundation value=source.system.foundation label="Foundation" }}
{{formField systemFields.domain value=source.system.domain label="Domain" localize=true blank=""}}
{{formField systemFields.level value=source.system.level label="level" data-dtype="Number"}}
{{formField systemFields.recallCost value=source.system.recallCost label="Recall Cost" data-dtype="Number"}}
{{formField systemFields.effect value=source.system.effect label="Description" enriched=source.system.effect toggled=true}}
</div>
<div class="tab {{this.tabs.actions.cssClass}}" data-group="primary" data-tab="actions">
<h2>{{localize "Actions"}} <i class="fa-solid fa-plus icon-button" data-action="addAction"></i></h2>
<div class="flexrow">
{{#each source.system.actions as |action index|}}
<div data-action="editAction" data-index="{{index}}" class="ability-chip">
<img src="{{action.img}}" />
<div>{{action.name}}</div>
<button data-action="removeAction" data-index="{{index}}"><i class="fa-solid fa-x"></i></button>
</div>
{{/each}}
</div>
</div>
</section>
</div>
{{!-- <form class={{cssClass}} autocomplete="off">
<header class="flexcol">
<div class="flexrow">
<img class="flex0" src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/>
<div class="title-name">
<h2><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h2>
</div>
</div>
</header>
<section class="sheet-body">
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.DomainCard.Category"}}</label>
<div class="form-fields">
<label>{{localize "DAGGERHEART.Sheets.DomainCard.Type"}}</label>
<select name="system.type">
{{selectOptions config.DOMAIN.cardTypes selected=item.system.type labelAttr="name" localize=true blank=""}}
</select>
<label>{{localize "DAGGERHEART.Sheets.DomainCard.Foundation"}}</label>
<input name="system.foundation" type="checkbox" {{checked item.system.foundation}} />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.DomainCard.Domain"}}</label>
<div class="form-fields">
<select name="system.domain">
{{selectOptions config.DOMAIN.domains selected=item.system.domain labelAttr="name" localize=true blank=""}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.DomainCard.Costs"}}</label>
<div class="form-fields">
<label>{{localize "DAGGERHEART.Sheets.DomainCard.Level"}}</label>
<input name="system.level" value="{{item.system.level}}" type="text" data-dtype="Number" />
<label>{{localize "DAGGERHEART.Sheets.DomainCard.RecallCost"}}</label>
<input name="system.recallCost" value="{{item.system.recallCost}}" type="text" data-dtype="Number" />
</div>
</div>
<div class="domain-card-description">
<h2>{{localize "DAGGERHEART.Sheets.DomainCard.Description"}}</h2>
{{editor item.system.effect target="system.effect" button=true}}
</div>
</section>
<h2>{{localize "Actions"}} <i class="fa-solid fa-plus icon-button" data-action="addAction"></i></h2>
<div class="flexrow">
{{#each this.actions as |action index|}}
<div data-action="editAction" data-index="{{index}}" class="ability-chip">
<img src="{{action.img}}" />
<div>{{action.name}}</div>
<button data-action="removeAction" data-index="{{index}}"><i class="fa-solid fa-x"></i></button>
</div>
{{/each}}
</div>
</form> --}}

View file

@ -0,0 +1,111 @@
<div>
<header class="adversary-header-container">
<div class="adversary-header flexrow">
<img class="flex0" src="{{source.img}}" data-action="onEditImage" data-edit="img" title="{{source.name}}" height="64" width="64"/>
<div class="adversary-title">
{{#if this.editMode}}
<input class="title-text" name="name" type="text" value="{{source.name}}" placeholder="{{ localize 'Name' }}"/>
{{else}}
<div class="title-text">{{source.name}}</div>
{{/if}}
</div>
</div>
<i class="fa-solid fa-wrench icon-button secondary {{#if this.editMode}}active{{/if}}" data-action="toggleSlider" style="position: absolute; right: 4px; top: 4px;"></i>
</header>
<section class="sheet-body">
{{#if this.editMode}}
<div>
<h2>{{localize "DAGGERHEART.Sheets.Adversary.Description"}}</h2>
<textarea name="system.description">{{source.system.description}}</textarea>
<h2>{{localize "DAGGERHEART.Sheets.Environment.ToneAndFeel"}}</h2>
<textarea name="system.toneAndFeel">{{source.system.toneAndFeel}}</textarea>
</div>
<div class="flexrow" style="align-items: baseline;">
<div class="adversary-statistics-container">
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Tier"}}</label>
<div class="form-fields">
<select name="system.tier">
{{selectOptions config.GENERAL.tiers selected=source.system.tier labelAttr="key"}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Type"}}</label>
<div class="form-fields">
<select name="system.type">
{{selectOptions config.ACTOR.adversaryTypes selected=source.system.type labelAttr="name" localize=true}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Adversary.Difficulty"}}</label>
<div class="form-fields">
<input type="text" name="system.difficulty" value="{{source.system.difficulty}}" data-dtype="Number" />
</div>
</div>
<h2>{{localize "DAGGERHEART.Sheets.Environment.PotentialAdversaries"}}</h2>
<textarea name="system.potentialAdversaries">{{source.system.potentialAdversaries}}</textarea>
</div>
<div class="adversary-moves-container">
<h2 class="moves-edit-container">{{localize "DAGGERHEART.Sheets.Adversary.Moves"}} <i class="fa-solid fa-plus" data-action="addFeature"></i></h2>
{{#each data.features as |feature key|}}
<div class="chip-container">
<div class="chip-inner-container">
<img src="{{feature.img}}" />
<div class="move-title">{{feature.name}}</div>
</div>
<div class="chip-inner-container">
<button data-action="viewFeature" data-feature={{feature.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
<button data-action="removeFeature" data-feature={{feature.uuid}}><i class="fa-solid fa-trash"></i></button>
</div>
</div>
{{/each}}
</div>
</div>
{{else}}
<div class="motive-container">
<div class="motive-title">
<span class="motive-title-value"><strong>{{localize "DAGGERHEART.Sheets.Adversary.Description"}}:</strong> {{source.system.description}}</span>
</div>
<div class="motive-title">
<span class="motive-title-value"><strong>{{localize "DAGGERHEART.Sheets.Environment.ToneAndFeel"}}:</strong> {{source.system.toneAndFeel}}</span>
</div>
</div>
<div class="flexrow" style="align-items: baseline;">
<div class="adversary-statistics-container">
<div class="statistic-section">
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Tier"}}:</label>
<span class="statistic-value">{{source.system.tier}}</span>
</div>
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Type"}}:</label>
<span class="statistic-value">{{this.data.type}}</span>
</div>
</div>
<div class="statistic-section">
<div class="statistic-row">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Adversary.Difficulty"}}:</label>
<span class="statistic-value">{{source.system.difficulty}}</span>
</div>
</div>
<div class="statistic-section">
<label class="statistic-title">{{localize "DAGGERHEART.Sheets.Environment.PotentialAdversaries"}}:</label>
<span>{{source.system.potentialAdversaries}}</span>
</div>
</div>
<div class="adversary-moves-container">
<div class="moves-title">{{localize "DAGGERHEART.Sheets.Adversary.Moves"}}</div>
{{#each data.features as |feature index|}}
<div class="move-container" data-action="useFeature" data-feature="{{feature.uuid}}" data-action-type="{{feature.system.actionType}}">
<label class="moves-name">{{feature.name}} - {{feature.system.actionType}}</label>
<div class="move-description">{{{feature.system.description}}}</div>
</div>
{{/each}}
</div>
</div>
{{/if}}
</section>
</div>

View file

@ -0,0 +1,80 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
<nav class="sheet-tabs tabs">
{{#each tabs as |tab|}}
<a class="{{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav>
</header>
<section class="sheet-body">
<div class="tab {{this.tabs.features.cssClass}}" data-group="primary" data-tab="features">
<div class="feature-description">
{{formField systemFields.type value=source.system.type rootId=partId label="DAGGERHEART.Sheets.Feature.FeatureType" localize=true }}
{{formField systemFields.actionType value=source.system.actionType label="DAGGERHEART.Sheets.Feature.ActionType" rootId=partId localize=true }}
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Feature.RefreshType"}}</label>
<div class="form-fields">
{{formField systemFields.refreshData.fields.type value=source.system.refreshData.type rootId=partId label="Type" localize=true }}
{{#if document.system.refreshData.type}}
<label>Uses</label>
<input type="text" name="system.refreshData.uses" value="{{document.system.refreshData.uses}}" data-dtype="Number" />
{{/if}}
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Feature.ValueType.Title"}}</label>
<div class="flexcol">
<div class="form-fields">
{{#if (eq document.system.featureType.type "dice")}}
<label>{{localize "DAGGERHEART.Sheets.Feature.ValueType.Type"}}</label>
{{/if}}
<select name="system.featureType.type">
{{selectOptions this.itemConfig.valueTypes selected=document.system.featureType.type labelAttr="name" localize=true}}
</select>
{{#if (eq document.system.featureType.type "dice")}}
<label>{{localize "DAGGERHEART.Sheets.Feature.ValueType.Dice"}}</label>
<select name="system.featureType.data.value">
{{selectOptions this.dice selected=document.system.featureType.data.value }}
</select>
<label>{{localize "DAGGERHEART.Sheets.Feature.Max"}}</label>
<input type="text" name="system.featureType.data.max" value="{{document.system.featureType.data.max}}" />
<label>{{localize "DAGGERHEART.Sheets.Feature.ValueType.Property"}}</label>
<select name="system.featureType.data.property">
{{selectOptions this.properties selected=document.system.featureType.data.property labelAttr="name" localize=true}}
</select>
{{/if}}
</div>
</div>
</div>
<h2>{{localize "DAGGERHEART.Sheets.Feature.Description"}}</h2>
{{!-- {{editor document.system.description target="system.description" button=true}} --}}
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
</div>
</div>
<div class="tab {{this.tabs.effects.cssClass}}" data-group="primary" data-tab="effects">
{{> "systems/daggerheart/templates/sheets/parts/effects.hbs" config=this.effectConfig selectedEffectType=this.selectedEffectType effects=document.system.effects}}
</div>
<div class="tab {{this.tabs.actions.cssClass}}" data-group="primary" data-tab="actions">
<h2>{{localize "Actions"}} <i class="fa-solid fa-plus icon-button" data-action="addAction"></i></h2>
<div class="flexrow">
{{#each document.system.actions as |action index|}}
<div data-action="editAction" data-index="{{index}}" class="ability-chip">
<img src="{{action.img}}" />
<div>{{action.name}}</div>
<button data-action="removeAction" data-index="{{index}}"><i class="fa-solid fa-x"></i></button>
</div>
{{/each}}
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,29 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{source.img}}" data-edit="img" data-action="onEditImage" title="{{source.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
</header>
<section class="sheet-body">
<div class="flexrow item-container">
<div class="item-sidebar">
{{formField systemFields.quantity value=source.system.quantity label=(localize "DAGGERHEART.Sheets.Miscellaneous.Quantity")}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Miscellaneous.Quantity"}}</label>
<div class="form-fields">
<input type="text" name="system.quantity" value="{{item.system.quantity}}" data-dtype="Number" />
</div>
</div> --}}
</div>
<div>
<h2 class="flex-col-centered">{{localize "DAGGERHEART.General.Description"}}</h2>
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
{{!-- {{editor item.system.description target="system.description" button=true}} --}}
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,19 @@
<fieldset class="left-main-container armor-section active-item-section item-section">
<legend class="legend armor-container">
<span>{{localize "DAGGERHEART.Sheets.PC.Armor.Title"}}</span>
{{#if armor}}
<div data-action="viewObject" data-value="{{armor.uuid}}" class="active-item-label-chip">
<img src="{{armor.img}}" />
<button data-action="removeActiveItem" data-item="{{armor.uuid}}"><i class="fa-solid fa-x"></i></button>
</div>
{{/if}}
</legend>
<div class="active-item-container">
<div class="flexrow">
<input value="{{armor.name}}" type="text" />
<input value="{{armor.system.baseScore}}" type="text" />
</div>
<input value="{{localize armor.system.featureInfo.name}} {{#if armor.system.featureInfo}}({{localize armor.system.featureInfo.description}}){{/if}}" type="text" />
</div>
</fieldset>

View file

@ -0,0 +1,39 @@
<fieldset class="abilities-container">
<legend class="legend">
{{localize "Attributes"}}
<i data-action="toggleEditAttributes" title="{{localize "DAGGERHEART.Sheets.PC.Attributes.AttributeBaseMenuTitle"}}" class="fa-solid fa-gear icon-button" style="position: absolute; top: 1px; right: calc(50% - 56px); background: url(../ui/parchment.jpg) repeat;"></i>
</legend>
{{#each this.attributes as |attribute key|}}
<div class="attribute">
<div class="attribute-banner">
<img class="attribute-roll" data-action="attributeRoll" data-value="{{attribute.data.value}}" src="icons/svg/d12-grey.svg" />
<div class="attribute-text">{{key}}</div>
</div>
<div class="attribute-mark {{#if (and (not attribute.levelMark) (and (not (includes attribute.levelMarks ../document.system.levelData.currentLevel)) (gt ../document.system.availableAttributeMarks.length 0)))}}selectable{{/if}}" data-action="toggleAttributeMark" data-attribute="{{key}}">
<i class="fa-solid fa-check {{#if attribute.levelMark}}selected{{/if}}"></i>
</div>
<div class="attribute-image">
{{#if ../editAttributes}}
<select class="attribute-value{{#if (lt attribute.data.base 0)}} negative{{/if}}{{#if (and (not attribute.data.base) (not ../abilityScoresFinished))}} unselected{{/if}}" data-attribute="{{key}}">
{{#if (not (eq attribute.data.base 0))}}<option value="">{{attribute.data.base}}</option>{{/if}}
{{#each ../abilityScoreArray as |option|}}
<option value="{{option.value}}"{{#if (eq option.value attribute.data.base)}} selected="selected"{{/if}}>{{option.name}}</option>
{{/each}}
</select>
{{else}}
<div class="attribute-text {{#if (lt attribute.data.value 0)}}negative{{/if}}">{{attribute.data.value}}</div>
{{/if}}
<img src="systems/daggerheart/assets/AttributeShield.svg" />
<div>
{{#each this.descriptors}}
<div class="descriptor">{{this}}</div>
{{/each}}
</div>
</div>
{{#each attribute.verbs}}
<div class="attribute-verb">{{this}}</div>
{{/each}}
</div>
{{/each}}
</fieldset>

View file

@ -0,0 +1,31 @@
<fieldset class="left-main-container">
<legend class="legend">{{localize "Defense"}}</legend>
<div class="defense-row">
<div class="defense-section">
<div class="defense-container">
<div class="defense-value">{{document.system.evasion}}</div>
<img src="systems/daggerheart/assets/AttributeShield.svg" />
<div class="defense-banner">{{localize "DAGGERHEART.Sheets.PC.Defense.Evasion"}}</div>
</div>
</div>
<div class="vertical-separator" style="height: 84px; align-self: baseline; margin-right: 8px;"></div>
<div class="defense-section armor">
<div class="defense-container">
<div class="defense-value">{{#if document.system.armor.system.baseScore}}{{document.system.armor.system.baseScore}}{{else}}0{{/if}}</div>
<img src="systems/daggerheart/assets/AttributeShield.svg" />
<div class="defense-banner">{{localize "DAGGERHEART.Sheets.PC.Defense.Armor"}}</div>
</div>
<div class="armor-marks">
{{#times (subtract 12 document.system.armorMarks.max)}}
<input class="mark disabled-mark" type="checkbox" disabled />
{{/times}}
{{#times document.system.armorMarks.max}}
{{#with (add this 1)}}
<input class="mark" type="checkbox" data-action="toggleMarks" data-value="{{this}}" {{ checked (gte ../../document.system.armor.system.marks.value this) }} />
{{/with}}
{{/times}}
</div>
</div>
</div>
</fieldset>

View file

@ -0,0 +1,26 @@
<div class="abilities-card">
<div class="abilities-card-image-container">
<img class="abilities-card-image" src="{{card.img}}" />
<div class="abilities-card-level">{{card.system.level}} <img src="icons/svg/sword.svg" /></div>
{{#if inVault}}
<div class="abilities-card-refresh-cost icon-button {{#if card.sendToLoadoutDisabled}}disabled{{/if}}" data-action="sendToLoadout" data-domain="{{card.uuid}}" title="{{localize "DAGGERHEART.Sheets.PC.DomainCard.Recall"}}">
{{card.system.recallCost}} <i class="fa-solid fa-bolt"></i>
</div>
{{else}}
<div class="abilities-card-refresh-cost icon-button" data-action="sendToVault" data-domain="{{card.uuid}}" title="{{localize "DAGGERHEART.Sheets.PC.DomainCard.ToVault"}}">
{{card.system.recallCost}} <i class="fa-solid fa-bolt"></i>
</div>
{{/if}}
<div class="abilities-card-type">
<div class="abilities-card-type-text">{{card.system.type}}</div>
</div>
</div>
<div class="abilities-text-container domain">
<div class="abilities-card-title">{{card.name}}</div>
{{#if inVault}}
<div class="abilities-card-description">{{{card.system.effect}}}</div>
{{else}}
<div class="abilities-card-description abilities-card-effect" data-action="useDomainCard" data-key="{{card.uuid}}" data-domain="{{card.system.domain}}">{{{card.system.effect}}}</div>
{{/if}}
</div>
</div>

View file

@ -0,0 +1,69 @@
<div>
<h2>
{{localize "Effects"}}
<select class="effect-select">
{{selectOptions this.config.effectTypes selected=this.selectedEffectType labelAttr="name" localize=true blank=""}}
</select>
<i class="fa-solid fa-plus icon-button {{#if (not this.selectedEffectType)}}disabled{{/if}}" data-action="addEffect"></i>
</h2>
{{#each this.effects as |effect key|}}
<fieldset>
<legend>
{{effect.type}}
<i class="fa-solid fa-trash icon-button flex0" data-action="removeEffect" data-effect="{{key}}"></i>
</legend>
{{#if effect.applyLocationChoices}}
<div class="form-group">
<label>Apply Location</label>
<select name="system.effects.{{key}}.appliesOn">
{{selectOptions effect.applyLocationChoices selected=effect.appliesOn localize=true}}
</select>
</div>
{{/if}}
{{#if (eq effect.valueType ../config.valueTypes.numberString.id)}}
{{#if (eq effect.type ../config.effectTypes.damage.id) }}
<div class="form-group">
{{!-- <label></label> --}}
<div class="form-fields">
<label>Value</label>
<input type="text" name="system.effects.{{key}}.valueData.value" value="{{effect.valueData.value}}" />
<label style="text-wrap: nowrap;">Initially Selected</label>
<input type="checkbox" name="system.effects.{{key}}.initiallySelected" {{checked effect.initiallySelected}} />
</div>
</div>
{{!-- <div class="flexrow">
<input type="text" name="system.effects.{{key}}.valueData.value" value="{{effect.valueData.value}}" />
<i class="fa-solid fa-trash icon-button flex0" data-action="removeEffect" data-effect="{{key}}"></i>
</div> --}}
<div class="form-group">
<label>Hope Increase</label>
<div class="form-fields">
<input type="text" name="system.effects.{{key}}.valueData.hopeIncrease" value="{{effect.valueData.hopeIncrease}}" />
</div>
</div>
{{else}}
<div class="form-group">
{{!-- <label></label> --}}
<div class="form-fields">
<label>Value</label>
<input type="text" name="system.effects.{{key}}.valueData.value" value="{{effect.valueData.value}}" />
</div>
</div>
{{/if}}
{{/if}}
{{#if (eq effect.valueType ../config.valueTypes.select.id)}}
<div class="flexrow">
<select name="system.effects.{{key}}.valueData.fromValue" value="{{effect.valueData.fromValue}}">
{{selectOptions effect.options selected=effect.valueData.fromValue labelAttr="name" nameAttr="value" localize=true blank="" }}
</select>
</div>
<div class="flexrow">
<select name="system.effects.{{key}}.valueData.value" value="{{effect.valueData.value}}">
{{selectOptions effect.options selected=effect.valueData.value labelAttr="name" nameAttr="value" localize=true blank="" }}
</select>
</div>
{{/if}}
</fieldset>
{{/each}}
</div>

View file

@ -0,0 +1,15 @@
<fieldset class="left-main-container experience-container">
<legend class="legend">{{localize "DAGGERHEART.Sheets.PC.Experience.Title"}}</legend>
{{#each document.system.experiences as |experience index|}}
<div class="experience-row">
<input class="experience-description" data-index={{index}} value="{{experience.description}}" type="text" />
<div class="experience-value">{{experience.value}}</div>
</div>
{{/each}}
{{#times (subtract 5 document.system.experiences.length)}}
<div class="experience-row">
<input type="text" class="disabled-experience" disabled />
<div class="experience-value empty"></div>
</div>
{{/times}}
</fieldset>

View file

@ -0,0 +1,48 @@
<fieldset class="left-main-container" style="flex: 1;">
<legend class="legend">
{{#if this.document.system.class}}
{{#if this.document.system.multiclass}}
<span class="class-feature-selectable {{#if this.multiclass}}inactive{{/if}}" data-action="selectFeatureSet" data-multiclass="false">{{this.document.system.class.name}}&nbsp;{{localize "DAGGERHEART.General.Features"}}</span>
/&nbsp;
<span class="class-feature-selectable {{#if (not this.multiclass)}}inactive{{/if}}" data-action="selectFeatureSet" data-multiclass="true">{{this.document.system.multiclass.name}}&nbsp;{{localize "DAGGERHEART.General.Features"}}</span>
{{else}}
<span>{{this.document.system.class.name}}&nbsp;{{localize "DAGGERHEART.General.Features"}}</span>
{{/if}}
{{else}}
<span>{{localize "DAGGERHEART.Sheets.PC.Features.Title"}}</span>
{{/if}}
</legend>
<div class="features-container" style="font-size: 11px;">
{{#each this.features as |feature index|}}
<div class="feature-container">
<img class="feature-img" src="{{feature.img}}" />
<div class="feature-label icon-button" data-action="viewObject" data-value="{{feature.uuid}}">{{feature.name}}</div>
<button data-action="useFeature" data-id="{{feature.uuid}}"><i class="fa-solid fa-message"></i></button>
</div>
<div class="flexrow flex-centered">
<div>{{{feature.system.description}}}</div> {{!-- Maybe maybe --}}
{{#if (eq feature.system.featureType.type 'input')}}
<input class="feature-input flex0" type="text" data-feature="{{feature.uuid}}" value="{{feature.system.featureType.data.value}}" data-dtype="Number" />
{{/if}}
{{#if (eq feature.system.featureType.type 'dice')}}
<div class="feature-tick-container">
{{#times feature.system.featureType.data.max}}
{{#if (gt ../this.system.featureType.data.property this)}}
<div data-action="toggleFeatureDice" data-feature="{{../this.uuid}}" data-index="{{this}}" class="feature-tick {{#if (lookup (lookup ../this.system.featureType.data.numbers this) 'used')}}used{{/if}}">
{{#if (lookup (lookup ../this.system.featureType.data.numbers this) 'value')}}
<div class="feature-dice-value">{{lookup (lookup ../this.system.featureType.data.numbers this) 'value'}}</div>
{{else}}
<img src="icons/dice/{{../this.system.featureType.data.value}}black.svg" />
{{/if}}
</div>
{{else}}
<div class="feature-tick disabled"></div>
{{/if}}
{{/times}}
</div>
{{/if}}
</div>
{{/each}}
</div>
</fieldset>

View file

@ -0,0 +1,88 @@
<fieldset class="left-main-container" style="padding-top: 0; margin-top: 8px;">
<legend class="legend" style="line-height: 2px;">{{localize "DAGGERHEART.Sheets.PC.Gold.Title"}}</legend>
<div class="gold-section">
<fieldset class="gold-fieldset">
<legend>
{{localize "DAGGERHEART.Sheets.PC.Gold.Coins"}}
</legend>
<div class="gold-column">
<div class="gold-row">
{{#times 5}}
{{#with (add this 1)}}
<img src="icons/svg/coins.svg" class="{{#if (gte ../../document.system.gold.coins this)}}owned{{/if}}" data-action="toggleGold" data-value="{{this}}" data-type="coins" />
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="hoards" {{ checked (gte ../../document.system.gold.hoards this) }} /> --}}
{{/with}}
{{/times}}
</div>
<div class="gold-row">
{{#times 4}}
{{#with (add this 6)}}
<img src="icons/svg/coins.svg" class="{{#if (gte ../../document.system.gold.coins this)}}owned{{/if}}" data-action="toggleGold" data-value="{{this}}" data-type="coins" />
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="hoards" {{ checked (gte ../../document.system.gold.hoards this) }} /> --}}
{{/with}}
{{/times}}
</div>
</div>
</fieldset>
<fieldset class="gold-fieldset">
<legend>
{{localize "DAGGERHEART.Sheets.PC.Gold.Handfulls"}}
</legend>
<div class="gold-column">
<div class="gold-row">
{{#times 5}}
{{#with (add this 1)}}
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="handfulls" {{ checked (gte ../../document.system.gold.handfulls this) }} /> --}}
<i class="fa-solid fa-coins {{#if (gte ../../document.system.gold.handfulls this)}}owned{{/if}}" data-action="toggleGold" data-value="{{this}}" data-type="handfulls"></i>
{{/with}}
{{/times}}
</div>
<div class="gold-row">
{{#times 4}}
{{#with (add this 6)}}
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="handfulls" {{ checked (gte ../../document.system.gold.handfulls this) }} /> --}}
<i class="fa-solid fa-coins {{#if (gte ../../document.system.gold.handfulls this)}}owned{{/if}}" data-action="toggleGold" data-value="{{this}}" data-type="handfulls"></i>
{{/with}}
{{/times}}
</div>
</div>
</fieldset>
<fieldset class="gold-fieldset">
<legend>
{{localize "DAGGERHEART.Sheets.PC.Gold.Bags"}}
</legend>
<div class="gold-column">
<div class="gold-row">
{{#times 5}}
{{#with (add this 1)}}
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="handfulls" {{ checked (gte ../../document.system.gold.handfulls this) }} /> --}}
<i class="fa-solid fa-sack-dollar {{#if (gte ../../document.system.gold.bags this)}}owned{{/if}}" data-action="toggleGold" data-value="{{this}}" data-type="bags"></i>
{{/with}}
{{/times}}
</div>
<div class="gold-row">
{{#times 4}}
{{#with (add this 6)}}
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="handfulls" {{ checked (gte ../../document.system.gold.handfulls this) }} /> --}}
<i class="fa-solid fa-sack-dollar {{#if (gte ../../document.system.gold.bags this)}}owned{{/if}}" data-action="toggleGold" data-value="{{this}}" data-type="bags"></i>
{{/with}}
{{/times}}
</div>
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="bags" {{ checked (gte ../../document.system.gold.bags this) }} /> --}}
</div>
</fieldset>
<fieldset class="gold-fieldset" style="min-width: 56px;">
<legend>
{{localize "DAGGERHEART.Sheets.PC.Gold.Chests"}}
</legend>
<div class="gold-column">
<img src="icons/svg/chest.svg" class="{{#if (gte document.system.gold.chests 1)}}owned{{/if}}" style="min-height: 32px; min-width: 32px;" data-action="toggleGold" data-value="1" data-type="chests" />
{{!-- <input class="gold-checkbox" type="checkbox" data-action="toggleGold" data-value="{{this}}" data-type="chests" {{ checked (gte ../../document.system.gold.chests this) }} /> --}}
</div>
</fieldset>
</div>
</fieldset>

View file

@ -0,0 +1,58 @@
<fieldset class="left-main-container">
<legend class="legend">{{localize "DAGGERHEART.Sheets.PC.Health.Title"}}</legend>
<div class="threshold-container">
<div class="threshold-box">
{{document.system.damageThresholds.minor}}
</div>
<div class="threshold-spacer">
<i class="fa-solid fa-caret-left"></i>
<div class="health-category">{{localize "DAGGERHEART.Sheets.PC.Health.Minor"}}</div>
</div>
<div class="threshold-box">
{{document.system.damageThresholds.major}}
</div>
<div class="threshold-spacer">
<i class="fa-solid fa-caret-left"></i>
<div class="health-category">{{localize "DAGGERHEART.Sheets.PC.Health.Major"}}</div>
</div>
<div class="threshold-box">
{{document.system.damageThresholds.severe}}
</div>
<div class="threshold-spacer">
<i class="fa-solid fa-caret-left"></i>
<div class="health-category">{{localize "DAGGERHEART.Sheets.PC.Health.Severe"}}</div>
</div>
<i data-action="makeDeathMove" class="fas fa-skull death-save {{#if (lt resources.health.value document.system.resources.health.max)}}disabled{{/if}}" title="{{localize "DAGGERHEART.Sheets.PC.Health.DeathMoveTooltip"}}"></i>
</div>
<div class="flexrow" style="flex-wrap: nowrap; align-items: center;">
<div class="flexcol flex0">
<div class="resource-label">{{localize "DAGGERHEART.Sheets.PC.Health.HealthTitle"}}</div>
<div class="resource-label" style="margin-right: 1px;">{{localize "DAGGERHEART.Sheets.PC.Health.StressTitle"}}</div>
</div>
<div class="flexcol">
<div class="flexrow" style="flex-wrap: nowrap;">
{{#times document.system.resources.health.max}}
{{#with (add this 1)}}
<input class="resource-box" type="checkbox" data-action="toggleHP" data-value="{{this}}" {{ checked (gte ../../document.system.resources.health.value this) }} />
{{/with}}
{{/times}}
{{#times (subtract 12 document.system.resources.health.max)}}
<input class="resource-box disabled" type="checkbox" disabled />
{{/times}}
</div>
<div class="flexrow">
{{#times document.system.resources.stress.max}}
{{#with (add this 1)}}
<input class="resource-box" type="checkbox" data-action="toggleStress" data-value="{{this}}" {{ checked (gte ../../document.system.resources.stress.value this) }} />
{{/with}}
{{/times}}
{{#times (subtract 12 document.system.resources.stress.max)}}
<input class="resource-box disabled" type="checkbox" disabled />
{{/times}}
</div>
</div>
</div>
</fieldset>

View file

@ -0,0 +1,20 @@
<div>
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
<div class="ability-title">
<h2>{{localize "DAGGERHEART.Sheets.Heritage.Title"}}</h2>
</div>
<div>
{{#each source.system.abilities as |ability key|}}
<div class="feature-container">
<div class="feature-inner-container">
<img src="{{ability.img}}" />
<div class="feature-title">{{ability.name}}</div>
</div>
<div class="subclass-inner-container">
<button data-action="editAbility" data-ability={{ability.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
<button data-action="deleteAbility" data-ability={{ability.uuid}}><i class="fa-solid fa-trash"></i></button>
</div>
</div>
{{/each}}
</div>
</div>

View file

@ -0,0 +1,15 @@
<fieldset class="left-main-container">
<legend class="legend">{{localize "DAGGERHEART.Sheets.PC.Hope.Title"}}</legend>
<div class="flex-spaced">
<span class="hope-text">{{localize "DAGGERHEART.Sheets.PC.Hope.Description"}}</span>
<div class="hope-container">
{{#times 6}}
<span class="hope-inner-container">
<input class="hope-value" type="checkbox" data-action="toggleHope" data-value="{{this}}" {{ checked (gte ../document.system.resources.hope.value this) }} {{#if (gte this ../document.system.resources.hope.max)}}disabled{{/if}} />
{{#if (gte this ../document.system.resources.hope.max)}}<i class="fa-solid fa-droplet-slash hope-scar"></i>{{/if}}
</span>
{{/times}}
</div>
</div>
</fieldset>

View file

@ -0,0 +1,47 @@
<fieldset class="left-main-container" style="flex: 1; display: flex; flex-direction: column;">
<legend class="legend inventory-legend">
{{localize "DAGGERHEART.Sheets.PC.Inventory.Title"}}
</legend>
<div class="inventory-items">
<div class="inventory-weapon-section-first item-section">
<h2 class="armor-container">
{{localize "DAGGERHEART.Sheets.PC.Inventory.InventoryWeapon"}}
{{#if weapons.first}}
<div data-action="viewObject" data-value="{{weapons.first.uuid}}" class="active-item-label-chip">
<img src="{{weapons.first.img}}" />
<button data-action="removeInventoryWeapon" data-item="{{weapons.first.uuid}}"><i class="fa-solid fa-x"></i></button>
</div>
{{/if}}
</h2>
<div class="active-item-container">
<div class="flexrow">
<input value="{{weapons.first.name}}" type="text" />
<input value="{{localize weapons.first.trait}}" type="text" />
<input value="{{localize weapons.first.range.name}}" type="text" />
<input value="{{weapons.first.damage.value}} {{#if weapons.first}}({{localize weapons.first.damage.type.abbreviation}}){{/if}}" type="text" />
</div>
<input value="{{localize weapons.first.feature.name}} {{#if weapons.first.feature}}({{localize weapons.first.feature.description}}){{/if}}" type="text" />
</div>
</div>
<div class="inventory-weapon-section-second item-section">
<h2 class="armor-container">
{{localize "DAGGERHEART.Sheets.PC.Inventory.InventoryWeapon"}}
{{#if weapons.second}}
<div data-action="viewObject" data-value="{{weapons.second.uuid}}" class="active-item-label-chip">
<img src="{{weapons.second.img}}" />
<button data-action="removeInventoryWeapon" data-item="{{weapons.second.uuid}}"><i class="fa-solid fa-x"></i></button>
</div>
{{/if}}
</h2>
<div class="active-item-container">
<div class="flexrow">
<input value="{{weapons.second.name}}" type="text" />
<input value="{{localize weapons.second.trait}}" type="text" />
<input value="{{localize weapons.second.range.name}}" type="text" />
<input value="{{weapons.second.damage.value}} {{#if weapons.second}}({{localize weapons.second.damage.type.abbreviation}}){{/if}}" type="text" />
</div>
<input value="{{localize weapons.second.feature.name}} {{#if weapons.second.feature}}({{localize weapons.second.feature.description}}){{/if}}" type="text" />
</div>
</div>
</div>
</fieldset>

View file

@ -0,0 +1,25 @@
<div>
{{#with (concat "system." featureType "Feature" ".")}}
<div class="editor-form-group">
<label>{{localize "DAGGERHEART.Sheets.Subclass.SubclassFeature.Description"}}</label>
{{formInput ../field.description value=../feature.description enriched=../feature.description localize=true toggled=true}}
{{!-- {{editor ../feature.description target=(concat this "description") button=true}} --}}
</div>
<div class="flexrow">
<h2>{{localize "DAGGERHEART.Sheets.Subclass.SubclassFeature.Abilities"}}</h2>
</div>
{{#each ../feature/abilities as |ability key|}}
<div class="feature-container">
<div class="feature-inner-container">
<img src="{{ability.img}}" />
<div class="feature-title">{{ability.name}}</div>
</div>
<div class="subclass-inner-container">
<button data-action="editAbility" data-ability={{ability.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
<button data-action="deleteFeatureAbility" data-feature="{{../../featureType}}" data-ability={{ability.uuid}}><i class="fa-solid fa-trash"></i></button>
</div>
</div>
{{/each}}
{{/with}}
</div>

View file

@ -0,0 +1,57 @@
<fieldset class="left-main-container weapon-section active-item-section item-section">
<legend class="legend">
<div class="weapons-title">
<span>{{localize "DAGGERHEART.Sheets.PC.Weapons.Title"}}</span>
<div class="proficiency-container">
<span>{{localize "DAGGERHEART.Sheets.PC.Weapons.ProficiencyTitle"}}</span>
{{#times 6}}
<i class="fa-solid fa-circle proficiency-dot {{#if (gt ../proficiency this)}}marked{{/if}}"></i>
{{/times}}
</div>
<div class="proficiency-container-visual-element"></div>
</div>
<div class="weapons-burden">
<i class="fa-solid fa-hand weapons-burden-icon left {{#if (or (eq weapons.burden "oneHanded") (eq weapons.burden "twoHanded"))}}active{{/if}}"></i>
<i class="fa-solid fa-hand weapons-burden-icon right {{#if (eq weapons.burden "twoHanded")}}active{{/if}}"></i>
</div>
</legend>
<div class="active-item-container">
<h2 class="weapons-label-row">
{{localize "DAGGERHEART.Sheets.PC.Weapons.PrimaryTitle"}}
{{#if weapons.primary}}
<div data-action="viewObject" data-value="{{weapons.primary.uuid}}" class="active-item-label-chip">
<img src="{{weapons.primary.img}}" />
<button data-action="removeActiveItem" data-item="{{weapons.primary.uuid}}"><i class="fa-solid fa-x"></i></button>
</div>
<img class="damage-roll" data-action="attackRoll" data-weapon="{{weapons.primary.uuid}}" src="icons/svg/d12-grey.svg" />
{{/if}}
</h2>
<div class="flexrow">
<input value="{{weapons.primary.name}}" type="text" />
<input value="{{localize weapons.primary.trait}}" type="text" />
<input value="{{localize weapons.primary.range.name}}" type="text" />
<input value="{{weapons.primary.damage.value}} {{#if weapons.primary}}({{localize weapons.primary.damage.type.abbreviation}}){{/if}}" type="text" />
</div>
<input value="{{localize weapons.primary.feature.name}} {{#if weapons.primary.feature}}({{localize weapons.primary.feature.description}}){{/if}}" type="text" />
</div>
<div class="active-item-container">
<h2 class="weapons-label-row">
{{localize "DAGGERHEART.Sheets.PC.Weapons.SecondaryTitle"}}
{{#if weapons.secondary}}
<div data-action="viewObject" data-value="{{weapons.secondary.uuid}}" class="active-item-label-chip">
<img src="{{weapons.secondary.img}}" />
<button data-action="removeActiveItem" data-item="{{weapons.secondary.uuid}}"><i class="fa-solid fa-x"></i></button>
</div>
<img class="damage-roll" data-action="damageRoll" data-value="{{weapons.secondary.damage.value}}" src="icons/svg/d12-grey.svg" />
{{/if}}
</h2>
<div class="flexrow">
<input value="{{weapons.secondary.name}}" type="text" />
<input value="{{localize weapons.secondary.trait}}" type="text" />
<input value="{{localize weapons.secondary.range.name}}" type="text" />
<input value="{{weapons.secondary.damage.value}} {{#if weapons.secondary}}({{localize weapons.secondary.damage.type.abbreviation}}){{/if}}" type="text" />
</div>
<input value="{{localize weapons.secondary.feature.name}} {{#if weapons.secondary.feature}}({{localize weapons.secondary.feature.description}}){{/if}}" style="text-overflow: ellipsis;" type="text" />
</div>
</fieldset>

View file

@ -0,0 +1,27 @@
<div class="abilities-card">
<div class="abilities-card-image-container">
<img class="abilities-card-image" src="{{card.img}}" />
<div class="abilities-card-level">
{{#each card.domains}}
<img src="{{this}}" />
{{/each}}
</div>
<div class="abilities-card-type">
<div class="abilities-card-type-text">{{card.className}}</div>
</div>
</div>
<div class="abilities-text-container">
<div class="abilities-card-title">{{card.subclassName}}</div>
<div class="abilities-card-sub-title">{{card.subtitle}}</div>
{{#if card.spellcast}}<div class="abilities-card-spellcast"><span class="title">Spellcast: </span>&nbsp;<span>{{localize card.spellcast}}</span></div>{{/if}}
<div class="abilities-card-description abilities-card-effect" data-action="useAdvancementCard" data-multiclass="{{card.multiclass}}" data-key="{{card.type}}">{{{card.description}}}</div>
<div class="abilities-card-abilities">
{{#each card.abilities as |ability key|}}
<div class="abilities-card-ability" data-action="useAdvancementAbility" data-id="{{ability.uuid}}" data-key="{{key}}">
<span class="abilities-text"><strong>{{ability.name}}</strong></span>
{{{ability.system.description}}}
</div>
{{/each}}
</div>
</div>
</div>

View file

@ -0,0 +1,18 @@
<div class="abilities-card">
<div class="abilities-card-image-container">
<img class="abilities-card-image" src="{{card.img}}" />
<div class="abilities-card-type"><div class="abilities-card-type-text">{{card.system.type}}</div></div>
</div>
<div class="abilities-text-container">
<div class="abilities-card-title">{{card.name}}</div>
<div class="abilities-card-description">{{{card.system.description}}}</div>
<div class="abilities-card-abilities">
{{#each card.system.abilities as |ability key|}}
<div class="abilities-card-ability" data-action="useAbility" data-feature="{{ability.uuid}}" data-type="{{ability.system.type}}">
<span class="abilities-text"><strong>{{ability.name}}</strong></span>
{{{ability.system.description}}}
</div>
{{/each}}
</div>
</div>
</div>

155
templates/sheets/pc/pc.hbs Normal file
View file

@ -0,0 +1,155 @@
<div>
<header>
<div class="pc-sheet-header">
<div class="class-info">
<div class="flexrow">
<img class="portrait" src="{{document.img}}" alt="{{document.name}}" data-edit="img">
{{#if document.system.class}}
<div class="flexcol">
<h2 class="class-title flex0" data-action="viewObject" data-value="{{document.system.class.uuid}}" data-tab="guide">
<img class="domain-image" src="{{domains.first}}" />
<span>{{document.system.class.name}}</span>
<img class="domain-image" src="{{domains.second}}" />
</h2>
<span class="domain-title flex0">
<span>{{document.system.class.system.domains.[0]}}</span>
<span>and</span>
<span>{{document.system.class.system.domains.[1]}}</span>
</div>
{{else}}
<div class="flexcol">
<h2 class="class-add-container class-title">Class <button data-action="selectClass"><i class="fa-solid fa-plus"></i></button></h2>
</div>
{{/if}}
</div>
</div>
<div class="general-info">
<div class="flexrow">
<div class="flexcol">
<div class="flexrow">
<div class="flexrow">
<div class="general-input">
<span class="general-title">{{localize "DAGGERHEART.Sheets.PC.Name"}}</span>
<input name="name" value="{{document.name}}" type="text" style="padding-left: 50px;" />
</div>
<div class="general-input">
<span class="general-title">{{localize "DAGGERHEART.Sheets.PC.Pronouns"}}</span>
<input name="system.pronouns" value="{{document.system.pronouns}}" type="text" style="padding-left: 84px;" />
</div>
<div class="rest-container">
<button data-action="takeShortRest" title="{{localize "DAGGERHEART.Sheets.PC.ShortRest"}}"><i class="fa-solid fa-chair"></i></button>
<button data-action="takeLongRest" title="{{localize "DAGGERHEART.Sheets.PC.LongRest"}}"><i class="fa-solid fa-bed"></i></button>
</div>
</div>
<div class="level-container {{#if document.system.canLevelUp}}levelup{{/if}}">
<div class="level-value-container">
<input class="level-value {{#if document.system.canLevelUp}}levelup{{/if}}" name="system.levelData.changedLevel" value="{{document.system.levelData.changedLevel}}" type="text" data-dtype="Number" />
{{#if document.system.canLevelUp}}<div class="levelup-marker {{#if (gte document.system.levels.current 10)}}double-digit{{/if}}">*</div>{{/if}}
</div>
<img src="systems/daggerheart/assets/AttributeShield.svg" />
<div class="level-title {{#if document.system.canLevelUp}}levelup{{/if}}">{{localize "DAGGERHEART.Sheets.PC.Level"}}</div>
</div>
</div>
<div class="flexrow">
{{#objectSelector title="Heritage" ids=(join document.system.community.uuid document.system.ancestry.uuid) values=(join document.system.community.name document.system.ancestry.name) titleFontSize=14 style="min-width: 272px;"}}
<button data-action="selectCommunity" class="option-select deeper"><i class="fa-solid fa-house-chimney"></i></button>
<button data-action="selectAncestry" class="option-select"><i class="fa-solid fa-user-large"></i></button>
{{/objectSelector}}
{{#objectSelector title="Subclass" ids=(join document.system.subclass.uuid) values=(join document.system.subclass.name) titleFontSize=14}}
<button data-action="selectSubclass" class="option-select" {{#if (not ../document.system.class)}}disabled{{/if}}><i class="fa-solid fa-fw fa-search"></i></button>
{{/objectSelector}}
</div>
</div>
</div>
<nav class="sheet-tabs tabs">
{{#each tabs.primary as |tab|}}
<a class="{{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav>
</div>
</div>
</header>
<section class="sheet-body flexcol">
<div class="tab features {{this.tabs.primary.features.cssClass}}" data-group="primary" data-tab="features">
<div class="tab-container">
<div class="flexcol tab-inner-container">
<div class="system-info">{{localize "DAGGERHEART.General.OpenBetaDisclaimer" version="V1.4"}}</div>
<div class="feature-sheet-body flexrow">
<div class="body-section flex2">
{{> "systems/daggerheart/templates/sheets/parts/defense.hbs" }}
{{> "systems/daggerheart/templates/sheets/parts/health.hbs" }}
{{> "systems/daggerheart/templates/sheets/parts/hope.hbs" }}
{{> "systems/daggerheart/templates/sheets/parts/experience.hbs" }}
{{> "systems/daggerheart/templates/sheets/parts/gold.hbs" }}
{{> "systems/daggerheart/templates/sheets/parts/features.hbs" }}
</div>
<div class="body-section flex3">
{{> "systems/daggerheart/templates/sheets/parts/attributes.hbs" }}
{{> "systems/daggerheart/templates/sheets/parts/weapons.hbs" weapons=document.system.activeWeapons proficiency=document.system.proficiency.value }}
{{> "systems/daggerheart/templates/sheets/parts/armor.hbs" armor=document.system.armor }}
{{> "systems/daggerheart/templates/sheets/parts/inventory.hbs" weapons=document.system.inventoryWeapons }}
</div>
</div>
</div>
</div>
</div>
<div class="tab domain-card-tab {{this.tabs.primary.loadout.cssClass}}" data-group="primary" data-tab="loadout">
{{> "systems/daggerheart/templates/sheets/pc/sections/loadout.hbs" abilities=this.abilities actor=this.document config=this.config }}
</div>
<div class="tab {{this.tabs.primary.inventory.cssClass}}" data-group="primary" data-tab="inventory">
{{> "systems/daggerheart/templates/sheets/pc/sections/inventory.hbs" inventory=this.inventory }}
</div>
<div class="tab {{this.tabs.primary.story.cssClass}}" data-group="primary" data-tab="story">
<div class="flexcol" style="height: 100%;">
<div class="story-container flexrow">
<fieldset class="story-fieldset">
<legend class="story-legend">{{localize "DAGGERHEART.Sheets.PC.Story.BackgroundTitle"}}</legend>
{{editor document.system.story.background target="system.story.background" button=true }}
</fieldset>
<fieldset class="story-fieldset">
<legend class="story-legend">{{localize "DAGGERHEART.Sheets.PC.Story.AppearanceTitle"}}</legend>
{{editor document.system.story.appearance target="system.story.appearance" button=true }}
</fieldset>
</div>
<div class="story-container flexrow">
<fieldset class="story-fieldset">
<legend class="story-legend">{{localize "DAGGERHEART.Sheets.PC.Story.ConnectionsTitle"}}</legend>
{{editor document.system.story.connections target="system.story.connections" button=true }}
</fieldset>
<fieldset class="story-fieldset scars-container">
<legend class="story-legend">
{{localize "DAGGERHEART.Sheets.PC.Story.Scars.Title"}}
<i data-action="addScar" class="fa-solid fa-plus icon-button {{#if (eq document.system.story.scars.length 5)}}disabled{{/if}}"></i>
</legend>
<div class="ability-choices">
{{#each document.system.story.scars as |scar index|}}
<div class="ability-chip {{#if (eq key ../selectedScar)}}selected{{/if}}" data-action="selectScar" data-value="{{index}}">
<input type="text" name="system.story.scars.{{index}}.name" value="{{scar.name}}" />
<button><i data-action="deleteScar" data-scar="{{index}}" class="fa-solid fa-x"></i></button>
</div>
{{/each}}
</div>
{{#with (lookup document.system.story.scars this.selectedScar)}}
{{#if this}}
<div class="editor-form-group">
<label>{{this.name}} - {{localize "Description"}}</label>
{{editor this.description target=(concat "system.story.scars." ../selectedScar ".description") button=true}}
</div>
{{/if}}
{{/with}}
</fieldset>
</div>
</div>
</div>
</section>
<footer>
</footer>
</div>

View file

@ -0,0 +1,32 @@
<div class="inventory-container">
{{#each this.inventory as |section key|}}
<ol class="inventory-item-list inventory-item-header">
<li class="item inventory-title-row-container">
<div class="inventory-title-row">
<div class="inventory-item-title-container">{{section.titles.name}}</div>
<div class="inventory-item-quantity title">{{section.titles.quantity}}</div>
</div>
</li>
</ol>
<ol class="item-list inventory-item-list">
{{#each this.items as |item|}}
<li class="item inventory-item">
<div class="inventory-row" data-item-id="{{item.uuid}}">
<div class="inventory-item-title-container">
<div data-action="viewObject" data-value="{{item.uuid}}" class="inventory-item-title">
<img src="{{item.img}}" />
{{item.name}}
</div>
</div>
<div class="inventory-item-quantity spaced">
<i data-action="itemQuantityDecrease" class="fa-solid fa-chevron-left icon-button {{#if (lte item.system.quantity 1)}}disabled{{/if}}"></i>
<input type="text" data-item="system.quantity" value="{{item.system.quantity}}" data-dtype="Number" />
<i data-action="itemQuantityIncrease" class="fa-solid fa-chevron-right icon-button"></i>
</div>
<i data-action="deleteItem" class="fas fa-trash icon-button secondary row-icon"></i>
</div>
</li>
{{/each}}
</ol>
{{/each}}
</div>

View file

@ -0,0 +1,134 @@
<div class="domain-card-body">
<nav class="pc-tabs loadout-tabs tabs" data-group="secondary">
<a class="item" data-tab="foundation" data-action="tabSwitch">{{localize "DAGGERHEART.Sheets.PC.Tabs.Foundation"}}</a>
<a class="item" data-tab="loadout" data-action="tabSwitch">{{localize "DAGGERHEART.Sheets.PC.Tabs.Loadout"}}</a>
<a class="item" data-tab="vault">{{localize "DAGGERHEART.Sheets.PC.Tabs.Vault"}}</a>
</nav>
<section class="loadout-body flexcol">
<div class="tab" data-group="secondary" data-tab="foundation">
<div class="heritage-container">
<div class="card-row">
<div class="heritage-card {{#if (not abilities.foundation.ancestry)}}outlined{{/if}}">
{{#if abilities.foundation.ancestry}}
{{> "systems/daggerheart/templates/sheets/pc/parts/heritageCard.hbs" card=abilities.foundation.ancestry }}
{{else}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.EmptyAncestry"}}</div>
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.EmptyAncestryTip"}}</div>
</div>
<div class="empty-ability-inner-container"></div>
</div>
{{/if}}
</div>
<div class="heritage-card {{#if (not abilities.foundation.community)}}outlined{{/if}}">
{{#if abilities.foundation.community}}
{{> "systems/daggerheart/templates/sheets/pc/parts/heritageCard.hbs" card=abilities.foundation.community }}
{{else}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.EmptyCommunity"}}</div>
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.EmptyCommunityTip"}}</div>
</div>
<div class="empty-ability-inner-container"></div>
</div>
{{/if}}
</div>
</div>
<div class="card-row">
<div class="heritage-card {{#if (not abilities.foundation.advancement.foundation)}}outlined{{/if}}">
{{#if abilities.foundation.advancement.foundation}}
{{> "systems/daggerheart/templates/sheets/pc/parts/advancementCard.hbs" card=abilities.foundation.advancement.foundation }}
{{else}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.SubclassFoundation"}}</div>
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.SubclassFoundationTip"}}</div>
</div>
<div class="empty-ability-inner-container"></div>
</div>
{{/if}}
</div>
<div class="heritage-card {{#if (not abilities.foundation.advancement.first)}}outlined{{/if}}">
{{#if abilities.foundation.advancement.first}}
{{> "systems/daggerheart/templates/sheets/pc/parts/advancementCard.hbs" card=abilities.foundation.advancement.first }}
{{else}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.Subclass"}}</div>
<div>{{localize "DAGGERHEART.General.Or"}}</div>
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.Multiclass"}}</div>
</div>
<div class="empty-ability-inner-container"><i class="fa-solid fa-lock"></i></div>
</div>
{{/if}}
</div>
<div class="heritage-card {{#if (not abilities.foundation.advancement.second)}}outlined{{/if}}">
{{#if abilities.foundation.advancement.second}}
{{> "systems/daggerheart/templates/sheets/pc/parts/advancementCard.hbs" card=abilities.foundation.advancement.second}}
{{else}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.Subclass"}}</div>
<div>{{localize "DAGGERHEART.General.Or"}}</div>
<div>{{localize "DAGGERHEART.Sheets.PC.Heritage.Multiclass"}}</div>
</div>
<div class="empty-ability-inner-container"><i class="fa-solid fa-lock"></i></div>
</div>
{{/if}}
</div>
</div>
</div>
</div>
<div class="tab" data-group="secondary" data-tab="loadout">
<div class="loadout-container">
<div class="top-card-row">
{{#times 2}}
<div class="domain-card {{#if (not (lookup ../abilities.loadout.top this))}}outlined{{/if}}">
{{#with (lookup ../abilities.loadout.top this)}}
{{> "systems/daggerheart/templates/sheets/parts/domainCard.hbs" card=this inVault=false }}
{{/with}}
{{#if (not (lookup ../abilities.loadout.top this))}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">{{localize "DAGGERHEART.Sheets.PC.DomainCard.AvailableDomainSlot"}}</div>
<div class="empty-ability-inner-container"></div>
</div>
{{/if}}
</div>
{{/times}}
</div>
<div class="card-row">
{{#times 3}}
<div class="domain-card {{#if (not (lookup ../abilities.loadout.bottom this))}}outlined{{/if}}">
{{#with (lookup ../abilities.loadout.bottom this)}}
{{> "systems/daggerheart/templates/sheets/parts/domainCard.hbs" card=this inVault=false }}
{{/with}}
{{#if (gt (add this 3) ../actor/system/domainData.maxLoadout)}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">{{localize "DAGGERHEART.Sheets.PC.DomainCard.UnavailableDomainSlot" level=(add this 2)}}</div>
<div class="empty-ability-inner-container"><i class="fa-solid fa-lock"></i></div>
</div>
{{/if}}
{{#if (and (lte (add this 3) ../actor/system/domainData.maxLoadout) (lt ../abilities.loadout.bottom.length (add this 1)))}}
<div class="empty-ability-container">
<div class="empty-ability-inner-container">{{localize "DAGGERHEART.Sheets.PC.DomainCard.AvailableDomainSlot"}}</div>
<div class="empty-ability-inner-container"></div>
</div>
{{/if}}
</div>
{{/times}}
</div>
</div>
</div>
<div class="tab" data-group="secondary" data-tab="vault">
<div class="vault-container">
{{#each abilities.vault}}
<div class="vault-card">
{{> "systems/daggerheart/templates/sheets/parts/domainCard.hbs" card=this inVault=true }}
</div>
{{/each}}
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,45 @@
<div>
<header class="flexcol">
<div class="title-container">
<img class="flex0" src="{{source.img}}" data-edit="img" data-action="onEditImage" title="{{source.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
<nav class="sheet-tabs tabs">
{{#each tabs as |tab|}}
<a class="{{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav>
</header>
<div class="sheet-body">
<div class="tab {{this.tabs.general.cssClass}}" data-group="primary" data-tab="general">
{{formField systemFields.spellcastingTrait value=source.system.spellcastingTrait label=(localize "DAGGERHEART.Sheets.Subclass.SpellcastingTrait") localize=true}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Subclass.SpellcastingTrait"}}</label>
<div class="form-fields">
<select name="system.spellcastingTrait">
{{selectOptions config.ACTOR.abilities selected=item.system.spellcastingTrait labelAttr="name" localize=true blank="" }}
</select>
</div>
</div> --}}
<div class="editor-form-group">
<label>{{localize "DAGGERHEART.Sheets.Subclass.Description"}}</label>
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
{{!-- {{editor item.system.description target="system.description" button=true}} --}}
</div>
</div>
<div class="tab foundation-tab {{this.tabs.foundation.cssClass}}" data-group="primary" data-tab="foundation">
{{> "systems/daggerheart/templates/sheets/parts/subclassFeature.hbs" field=systemFields.foundationFeature.fields feature=source.system.foundationFeature featureType="foundation" }}
</div>
<div class="tab specialization-tab {{this.tabs.specialization.cssClass}}" data-group="primary" data-tab="specialization">
{{> "systems/daggerheart/templates/sheets/parts/subclassFeature.hbs" field=systemFields.specializationFeature.fields feature=source.system.specializationFeature featureType="specialization" }}
</div>
<div class="tab mastery-tab {{this.tabs.mastery.cssClass}}" data-group="primary" data-tab="mastery">
{{> "systems/daggerheart/templates/sheets/parts/subclassFeature.hbs" field=systemFields.masteryFeature.fields feature=source.system.masteryFeature featureType="mastery" }}
</div>
</div>
</div>

View file

@ -0,0 +1,86 @@
<div>
<header class="flexcol">
{{!-- <div class="flexrow">
<img class="flex0" src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/>
<div class="title-name">
<h2><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h2>
</div>
</div> --}}
<div class="title-container">
<img class="flex0" src="{{document.img}}" data-edit="img" data-action="onEditImage" title="{{document.name}}" height="64" width="64"/>
<div class="title-name">
{{formInput fields.name value=source.name rootId=partId}}
</div>
</div>
</header>
<section class="sheet-body">
{{formField systemFields.secondary value=source.system.secondary label=(localize "DAGGERHEART.Sheets.Weapon.SecondaryWeapon") }}
{{formField systemFields.trait value=source.system.trait label=(localize "DAGGERHEART.Sheets.Weapon.Trait") localize=true }}
{{formField systemFields.range value=source.system.range label=(localize "DAGGERHEART.Sheets.Weapon.Range") localize=true }}
<div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Damage.Title"}}</label>
<div class="form-fields">
{{formGroup systemFields.damage.fields.value value=source.system.damage.value label=(localize "DAGGERHEART.Sheets.Weapon.Damage.Value") }}
{{formGroup systemFields.damage.fields.type value=source.system.damage.type label=(localize "DAGGERHEART.Sheets.Weapon.Damage.Type") localize=true }}
</div>
</div>
{{formField systemFields.burden value=source.system.burden label=(localize "DAGGERHEART.Sheets.Weapon.Burden") localize=true }}
{{formField systemFields.feature value=source.system.feature label=(localize "DAGGERHEART.Sheets.Weapon.Feature") localize=true }}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.SecondaryWeapon"}}</label>
<div class="form-fields">
<input type="checkbox" name="system.secondary" {{checked item.system.secondary}} />
</div>
</div> --}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Trait"}}</label>
<div class="form-fields">
<select name="system.trait">
{{selectOptions config.ACTOR.abilities selected=item.system.trait labelAttr="name" localize=true }}
</select>
</div>
</div> --}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Range"}}</label>
<div class="form-fields">
<select name="system.range">
{{selectOptions config.GENERAL.range selected=item.system.range labelAttr="name" localize=true }}
</select>
</div>
</div> --}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Damage.Title"}}</label>
<div class="form-fields">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Damage.Value"}}</label>
<input type="text" name="system.damage.value" value="{{item.system.damage.value}}" />
<label>{{localize "DAGGERHEART.Sheets.Weapon.Damage.Type"}}</label>
<select name="system.damage.type">
{{selectOptions config.GENERAL.damageTypes selected=item.system.damage.type labelAttr="name" localize=true }}
</select>
</div>
</div> --}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Burden"}}</label>
<div class="form-fields">
<select name="system.burden">
{{selectOptions config.GENERAL.burden selected=item.system.burden localize=true }}
</select>
</div>
</div> --}}
{{!-- <div class="form-group">
<label>{{localize "DAGGERHEART.Sheets.Weapon.Feature"}}</label>
<div class="form-fields">
<select name="system.feature">
{{selectOptions config.ITEM.weaponFeatures selected=item.system.feature labelAttr="name" localize=true blank="" }}
</select>
</div>
</div> --}}
<div class="feature-description">
<h2>{{localize "DAGGERHEART.Sheets.Weapon.Description"}}</h2>
{{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}}
{{!-- {{editor item.system.description target="system.description" button=true}} --}}
</div>
</section>
</div>

View file

@ -0,0 +1,45 @@
<form id="document-create" autocomplete="off">
<div class="form-group">
<label>{{localize "Name"}}</label>
<div class="form-fields">
<input type="text" name="name" placeholder="{{name}}" autofocus>
</div>
</div>
{{#if hasTypes}}
<div class="form-group">
<label>{{localize "Type"}}</label>
<div class="form-fields">
<select name="type">
{{#select type}}
{{#each types as |values key|}}
<optgroup label="{{key}}">
{{#each values}}
<option value="{{this.value}}">{{this.label}}</option>
{{/each}}
</optgroup>
{{/each}}
{{/select}}
</select>
</div>
</div>
{{/if}}
{{#if hasFolders}}
<div class="form-group">
<label>{{ localize "DOCUMENT.Folder" }}</label>
<div class="form-fields">
<select name="folder">
{{#select folder}}
<option value=""></option>
{{#each folders}}
<option value="{{ this.id }}">{{ this.name }}</option>
{{/each}}
{{/select}}
</select>
</div>
</div>
{{/if}}
{{{content}}}
</form>

View file

@ -0,0 +1,160 @@
<section class="{{cssClass}} directory flexcol" id="{{cssId}}" data-tab="{{tabName}}">
<header class="combat-tracker-header">
{{#if user.isGM}}
<nav class="encounters flexrow" aria-label="{{localize 'COMBAT.NavLabel'}}">
<a class="combat-button combat-create" aria-label="{{localize 'COMBAT.Create'}}" role="button" data-tooltip="COMBAT.Create">
<i class="fas fa-plus"></i>
</a>
{{#if combatCount}}
<a class="combat-button combat-cycle" aria-label="{{localize 'COMBAT.EncounterPrevious'}}" role="button" data-tooltip="COMBAT.EncounterPrevious"
{{#if previousId}}data-document-id="{{previousId}}"{{else}}disabled{{/if}}>
<i class="fas fa-caret-left"></i>
</a>
<h4 class="encounter">{{localize "COMBAT.Encounter"}} {{currentIndex}} / {{combatCount}}</h4>
<a class="combat-button combat-cycle" aria-label="{{localize 'COMBAT.EncounterNext'}}" role="button" data-tooltip="COMBAT.EncounterNext"
{{#if nextId}}data-document-id="{{nextId}}"{{else}}disabled{{/if}}>
<i class="fas fa-caret-right"></i>
</a>
{{/if}}
<a class="combat-button combat-control" aria-label="{{localize 'COMBAT.Delete'}}" role="button" data-tooltip="COMBAT.Delete" data-control="endCombat" {{#unless combatCount}}disabled{{/unless}}>
<i class="fas fa-trash"></i>
</a>
</nav>
{{/if}}
<div class="encounter-controls flexrow {{#if hasCombat}}combat{{/if}}">
{{#if user.isGM}}
<a class="combat-button combat-control" aria-label="{{localize 'COMBAT.RollAll'}}" role="button" data-tooltip="COMBAT.RollAll" data-control="rollAll" {{#unless turns}}disabled{{/unless}}>
<i class="fas fa-users"></i>
</a>
<a class="combat-button combat-control" aria-label="{{localize 'COMBAT.RollNPC'}}" role="button" data-tooltip="COMBAT.RollNPC" data-control="rollNPC" {{#unless turns}}disabled{{/unless}}>
<i class="fas fa-users-cog"></i>
</a>
{{/if}}
{{#if combatCount}}
{{#if combat.round}}
<h3 class="encounter-title noborder">{{localize 'COMBAT.Round'}} {{combat.round}}</h3>
{{else}}
<h3 class="encounter-title noborder">{{localize 'COMBAT.NotStarted'}}</h3>
{{/if}}
{{else}}
<h3 class="encounter-title noborder">{{localize "COMBAT.None"}}</h3>
{{/if}}
{{#if user.isGM}}
<a class="combat-button combat-control" aria-label="{{localize 'COMBAT.InitiativeReset'}}" role="button" data-tooltip="COMBAT.InitiativeReset" data-control="resetAll"
{{#unless hasCombat}}disabled{{/unless}}>
<i class="fas fa-undo"></i>
</a>
<a class="combat-button combat-control" aria-label="{{localize 'labels.scope'}}" role="button" data-tooltip="{{labels.scope}}"
data-control="toggleSceneLink" {{#unless hasCombat}}disabled{{/unless}}>
<i class="fas fa-{{#unless linked}}un{{/unless}}link"></i>
</a>
{{/if}}
<a class="combat-button combat-settings" aria-label="{{localize 'COMBAT.Settings'}}" role="button" data-tooltip="COMBAT.Settings" data-control="trackerSettings">
<i class="fas fa-cog"></i>
</a>
</div>
</header>
<div class="encounter-gm-resources">
{{#if combat.system}}
<div class="gm-resource-controls">
<i class="fa-solid fa-caret-up icon-button up" data-type="action"></i>
<i class="fa-solid fa-caret-down icon-button down {{#if (lte combat.system.actions 0)}}disabled{{/if}}" data-type="action"></i>
</div>
<div class="gm-resource">
<i class="fa-solid fa-hand-sparkles"></i>
<span>{{combat.system.actions}}</span>
</div>
<div class="gm-resource-tools">
<i class="fa-solid fa-arrow-right-long trade-actions {{#if (lt combat.system.actions 2)}}disabled{{/if}}"></i>
<i class="fa-solid fa-arrow-left-long trade-fear {{#if (lt fear 1)}}disabled{{/if}}"></i>
</div>
<div class="gm-resource">
<i class="fa-solid fa-skull"></i>
<span>{{fear}}</span>
</div>
<div class="gm-resource-controls">
<i class="fa-solid fa-caret-up icon-button up {{#if (gte fear 6)}}disabled{{/if}}" data-type="fear"></i>
<i class="fa-solid fa-caret-down icon-button down {{#if (lte fear 0)}}disabled{{/if}}" data-type="fear"></i>
</div>
{{/if}}
</div>
<ol id="combat-tracker" class="directory-list">
{{#each turns}}
<li class="combatant actor directory-item flexrow {{this.css}}" data-combatant-id="{{this.id}}">
<img class="token-image" data-src="{{this.img}}" alt="{{this.name}}"/>
<div class="token-name flexcol">
<h4>{{this.name}}</h4>
<div class="combatant-controls flexrow">
{{#if ../user.isGM}}
<a class="combatant-control {{#if this.hidden}}active{{/if}}" aria-label="{{localize 'COMBAT.ToggleVis'}}" role="button" data-tooltip="COMBAT.ToggleVis" data-control="toggleHidden">
<i class="fas fa-eye-slash"></i>
</a>
<a class="combatant-control {{#if this.defeated}}active{{/if}}" aria-label="{{localize 'COMBAT.ToggleDead'}}" role="button" data-tooltip="COMBAT.ToggleDead" data-control="toggleDefeated">
<i class="fas fa-skull"></i>
</a>
{{/if}}
{{#if this.canPing}}
<a class="combatant-control" aria-label="{{localize 'COMBAT.PingCombatant'}}" role="button" data-tooltip="COMBAT.PingCombatant" data-control="pingCombatant">
<i class="fa-solid fa-bullseye-arrow"></i>
</a>
{{/if}}
{{#unless ../user.isGM}}
<a class="combatant-control" aria-label="{{localize 'COMBAT.PanToCombatant'}}" role="button" data-tooltip="COMBAT.PanToCombatant" data-control="panToCombatant">
<i class="fa-solid fa-arrows-to-eye"></i>
</a>
{{/unless}}
<div class="token-effects">
{{#each this.effects}}
<img class="token-effect" src="{{this}}"/>
{{/each}}
</div>
</div>
</div>
{{#if this.hasResource}}
<div class="token-resource">
<span class="resource">{{this.resource}}</span>
</div>
{{/if}}
<div class="token-action-tokens">
{{#if this.playerCharacter}}
<i class="fa-solid fa-hand use-action-token" data-combatant="{{this.id}}"></i>
{{else if (and (not this.ownedByPlayer) ../user.isGM)}}
<i class="fa-solid fa-hand use-action-token {{#if (lt ../combat.system.actions 1)}}disabled{{/if}}" data-combatant="{{this.id}}"></i>
{{/if}}
{{!-- {{#if this.hasRolled}}
<span class="initiative">{{this.initiative}}</span>
{{else if this.owner}}
<a class="combatant-control roll" aria-label="{{localize 'COMBAT.InitiativeRoll'}}" role="button" data-tooltip="COMBAT.InitiativeRoll" data-control="rollInitiative"></a>
{{/if}} --}}
</div>
</li>
{{/each}}
</ol>
<nav id="combat-controls" class="directory-footer flexrow" data-tooltip-direction="UP">
{{#if hasCombat}}
{{#if user.isGM}}
{{#if round}}
<a class="combat-control" aria-label="{{localize 'COMBAT.RoundPrev'}}" role="button" data-tooltip="COMBAT.RoundPrev" data-control="previousRound"><i class="fas fa-step-backward"></i></a>
<a class="combat-control" aria-label="{{localize 'COMBAT.TurnPrev'}}" role="button" data-tooltip="COMBAT.TurnPrev" data-control="previousTurn"><i class="fas fa-arrow-left"></i></a>
<a class="combat-control center" aria-label="{{localize 'COMBAT.End'}}" role="button" data-control="endCombat">{{localize 'COMBAT.End'}}</a>
<a class="combat-control" aria-label="{{localize 'COMBAT.TurnNext'}}" role="button" data-tooltip="COMBAT.TurnNext" data-control="nextTurn"><i class="fas fa-arrow-right"></i></a>
<a class="combat-control" aria-label="{{localize 'COMBAT.RoundNext'}}" role="button" data-tooltip="COMBAT.RoundNext" data-control="nextRound"><i class="fas fa-step-forward"></i></a>
{{else}}
<a class="combat-control center" aria-label="{{localize 'COMBAT.Begin'}}" role="button" data-control="startCombat">{{localize 'COMBAT.Begin'}}</a>
{{/if}}
{{else if control}}
<a class="combat-control" aria-label="{{localize 'COMBAT.TurnPrev'}}" role="button" data-tooltip="COMBAT.TurnPrev" data-control="previousTurn"><i class="fas fa-arrow-left"></i></a>
<a class="combat-control center" aria-label="{{localize 'COMBAT.TurnEnd'}}" role="button" data-control="nextTurn">{{localize 'COMBAT.TurnEnd'}}</a>
<a class="combat-control" aria-label="{{localize 'COMBAT.TurnNext'}}" role="button" data-tooltip="COMBAT.TurnNext" data-control="nextTurn"><i class="fas fa-arrow-right"></i></a>
{{/if}}
{{/if}}
</nav>
</section>

35
templates/ui/players.hbs Normal file
View file

@ -0,0 +1,35 @@
<aside id="players" class="app daggerheart {{#if hide}}hidden{{/if}}">
<h3 aria-label="{{localize 'PLAYERS.Title'}}" role="button">
<div class="flex-centered">
<i class="fas fa-users"></i>
{{ localize "PLAYERS.Title" }}
{{#if showOffline}}
<i class="players-mode fas fa-angle-down"></i>
{{else}}
<i class="players-mode fas fa-angle-up"></i>
{{/if}}
</div>
<div class="players-container">
<i class="fa-solid fa-skull"></i>
<div>{{this.fear}}</div>
{{#if user.isGM}}
<div class="flexcol">
<i class="fa-solid fa-chevron-up fear-control up {{#if (gte this.fear 6)}}disabled{{/if}}"></i>
<i class="fa-solid fa-chevron-down fear-control down {{#if (lte this.fear 0)}}disabled{{/if}}"></i>
</div>
{{/if}}
</div>
</h3>
<ol aria-label="{{localize 'PLAYERS.List'}}" tabIndex="0" id="player-list">
{{#each users as |user|}}
<li class="player {{#if user.isGM}}gm{{/if}} flexrow" data-user-id="{{user._id}}">
<span class="player-active {{#if user.active}}active{{else}}inactive{{/if}}"
style="background: {{user.color}}; border: 1px solid {{user.border.css}}"></span>
<span class="player-name {{#if user.isSelf}}self{{/if}}" data-tooltip="{{user.displayName}}">
{{user.displayName}}
</span>
</li>
{{/each}}
</ol>
</aside>

View file

@ -0,0 +1,64 @@
<div>
<header>
{{formField fields.name value=source.name label="Name" rootId=partId}}
<nav class="sheet-tabs tabs">
{{#each tabs as |tab|}}
<a class="{{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav>
</header>
<section>
<div class="tab {{this.tabs.effects.cssClass}}" data-group="primary" data-tab="effects">
<fieldset class="action-category">
<legend class="action-category-label" data-action="toggleSection" data-section="damage">
<div>Damage</div>
<i class="fa-solid {{#if (eq openSection 'damage')}}fa-angle-up{{else}}fa-angle-down{{/if}}"></i>
</legend>
<div class="action-category-data {{#if (eq openSection 'damage')}}open{{/if}}">
{{formField fields.damage.fields.type value=source.damage.type label="Damage Type" rootId=partId localize=true}}
{{formField fields.damage.fields.value value=source.damage.value label="Damage" rootId=partId localize=true}}
</div>
</fieldset>
<fieldset class="action-category">
<legend class="action-category-label" data-action="toggleSection" data-section="healing">
<div>Healing</div>
<i class="fa-solid {{#if (eq openSection 'healing')}}fa-angle-up{{else}}fa-angle-down{{/if}}"></i>
</legend>
<div class="action-category-data {{#if (eq openSection 'healing')}}open{{/if}}">
{{formField fields.healing.fields.type value=source.healing.type label="Healing Type" rootId=partId localize=true}}
{{formField fields.healing.fields.value value=source.healing.value label="Healing" rootId=partId localize=true}}
</div>
</fieldset>
</div>
<div class="tab {{this.tabs.useage.cssClass}}" data-group="primary" data-tab="useage">
<fieldset class="action-category">
<legend class="action-category-label" data-action="toggleSection" data-section="cost">
<div>Cost</div>
<i class="fa-solid {{#if (eq openSection 'cost')}}fa-angle-up{{else}}fa-angle-down{{/if}}"></i>
</legend>
<div class="action-category-data {{#if (eq openSection 'cost')}}open{{/if}}">
{{formField fields.cost.fields.type value=source.cost.type label="Cost Type" rootId=partId}}
{{formField fields.cost.fields.value value=source.cost.value label="Value" rootId=partId}}
</div>
</fieldset>
{{formField fields.target.fields.type value=source.target.type label="Target Type" rootId=partId}}
</div>
<div class="tab {{this.tabs.conditions.cssClass}}" data-group="primary" data-tab="conditions">
{{!-- <h2>
{{localize "Conditions"}}
<select class="effect-select">
{{selectOptions this.config.effectTypes selected=this.selectedEffectType labelAttr="name" localize=true blank=""}}
</select>
<i class="fa-solid fa-plus icon-button {{#if (not this.selectedEffectType)}}disabled{{/if}}" data-action="addCondition"></i>
</h2> --}}
</div>
</section>
<button type="submit">Save</button>
</div>

View file

@ -0,0 +1,72 @@
<div>
<div class="ancestry-section">
<h2>{{localize "Daggerheart Ancestries"}}</h2>
<div class="ancestry-container">
{{#each systemAncestries}}
<div class="ancestry-inner-container">
<div class="image-container">
<img src="{{this.img}}" class="{{#if this.selected}}selected{{else}}{{#if (eq ../selectedAncestries.length 2)}}disabled{{/if}}{{/if}}" data-action="selectAncestry" data-uuid="{{this.uuid}}" />
</div>
<div class="name-container">
<div data-action="viewItem" data-uuid="{{this.uuid}}">{{this.name}}</div>
</div>
</div>
{{/each}}
</div>
</div>
<div class="ancestry-section">
<h2>{{localize "Custom Ancestries"}}</h2>
<div class="ancestry-container">
{{#each customAncestries}}
<div class="ancestry-inner-container">
<div class="image-container">
<img src="{{this.img}}" class="{{#if this.selected}}selected{{else}}{{#if (eq ../selectedAncestries.length 2)}}disabled{{/if}}{{/if}}" data-action="selectAncestry" data-uuid="{{this.uuid}}" />
</div>
<div class="name-container">
<div data-action="viewItem" data-uuid="{{this.uuid}}">{{this.name}}</div>
</div>
</div>
{{/each}}
{{#if (eq customAncestries.length 0)}}No Custom Ancestries created in this world{{/if}}
</div>
</div>
<div class="ancestry-section">
<h2>{{localize "Ancestry Features"}}</h2>
<div class="ancestry-container">
{{#each ancestryFeatures}}
<div class="ancestry-inner-container">
<div class="image-container">
<img src="{{this.img}}" class="{{#if this.selected}}selected{{else}}{{#if (eq ../selectedFeatures.length 2)}}disabled{{/if}}{{/if}}" data-action="selectFeature" data-uuid="{{this.uuid}}" />
</div>
<div class="name-container">
<div data-action="viewItem" data-uuid="{{this.uuid}}">{{this.name}}</div>
</div>
</div>
{{/each}}
</div>
</div>
{{#if (eq this.selectedAncestries.length 2)}}
<div class="ancestry-section">
<h2>{{localize "Mixed Ancestry"}}</h2>
<div class="mixed-ancestry-container">
<div class="mixed-ancestry-name">
<div>{{localize "Ancestry Name"}}</div>
<input class="ancestry-name" type="text" value="{{this.ancestryInfo.name}}" />
</div>
<div class="mixed-ancestry-images">
{{#each selectedAncestries}}
<img class="{{#if (eq ../ancestryInfo.img this.img)}}selected{{/if}}" src="{{this.img}}" data-action="selectImage" data-img="{{this.img}}" />
{{/each}}
<div class="mixed-ancestry-image">
<img class="{{#if (eq this.ancestryInfo.img this.ancestryInfo.customImg)}}selected{{/if}}" src="{{this.ancestryInfo.customImg}}" data-action="selectImage" data-img="{{this.ancestryInfo.customImg}}" />
<i class="fa-solid fa-upload" data-action="editImage"></i>
</div>
</div>
</div>
<textarea class="ancestry-description">{{this.ancestryInfo.description}}</textarea>
</div>
{{/if}}
<footer class="flexrow">
<button class="flex1" data-action="saveAncestry" {{#if (not (eq selectedFeatures.length 2))}}disabled{{/if}}>Select Ancestry</button>
</footer>
</div>

View file

@ -0,0 +1,19 @@
<form class={{cssClass}} autocomplete="off">
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Automation.HopeLabel"}}</label>
<div class="form-fields">
<input type="checkbox" name="{{settings.Hope}}" {{checked this.hope}} />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Automation.ActionPointsLabel"}}</label>
<div class="form-fields">
<input type="checkbox" name="{{settings.ActionPoints}}" {{checked this.actionPoints}} />
</div>
</div>
<footer class="flexrow">
<button type="submit">Save</button>
<button>Cancel</button>
</footer>
</form>

View file

@ -0,0 +1,29 @@
<div>
<div class="form-group">
<label><strong>Total Damage</strong></label>
<div class="form-fields">
<input type="text" value="{{this.rollString}}" disabled />
</div>
</div>
{{#each this.bonusDamage as |damage index|}}
<div class="form-group">
<label><strong>{{damage.description}}</strong></label>
<div class="form-fields">
<label>Enabled</label>
<input style="align-self: baseline;" type="checkbox" name="bonusDamage.{{index}}.initiallySelected" {{checked damage.initiallySelected}} />
{{#if (and damage.initiallySelected damage.hopeIncrease)}}
<label>Hope</label>
<div class="hope-container">
<i data-action="decreaseHopeUse" data-index="{{index}}" class="fa-solid fa-caret-left icon-button {{#if (eq damage.hopeUses 0)}}disabled{{/if}}"></i>
<div>{{damage.hopeUses}}</div>
<i data-action="increaseHopeUse" data-index="{{index}}" class="fa-solid fa-caret-right icon-button {{#if (eq ../hopeUsed ../hope)}}disabled{{/if}}"></i>
</div>
{{/if}}
</div>
</div>
{{/each}}
<footer>
<button data-action="rollDamage">Roll</button>
</footer>
</div>

View file

@ -0,0 +1,19 @@
<div>
<div class="downtime-container">
{{#each this.options as |option key|}}
<div class="activity-container">
<div class="activity-title">
<img class="activity-image {{#if (eq ../selectedMove.id key)}}selected{{/if}}" src="{{option.img}}" data-action="selectMove" data-move="{{key}}" />
<span class="activity-title-text">{{localize this.name}}</span>
</div>
<div class="activity-body">
{{localize this.description}}
</div>
</div>
{{/each}}
</div>
<footer class="flexrow">
<button data-action="takeMove" {{#if (not this.selectedMove)}}disabled{{/if}}>{{localize "DAGGERHEART.Application.DeathMove.TakeMove"}}</button>
<button data-action="close">{{localize "DAGGERHEART.Application.Cancel"}}</button>
</footer>
</div>

View file

@ -0,0 +1,28 @@
<div>
<div class="downtime-container">
{{#each this.options as |option key|}}
<div class="activity-container">
<div class="activity-title">
<img class="activity-image {{#if (eq ../selectedActivity.id key)}}selected{{/if}}" src="{{option.img}}" data-action="selectActivity" data-activity="{{key}}" />
<span class="activity-title-text">{{localize this.name}}</span>
</div>
<div class="activity-body">
{{localize this.description}}
</div>
</div>
{{/each}}
<div class="activity-container">
<div class="activity-title">
<img class="activity-image {{#if (eq selectedActivity this.customActivity)}}selected{{/if}}" src="{{this.customActivity.img}}" data-action="selectActivity" data-activity="{{this.customActivity.id}}" />
<input class="custom-name-input" type="text" name="name" value="{{this.customActivity.name}}" placeholder="{{localize this.customActivity.namePlaceholder}}" />
</div>
<div class="activity-body">
<textarea class="activity-text-area" name="description" placeholder="{{localize this.customActivity.placeholder}}">{{this.customActivity.description}}</textarea>
</div>
</div>
</div>
<footer class="flexrow">
<button data-action="takeDowntime" {{#if this.disabledDowntime}}disabled{{/if}}>{{localize "DAGGERHEART.Application.Downtime.TakeDowntime"}}</button>
<button data-action="close">{{localize "DAGGERHEART.Application.Cancel"}}</button>
</footer>
</div>

View file

@ -0,0 +1,13 @@
<form class={{cssClass}} autocomplete="off">
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Homebrew.AbilityArrayLabel"}}</label>
<div class="form-fields">
<input type="text" name="{{settings.AbilityArray}}" value="{{this.abilityArray}}" />
</div>
</div>
<footer class="flexrow">
<button type="submit">Save</button>
<button>Cancel</button>
</footer>
</form>

View file

@ -0,0 +1,20 @@
<div class="flex-col">
<div class="levelup-title-container">Level {{activeLevel}}</div>
<div class="levelup-section">
{{#each data}}
{{> "systems/daggerheart/templates/views/parts/level.hbs" data=this }}
{{/each}}
{{!-- {{#each levelupConfig as |configData key|}}
{{> "systems/daggerheart/templates/views/parts/level.hbs" configData=configData levelData=(lookup ../levelData key) completedSelection=../completedSelection activeTier=../activeTier activeLevel=../activeLevel category=key }}
{{/each}} --}}
</div>
<footer>
{{#if (eq activeLevel changedLevel )}}
<button data-action="finishLevelup" {{#if (not completedSelection)}}disabled{{/if}}>{{localize "DAGGERHEART.Application.LevelUp.TakeLevelUp"}}</button>
{{else}}
<button data-action="advanceLevel" {{#if (not completedSelection)}}disabled{{/if}}>{{localize "DAGGERHEART.Application.LevelUp.AdvanceLevel" level=(add activeLevel 1)}}</button>
{{/if}}
<button data-action="close">{{localize "DAGGERHEART.Application.Cancel"}}</button>
</footer>
</div>

View file

@ -0,0 +1,37 @@
<div>
<section class="multiclass-container flexcol">
<h2 style="margin-top: 0;">{{localize "DAGGERHEART.Application.Multiclass.ClassSection.Title"}}</h2>
<div class="multiclass-class-choices">
{{#each classChoices}}
<div class="multiclass-class-choice {{#if (eq ../data.class.name this.name)}}selected{{/if}} {{#if (and ../data.class (not (eq ../data.class.name this.name)))}}inactive{{/if}}" data-action="selectClass" data-class="{{this.uuid}}">
<img src="{{this.img}}" />
<div>{{this.name}}</div>
</div>
{{/each}}
</div>
<h2 class="multiclass-category-title">{{localize "DAGGERHEART.Application.Multiclass.SubclassSection.Title"}}</h2>
<div class="multiclass-spaced-choices">
{{#each subclassChoices}}
<div class="multiclass-class-choice {{#if (eq ../data.subclass.name this.name)}}selected{{/if}} {{#if (and ../data.subclass (not (eq ../data.subclass.name this.name)))}}inactive{{/if}}" data-action="selectSubclass" data-subclass="{{this.uuid}}">
<img src="{{this.img}}" />
<div>{{this.name}}</div>
</div>
{{/each}}
</div>
<h2 class="multiclass-category-title">{{localize "DAGGERHEART.Application.Multiclass.DomainSection.Title"}}</h2>
<div class="multiclass-spaced-choices">
{{#each domainChoices}}
<div
class="multiclass-class-choice {{#if (eq ../data.domain.name this.name)}}selected{{/if}} {{#if (and ../data.domain (not (eq ../data.domain.name this.name)))}}inactive{{/if}} {{#if this.disabled}}disabled{{/if}}"
data-action="selectDomain" data-domain="{{this.id}}" title="{{#if this.disabled}}{{localize "DAGGERHEART.Application.Multiclass.AlreadyOwnedDomain"}}{{/if}}">
<img src="{{this.img}}" />
<div>{{this.name}}</div>
</div>
{{/each}}
</div>
</section>
<footer>
<button data-action="finish" {{#if this.disabledFinish}}disabled{{/if}}>{{localize "DAGGERHEART.Application.Multiclass.Finish"}}</button>
<button data-action="close">{{localize "DAGGERHEART.Application.Multiclass.Close"}}</button>
</footer>
</div>

View file

@ -0,0 +1,30 @@
<div class="npc-roll-dialog-container">
<div class="selection-container">
<div class="dice-container">
<div class="dice-inner-container">
<img src="icons/svg/d20-grey.svg" />
<div class="dice-number">{{this.nrDice}}</div>
</div>
<div class="flexcol" style="margin-right: 4px;">
<i class="fa-solid fa-chevron-up icon-button increase"></i>
<i class="fa-solid fa-chevron-down icon-button decrease"></i>
</div>
<div class="flexcol">
<div class="icon-button {{#if this.advantage}}active{{/if}} advantage">Adv</div>
<div class="icon-button {{#if (eq this.advantage false)}}active{{/if}} disadvantage">Dis</div>
</div>
</div>
<div class="roll-dialog-experience-container">
{{#each this.experiences as |experience key|}}
<div class="roll-dialog-chip {{#if experience.selected}}selected{{/if}}" data-action="selectExperience" data-key="{{key}}">
<span>{{experience.name}}</span>
<i class="fa-solid fa-circle-check"></i>
</div>
{{/each}}
</div>
</div>
<footer>
<button class="roll-button">Roll</button>
</footer>
</div>

View file

@ -0,0 +1,40 @@
<div class="levelup-container {{#if (not data.active)}}disabled{{/if}}">
<fieldset class="levelup-inner-container">
<legend class="levelup-legend">
{{data.label}}
</legend>
<div class="levelup-info">{{data.info}}</div>
<div class="levelup-pretext">{{data.pretext}}</div>
<div class="levelup-body">
{{#each data.choices as |choice choiceKey|}}
<div class="levelup-choice-row">
<div class="levelup-choice-row-inner">
{{#each choice.values as |value valueKey|}}
{{#times choice.cost}}
<div class="levelup-choice-input-container">
<input
type="checkbox"
data-action="toggleBox"
data-path="{{../path}}"
data-level-attribute="{{@../key}}"
{{checked ../selected}}
{{#if ../disabled}}disabled{{/if}}
/>
{{#if (lt (add this 1) ../../cost)}}
<i class="fa-solid fa-link"></i>
{{/if}}
{{#if ../locked}}
<i class="fa-solid fa-lock"></i>
{{/if}}
</div>
{{/times}}
{{/each}}
</div>
<div>{{localize choice.description}}</div>
</div>
{{/each}}
</div>
<div class="levelup-posttext">{{data.posttext}}</div>
</fieldset>
</div>

View file

@ -0,0 +1,44 @@
<form class={{cssClass}} autocomplete="off">
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Range.EnabledLabel"}}</label>
<div class="form-fields reset-range-container">
<input style="height: 100%;" type="checkbox" name="enabled" {{checked this.range.enabled}} />
<button class="range-reset" style="flex: 0;"><i class="fa-solid fa-clock-rotate-left"></i></button>
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Range.MeleeLabel"}}</label>
<div class="form-fields">
<input type="text" name="melee" value="{{this.range.melee}}" data-dtype="Number" {{#if (not this.range.enabled)}}disabled{{/if}} />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Range.VeryCloseLabel"}}</label>
<div class="form-fields">
<input type="text" name="veryClose" value="{{this.range.veryClose}}" data-dtype="Number" {{#if (not this.range.enabled)}}disabled{{/if}} />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Range.CloseLabel"}}</label>
<div class="form-fields">
<input type="text" name="close" value="{{this.range.close}}" data-dtype="Number" {{#if (not this.range.enabled)}}disabled{{/if}} />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Range.FarLabel"}}</label>
<div class="form-fields">
<input type="text" name="far" value="{{this.range.far}}" data-dtype="Number" {{#if (not this.range.enabled)}}disabled{{/if}} />
</div>
</div>
<div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.Range.VeryFarLabel"}}</label>
<div class="form-fields">
<input type="text" name="veryFar" value="{{this.range.veryFar}}" data-dtype="Number" {{#if (not this.range.enabled)}}disabled{{/if}} />
</div>
</div>
<footer class="flexrow">
<button class="save" {{#if this.disabled}}disabled{{/if}}>Save</button>
<button class="close">Cancel</button>
</footer>
</form>

View file

@ -0,0 +1,75 @@
<div>
<div class="roll-dialog-container">
<div class="flexcol">
<div class="roll-dialog-experience-container">
{{#each this.experiences}}
{{#if this.description}}
<div class="roll-dialog-chip {{#if this.selected}}selected{{/if}}" data-action="selectExperience" data-key="{{this.id}}">
<span>{{this.description}}</span>
<span>+{{this.value}}</span>
</div>
{{/if}}
{{/each}}
</div>
<div class="flexrow">
<button class="disadvantage flex1 {{#if this.advantage}}selected{{/if}}" data-action="setAdvantage">Advantage</button>
<button class="disadvantage flex1 {{#if this.disadvantage}}selected{{/if}}" data-action="setDisadvantage">Disadvantage</button>
</div>
{{!-- <div class="form-group">
<label>Advantage</label>
<div class="form-fields">
<select name="advantage" {{#if this.disadvantage}}disabled{{/if}}>
{{selectOptions this.diceOptions selected=this.advantage nameAttr="value" labelAttr="name" localize=true blank=""}}
</select>
</div>
</div>
<div class="form-group">
<label>Disadvantage</label>
<div class="form-fields">
<select name="disadvantage" {{#if this.advantage}}disabled{{/if}}>
{{selectOptions this.diceOptions selected=this.disadvantage nameAttr="value" labelAttr="name" localize=true blank=""}}
</select>
</div>
</div> --}}
{{#if (not this.isNpc)}}
<div class="form-group">
<label>Hope</label>
<div class="form-fields">
<select name="hope">
{{selectOptions this.diceOptions selected=this.hope nameAttr="value" labelAttr="name" localize=true}}
</select>
</div>
</div>
<div class="form-group">
<label>Fear</label>
<div class="form-fields">
<select name="fear">
{{selectOptions this.diceOptions selected=this.fear nameAttr="value" labelAttr="name" localize=true}}
</select>
</div>
</div>
{{/if}}
{{#each this.bonusDamage as |damage index|}}
<div class="form-group">
<label><strong>{{damage.description}}</strong></label>
<div class="form-fields">
<label>Enabled</label>
<input style="align-self: baseline;" type="checkbox" name="bonusDamage.{{index}}.initiallySelected" {{checked damage.initiallySelected}} />
{{#if (and damage.initiallySelected damage.hopeIncrease)}}
<label>Hope</label>
<div class="hope-container">
<i data-action="decreaseHopeUse" data-index="{{index}}" class="fa-solid fa-caret-left icon-button {{#if (eq damage.hopeUses 0)}}disabled{{/if}}"></i>
<div>{{damage.hopeUses}}</div>
<i data-action="increaseHopeUse" data-index="{{index}}" class="fa-solid fa-caret-right icon-button {{#if (eq ../hopeUsed ../hopeResource)}}disabled{{/if}}"></i>
</div>
{{/if}}
</div>
</div>
{{/each}}
</div>
<footer>
<button data-action="finish">Roll</button>
</footer>
</div>
</div>