Add spells rolls and enhance CSS styling
This commit is contained in:
@@ -82,13 +82,13 @@
|
||||
value=system.biodata.magicUser
|
||||
}}
|
||||
</div>
|
||||
<div class="biodata-elem">
|
||||
<!-- <div class="biodata-elem">
|
||||
<span class="name">Cleric User</span>
|
||||
{{formInput
|
||||
systemFields.biodata.fields.clericUser
|
||||
value=system.biodata.clericUser
|
||||
}}
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="biodata-elem">
|
||||
<span class="name">Save bonus (1/5levels)</span>
|
||||
{{formInput
|
||||
|
||||
@@ -41,43 +41,17 @@
|
||||
></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="rollable"
|
||||
data-roll-type="weapon-defense"
|
||||
data-roll-key="{{item.id}}"
|
||||
data-tooltip="Roll Defense"
|
||||
>
|
||||
<i
|
||||
class="fa-solid fa-shield-halved"
|
||||
data-roll-type="weapon-defense"
|
||||
data-roll-key="{{item.id}}"
|
||||
></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="rollable"
|
||||
data-roll-type="weapon-damage-small"
|
||||
data-roll-key="{{item.id}}"
|
||||
data-tooltip="Roll Damage (Small)"
|
||||
>
|
||||
<i
|
||||
class="fa-regular fa-face-head-bandage"
|
||||
data-roll-type="weapon-damage-small"
|
||||
data-roll-key="{{item.id}}"
|
||||
></i>S
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="rollable"
|
||||
data-roll-type="weapon-damage-medium"
|
||||
data-roll-key="{{item.id}}"
|
||||
data-tooltip="Roll Damage (Medium)"
|
||||
data-tooltip="Roll Damage"
|
||||
>
|
||||
<i
|
||||
class="fa-regular fa-face-head-bandage"
|
||||
data-roll-type="weapon-damage-medium"
|
||||
data-roll-key="{{item.id}}"
|
||||
></i>M
|
||||
></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<fieldset>
|
||||
<legend>{{localize "PRISMRPG.Label.money"}}</legend>
|
||||
<div class="moneys">
|
||||
{{formField systemFields.moneys.fields.tinbit.fields.value value=system.moneys.tinbit.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.copper.fields.value value=system.moneys.copper.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.silver.fields.value value=system.moneys.silver.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.gold.fields.value value=system.moneys.gold.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.platinum.fields.value value=system.moneys.platinum.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.coppercoin.fields.value value=system.moneys.coppercoin.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.silvercoin.fields.value value=system.moneys.silvercoin.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.goldcoin.fields.value value=system.moneys.goldcoin.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.note.fields.value value=system.moneys.note.value localize=true}}
|
||||
{{formField systemFields.moneys.fields.steam.fields.value value=system.moneys.steam.value localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<div class="hp-shields">
|
||||
<div class="hp-item">
|
||||
<div class="hp-label">HP</div>
|
||||
<a data-action="hpMinus"><i class="fa-solid fa-minus"></i></a>
|
||||
<div class="hp-value">
|
||||
{{formInput
|
||||
systemFields.hp.fields.value
|
||||
@@ -53,6 +54,7 @@
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<a data-action="hpPlus"><i class="fa-solid fa-plus"></i></a>
|
||||
<div class="hp-separator">/</div>
|
||||
<div class="hp-max">
|
||||
{{formInput
|
||||
@@ -63,19 +65,21 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="hp-item">
|
||||
<div class="hp-label">MAGIC</div>
|
||||
<div class="hp-label">MANA</div>
|
||||
<a data-action="manaPointsMinus"><i class="fa-solid fa-minus"></i></a>
|
||||
<div class="hp-value">
|
||||
{{formInput
|
||||
systemFields.magicPoints.fields.value
|
||||
value=system.magicPoints.value
|
||||
systemFields.manaPoints.fields.value
|
||||
value=system.manaPoints.value
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<a data-action="manaPointsPlus"><i class="fa-solid fa-plus"></i></a>
|
||||
<div class="hp-separator">/</div>
|
||||
<div class="hp-max">
|
||||
{{formInput
|
||||
systemFields.magicPoints.fields.max
|
||||
value=system.magicPoints.max
|
||||
systemFields.manaPoints.fields.max
|
||||
value=system.manaPoints.max
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
@@ -327,6 +331,5 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
@@ -2,16 +2,16 @@
|
||||
<div class="main-div">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "PRISMRPG.Label.divinityPoints"}}</legend>
|
||||
<legend>{{localize "PRISMRPG.Label.manaPoints"}}</legend>
|
||||
<div class="miracle-details">
|
||||
<div class="miracle-detail">
|
||||
<span>Current</span>
|
||||
{{formField systemFields.divinityPoints.fields.value value=system.divinityPoints.value localize=true}}
|
||||
<a data-action="divinityPointsPlus"><i class="fa-solid fa-hexagon-plus"></i></a>
|
||||
<a data-action="divinityPointsMinus"><i class="fa-solid fa-hexagon-minus"></i></a>
|
||||
{{formField systemFields.manaPoints.fields.value value=system.manaPoints.value localize=true}}
|
||||
<a data-action="manaPointsPlus"><i class="fa-solid fa-hexagon-plus"></i></a>
|
||||
<a data-action="manaPointsMinus"><i class="fa-solid fa-hexagon-minus"></i></a>
|
||||
|
||||
<span>Max</span>
|
||||
{{formField systemFields.divinityPoints.fields.max value=system.divinityPoints.max localize=true
|
||||
{{formField systemFields.manaPoints.fields.max value=system.manaPoints.max localize=true
|
||||
disabled=isPlayMode}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,22 +1,6 @@
|
||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
<div class="main-div">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "PRISMRPG.Label.aetherPoints"}}</legend>
|
||||
<div class="spell-details">
|
||||
<div class="spell-detail">
|
||||
<span>Current</span>
|
||||
{{formField systemFields.aetherPoints.fields.value value=system.aetherPoints.value localize=true}}
|
||||
<a data-action="aetherPointsPlus"><i class="fa-solid fa-hexagon-plus"></i></a>
|
||||
<a data-action="aetherPointsMinus"><i class="fa-solid fa-hexagon-minus"></i></a>
|
||||
|
||||
<span>Max</span>
|
||||
{{formField systemFields.aetherPoints.fields.max value=system.aetherPoints.max localize=true
|
||||
disabled=isPlayMode}}
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "PRISMRPG.Label.spells"}}{{#if isEditMode}}<a class="action" data-tooltip="{{localize "
|
||||
PRISMRPG.Tooltip.addSpell"}}" data-tooltip-direction="UP"><i class="fas fa-plus"
|
||||
@@ -29,12 +13,8 @@
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<a class="rollable" data-roll-type="spell-attack" data-roll-key="{{item.id}}" data-tooltip="Spell Attack">
|
||||
<i class="lf-roll-small fa-solid fa-swords" data-roll-type="spell-attack" data-roll-key="{{item.id}}"></i>
|
||||
</a>
|
||||
|
||||
<a class="rollable" data-roll-type="spell-power" data-roll-key="{{item.id}}" data-tooltip="Spell Power">
|
||||
<i class="fa-duotone fa-solid fa-stars" data-roll-type="spell-power" data-roll-key="{{item.id}}"></i>
|
||||
<a class="rollable" data-roll-type="spell-cast" data-roll-key="{{item.id}}" data-tooltip="Cast Spell">
|
||||
<i class="fa-duotone fa-solid fa-wand-magic-sparkles" data-roll-type="spell-cast" data-roll-key="{{item.id}}"></i>
|
||||
</a>
|
||||
|
||||
<div class="controls">
|
||||
|
||||
@@ -1,257 +0,0 @@
|
||||
<section class="character-subattributes tab" data-group="sheet" data-tab="subattributes">
|
||||
{{log "character-subattributes" this}}
|
||||
|
||||
<div class="subattributes-content">
|
||||
<h2 class="section-header">
|
||||
<i class="fa-solid fa-diagram-project"></i>
|
||||
Sub-Attributes
|
||||
</h2>
|
||||
<p class="section-description">
|
||||
Sub-attributes are derived from the average of two primary characteristics.
|
||||
</p>
|
||||
|
||||
<div class="subattributes-list">
|
||||
{{#each (entries config.SUB_ATTRIBUTES) as |entry|}}
|
||||
{{#with entry.1 as |subAttr|}}
|
||||
<div class="subattribute-item">
|
||||
<div class="subattribute-header">
|
||||
<div class="subattribute-name">
|
||||
<i class="fa-solid fa-circle-nodes"></i>
|
||||
<span>{{localize subAttr.label}}</span>
|
||||
</div>
|
||||
<div class="subattribute-value">
|
||||
<input
|
||||
type="text"
|
||||
value="{{lookup ../system.subAttributes subAttr.id 'value'}}"
|
||||
disabled
|
||||
readonly
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="subattribute-details">
|
||||
<div class="subattribute-parents">
|
||||
<span class="parent-label">From:</span>
|
||||
{{#each subAttr.parents as |parentKey|}}
|
||||
<span class="parent-char">
|
||||
{{uppercase parentKey}}
|
||||
({{lookup ../../system.characteristics parentKey 'value'}})
|
||||
</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="subattribute-description">
|
||||
{{localize subAttr.description}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/with}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="subattributes-wrapper">
|
||||
{{! Character Header with Age, Length, Weight, Sex, Skin, Hair }}
|
||||
<div class="character-bio-header">
|
||||
<div class="bio-row">
|
||||
<div class="bio-field">
|
||||
<label>Age</label>
|
||||
{{formInput
|
||||
systemFields.bio.fields.age
|
||||
value=system.bio.age
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="bio-field">
|
||||
<label>Length</label>
|
||||
{{formInput
|
||||
systemFields.bio.fields.length
|
||||
value=system.bio.length
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="bio-field">
|
||||
<label>Weight</label>
|
||||
{{formInput
|
||||
systemFields.bio.fields.weight
|
||||
value=system.bio.weight
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="bio-row">
|
||||
<div class="bio-field">
|
||||
<label>Sex</label>
|
||||
{{formInput
|
||||
systemFields.bio.fields.sex
|
||||
value=system.bio.sex
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="bio-field">
|
||||
<label>Skin</label>
|
||||
{{formInput
|
||||
systemFields.bio.fields.skin
|
||||
value=system.bio.skin
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="bio-field">
|
||||
<label>Hair</label>
|
||||
{{formInput
|
||||
systemFields.bio.fields.hair
|
||||
value=system.bio.hair
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{! Sub-Attributes Table }}
|
||||
<div class="subattributes-section">
|
||||
<h3 class="section-title">Sub-Attribute</h3>
|
||||
<div class="subattributes-table">
|
||||
<div class="subattr-column">
|
||||
<div class="subattr-header">Prowess</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.prowess
|
||||
value=system.subattributes.prowess
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Vigor</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.vigor
|
||||
value=system.subattributes.vigor
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Competence</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.competence
|
||||
value=system.subattributes.competence
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Authority</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.authority
|
||||
value=system.subattributes.authority
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Presence</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.presence
|
||||
value=system.subattributes.presence
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="subattr-column">
|
||||
<div class="subattr-header">Willpower</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.willpower
|
||||
value=system.subattributes.willpower
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Resilience</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.resilience
|
||||
value=system.subattributes.resilience
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Cunning</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.cunning
|
||||
value=system.subattributes.cunning
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Guile</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.guile
|
||||
value=system.subattributes.guile
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Sovereignty</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.sovereignty
|
||||
value=system.subattributes.sovereignty
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="subattr-column">
|
||||
<div class="subattr-header">Stamina</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.stamina
|
||||
value=system.subattributes.stamina
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Initiative</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.initiative
|
||||
value=system.subattributes.initiative
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Wit</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.wit
|
||||
value=system.subattributes.wit
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Grace</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.grace
|
||||
value=system.subattributes.grace
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
<div class="subattr-header">Tenacity</div>
|
||||
<div class="subattr-cell">
|
||||
{{formInput
|
||||
systemFields.subattributes.fields.tenacity
|
||||
value=system.subattributes.tenacity
|
||||
disabled=isPlayMode
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{! Proficiencies Section }}
|
||||
<div class="proficiencies-section">
|
||||
<h3 class="section-title">Proficiencies</h3>
|
||||
<div class="proficiencies-box">
|
||||
{{formInput
|
||||
systemFields.proficiencies
|
||||
value=system.proficiencies
|
||||
disabled=isPlayMode
|
||||
type="textarea"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
+191
-96
@@ -1,110 +1,205 @@
|
||||
{{!log 'chat-message' this}}
|
||||
<div class="{{cssClass}}">
|
||||
<div class="intro-chat">
|
||||
<div class="intro-img">
|
||||
{{!log "chat-message" this}}
|
||||
{{!log "rollTarget" rollTarget}}
|
||||
{{!log "rollData" rollData}}
|
||||
<div class="{{cssClass}} prismrpg-chat-card">
|
||||
<div class="chat-header">
|
||||
<div class="chat-portrait">
|
||||
<img src="{{actingCharImg}}" data-tooltip="{{actingCharName}}" />
|
||||
</div>
|
||||
|
||||
<div class="intro-right">
|
||||
<span><STRONG>{{actingCharName}} - {{upperFirst rollName}}</STRONG></span>
|
||||
|
||||
<div class="chat-title">
|
||||
<div class="actor-name">{{actingCharName}}</div>
|
||||
<div class="roll-name">{{upperFirst rollName}}</div>
|
||||
{{#if (match rollType "attack")}}
|
||||
<span>Attack roll !</span>
|
||||
{{/if}}
|
||||
{{#if (match rollType "defense")}}
|
||||
<span>Defense roll !</span>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq rollData.favor "favor")}}
|
||||
<span><strong>Favor roll</strong></span>
|
||||
{{/if}}
|
||||
{{#if (eq rollData.favor "disfavor")}}
|
||||
<span><strong>Disfavor roll</strong></span>
|
||||
<div class="roll-type-badge attack">Attack Roll</div>
|
||||
{{/if}}
|
||||
{{#if badResult}}
|
||||
<span><strong>{{localize "PRISMRPG.Label.otherResult"}}</strong>
|
||||
:
|
||||
{{badResult}}</span>
|
||||
<div class="bad-result">{{localize "PRISMRPG.Label.otherResult"}}: {{badResult}}</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if rollTarget.weapon}}
|
||||
<span>{{rollTarget.weapon.name}}</span>
|
||||
{{/if}}
|
||||
|
||||
{{#if rollData.letItFly}}
|
||||
<span>Let It Fly attack ! </span>
|
||||
{{/if}}
|
||||
{{#if rollData.pointBlank}}
|
||||
<span>Point Blank Range Attack !</span>
|
||||
{{/if}}
|
||||
{{#if rollData.beyondSkill}}
|
||||
<span>Beyond Skill Range Attack !</span>
|
||||
{{/if}}
|
||||
|
||||
<span><strong>Formula</strong> : {{titleFormula}}</span>
|
||||
|
||||
{{#if (eq rollType "save")}}
|
||||
{{#if rollTarget.abilityModifier}}
|
||||
<span style="font-size: 0.9em;">
|
||||
(Ability Mod:
|
||||
{{#if
|
||||
(gt rollTarget.abilityModifier 0)
|
||||
}}+{{/if}}{{rollTarget.abilityModifier}}, Save Bonus:
|
||||
{{#if
|
||||
(gt rollTarget.saveProficiency 0)
|
||||
}}+{{/if}}{{rollTarget.saveProficiency}})
|
||||
</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#each diceResults as |result|}}
|
||||
<span>{{result.dice}} : {{result.value}}</span>
|
||||
{{/each}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{#if isSave}}
|
||||
<div class="result">
|
||||
{{#if (eq resultType "success")}}
|
||||
{{#if isPrivate}}?{{else}}{{localize "PRISMRPG.Roll.success"}}{{/if}}
|
||||
{{else}}
|
||||
{{#if isPrivate}}?{{else}}{{localize "PRISMRPG.Roll.failure"}}{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if isResource}}
|
||||
<div class="result">
|
||||
{{#if (eq resultType "success")}}
|
||||
{{#if isPrivate}}?{{else}}{{localize "PRISMRPG.Roll.success"}}{{/if}}
|
||||
{{else}}
|
||||
{{#if isPrivate}}?{{else}}{{localize "PRISMRPG.Roll.failure"}}{{#if
|
||||
isFailure
|
||||
}} ({{localize "PRISMRPG.Roll.resourceLost"}}){{/if}}{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if isDamage}}
|
||||
<div>
|
||||
{{#if (and isGM hasTarget)}}
|
||||
{{{localize
|
||||
"PRISMRPG.Roll.displayArmor"
|
||||
targetName=targetName
|
||||
targetArmor=targetArmor
|
||||
realDamage=realDamage
|
||||
}}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#unless isPrivate}}
|
||||
<div class="dice-result">
|
||||
<h4 class="dice-total">{{total}}</h4>
|
||||
</div>
|
||||
{{#if D30result}}
|
||||
<div class="dice-result">
|
||||
<h4 class="dice-total">D30 result: {{D30result}}</h4>
|
||||
<div class="chat-content">
|
||||
{{#if rollTarget.weapon}}
|
||||
<div class="weapon-info-card">
|
||||
<div class="weapon-header">
|
||||
<strong class="weapon-name">{{rollTarget.weapon.name}}</strong>
|
||||
{{#if rollTarget.weapon.system.isImplement}}
|
||||
<span class="badge implement">Implement</span>
|
||||
{{/if}}
|
||||
{{#if rollData.attackAttribute}}
|
||||
<span class="attribute-used">
|
||||
({{#if (eq rollData.attackAttribute "str")}}Strength{{else}}Dexterity{{/if}})
|
||||
</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="weapon-stats">
|
||||
{{#if rollTarget.weapon.system.weaponGroup}}
|
||||
<div class="stat-item">
|
||||
<i class="fas fa-shield-halved"></i>
|
||||
<span>{{rollTarget.weapon.system.weaponGroup}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if rollTarget.weapon.system.apc}}
|
||||
<div class="stat-item apc">
|
||||
<i class="fas fa-bolt"></i>
|
||||
<span>{{rollTarget.weapon.system.apc}} APC</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if rollTarget.weapon.system.damage}}
|
||||
<div class="stat-item damage">
|
||||
<i class="fas fa-dice-d20"></i>
|
||||
<span>{{rollTarget.weapon.system.damage}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if rollTarget.weapon.system.damageType}}
|
||||
<div class="stat-item">
|
||||
<i class="fas fa-burst"></i>
|
||||
<span>
|
||||
{{#if rollTarget.weapon.system.damageType.piercing}}P{{/if}}{{#if rollTarget.weapon.system.damageType.bludgeoning}}{{#if rollTarget.weapon.system.damageType.piercing}}/{{/if}}B{{/if}}{{#if rollTarget.weapon.system.damageType.slashing}}{{#if (or rollTarget.weapon.system.damageType.piercing rollTarget.weapon.system.damageType.bludgeoning)}}/{{/if}}S{{/if}}
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (or (gt rollTarget.weapon.system.shortRange 0) (gt rollTarget.weapon.system.longRange 0))}}
|
||||
<div class="stat-item range">
|
||||
<i class="fas fa-bow-arrow"></i>
|
||||
<span>
|
||||
{{#if (gt rollTarget.weapon.system.shortRange 0)}}{{rollTarget.weapon.system.shortRange}}{{/if}}{{#if (and (gt rollTarget.weapon.system.shortRange 0) (gt rollTarget.weapon.system.longRange 0))}}/{{/if}}{{#if (gt rollTarget.weapon.system.longRange 0)}}{{rollTarget.weapon.system.longRange}}{{/if}}ft
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (gt rollTarget.weapon.system.reloadAPC 0)}}
|
||||
<div class="stat-item reload">
|
||||
<i class="fas fa-rotate"></i>
|
||||
<span>Reload {{rollTarget.weapon.system.reloadAPC}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq rollType "spell-cast")}}
|
||||
<div class="spell-info-card">
|
||||
<div class="spell-header">
|
||||
<strong class="spell-name">Spell Cast</strong>
|
||||
{{#if (gt rollData.upcastLevel 0)}}
|
||||
<span class="badge upcast">+{{rollData.upcastLevel}} Levels</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="spell-stats">
|
||||
{{#if rollData.mentalCharacteristic}}
|
||||
<div class="stat-item characteristic">
|
||||
<i class="fas fa-brain"></i>
|
||||
<span>{{rollData.mentalCharacteristic}} ({{rollData.mentalCharValue}})</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="stat-item mana">
|
||||
<i class="fas fa-flask"></i>
|
||||
<span>{{rollData.totalManaCost}} Mana</span>
|
||||
</div>
|
||||
<div class="stat-item apc">
|
||||
<i class="fas fa-bolt"></i>
|
||||
<span>{{rollData.totalAPC}} APC</span>
|
||||
</div>
|
||||
{{#if (gt rollData.manaUpkeep 0)}}
|
||||
<div class="stat-item upkeep">
|
||||
<i class="fas fa-repeat"></i>
|
||||
<span>{{rollData.manaUpkeep}}/round</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if rollData.letItFly}}
|
||||
<div class="special-badge">Let It Fly!</div>
|
||||
{{/if}}
|
||||
{{#if rollData.pointBlank}}
|
||||
<div class="special-badge">Point Blank</div>
|
||||
{{/if}}
|
||||
{{#if rollData.beyondSkill}}
|
||||
<div class="special-badge">Beyond Skill Range</div>
|
||||
{{/if}}
|
||||
{{#if (and rollData.attackerAim (ne rollData.attackerAim "0"))}}
|
||||
<div class="aiming-info">
|
||||
<i class="fas fa-crosshairs"></i> Aiming: {{rollData.attackerAim}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="formula-display">
|
||||
<i class="fas fa-calculator"></i> {{titleFormula}}
|
||||
</div>
|
||||
|
||||
{{#if (eq rollType "save")}}
|
||||
{{#if rollTarget.abilityModifier}}
|
||||
<div class="modifier-info">
|
||||
<span>Ability Mod: {{#if (gt rollTarget.abilityModifier 0)}}+{{/if}}{{rollTarget.abilityModifier}}</span>
|
||||
<span>Save Bonus: {{#if (gt rollTarget.saveProficiency 0)}}+{{/if}}{{rollTarget.saveProficiency}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#each diceResults as |result|}}
|
||||
<div class="dice-breakdown">
|
||||
<i class="fas fa-dice"></i> {{result.dice}}: {{result.value}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
{{#if (eq rollType "weapon-attack")}}
|
||||
<button class="roll-damage-button" type="button" data-actor-id="{{actorId}}" data-weapon-id="{{rollTarget.weapon._id}}">
|
||||
<i class="fa-regular fa-face-head-bandage"></i>
|
||||
Roll Damage
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#unless isPrivate}}
|
||||
<div class="roll-result">
|
||||
<div class="result-total">
|
||||
<span class="total-label">Result</span>
|
||||
<span class="total-value">{{total}}</span>
|
||||
</div>
|
||||
{{#if D30result}}
|
||||
<div class="d30-result">
|
||||
<i class="fas fa-dice-d20"></i> D30: {{D30result}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/unless}}
|
||||
|
||||
{{#if isSave}}
|
||||
<div class="result-badge {{resultType}}">
|
||||
{{#if isPrivate}}
|
||||
?
|
||||
{{else}}
|
||||
{{#if (eq resultType "success")}}
|
||||
<i class="fas fa-check-circle"></i> {{localize "PRISMRPG.Roll.success"}}
|
||||
{{else}}
|
||||
<i class="fas fa-times-circle"></i> {{localize "PRISMRPG.Roll.failure"}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if isResource}}
|
||||
<div class="result-badge {{resultType}}">
|
||||
{{#if isPrivate}}
|
||||
?
|
||||
{{else}}
|
||||
{{#if (eq resultType "success")}}
|
||||
<i class="fas fa-check-circle"></i> {{localize "PRISMRPG.Roll.success"}}
|
||||
{{else}}
|
||||
<i class="fas fa-times-circle"></i> {{localize "PRISMRPG.Roll.failure"}}{{#if isFailure}} ({{localize "PRISMRPG.Roll.resourceLost"}}){{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if isDamage}}
|
||||
{{#if (and isGM hasTarget)}}
|
||||
<div class="damage-info">
|
||||
{{{localize "PRISMRPG.Roll.displayArmor" targetName=targetName targetArmor=targetArmor realDamage=realDamage}}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
@@ -1,119 +0,0 @@
|
||||
<div class="prismrpg-roll-dialog">
|
||||
|
||||
<fieldSet class="">
|
||||
<legend>{{localize (concat "PRISMRPG.Label." rollType)}} - {{actorName}}</legend>
|
||||
|
||||
{{#if rollTarget.tokenId}}
|
||||
<div class="dialog-save">
|
||||
<a class="goto-token-button" data-action="gotoToken" data-token-id="{{rollTarget.tokenId}}">{{localize
|
||||
"PRISMRPG.Label.gotoToken"}} </a>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if (match rollType "attack")}}
|
||||
<div class="dialog-save">Attack roll ! - {{rollTarget.name}}</div>
|
||||
{{/if}}
|
||||
{{#if (match rollType "defense")}}
|
||||
<div class="dialog-save">Defense roll ! - {{rollTarget.name}}</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasModifier}}
|
||||
<div class="dialog-save">{{upperFirst rollName}} : {{baseFormula}} + {{baseValue}}</div>
|
||||
{{else}}
|
||||
<div class="dialog-save">{{upperFirst rollName}} : {{baseFormula}}</div>
|
||||
{{/if}}
|
||||
{{#if rollTarget.weapon}}
|
||||
<div class="dialog-save">{{localize "PRISMRPG.Label.baseModifier"}} : {{rollTarget.charModifier}}</div>
|
||||
<div class="dialog-save">{{localize "PRISMRPG.Label.weapon"}} : {{rollTarget.weapon.name}}</div>
|
||||
<div class="dialog-save">{{localize "PRISMRPG.Label.skill"}} : {{rollTarget.name}}</div>
|
||||
<div class="dialog-save">{{localize "PRISMRPG.Label.skillBonus"}} : {{rollTarget.weaponSkillModifier}}</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if (match rollType "attack")}}
|
||||
<div class="dialog-save">Add Granted Attack Dice
|
||||
<input type="checkbox" data-action="selectGranted" name="granted">
|
||||
</div>
|
||||
{{#if rollTarget.weapon}}
|
||||
{{#if (eq rollTarget.weapon.system.weaponType "melee")}}
|
||||
{{else}}
|
||||
<div class="dialog-save">Point Blank Range Attack
|
||||
<input type="checkbox" data-action="selectPointBlank" name="pointBlankV">
|
||||
</div>
|
||||
<div class="dialog-save">Beyond Skill Range Attack
|
||||
<input type="checkbox" data-action="selectBeyondSkill" name="beyondSkillV">
|
||||
</div>
|
||||
<div class="dialog-save">Let it Fly (Pure D20E)
|
||||
<input type="checkbox" data-action="selectLetItFly" name="letItFlyV">
|
||||
</div>
|
||||
<div class="dialog-save">Aiming
|
||||
<select name="attackerAim" data-tooltip-direction="UP">
|
||||
{{selectOptions attackerAimChoices selected=attackerAim}}
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{/if}}
|
||||
{{#if (match rollType "defense")}}
|
||||
<div class="dialog-save">Add Granted Defense Dice
|
||||
<input type="checkbox" data-action="selectGranted" name="granted">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (match rollType "damage")}}
|
||||
<div class="dialog-save">Add Granted Damage Dice
|
||||
<input type="checkbox" data-action="selectGranted" name="granted">
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if rollTarget.staticModifier}}
|
||||
<div class="dialog-save">Static modifier : +{{rollTarget.staticModifier}}</div>
|
||||
{{/if}}
|
||||
|
||||
</fieldSet>
|
||||
|
||||
|
||||
{{#if hasFavor}}
|
||||
<fieldSet class="dialog-favor">
|
||||
<legend>{{localize "PRISMRPG.Roll.favorDisfavor"}}</legend>
|
||||
<select name="favor" class="favor-choice" data-tooltip-direction="UP">
|
||||
{{selectOptions choiceFavor selected=favor}}
|
||||
</select>
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasModifier}}
|
||||
<fieldSet class="dialog-modifier">
|
||||
<legend>{{localize "PRISMRPG.Roll.modifierBonusMalus"}}</legend>
|
||||
<select name="modifier" data-tooltip-direction="UP">
|
||||
{{selectOptions choiceModifier selected=modifier}}
|
||||
</select>
|
||||
|
||||
{{#if (eq rollType "save")}}
|
||||
{{#if rollTarget.magicUser}}
|
||||
<div>
|
||||
<span>Save against spell (+{{rollTarget.actorModifiers.saveModifier}}) ?</span>
|
||||
<input type="checkbox" name="saveSpellCheck" data-action="saveSpellCheck">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasChangeDice}}
|
||||
<fieldSet class="dialog-modifier">
|
||||
<legend>{{localize "PRISMRPG.Roll.changeDice"}}</legend>
|
||||
<select name="changeDice" data-tooltip-direction="UP">
|
||||
{{selectOptions choiceDice selected=changeDice}}
|
||||
</select>
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
|
||||
<fieldSet>
|
||||
<legend>{{localize "PRISMRPG.Roll.visibility"}}</legend>
|
||||
<select name="visibility">
|
||||
{{selectOptions rollModes selected=visibility localize=true}}
|
||||
</select>
|
||||
</fieldSet>
|
||||
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,195 @@
|
||||
<div class="prismrpg-roll-dialog-modern">
|
||||
{{! Header with character info }}
|
||||
<div class="dialog-header">
|
||||
<div class="character-info">
|
||||
<div class="character-name">{{actorName}}</div>
|
||||
{{#if rollTarget.weapon}}
|
||||
<div class="item-name weapon">
|
||||
<i class="fas fa-sword"></i>
|
||||
<strong>{{rollTarget.weapon.name}}</strong>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if rollTarget.type}}
|
||||
{{#if (eq rollTarget.type "spell")}}
|
||||
<div class="item-name spell">
|
||||
<i class="fas fa-magic"></i>
|
||||
<strong>{{rollTarget.name}}</strong>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dialog-content">
|
||||
{{! Weapon Options }}
|
||||
{{#if rollTarget.weapon}}
|
||||
<div class="option-section weapon-section">
|
||||
<div class="section-title">
|
||||
<i class="fas fa-crosshairs"></i>
|
||||
<span>Weapon Options</span>
|
||||
</div>
|
||||
|
||||
{{! Display weapon ranges }}
|
||||
{{#if (or (gt rollTarget.weapon.system.shortRange 0) (gt rollTarget.weapon.system.longRange 0))}}
|
||||
<div class="info-display">
|
||||
<i class="fas fa-bullseye"></i>
|
||||
<span class="info-text">
|
||||
{{#if (gt rollTarget.weapon.system.shortRange 0)}}
|
||||
Short: {{rollTarget.weapon.system.shortRange}} ft
|
||||
{{/if}}
|
||||
{{#if (gt rollTarget.weapon.system.longRange 0)}}
|
||||
{{#if (gt rollTarget.weapon.system.shortRange 0)}} • {{/if}}
|
||||
Long: {{rollTarget.weapon.system.longRange}} ft
|
||||
{{/if}}
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! STR or DEX choice }}
|
||||
{{#if (or (eq rollType "weapon-attack") (eq rollType "weapon-damage-small") (eq rollType "weapon-damage-medium"))}}
|
||||
<div class="option-row">
|
||||
<label>Attack with:</label>
|
||||
<select name="attackAttribute" class="styled-select">
|
||||
<option value="str" {{#if (eq rollTarget.weapon.system.weaponType "melee")}}selected{{/if}}>
|
||||
<i class="fas fa-dumbbell"></i> Strength (+{{rollTarget.strMod}})
|
||||
</option>
|
||||
<option value="dex" {{#if (eq rollTarget.weapon.system.weaponType "ranged")}}selected{{/if}}>
|
||||
<i class="fas fa-running"></i> Dexterity (+{{rollTarget.dexMod}})
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! Ranged weapon checkboxes }}
|
||||
{{#if (eq rollTarget.weapon.system.weaponType "ranged")}}
|
||||
{{#if (or (eq rollType "weapon-attack") (eq rollType "monster-attack"))}}
|
||||
<div class="checkbox-group">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" name="pointBlank" data-action="selectPointBlank" />
|
||||
<span class="checkbox-text">
|
||||
<i class="fas fa-bullseye-arrow"></i>
|
||||
Point Blank Range
|
||||
</span>
|
||||
</label>
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" name="beyondSkill" data-action="selectBeyondSkill" />
|
||||
<span class="checkbox-text">
|
||||
<i class="fas fa-exclamation-triangle"></i>
|
||||
Beyond Skill Range
|
||||
</span>
|
||||
</label>
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" name="letItFly" data-action="selectLetItFly" />
|
||||
<span class="checkbox-text">
|
||||
<i class="fas fa-dice-d20"></i>
|
||||
Let it Fly (Pure D20E)
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="option-row">
|
||||
<label>Aiming:</label>
|
||||
<select name="attackerAim" class="styled-select">
|
||||
{{selectOptions attackerAimChoices selected="simple"}}
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! Spell Options }}
|
||||
{{#if rollTarget.type}}
|
||||
{{#if (eq rollTarget.type "spell")}}
|
||||
<div class="option-section spell-section">
|
||||
<div class="section-title">
|
||||
<i class="fas fa-wand-magic"></i>
|
||||
<span>Spell Options</span>
|
||||
</div>
|
||||
|
||||
{{! Spell info display }}
|
||||
<div class="spell-info-display">
|
||||
<div class="info-badge characteristic">
|
||||
<i class="fas fa-brain"></i>
|
||||
<span>{{rollTarget.mentalCharacteristic}} ({{rollTarget.mentalCharValue}}, +{{rollTarget.value}})</span>
|
||||
</div>
|
||||
<div class="info-badge mana">
|
||||
<i class="fas fa-flask"></i>
|
||||
<span>{{rollTarget.system.manaCost}} Mana</span>
|
||||
</div>
|
||||
<div class="info-badge apc">
|
||||
<i class="fas fa-bolt"></i>
|
||||
<span>{{rollTarget.system.apc}} APC</span>
|
||||
</div>
|
||||
{{#if (gt rollTarget.system.manaUpkeep 0)}}
|
||||
<div class="info-badge upkeep">
|
||||
<i class="fas fa-repeat"></i>
|
||||
<span>{{rollTarget.system.manaUpkeep}}/round</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{! Upcast option }}
|
||||
{{#if rollTarget.system.canAscend}}
|
||||
<div class="option-row">
|
||||
<label>Upcast Level:</label>
|
||||
<select name="upcastLevel" class="styled-select">
|
||||
<option value="0">Base Level ({{rollTarget.system.level}})</option>
|
||||
<option value="1">+1 Level (+1 Mana, +1 APC)</option>
|
||||
<option value="2">+2 Levels (+2 Mana, +2 APC)</option>
|
||||
<option value="3">+3 Levels (+3 Mana, +3 APC)</option>
|
||||
<option value="4">+4 Levels (+4 Mana, +4 APC)</option>
|
||||
<option value="5">+5 Levels (+5 Mana, +5 APC)</option>
|
||||
<option value="6">+6 Levels (+6 Mana, +6 APC)</option>
|
||||
<option value="7">+7 Levels (+7 Mana, +7 APC)</option>
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{! Advantage/Disadvantage }}
|
||||
{{#if hasAdvantage}}
|
||||
<div class="option-section">
|
||||
<div class="section-title">
|
||||
<i class="fas fa-balance-scale"></i>
|
||||
<span>{{localize "PRISMRPG.Roll.advantageDisadvantage"}}</span>
|
||||
</div>
|
||||
<div class="option-row">
|
||||
<select name="advantage" class="styled-select advantage-select">
|
||||
{{selectOptions choiceAdvantage selected=advantage}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! Modifier }}
|
||||
{{#if hasModifier}}
|
||||
<div class="option-section">
|
||||
<div class="section-title">
|
||||
<i class="fas fa-plus-minus"></i>
|
||||
<span>{{localize "PRISMRPG.Roll.modifierBonusMalus"}}</span>
|
||||
</div>
|
||||
<div class="option-row">
|
||||
<select name="modifier" class="styled-select modifier-select">
|
||||
{{selectOptions choiceModifier selected=modifier}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! Visibility }}
|
||||
<div class="option-section">
|
||||
<div class="section-title">
|
||||
<i class="fas fa-eye"></i>
|
||||
<span>{{localize "PRISMRPG.Roll.visibility"}}</span>
|
||||
</div>
|
||||
<div class="option-row">
|
||||
<select name="visibility" class="styled-select">
|
||||
{{selectOptions rollModes selected=visibility localize=true}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+110
-39
@@ -1,51 +1,122 @@
|
||||
<div class="prismrpg-roll-dialog">
|
||||
<fieldSet>
|
||||
<legend>{{localize (concat "PRISMRPG.Label." rollType)}}
|
||||
-
|
||||
{{actorName}}</legend>
|
||||
|
||||
{{#if hasModifier}}
|
||||
<div class="dialog-save">
|
||||
<strong>{{upperFirst rollName}}</strong>
|
||||
:
|
||||
{{dice}}
|
||||
+
|
||||
{{baseValue}}
|
||||
</div>
|
||||
{{#if (eq rollType "save")}}
|
||||
<div class="dialog-save" style="font-size: 0.9em; color: #666;">
|
||||
(Ability Mod:
|
||||
{{#if
|
||||
(gt rollTarget.abilityModifier 0)
|
||||
}}+{{/if}}{{rollTarget.abilityModifier}}
|
||||
+ Save Bonus:
|
||||
{{#if
|
||||
(gt rollTarget.saveProficiency 0)
|
||||
}}+{{/if}}{{rollTarget.saveProficiency}})
|
||||
</div>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div class="dialog-save">
|
||||
<strong>{{upperFirst rollName}}</strong>
|
||||
:
|
||||
{{dice}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<legend>{{actorName}}</legend>
|
||||
|
||||
{{#if rollTarget.weapon}}
|
||||
<div class="dialog-save">
|
||||
{{localize "PRISMRPG.Label.weapon"}}
|
||||
:
|
||||
{{rollTarget.weapon.name}}
|
||||
</div>
|
||||
<div class="dialog-save">
|
||||
{{localize "PRISMRPG.Label.skill"}}
|
||||
:
|
||||
{{rollTarget.name}}
|
||||
<strong>{{rollTarget.weapon.name}}</strong>
|
||||
</div>
|
||||
{{/if}}
|
||||
</fieldSet>
|
||||
|
||||
{{#if rollTarget.weapon}}
|
||||
{{! Weapon-specific options }}
|
||||
<fieldSet class="dialog-weapon-options">
|
||||
<legend>Weapon Options</legend>
|
||||
|
||||
{{! Display weapon ranges if set }}
|
||||
{{#if (or (gt rollTarget.weapon.system.shortRange 0) (gt rollTarget.weapon.system.longRange 0))}}
|
||||
<div class="dialog-save" style="font-size: 0.9em; color: #666; margin-bottom: 0.5em;">
|
||||
{{#if (gt rollTarget.weapon.system.shortRange 0)}}
|
||||
<span>Short Range: {{rollTarget.weapon.system.shortRange}} ft</span>
|
||||
{{/if}}
|
||||
{{#if (gt rollTarget.weapon.system.longRange 0)}}
|
||||
{{#if (gt rollTarget.weapon.system.shortRange 0)}} • {{/if}}
|
||||
<span>Long Range: {{rollTarget.weapon.system.longRange}} ft</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! Choose STR or DEX for attack/damage rolls }}
|
||||
{{#if (or (eq rollType "weapon-attack") (eq rollType "weapon-damage-small") (eq rollType "weapon-damage-medium"))}}
|
||||
<div class="dialog-save">
|
||||
<label>Attack with:</label>
|
||||
<select name="attackAttribute" data-tooltip-direction="UP">
|
||||
<option value="str" {{#if (eq rollTarget.weapon.system.weaponType "melee")}}selected{{/if}}>Strength (+{{rollTarget.strMod}})</option>
|
||||
<option value="dex" {{#if (eq rollTarget.weapon.system.weaponType "ranged")}}selected{{/if}}>Dexterity (+{{rollTarget.dexMod}})</option>
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{! Ranged weapon specific options }}
|
||||
{{#if (eq rollTarget.weapon.system.weaponType "ranged")}}
|
||||
{{#if
|
||||
(or (eq rollType "weapon-attack") (eq rollType "monster-attack"))
|
||||
}}
|
||||
<div class="dialog-save">
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="pointBlank"
|
||||
data-action="selectPointBlank"
|
||||
/>
|
||||
Point Blank Range Attack
|
||||
</label>
|
||||
</div>
|
||||
<div class="dialog-save">
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="beyondSkill"
|
||||
data-action="selectBeyondSkill"
|
||||
/>
|
||||
Beyond Skill Range Attack
|
||||
</label>
|
||||
</div>
|
||||
<div class="dialog-save">
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="letItFly"
|
||||
data-action="selectLetItFly"
|
||||
/>
|
||||
Let it Fly (Pure D20E)
|
||||
</label>
|
||||
</div>
|
||||
<div class="dialog-save">
|
||||
<label>Aiming:</label>
|
||||
<select name="attackerAim" data-tooltip-direction="UP">
|
||||
{{selectOptions attackerAimChoices selected="simple"}}
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
|
||||
{{#if rollTarget.type}}
|
||||
{{#if (eq rollTarget.type "spell")}}
|
||||
{{! Spell-specific options }}
|
||||
<fieldSet class="dialog-spell-options">
|
||||
<legend>Spell Options</legend>
|
||||
|
||||
<div class="dialog-save" style="font-size: 0.9em; color: #666; margin-bottom: 0.5em;">
|
||||
<span>Casting with: {{rollTarget.mentalCharacteristic}} ({{rollTarget.mentalCharValue}}, +{{rollTarget.value}})</span>
|
||||
<br><span>Base Cost: {{rollTarget.system.manaCost}} Mana, {{rollTarget.system.apc}} APC</span>
|
||||
{{#if (gt rollTarget.system.manaUpkeep 0)}}
|
||||
<br><span>Upkeep: {{rollTarget.system.manaUpkeep}} Mana/round</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#if rollTarget.system.canAscend}}
|
||||
<div class="dialog-save">
|
||||
<label>Upcast Level:</label>
|
||||
<select name="upcastLevel" data-tooltip-direction="UP">
|
||||
<option value="0">Base Level ({{rollTarget.system.level}})</option>
|
||||
<option value="1">+1 Level (+1 Mana, +1 APC)</option>
|
||||
<option value="2">+2 Levels (+2 Mana, +2 APC)</option>
|
||||
<option value="3">+3 Levels (+3 Mana, +3 APC)</option>
|
||||
<option value="4">+4 Levels (+4 Mana, +4 APC)</option>
|
||||
<option value="5">+5 Levels (+5 Mana, +5 APC)</option>
|
||||
<option value="6">+6 Levels (+6 Mana, +6 APC)</option>
|
||||
<option value="7">+7 Levels (+7 Mana, +7 APC)</option>
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if hasAdvantage}}
|
||||
<fieldSet class="dialog-advantage">
|
||||
<legend>{{localize "PRISMRPG.Roll.advantageDisadvantage"}}</legend>
|
||||
|
||||
+20
-21
@@ -71,27 +71,26 @@
|
||||
</div>
|
||||
<div class="align-top">
|
||||
|
||||
{{! Prism RPG: Projectile Properties }}
|
||||
{{#if system.isProjectile}}
|
||||
{{formField
|
||||
systemFields.isProjectile
|
||||
value=system.isProjectile
|
||||
localize=true
|
||||
label="PRISMRPG.Label.isProjectile"
|
||||
}}
|
||||
{{formField
|
||||
systemFields.range
|
||||
value=system.range
|
||||
localize=true
|
||||
label="PRISMRPG.Label.range"
|
||||
}}
|
||||
{{formField
|
||||
systemFields.reloadAPC
|
||||
value=system.reloadAPC
|
||||
localize=true
|
||||
label="PRISMRPG.Label.reloadAPC"
|
||||
}}
|
||||
{{/if}}
|
||||
{{formField
|
||||
systemFields.shortRange
|
||||
value=system.shortRange
|
||||
localize=true
|
||||
label="PRISMRPG.Label.shortRange"
|
||||
}}
|
||||
|
||||
{{formField
|
||||
systemFields.longRange
|
||||
value=system.longRange
|
||||
localize=true
|
||||
label="PRISMRPG.Label.longRange"
|
||||
}}
|
||||
|
||||
{{formField
|
||||
systemFields.reloadAPC
|
||||
value=system.reloadAPC
|
||||
localize=true
|
||||
label="PRISMRPG.Label.reloadAPC"
|
||||
}}
|
||||
|
||||
{{formField
|
||||
systemFields.encLoad
|
||||
|
||||
Reference in New Issue
Block a user