Merge branch 'development' into feature/1383-Companion-Bonus-Levelups

This commit is contained in:
WBHarry 2026-01-24 20:28:36 +01:00
commit 2fcad0ff25
66 changed files with 1389 additions and 151 deletions

View file

@ -0,0 +1,33 @@
<div>
<div class="character-reset-container">
<div class="character-reset-header">{{localize "DAGGERHEART.APPLICATIONS.CharacterReset.headerTitle"}}</div>
<fieldset>
<legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterReset.alwaysDeleteSection"}} <i class="fa-solid fa-lock"></i></legend>
<div class="reset-data-wrapper two-columns even">
{{#each this.data.delete as | data key|}}
<div class="reset-data-container">
<label>{{localize data.label}}</label>
<input type="checkbox" {{checked data.keep}} disabled />
</div>
{{/each}}
</div>
</fieldset>
<fieldset>
<legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterReset.optionalDeleteSection"}}</legend>
<div class="reset-data-wrapper two-columns even">
{{#each this.data.optional as | data key|}}
<div class="reset-data-container">
<label>{{localize data.label}}</label>
<input type="checkbox" name="{{concat "data.optional." key ".keep"}}" {{checked data.keep}} />
</div>
{{/each}}
</div>
</fieldset>
<button type="button" data-action="finishSelection">{{localize "Reset"}}</button>
</div>
</div>

View file

@ -11,6 +11,11 @@
<button type="button" class="control-icon" data-action="sort" data-direction="down" data-tooltip="HUD.ToBack">
<img src="{{icons.down}}">
</button>
{{#if hasCompanion}}
<button type="button" class="control-icon clown-car" data-action="toggleCompanions" data-tooltip="{{#if companionOnCanvas}}{{localize "DAGGERHEART.APPLICATIONS.HUD.tokenHUD.retrieveCompanionTokens"}}{{else}}{{localize "DAGGERHEART.APPLICATIONS.HUD.tokenHUD.depositCompanionTokens"}}{{/if}}">
<img {{#if companionOnCanvas}}class="flipped"{{/if}} src="{{icons.toggleClowncar}}">
</button>
{{/if}}
{{#if canConfigure}}
<button type="button" class="control-icon" data-action="config" data-tooltip="HUD.OpenConfig">
@ -76,7 +81,7 @@
{{#if (eq actorType 'party')}}
<button type="button" class="control-icon clown-car" data-action="togglePartyTokens" data-tooltip="{{#if partyOnCanvas}}{{localize "DAGGERHEART.APPLICATIONS.HUD.tokenHUD.retrievePartyTokens"}}{{else}}{{localize "DAGGERHEART.APPLICATIONS.HUD.tokenHUD.depositPartyTokens"}}{{/if}}">
<img {{#if partyOnCanvas}}class="flipped"{{/if}} src="{{icons.toggleParty}}">
<img {{#if partyOnCanvas}}class="flipped"{{/if}} src="{{icons.toggleClowncar}}">
</button>
{{/if}}

View file

@ -9,11 +9,12 @@
</legend>
{{formGroup settingFields.schema.fields.defeated.fields.enabled value=settingFields._source.defeated.enabled localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.overlay value=settingFields._source.defeated.overlay localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.overlay value=settingFields._source.defeated.overlay localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.characterDefault value=settingFields._source.defeated.characterDefault labelAttr="name" localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.adversaryDefault value=settingFields._source.defeated.adversaryDefault labelAttr="name" localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.companionDefault value=settingFields._source.defeated.companionDefault labelAttr="name" localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.deathMoveIcon value=settingFields._source.defeated.deathMoveIcon localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.deadIcon value=settingFields._source.defeated.deadIcon localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.defeatedIcon value=settingFields._source.defeated.defeatedIcon localize=true}}
{{formGroup settingFields.schema.fields.defeated.fields.unconsciousIcon value=settingFields._source.defeated.unconsciousIcon localize=true}}

View file

@ -10,7 +10,7 @@
<legend>
{{localize "DAGGERHEART.APPLICATIONS.Downtime.longRest.title"}}
<a data-action="addItem" data-type="longRest"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="longRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
<a data-action="resetDowntimeMoves" data-type="longRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend>
<div class="form-group setting-group-field">
@ -31,7 +31,7 @@
<legend>
{{localize "DAGGERHEART.APPLICATIONS.Downtime.shortRest.title"}}
<a data-action="addItem" data-type="shortRest"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="shortRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
<a data-action="resetDowntimeMoves" data-type="shortRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend>
<div class="form-group setting-group-field">

View file

@ -8,7 +8,7 @@
<legend>
{{localize "DAGGERHEART.GENERAL.weaponFeatures"}}
<a data-action="addItem" data-type="weaponFeatures"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="weaponFeatures"><i class="fa-solid fa-arrow-rotate-left"></i></a>
<a data-action="resetItemFeatures" data-type="weaponFeatures"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend>
<div class="settings-items">
@ -22,7 +22,7 @@
<legend>
{{localize "DAGGERHEART.GENERAL.armorFeatures"}}
<a data-action="addItem" data-type="armorFeatures"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="armorFeatures"><i class="fa-solid fa-arrow-rotate-left"></i></a>
<a data-action="resetItemFeatures" data-type="armorFeatures"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend>
<div class="settings-items">

View file

@ -11,6 +11,6 @@
</fieldset>
<fieldset class="action-category">
<legend>{{localize "DAGGERHEART.GENERAL.description"}}</legend>
{{formInput fields.description value=source.description enriched=source.description name="description" toggled=true }}
{{formInput fields.description value=source.description enriched=action.description name="description" toggled=true }}
</fieldset>
</section>

View file

@ -1,12 +1,12 @@
<aside class="character-sidebar-sheet">
<div class="portrait {{#if isDeath}}death-roll{{/if}}">
<img src="{{document.img}}" alt="{{document.name}}" data-action='editImage' data-edit="img">
{{#if document.system.class.subclass.system.spellcastingTrait}}
{{#if document.system.spellcastModifierTrait.key}}
<div class="icons-list">
<span class="spellcast-icon {{#if isDeath}}no-label{{/if}}">
<span class="spellcast-label">
{{localize "DAGGERHEART.ITEMS.Subclass.spellcastingTrait"}}:
{{localize (concat 'DAGGERHEART.CONFIG.Traits.' document.system.class.subclass.system.spellcastingTrait '.short')}}
{{localize (concat 'DAGGERHEART.CONFIG.Traits.' document.system.spellcastModifierTrait.key '.short')}}
</span>
<i class="fa-solid fa-wand-sparkles"></i>
</span>

View file

@ -0,0 +1,20 @@
<header class="sheet-header img-name">
<img src="{{source.img}}" data-action="editImage" data-edit="img" alt="{{localize "DOCUMENT.FIELDS.img.label"}}">
<input type="text" name="name" value="{{source.name}}" placeholder="{{localize "DOCUMENT.FIELDS.name.label"}}" aria-label="{{localize "DOCUMENT.FIELDS.name.label"}}">
{{#if usesAltFormula}}
<div class="form-group">
<label>{{localize "Formula"}}</label>
<div class="form-fields">
<select class="system-update-field" data-path="activeAltFormula">
{{selectOptions this.altFormulaOptions selected=this.activeAltFormula labelAttr="name"}}
</select>
</div>
</div>
{{/if}}
<button data-action="changeMode">
<i class="fa-solid fa-eye" inert></i>
<span>{{localize "TABLE.ACTIONS.ChangeMode.View"}}</span>
</button>
</header>

View file

@ -0,0 +1,55 @@
<section class="tab{{#if tab.active}} active{{/if}}" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<table class="flexcol" data-results>
<thead>
<tr class="flexrow">
<th class="image flexrow">
<button class="inline-control icon fa-solid fa-plus" data-action="createResult"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.CreateResult"}}"></button>
</th>
<th class="details flexrow">{{localize "TABLE_RESULT.Details"}}</th>
<th class="weight flexrow">{{localize "TABLE_RESULT.FIELDS.weight.label"}}</th>
<th class="range flexrow">{{localize "TABLE_RESULT.FIELDS.range.label"}}</th>
<th class="controls flexrow">
<button class="inline-control icon fa-solid fa-scale-balanced" data-action="normalizeResults"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.NormalizeResults"}}"></button>
</th>
</tr>
</thead>
<tbody class="scrollable">
{{#each results as |result i|}}
<tr class="flexrow{{#if result.drawn}} drawn{{/if}}" data-result-id="{{result.id}}">
<td class="image flexrow">
<img src="{{result.displayImg}}" data-action="editImage" data-edit="results.{{i}}.img"
alt="{{localize "TABLE_RESULT.FIELDS.img.label"}}" loading="lazy">
</td>
<td class="details">
{{> "templates/sheets/roll-table/result-details.hbs" result=result}}
</td>
<td class="weight flexrow">
<input type="number" name="results.{{i}}.weight" value="{{result.weight}}" placeholder="1">
</td>
<td class="range flexrow">
<input type="number" name="results.{{i}}.range.0" value="{{result.range.[0]}}" placeholder="L">
<span class="dash"></span>
<input type="number" name="results.{{i}}.range.1" value="{{result.range.[1]}}" placeholder="H">
</td>
<td class="controls flexrow">
<button class="inline-control icon fa-solid fa-file-pen" data-action="openResultSheet"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.OpenResultConfig"}}"></button>
<button class="inline-control icon fa-solid fa-lock{{#unless result.drawn}}-open{{/unless}}"
data-action="lockResult"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.ToggleDrawn"}}"></button>
<button class="inline-control icon fa-solid fa-trash" data-action="deleteResult"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.DeleteResult"}}"></button>
</td>
<input type="hidden" name="results.{{i}}._id" value="{{result.id}}">
</tr>
{{/each}}
</tbody>
</table>
</section>

View file

@ -0,0 +1,49 @@
<header class="sheet-header flexrow">
<img src="{{document.img}}" alt="{{localize "DOCUMENT.FIELDS.img.label"}}">
<h1>{{document.name}}</h1>
<div class="roll-table-view-formula-container">
{{#if usesAltFormula}}
<select class="system-update-field" data-path="activeAltFormula">
{{selectOptions this.altFormulaOptions selected=this.activeAltFormula labelAttr="name"}}
</select>
{{/if}}
<h4>{{selectedFormula}}</h4>
</div>
<button data-action="changeMode">
<i class="fa-solid fa-pen" inert></i>
<span>{{localize "TABLE.ACTIONS.ChangeMode.Edit"}}</span>
</button>
</header>
{{{descriptionHTML}}}
<table class="flexcol" data-results>
<thead>
<tr class="flexrow">
<th class="image flexrow"></th>
<th class="range flexrow">{{localize "TABLE_RESULT.FIELDS.range.label"}}</th>
<th class="details flexrow">{{localize "TABLE_RESULT.Details"}}</th>
<th class="controls flexrow"></th>
</tr>
</thead>
<tbody class="scrollable">
{{#each results as |result i|}}
<tr class="flexrow{{#if result.drawn}} drawn{{/if}}" data-result-id="{{result.id}}">
<td class="image">
<img src="{{result.displayImg}}" alt="{{localize "TABLE_RESULT.FIELDS.img.label"}}" loading="lazy">
</td>
<td class="range">{{result.range}}</td>
<td class="details">
{{> "templates/sheets/roll-table/result-details.hbs" result=result}}
</td>
<td class="controls flexrow">
<button class="inline-control icon fa-solid fa-lock{{#unless result.drawn}}-open{{/unless}}"
data-action="lockResult"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.ToggleDrawn"}}"></button>
<button class="inline-control icon fa-solid fa-up-from-bracket" data-action="drawSpecificResult"
data-tooltip aria-label="{{localize "TABLE.ACTIONS.DrawSpecificResult"}}"></button>
</td>
</tr>
{{/each}}
</tbody>
</table>

View file

@ -0,0 +1,22 @@
<section class="tab{{#if tab.active}} active{{/if}}" data-group="{{tab.group}}" data-tab="{{tab.id}}">
{{formGroup fields.description value=source.description rootId=rootId}}
<fieldset class="formulas-section">
<legend>{{localize "DAGGERHEART.ROLLTABLES.formula"}}</legend>
<div class="formulas-container">
<span>{{localize "DAGGERHEART.ROLLTABLES.FIELDS.formulaName.label"}}</span>
<span>{{localize "Formula Roll"}}</span>
<span></span>
<input type="text" value="{{@root.formulaName}}" class="system-update-field" data-path="formulaName" />
{{formInput fields.formula value=source.formula placeholder=formulaPlaceholder rootId=rootId}}
<button class="formula-button" data-action="addFormula"><i class="fa-solid fa-plus"></i></button>
{{#each @root.altFormula as | formula key |}}
<input type="text" value="{{formula.name}}" class="system-update-field" data-path="{{concat "altFormula." key ".name"}}" />
<input type="text" value="{{formula.formula}}" class="system-update-field" data-path="{{concat "altFormula." key ".formula"}}" />
<a class="formula-button" data-action="removeFormula" data-key="{{key}}"><i class="fa-solid fa-trash"></i></a>
{{/each}}
</div>
</fieldset>
{{formGroup fields.replacement value=source.replacement rootId=rootId}}
{{formGroup fields.displayRoll value=source.displayRoll rootId=rootId}}
</section>

View file

@ -0,0 +1,17 @@
<div class="table-draw" data-table-id="{{table.id}}">
{{#if flavor}}<div class="table-flavor">{{flavor}}</div>{{/if}}
{{#if description}}
<div class="table-description {{#if flavor}}flavor-spaced{{/if}}">{{{description}}}</div>
{{/if}}
{{{rollHTML}}}
<ul class="table-results">
{{#each results as |result|}}
<li class="flexrow" data-result-id="{{result.id}}">
<img src="{{result.icon}}">
{{{result.details}}}
</li>
{{/each}}
</ul>
</div>