mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
Initial commit
This commit is contained in:
commit
aa4021d1a2
163 changed files with 26530 additions and 0 deletions
15
templates/chat/ability-use.hbs
Normal file
15
templates/chat/ability-use.hbs
Normal 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>
|
||||
35
templates/chat/adversary-attack-roll.hbs
Normal file
35
templates/chat/adversary-attack-roll.hbs
Normal 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>
|
||||
22
templates/chat/adversary-roll.hbs
Normal file
22
templates/chat/adversary-roll.hbs
Normal 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>
|
||||
49
templates/chat/attack-roll.hbs
Normal file
49
templates/chat/attack-roll.hbs
Normal 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>
|
||||
19
templates/chat/damage-roll.hbs
Normal file
19
templates/chat/damage-roll.hbs
Normal 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>
|
||||
8
templates/chat/deathMove.hbs
Normal file
8
templates/chat/deathMove.hbs
Normal 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>
|
||||
16
templates/chat/downtime.hbs
Normal file
16
templates/chat/downtime.hbs
Normal 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>
|
||||
68
templates/chat/duality-roll.hbs
Normal file
68
templates/chat/duality-roll.hbs
Normal 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> --}}
|
||||
19
templates/chat/healing-roll.hbs
Normal file
19
templates/chat/healing-roll.hbs
Normal 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>
|
||||
5
templates/components/slider.hbs
Normal file
5
templates/components/slider.hbs
Normal 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>
|
||||
5
templates/dialog/item-select.hbs
Normal file
5
templates/dialog/item-select.hbs
Normal 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>
|
||||
243
templates/sheets/adversary.hbs
Normal file
243
templates/sheets/adversary.hbs
Normal 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>
|
||||
|
||||
<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>
|
||||
11
templates/sheets/ancestry.hbs
Normal file
11
templates/sheets/ancestry.hbs
Normal 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>
|
||||
37
templates/sheets/armor.hbs
Normal file
37
templates/sheets/armor.hbs
Normal 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
300
templates/sheets/class.hbs
Normal 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>
|
||||
11
templates/sheets/community.hbs
Normal file
11
templates/sheets/community.hbs
Normal 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>
|
||||
36
templates/sheets/consumable.hbs
Normal file
36
templates/sheets/consumable.hbs
Normal 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>
|
||||
101
templates/sheets/domainCard.hbs
Normal file
101
templates/sheets/domainCard.hbs
Normal 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> --}}
|
||||
111
templates/sheets/environment.hbs
Normal file
111
templates/sheets/environment.hbs
Normal 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>
|
||||
80
templates/sheets/feature.hbs
Normal file
80
templates/sheets/feature.hbs
Normal 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>
|
||||
29
templates/sheets/miscellaneous.hbs
Normal file
29
templates/sheets/miscellaneous.hbs
Normal 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>
|
||||
19
templates/sheets/parts/armor.hbs
Normal file
19
templates/sheets/parts/armor.hbs
Normal 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>
|
||||
39
templates/sheets/parts/attributes.hbs
Normal file
39
templates/sheets/parts/attributes.hbs
Normal 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>
|
||||
31
templates/sheets/parts/defense.hbs
Normal file
31
templates/sheets/parts/defense.hbs
Normal 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>
|
||||
26
templates/sheets/parts/domainCard.hbs
Normal file
26
templates/sheets/parts/domainCard.hbs
Normal 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>
|
||||
69
templates/sheets/parts/effects.hbs
Normal file
69
templates/sheets/parts/effects.hbs
Normal 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>
|
||||
15
templates/sheets/parts/experience.hbs
Normal file
15
templates/sheets/parts/experience.hbs
Normal 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>
|
||||
48
templates/sheets/parts/features.hbs
Normal file
48
templates/sheets/parts/features.hbs
Normal 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}} {{localize "DAGGERHEART.General.Features"}}</span>
|
||||
/
|
||||
<span class="class-feature-selectable {{#if (not this.multiclass)}}inactive{{/if}}" data-action="selectFeatureSet" data-multiclass="true">{{this.document.system.multiclass.name}} {{localize "DAGGERHEART.General.Features"}}</span>
|
||||
{{else}}
|
||||
<span>{{this.document.system.class.name}} {{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>
|
||||
88
templates/sheets/parts/gold.hbs
Normal file
88
templates/sheets/parts/gold.hbs
Normal 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>
|
||||
58
templates/sheets/parts/health.hbs
Normal file
58
templates/sheets/parts/health.hbs
Normal 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>
|
||||
20
templates/sheets/parts/heritage.hbs
Normal file
20
templates/sheets/parts/heritage.hbs
Normal 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>
|
||||
15
templates/sheets/parts/hope.hbs
Normal file
15
templates/sheets/parts/hope.hbs
Normal 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>
|
||||
47
templates/sheets/parts/inventory.hbs
Normal file
47
templates/sheets/parts/inventory.hbs
Normal 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>
|
||||
25
templates/sheets/parts/subclassFeature.hbs
Normal file
25
templates/sheets/parts/subclassFeature.hbs
Normal 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>
|
||||
57
templates/sheets/parts/weapons.hbs
Normal file
57
templates/sheets/parts/weapons.hbs
Normal 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>
|
||||
27
templates/sheets/pc/parts/advancementCard.hbs
Normal file
27
templates/sheets/pc/parts/advancementCard.hbs
Normal 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> <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>
|
||||
18
templates/sheets/pc/parts/heritageCard.hbs
Normal file
18
templates/sheets/pc/parts/heritageCard.hbs
Normal 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
155
templates/sheets/pc/pc.hbs
Normal 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>
|
||||
32
templates/sheets/pc/sections/inventory.hbs
Normal file
32
templates/sheets/pc/sections/inventory.hbs
Normal 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>
|
||||
134
templates/sheets/pc/sections/loadout.hbs
Normal file
134
templates/sheets/pc/sections/loadout.hbs
Normal 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>
|
||||
45
templates/sheets/subclass.hbs
Normal file
45
templates/sheets/subclass.hbs
Normal 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>
|
||||
86
templates/sheets/weapon.hbs
Normal file
86
templates/sheets/weapon.hbs
Normal 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>
|
||||
45
templates/sidebar/documentCreate.hbs
Normal file
45
templates/sidebar/documentCreate.hbs
Normal 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>
|
||||
160
templates/ui/combatTracker.hbs
Normal file
160
templates/ui/combatTracker.hbs
Normal 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
35
templates/ui/players.hbs
Normal 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>
|
||||
64
templates/views/action.hbs
Normal file
64
templates/views/action.hbs
Normal 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>
|
||||
72
templates/views/ancestrySelection.hbs
Normal file
72
templates/views/ancestrySelection.hbs
Normal 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>
|
||||
19
templates/views/automation-settings.hbs
Normal file
19
templates/views/automation-settings.hbs
Normal 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>
|
||||
29
templates/views/damageSelection.hbs
Normal file
29
templates/views/damageSelection.hbs
Normal 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>
|
||||
19
templates/views/deathMove.hbs
Normal file
19
templates/views/deathMove.hbs
Normal 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>
|
||||
28
templates/views/downtime.hbs
Normal file
28
templates/views/downtime.hbs
Normal 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>
|
||||
13
templates/views/homebrew-settings.hbs
Normal file
13
templates/views/homebrew-settings.hbs
Normal 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>
|
||||
20
templates/views/levelup.hbs
Normal file
20
templates/views/levelup.hbs
Normal 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>
|
||||
37
templates/views/multiclass.hbs
Normal file
37
templates/views/multiclass.hbs
Normal 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>
|
||||
30
templates/views/npcRollSelection.hbs
Normal file
30
templates/views/npcRollSelection.hbs
Normal 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>
|
||||
40
templates/views/parts/level.hbs
Normal file
40
templates/views/parts/level.hbs
Normal 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>
|
||||
44
templates/views/range-settings.hbs
Normal file
44
templates/views/range-settings.hbs
Normal 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>
|
||||
75
templates/views/rollSelection.hbs
Normal file
75
templates/views/rollSelection.hbs
Normal 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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue