mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
* Set up DhLevelTier datamodel * Added Levelup data model and started at the render * Fixed data handling in the LevelUp view * Added back the save function * Finalised levelup selections and propagating to PC * Added level advancement selection data * Added DomainCard selection * Css merge commit * Added PC level/delevel benefits of leveling up * Fixed sticky previous selections on continous leveling * Fixed up Summary. Fixed multiclass/subclass blocking on selection * Removed unused level.hbs * Fixed attribute base for PC * Improved naming of attribute properties * Renamed/structured resources/evasion/proficiency * Improved trait marking * Rework to level up once at a time * Added markers * Removed tabs when in Summary * Fixed multilevel buttons * Improved multiclass/subclass recognition * Fixed tagify error on selection * Review fixes
238 lines
No EOL
15 KiB
Handlebars
238 lines
No EOL
15 KiB
Handlebars
<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.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.hitPoints.max" value="{{source.system.resources.hitPoints.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" data-action="removeExperience" data-experience="{{experience.id}}"><i class="fa-solid fa-x"></i></button>
|
|
</div>
|
|
{{/each}}
|
|
</div>
|
|
<div class="adversary-moves-container">
|
|
<h2 class="moves-edit-container">{{localize "DAGGERHEART.Sheets.Adversary.Features"}} <i class="fa-solid fa-plus" data-action="addMove"></i></h2>
|
|
{{#each this.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="viewMove" data-move={{feature.uuid}}><i class="fa-solid fa-fw fa-search"></i></button>
|
|
<button data-action="removeMove" data-move={{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> {{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-name="{{this.data.attack.name}}" 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.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.Features"}}</div>
|
|
{{#each this.data.features as |feature index|}}
|
|
<div class="move-container">
|
|
<label class="moves-name">{{feature.name}}</label>
|
|
<div class="move-description">{{{feature.system.description}}}</div>
|
|
</div>
|
|
{{/each}}
|
|
</div>
|
|
</div>
|
|
|
|
{{/if}}
|
|
</section>
|
|
</div> |