Add roll windows from actor sheet

This commit is contained in:
2026-03-15 23:20:32 +01:00
parent 82fddb0cb3
commit 49347370c7
57 changed files with 6372 additions and 184 deletions

View File

@@ -44,10 +44,10 @@
<input type="checkbox" class="item-equipped-cb" data-item-id="{{weapon.id}}" {{checked weapon.system.equipped}} {{#if ../isPlayMode}}disabled{{/if}}>
</div>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="attackWeapon" data-item-id="{{weapon.id}}" title="{{localize "OATHHAMMER.Dialog.Attack"}}"><i class="fa-solid fa-khanda"></i></a>
<a data-action="damageWeapon" data-item-id="{{weapon.id}}" title="{{localize "OATHHAMMER.Dialog.Damage"}}"><i class="fa-solid fa-burst"></i></a>
<a data-action="edit" data-item-id="{{weapon.id}}" data-item-uuid="{{weapon.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{weapon.id}}" data-item-uuid="{{weapon.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}
@@ -83,10 +83,8 @@
<input type="checkbox" class="item-equipped-cb" data-item-id="{{armor.id}}" {{checked armor.system.equipped}} {{#if ../isPlayMode}}disabled{{/if}}>
</div>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{armor.id}}" data-item-uuid="{{armor.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{armor.id}}" data-item-uuid="{{armor.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}
@@ -112,10 +110,8 @@
<span class="item-name">{{ammo.name}}</span>
<span class="item-detail">×{{ammo.system.quantity}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{ammo.id}}" data-item-uuid="{{ammo.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{ammo.id}}" data-item-uuid="{{ammo.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}

View File

@@ -36,10 +36,8 @@
<span class="item-type">{{localize equip.system.itemType}}</span>
<span class="item-detail">{{equip.system.quantity}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{equip.id}}" data-item-uuid="{{equip.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{equip.id}}" data-item-uuid="{{equip.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}
@@ -65,10 +63,8 @@
<span class="item-name">{{mi.name}}</span>
<span class="item-type">{{localize mi.system.rarity}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{mi.id}}" data-item-uuid="{{mi.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{mi.id}}" data-item-uuid="{{mi.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}
@@ -91,10 +87,8 @@
<span class="item-name">{{cond.name}}</span>
<span class="item-type">{{localize cond.system.conditionType}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{cond.id}}" data-item-uuid="{{cond.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{cond.id}}" data-item-uuid="{{cond.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}

View File

@@ -21,10 +21,8 @@
<span class="item-type">{{trait._typeLabel}}</span>
<span class="item-usage">{{trait._usageLabel}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{trait.id}}" data-item-uuid="{{trait.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{trait.id}}" data-item-uuid="{{trait.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}
@@ -49,10 +47,8 @@
<span class="item-type">{{oath._typeLabel}}</span>
<span class="item-violated">{{#if oath._violated}}<i class="fa-solid fa-circle-xmark"></i>{{else}}<i class="fa-regular fa-circle-check"></i>{{/if}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="edit" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}

View File

@@ -15,7 +15,7 @@
<li class="item-list-header">
<span></span>
<span class="col-name">{{localize "OATHHAMMER.Label.Name"}}</span>
<span>Lv.</span>
<span>DV</span>
<span>{{localize "OATHHAMMER.Label.Tradition"}}</span>
<span>AS</span>
<span></span>
@@ -24,14 +24,13 @@
<li class="item-entry" data-item-id="{{spell.id}}" data-item-uuid="{{spell.uuid}}">
<img src="{{spell.img}}" class="item-img" />
<span class="item-name">{{spell.name}}</span>
<span class="item-detail">{{spell.system.level}}</span>
<span class="item-detail">{{spell.system.difficultyValue}}</span>
<span class="item-type">{{localize spell.system.tradition}}</span>
<span class="item-detail">{{spell.system.arcaneStress}}</span>
<span class="item-detail"></span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="castSpell" data-item-id="{{spell.id}}" title="{{localize 'OATHHAMMER.Action.CastSpell'}}"><i class="fa-solid fa-wand-sparkles spell-cast-icon"></i></a>
<a data-action="edit" data-item-id="{{spell.id}}" data-item-uuid="{{spell.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{spell.id}}" data-item-uuid="{{spell.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}
@@ -49,19 +48,18 @@
<li class="item-list-header">
<span></span>
<span class="col-name">{{localize "OATHHAMMER.Label.Name"}}</span>
<span>{{localize "OATHHAMMER.Label.Piety"}}</span>
<span>{{localize "OATHHAMMER.Label.DivineTradition"}}</span>
<span></span>
</li>
{{#each miracles as |miracle|}}
<li class="item-entry" data-item-id="{{miracle.id}}" data-item-uuid="{{miracle.uuid}}">
<img src="{{miracle.img}}" class="item-img" />
<span class="item-name">{{miracle.name}}</span>
<span class="item-detail">{{miracle.system.piety}}</span>
<span class="item-detail">{{miracle.system.divineTradition}}</span>
<div class="item-actions">
{{#unless ../isPlayMode}}
<a data-action="castMiracle" data-item-id="{{miracle.id}}" title="{{localize 'OATHHAMMER.Action.InvokeMiracle'}}"><i class="fa-solid fa-hands-praying miracle-cast-icon"></i></a>
<a data-action="edit" data-item-id="{{miracle.id}}" data-item-uuid="{{miracle.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{miracle.id}}" data-item-uuid="{{miracle.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
</div>
</li>
{{/each}}

View File

@@ -21,18 +21,9 @@
{{!-- Row 2: Identity bar (lineage + class + level/xp) --}}
<div class="character-identity-bar">
<div class="identity-slot lineage-slot {{#unless lineage}}empty{{/unless}}" data-drop-type="lineage">
{{#if lineage}}
<img src="{{lineage.img}}" class="identity-img" data-item-id="{{lineage.id}}" data-item-uuid="{{lineage.uuid}}" />
<span class="identity-name">{{lineage.name}}</span>
{{#unless isPlayMode}}
<a data-action="edit" data-item-id="{{lineage.id}}" data-item-uuid="{{lineage.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{lineage.id}}" data-item-uuid="{{lineage.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
{{else}}
<div class="identity-slot lineage-slot">
<i class="fa-solid fa-person slot-icon"></i>
<span class="slot-placeholder">{{localize "OATHHAMMER.Label.DropLineage"}}</span>
{{/if}}
{{formInput systemFields.lineage.fields.name value=system.lineage.name name="system.lineage.name" placeholder=(localize "OATHHAMMER.Label.Lineage") disabled=isPlayMode}}
</div>
<div class="identity-slot class-slot {{#unless characterClass}}empty{{/unless}}" data-drop-type="class">
{{#if characterClass}}

View File

@@ -16,7 +16,9 @@
</div>
{{#each group.skillData as |skill|}}
<div class="skill-row">
<label class="skill-name-col">{{localize skill.label}}</label>
<a class="skill-name-col rollable" data-action="rollSkill" data-skill="{{skill.key}}" data-tooltip="{{localize 'OATHHAMMER.Dialog.RollSkill'}}">
<i class="fa-solid fa-dice skill-roll-icon"></i>{{localize skill.label}}
</a>
<div class="skill-rank-col">
<select name="{{skill.rankName}}" {{#if ../../isPlayMode}}disabled{{/if}}>
{{#each skill.rankOptions as |opt|}}

View File

@@ -8,9 +8,7 @@
{{formField systemFields.ammoType value=system.ammoType name="system.ammoType" localize=true}}
{{formField systemFields.quantity value=system.quantity name="system.quantity"}}
{{formField systemFields.rarity value=system.rarity name="system.rarity" localize=true}}
</div>
<div class="align-top">
{{formField systemFields.cost value=system.cost name="system.cost"}}
<a data-action="rollRarity" class="rarity-roll-btn" data-tooltip="{{localize 'OATHHAMMER.Roll.RarityCheck'}}"><i class="fa-solid fa-dice"></i> {{localize "OATHHAMMER.Roll.RarityCheck"}}</a>
{{formField systemFields.currency value=system.currency name="system.currency" localize=true}}
</div>
</div>

View File

@@ -48,6 +48,7 @@
name="system.rarity"
localize=true
}}
<a data-action="rollRarity" class="rarity-roll-btn" data-tooltip="{{localize 'OATHHAMMER.Roll.RarityCheck'}}"><i class="fa-solid fa-dice"></i> {{localize "OATHHAMMER.Roll.RarityCheck"}}</a>
{{formField
systemFields.isMagic
value=system.isMagic

View File

@@ -9,7 +9,7 @@
{{formField systemFields.skillCheck value=system.skillCheck name="system.skillCheck" localize=true}}
{{formField systemFields.cost value=system.cost name="system.cost"}}
{{formField systemFields.buildTime value=system.buildTime name="system.buildTime"}}
{{formField systemFields.settlement value=system.settlement name="system.settlement"}}
</div>
<div class="building-col">
{{formField systemFields.taxRevenue value=system.taxRevenue name="system.taxRevenue"}}

View File

@@ -9,6 +9,7 @@
{{formField systemFields.quantity value=system.quantity name="system.quantity"}}
{{formField systemFields.slots value=system.slots name="system.slots"}}
{{formField systemFields.rarity value=system.rarity name="system.rarity" localize=true}}
<a data-action="rollRarity" class="rarity-roll-btn" data-tooltip="{{localize 'OATHHAMMER.Roll.RarityCheck'}}"><i class="fa-solid fa-dice"></i> {{localize "OATHHAMMER.Roll.RarityCheck"}}</a>
{{#if system.lightRadius}}
{{formField systemFields.lightRadius value=system.lightRadius name="system.lightRadius"}}
{{/if}}

View File

@@ -1,22 +0,0 @@
<section class="item-sheet-common">
<div class="header">
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
{{formInput fields.name value=source.name}}
</div>
<div class="flexrow stats-row">
<div class="form-group">
{{formField systemFields.movement value=system.movement name="system.movement"}}
</div>
<div class="form-group">
{{formField systemFields.gritModifier value=system.gritModifier name="system.gritModifier"}}
</div>
</div>
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Description"}}</legend>
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Traits"}}</legend>
{{formInput systemFields.traits enriched=enrichedTraits value=system.traits name="system.traits" toggled=true}}
</fieldset>
</section>

View File

@@ -16,7 +16,7 @@
{{#unless (eq system.usagePeriod "none")}}
{{formField systemFields.maxUses value=system.maxUses name="system.maxUses"}}
{{/unless}}
{{formField systemFields.slots value=system.slots name="system.slots"}}
{{formField systemFields.equipped value=system.equipped name="system.equipped"}}
</div>
</div>

View File

@@ -29,8 +29,10 @@
</div>
<div class="align-top">
{{formField systemFields.traits value=system.traits name="system.traits" localize=true}}
{{formField systemFields.specialProperties value=system.specialProperties name="system.specialProperties" localize=true}}
{{formField systemFields.slots value=system.slots name="system.slots"}}
{{formField systemFields.rarity value=system.rarity name="system.rarity" localize=true}}
<a data-action="rollRarity" class="rarity-roll-btn" data-tooltip="{{localize 'OATHHAMMER.Roll.RarityCheck'}}"><i class="fa-solid fa-dice"></i> {{localize "OATHHAMMER.Roll.RarityCheck"}}</a>
{{formField systemFields.isMagic value=system.isMagic name="system.isMagic"}}
{{formField systemFields.equipped value=system.equipped name="system.equipped"}}
{{formField systemFields.cost value=system.cost name="system.cost"}}

View File

@@ -0,0 +1,66 @@
<div class="oh-roll-dialog oh-miracle-dialog">
{{!-- Miracle header --}}
<div class="spell-header">
<img src="{{miracleImg}}" class="weapon-img-sm" alt="{{miracleName}}" />
<div class="spell-header-info">
<span class="weapon-name-lg">{{miracleName}}</span>
<div class="weapon-badges">
{{#if isRitual}}
<span class="dv-badge">DV {{dv}}{{localize "OATHHAMMER.Label.Ritual"}}</span>
{{else}}
<span class="dv-badge">DV = {{localize "OATHHAMMER.Dialog.MiracleDVNote"}}</span>
{{/if}}
<span class="tradition-badge">{{traditionLabel}}</span>
{{#if range}}<span class="range-badge">{{range}}</span>{{/if}}
{{#if duration}}<span class="duration-badge">{{duration}}</span>{{/if}}
</div>
{{#if spellSave}}<div class="save-info">{{localize "OATHHAMMER.Label.SpellSave"}}: {{spellSave}}</div>{{/if}}
</div>
</div>
{{!-- Failure warning --}}
<div class="miracle-warning">
<i class="fa-solid fa-triangle-exclamation"></i>
{{localize "OATHHAMMER.Dialog.MiracleFailWarning"}}
</div>
{{!-- Cast options --}}
<fieldset class="attack-options-block">
<legend>{{localize "OATHHAMMER.Dialog.InvokeOptions"}}</legend>
<div class="pool-info-line">
{{localize "OATHHAMMER.Skill.Magic"}} ({{localize "OATHHAMMER.Attribute.Willpower"}} {{wpRank}})
+ {{localize "OATHHAMMER.Label.SkillRank"}} {{magicRank}}
= <strong>{{basePool}}d6</strong>
</div>
{{#unless isRitual}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.MiracleCount"}}</label>
<select name="miracleCount">
{{#each miracleCountOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.MiracleCountHint"}}</span>
</div>
{{/unless}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Modifier"}}</label>
<select name="bonus">
{{#each bonusOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.AttackModifierHint"}}</span>
</div>
</fieldset>
{{!-- Visibility --}}
<fieldset class="roll-visibility-block">
<legend>{{localize "OATHHAMMER.Dialog.Visibility"}}</legend>
<select name="visibility">
{{selectOptions rollModes selected=visibility localize=true}}
</select>
</fieldset>
</div>

83
templates/roll-dialog.hbs Normal file
View File

@@ -0,0 +1,83 @@
<div class="oh-roll-dialog">
{{!-- Actor name --}}
<div class="roll-actor-name">{{actorName}}</div>
{{!-- Skill / pool info --}}
<fieldset class="roll-info-block">
<legend>{{localize "OATHHAMMER.Dialog.SkillCheck"}}</legend>
<div class="roll-skill-line">
<span class="roll-skill-name">{{skillLabel}}</span>
<span class="roll-attr-info">
{{attrLabel}} ({{attrRank}}) + {{localize "OATHHAMMER.Label.SkillRank"}} ({{skillRank}})
{{#if skillMod}}+ {{localize "OATHHAMMER.Label.SkillModifier"}} ({{skillMod}}){{/if}}
</span>
</div>
<div class="roll-dice-preview">
<span class="roll-pool">{{baseTotal}}d6</span>
<span class="roll-color-badge color-badge-{{colorType}}">{{colorLabel}} &nbsp;{{threshold}}+</span>
</div>
{{!-- Attribute override for dual-attribute skills (Defense, Fighting, Magic) --}}
{{#if isDualAttr}}
<div class="roll-dual-attr">
<label>{{localize "OATHHAMMER.Dialog.Attribute"}}</label>
<select name="attrOverride">
{{#each attrOptions as |opt|}}
<option value="{{opt.value}}" {{#if opt.selected}}selected{{/if}}>{{opt.label}}</option>
{{/each}}
</select>
</div>
{{/if}}
</fieldset>
{{!-- Roll options --}}
<fieldset class="roll-options-block">
<legend>{{localize "OATHHAMMER.Dialog.Options"}}</legend>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.DV"}}</label>
<select name="dv">
{{#each dvOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.DVHint"}}</span>
</div>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Modifier"}}</label>
<select name="bonus">
{{#each bonusOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.ModifierHint"}}</span>
</div>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Supporters"}}</label>
<select name="supporters">
{{#each supportersOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.SupportersHint"}}</span>
</div>
{{#if availableLuck}}
<div class="roll-option-row roll-option-luck">
<label>{{localize "OATHHAMMER.Dialog.LuckSpend"}} <i class="fa-solid fa-clover luck-icon"></i></label>
<select name="luckSpend">
{{#each luckOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.LuckHint"}} ({{availableLuck}} {{localize "OATHHAMMER.Dialog.Available"}})</span>
</div>
{{/if}}
</fieldset>
{{!-- Visibility --}}
<fieldset class="roll-visibility-block">
<legend>{{localize "OATHHAMMER.Dialog.Visibility"}}</legend>
<select name="visibility">
{{selectOptions rollModes selected=visibility localize=true}}
</select>
</fieldset>
</div>

View File

@@ -0,0 +1,80 @@
<div class="oh-roll-dialog oh-spell-dialog">
{{!-- Spell header --}}
<div class="spell-header">
<img src="{{spellImg}}" class="weapon-img-sm" alt="{{spellName}}" />
<div class="spell-header-info">
<span class="weapon-name-lg">{{spellName}}</span>
<div class="weapon-badges">
<span class="dv-badge">DV {{dv}}</span>
<span class="tradition-badge">{{traditionLabel}}</span>
{{#if isRitual}}<span class="ritual-badge">{{localize "OATHHAMMER.Label.Ritual"}}</span>{{/if}}
{{#if isMagicMissile}}<span class="missile-badge">{{localize "OATHHAMMER.Label.MagicMissile"}}</span>{{/if}}
{{#if range}}<span class="range-badge">{{range}}</span>{{/if}}
{{#if duration}}<span class="duration-badge">{{duration}}</span>{{/if}}
</div>
{{#if spellSave}}<div class="save-info">{{localize "OATHHAMMER.Label.SpellSave"}}: {{spellSave}}</div>{{/if}}
</div>
</div>
{{!-- Arcane stress tracker --}}
<div class="stress-tracker {{#if isOverThreshold}}stress-danger{{/if}}">
<i class="fa-solid fa-brain"></i>
<span>{{localize "OATHHAMMER.Label.ArcaneStress"}}: <strong>{{currentStress}} / {{stressThreshold}}</strong></span>
{{#if isOverThreshold}}<span class="stress-warning">⚠ {{localize "OATHHAMMER.Label.StressBlocked"}}</span>{{/if}}
</div>
{{!-- Cast options --}}
<fieldset class="attack-options-block">
<legend>{{localize "OATHHAMMER.Dialog.CastOptions"}}</legend>
<div class="pool-info-line">
{{localize "OATHHAMMER.Skill.Magic"}} ({{localize "OATHHAMMER.Attribute.Intelligence"}} {{intRank}})
+ {{localize "OATHHAMMER.Label.SkillRank"}} {{magicRank}}
= <strong>{{basePool}}d6</strong>
</div>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Enhancement"}}</label>
<select name="enhancement" class="enhancement-select">
{{#each enhancementOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
</div>
{{#if isElemental}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.ElementCondition"}}</label>
<select name="elementalBonus">
<option value="0">{{localize "OATHHAMMER.Dialog.ElementNone"}}</option>
<option value="1">{{localize "OATHHAMMER.Dialog.ElementMet"}} (+1)</option>
</select>
</div>
{{/if}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Modifier"}}</label>
<select name="bonus">
{{#each bonusOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.AttackModifierHint"}}</span>
</div>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Grimoire"}}</label>
<select name="noGrimoire">
<option value="0">{{localize "OATHHAMMER.Dialog.GrimoireHas"}}</option>
<option value="-2">{{localize "OATHHAMMER.Dialog.GrimoireNo"}} (2)</option>
</select>
</div>
</fieldset>
{{!-- Visibility --}}
<fieldset class="roll-visibility-block">
<legend>{{localize "OATHHAMMER.Dialog.Visibility"}}</legend>
<select name="visibility">
{{selectOptions rollModes selected=visibility localize=true}}
</select>
</fieldset>
</div>

View File

@@ -0,0 +1,69 @@
<div class="oh-roll-dialog oh-weapon-dialog">
{{!-- Weapon header --}}
<div class="weapon-header">
<img src="{{weaponImg}}" class="weapon-img-sm" alt="{{weaponName}}" />
<div class="weapon-header-info">
<span class="weapon-name-lg">{{weaponName}}</span>
<div class="weapon-badges">
<span class="damage-formula-badge">{{damageLabel}}{{baseDamageDice}}d6</span>
<span class="roll-color-badge color-badge-{{damageColorType}}">{{damageColorLabel}} {{damageThreshold}}+</span>
{{#if apValue}}<span class="ap-badge">AP{{apValue}}</span>{{/if}}
{{#if isRanged}}<span class="range-badge">{{shortRange}}/{{longRange}}ft</span>{{/if}}
</div>
{{#if traits}}
<div class="weapon-traits-row">
{{#each traits}}<span class="trait-tag-sm">{{this}}</span>{{/each}}
</div>
{{/if}}
</div>
</div>
{{!-- Attack roll config --}}
<fieldset class="attack-options-block">
<legend>{{localize "OATHHAMMER.Dialog.Attack"}}</legend>
<div class="pool-info-line">
{{skillLabel}} ({{attrLabel}} {{attrRank}}) + {{localize "OATHHAMMER.Label.SkillRank"}} {{skillRank}}
{{#if autoAttackBonus}} + <span class="auto-bonus">+{{autoAttackBonus}} auto</span>{{/if}}
= <strong>{{baseAttackPool}}d6</strong>
</div>
{{#if hasNimble}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.Attribute"}}</label>
<select name="attrOverride">
<option value="might">{{mightLabel}} ({{mightRank}})</option>
<option value="agility">{{agilityLabel}} ({{agilityRank}}) — {{localize "OATHHAMMER.Dialog.NimbleHint"}}</option>
</select>
</div>
{{/if}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.AttackModifier"}}</label>
<select name="attackBonus">
{{#each attackBonusOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.AttackModifierHint"}}</span>
</div>
{{#if isRanged}}
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.RangeCondition"}}</label>
<select name="rangeCondition">
{{#each rangeOptions}}<option value="{{value}}">{{label}}</option>{{/each}}
</select>
</div>
{{/if}}
</fieldset>
{{!-- Visibility --}}
<fieldset class="roll-visibility-block">
<legend>{{localize "OATHHAMMER.Dialog.Visibility"}}</legend>
<select name="visibility">
{{selectOptions rollModes selected=visibility localize=true}}
</select>
</fieldset>
</div>

View File

@@ -0,0 +1,47 @@
<div class="oh-roll-dialog oh-weapon-dialog">
{{!-- Weapon header --}}
<div class="weapon-header">
<img src="{{weaponImg}}" class="weapon-img-sm" alt="{{weaponName}}" />
<div class="weapon-header-info">
<span class="weapon-name-lg">{{weaponName}}</span>
<div class="weapon-badges">
<span class="damage-formula-badge">{{damageLabel}}{{baseDamageDice}}d6 base</span>
<span class="roll-color-badge color-badge-{{damageColorType}}">{{damageColorLabel}} {{damageThreshold}}+</span>
{{#if apValue}}<span class="ap-badge">AP{{apValue}}</span>{{/if}}
{{#if autoDamageBonus}}<span class="auto-bonus-badge">+{{autoDamageBonus}} auto</span>{{/if}}
</div>
</div>
</div>
{{!-- Damage options --}}
<fieldset class="attack-options-block">
<legend>{{localize "OATHHAMMER.Dialog.Damage"}}</legend>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.SV"}}</label>
<select name="sv">
{{#each svOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.SVHint"}}</span>
</div>
<div class="roll-option-row">
<label>{{localize "OATHHAMMER.Dialog.DamageModifier"}}</label>
<select name="damageBonus">
{{#each damageBonusOptions}}<option value="{{value}}"{{#if selected}} selected{{/if}}>{{label}}</option>{{/each}}
</select>
<span class="roll-option-hint">{{localize "OATHHAMMER.Dialog.DamageModifierHint"}}</span>
</div>
</fieldset>
{{!-- Visibility --}}
<fieldset class="roll-visibility-block">
<legend>{{localize "OATHHAMMER.Dialog.Visibility"}}</legend>
<select name="visibility">
{{selectOptions rollModes selected=visibility localize=true}}
</select>
</fieldset>
</div>