|
|
|
@@ -14,6 +14,7 @@
|
|
|
|
|
<button type="action" name="act_character" data-i18n="character">
|
|
|
|
|
Character
|
|
|
|
|
</button>
|
|
|
|
|
<button type="action" name="act_spells" data-i18n="spells">Spells</button>
|
|
|
|
|
<button type="action" name="act_retainers" data-i18n="retainers">Retainers</button>
|
|
|
|
|
<button type="action" name="act_monster" data-i18n="monster">Monster</button>
|
|
|
|
|
<button type="action" name="act_notes" data-i18n="notes">Notes</button>
|
|
|
|
@@ -121,53 +122,65 @@
|
|
|
|
|
<div>
|
|
|
|
|
<h1 data-i18n="ability-scores">Ability Scores</h1>
|
|
|
|
|
<div class="scores roll flex">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label split-value">
|
|
|
|
|
<button type="roll" name="attr_rollSTR"
|
|
|
|
|
value="&{template:less} {{roll=^{strength}}} {{result=[[ [[1d20]]<@{str}+@{optionalModQuery} ]]}} {{check=[[@{str}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} rolls ^{strength}}} {{result=[[ [[1d20]]<@{str}+@{optionalModQuery} ]]}} {{check=[[@{str}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="strength-abbr">
|
|
|
|
|
STR
|
|
|
|
|
</button>
|
|
|
|
|
<input type="number" name="attr_str" value="10" />
|
|
|
|
|
<label class="divider" for="ability-strength-modifier">/</label>
|
|
|
|
|
<input type="number" min="0" id="ability-strength-modifier" name="attr_BonusSTR" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label split-value">
|
|
|
|
|
<button type="roll" name="attr_rollINT"
|
|
|
|
|
value="&{template:less} {{roll=^{intelligence}}} {{result=[[ [[1d20]]<@{int}+@{optionalModQuery} ]]}} {{check=[[@{int}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} rolls ^{intelligence}}} {{result=[[ [[1d20]]<@{int}+@{optionalModQuery} ]]}} {{check=[[@{int}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="intelligence-abbr">
|
|
|
|
|
INT
|
|
|
|
|
</button>
|
|
|
|
|
<input type="number" name="attr_int" value="10" />
|
|
|
|
|
<label class="divider" for="ability-intelligence-modifier">/</label>
|
|
|
|
|
<input type="number" min="0" id="ability-intelligence-modifier" name="attr_intMod" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label split-value">
|
|
|
|
|
<button type="roll" name="attr_rollWIS"
|
|
|
|
|
value="&{template:less} {{roll=^{wisdom}}} {{result=[[ [[1d20]]<@{wis}+@{optionalModQuery} ]]}} {{check=[[@{wis}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} rolls ^{wisdom}}} {{result=[[ [[1d20]]<@{wis}+@{optionalModQuery} ]]}} {{check=[[@{wis}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="wisdom-abbr">
|
|
|
|
|
WIS
|
|
|
|
|
</button>
|
|
|
|
|
<input type="number" name="attr_wis" value="10" />
|
|
|
|
|
<label class="divider" for="ability-wisdom-modifier">/</label>
|
|
|
|
|
<input type="number" min="0" id="ability-wisdom-modifier" name="attr_wisMod" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label split-value">
|
|
|
|
|
<button type="roll" name="attr_rollDEX"
|
|
|
|
|
value="&{template:less} {{roll=^{dexterity}}} {{result=[[ [[1d20]]<@{dex}+@{optionalModQuery} ]]}} {{check=[[@{dex}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} rolls ^{dexterity}}} {{result=[[ [[1d20]]<@{dex}+@{optionalModQuery} ]]}} {{check=[[@{dex}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="dexterity-abbr">
|
|
|
|
|
DEX
|
|
|
|
|
</button>
|
|
|
|
|
<input type="number" name="attr_dex" value="10" />
|
|
|
|
|
<label class="divider" for="ability-dexterity-modifier">/</label>
|
|
|
|
|
<input type="number" min="0" id="ability-dexterity-modifier" name="attr_BonusDEX" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label split-value">
|
|
|
|
|
<button type="roll" name="attr_rollCON"
|
|
|
|
|
value="&{template:less} {{roll=^{constitution}}} {{result=[[ [[1d20]]<@{con}+@{optionalModQuery} ]]}} {{check=[[@{con}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} rolls ^{constitution}}} {{result=[[ [[1d20]]<@{con}+@{optionalModQuery} ]]}} {{check=[[@{con}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="constitution-abbr">
|
|
|
|
|
CON
|
|
|
|
|
</button>
|
|
|
|
|
<input type="number" name="attr_con" value="10" />
|
|
|
|
|
<label class="divider" for="ability-constitution-modifier">/</label>
|
|
|
|
|
<input type="number" min="0" id="ability-constitution-modifier" name="attr_HPConMod" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label split-value">
|
|
|
|
|
<button type="roll" name="attr_rollCHA"
|
|
|
|
|
value="&{template:less} {{roll=^{charisma}}} {{result=[[ [[1d20]]<@{cha}+@{optionalModQuery} ]]}} {{check=[[@{cha}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} rolls ^{charisma}}} {{result=[[ [[1d20]]<@{cha}+@{optionalModQuery} ]]}} {{check=[[@{cha}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="charisma-abbr">
|
|
|
|
|
CHA
|
|
|
|
|
</button>
|
|
|
|
|
<input type="number" name="attr_cha" value="10" />
|
|
|
|
|
<label class="divider" for="ability-charisma-modifier">/</label>
|
|
|
|
|
<input type="number" min="0" id="ability-charisma-modifier" name="attr_chaMod" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@@ -177,7 +190,7 @@
|
|
|
|
|
<div class="exploration roll flex">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollListenDoor"
|
|
|
|
|
value="&{template:less} {{roll=^{listen-at-door-full}}} {{result=[[ [[1d6]]<@{ListenDoor}+@{optionalModQuery} ]]}} {{check=[[@{ListenDoor}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} checks ^{listen-at-door-full}}} {{result=[[ [[1d6]]<@{ListenDoor}+@{optionalModQuery} ]]}} {{check=[[@{ListenDoor}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="listen-at-door">
|
|
|
|
|
Listen at door
|
|
|
|
|
</button>
|
|
|
|
@@ -185,7 +198,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollOpenDoor"
|
|
|
|
|
value="&{template:less} {{roll=^{open-stuck-door-full}}} {{result=[[ [[1d6]]<@{OpenDoor}+@{optionalModQuery} ]]}} {{check=[[@{OpenDoor}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} checks ^{open-stuck-door-full}}} {{result=[[ [[1d6]]<@{OpenDoor}+@{optionalModQuery} ]]}} {{check=[[@{OpenDoor}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="open-stuck-door">
|
|
|
|
|
Open stuck door
|
|
|
|
|
</button>
|
|
|
|
@@ -193,7 +206,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollFindSecretDoor"
|
|
|
|
|
value="&{template:less} {{roll=^{find-secret-door-full}}} {{result=[[ [[1d6]]<@{FindSecretDoor}+@{optionalModQuery} ]]}} {{check=[[@{FindSecretDoor}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} checks ^{find-secret-door-full}}} {{result=[[ [[1d6]]<@{FindSecretDoor}+@{optionalModQuery} ]]}} {{check=[[@{FindSecretDoor}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="find-secret-door">
|
|
|
|
|
Find secret door
|
|
|
|
|
</button>
|
|
|
|
@@ -201,7 +214,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollFindRoomTrap"
|
|
|
|
|
value="&{template:less} {{roll=^{find-room-trap-full}}} {{result=[[ [[1d6]]<@{FindRoomTrap}+@{optionalModQuery} ]]}} {{check=[[@{FindRoomTrap}+@{optionalModQuery}]]}}"
|
|
|
|
|
value="&{template:less} {{roll=@{character_name} checks ^{find-room-trap-full}}} {{result=[[ [[1d6]]<@{FindRoomTrap}+@{optionalModQuery} ]]}} {{check=[[@{FindRoomTrap}+@{optionalModQuery}]]}}"
|
|
|
|
|
data-i18n="find-room-trap">
|
|
|
|
|
Find room trap
|
|
|
|
|
</button>
|
|
|
|
@@ -215,7 +228,7 @@
|
|
|
|
|
<div class="saving roll flex">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveD"
|
|
|
|
|
value="&{template:greater} {{roll=^{death-poison-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}>+@{modQuery}@{saveD} ]]}} {{check=[[@{saveD}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{death-poison-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}>+@{modQuery}@{saveD} ]]}} {{check=[[@{saveD}]]}}"
|
|
|
|
|
data-i18n="death-poison">
|
|
|
|
|
Death, Poison
|
|
|
|
|
</button>
|
|
|
|
@@ -223,7 +236,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveW"
|
|
|
|
|
value="&{template:greater} {{roll=^{magic-wands-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveW} ]]}} {{check=[[@{saveW}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{magic-wands-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveW} ]]}} {{check=[[@{saveW}]]}}"
|
|
|
|
|
data-i18n="magic-wands">
|
|
|
|
|
Magic wands
|
|
|
|
|
</button>
|
|
|
|
@@ -231,7 +244,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveP"
|
|
|
|
|
value="&{template:greater} {{roll=^{paralysis-petrification-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveP} ]]}} {{check=[[@{saveP}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{paralysis-petrification-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveP} ]]}} {{check=[[@{saveP}]]}}"
|
|
|
|
|
data-i18n="paralysis-petrification">
|
|
|
|
|
Paralysis, Petrification
|
|
|
|
|
</button>
|
|
|
|
@@ -239,7 +252,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveB"
|
|
|
|
|
value="&{template:greater} {{roll=^{breath-attacks-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveB} ]]}} {{check=[[@{saveB}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{breath-attacks-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveB} ]]}} {{check=[[@{saveB}]]}}"
|
|
|
|
|
data-i18n="breath-attacks">
|
|
|
|
|
Breath attacks
|
|
|
|
|
</button>
|
|
|
|
@@ -247,7 +260,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveS"
|
|
|
|
|
value="&{template:greater} {{roll=^{spells-rods-staves-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveS} ]]}} {{check=[[@{saveS}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{spells-rods-staves-full}}} {{result=[[ [[1d20]]+@{wisdomSaveQuery}+@{modQuery}>@{saveS} ]]}} {{check=[[@{saveS}]]}}"
|
|
|
|
|
data-i18n="spells-rods-staves">
|
|
|
|
|
Spells, Rods, Staves
|
|
|
|
|
</button>
|
|
|
|
@@ -273,7 +286,7 @@
|
|
|
|
|
<fieldset class="repeating_abilities">
|
|
|
|
|
<div class="abilities-grid">
|
|
|
|
|
<button type="roll" name="abilityRoll"
|
|
|
|
|
value="&{template:skill} {{name=@{}}} {{symbol=[[@{abilityDirection}]]}} {{roll=@{abilityName}}} {{result=[[@{abilityRoll}]]}} {{check=[[0+@{abilityThreshold}]]}} {{description=@{abilityDescription}}}"></button>
|
|
|
|
|
value="&{template:skill} {{name=@{}}} {{symbol=[[@{abilityDirection}]]}} {{roll=@{character_name} rolls @{abilityName}}} {{result=[[@{abilityRoll}]]}} {{check=[[0+@{abilityThreshold}]]}} {{description=@{abilityDescription}}}"></button>
|
|
|
|
|
<input type="text" name="attr_abilityName" placeholder="Name" data-i18n="name" />
|
|
|
|
|
<input type="text" class="half-input" name="attr_abilityRoll" value="2d6" />
|
|
|
|
|
<select name="attr_abilityDirection" class="half-input">
|
|
|
|
@@ -376,7 +389,8 @@
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<input type="hidden" name="attr_individualInitiative" value="disabled" />
|
|
|
|
|
<button type="roll" name="attr_rollInit"
|
|
|
|
|
value="&{template:simple} {{roll=Initiative}} {{result=[[1d6 &{tracker}]]}}" data-i18n="initiative-init">
|
|
|
|
|
value="&{template:simple} {{roll=Player's Initiative}} {{result=[[1d6 &{tracker}]]}}"
|
|
|
|
|
data-i18n="initiative-init">
|
|
|
|
|
Init.
|
|
|
|
|
</button>
|
|
|
|
|
<button type="roll" name="attr_rollInitIndividual"
|
|
|
|
@@ -461,10 +475,10 @@
|
|
|
|
|
<div>
|
|
|
|
|
<!-- AAC Attack -->
|
|
|
|
|
<button type="roll" name="aacAttackRoll" class="attack-roll attack-roll-aac"
|
|
|
|
|
value="&{template:simple} {{roll=Attack with @{weaponName}}} {{attack=[[1d20+@{weaponAttributeBonus}+@{weaponAttackBonus}+@{bab}+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}+@{weaponDamageBonus}+@{weaponAttributeBonusDamage}]]}} {{description=@{weaponDescription}}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} attacks with @{weaponName}}} {{attack=[[1d20+@{weaponAttributeBonus}+@{weaponAttackBonus}+@{bab}+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}+@{weaponDamageBonus}+@{weaponAttributeBonusDamage}]]}} {{description=@{weaponDescription}}}"></button>
|
|
|
|
|
<!-- DAC Attack (no BAB added) -->
|
|
|
|
|
<button type="roll" name="dacAttackRoll" class="attack-roll attack-roll-dac"
|
|
|
|
|
value="&{template:simple} {{roll=Attack with @{weaponName}}} {{attack=[[1d20+@{weaponAttributeBonus}+@{weaponAttackBonus}+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}+@{weaponDamageBonus}+@{weaponAttributeBonusDamage}]]}} {{description=@{weaponDescription}}} {{attackMatrix9=@{attackMatrix9}}} {{attackMatrix8=@{attackMatrix8}}} {{attackMatrix7=@{attackMatrix7}}} {{attackMatrix6=@{attackMatrix6}}} {{attackMatrix5=@{attackMatrix5}}} {{attackMatrix4=@{attackMatrix4}}} {{attackMatrix3=@{attackMatrix3}}} {{attackMatrix2=@{attackMatrix2}}} {{attackMatrix1=@{attackMatrix1}}} {{attackMatrix0=@{attackMatrix0}}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} attacks with @{weaponName}}} {{attack=[[1d20+@{weaponAttributeBonus}+@{weaponAttackBonus}+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}+@{weaponDamageBonus}+@{weaponAttributeBonusDamage}]]}} {{description=@{weaponDescription}}} {{attackMatrix9=@{attackMatrix9}}} {{attackMatrix8=@{attackMatrix8}}} {{attackMatrix7=@{attackMatrix7}}} {{attackMatrix6=@{attackMatrix6}}} {{attackMatrix5=@{attackMatrix5}}} {{attackMatrix4=@{attackMatrix4}}} {{attackMatrix3=@{attackMatrix3}}} {{attackMatrix2=@{attackMatrix2}}} {{attackMatrix1=@{attackMatrix1}}} {{attackMatrix0=@{attackMatrix0}}}"></button>
|
|
|
|
|
</div>
|
|
|
|
|
<input type="text" name="attr_weaponName" placeholder="Weapon Name" />
|
|
|
|
|
<select name="attr_attackType">
|
|
|
|
@@ -548,9 +562,9 @@
|
|
|
|
|
<div>
|
|
|
|
|
<input type="hidden" name="attr_spellRollType" value="describe" />
|
|
|
|
|
<button type="roll" name="spellCast" class="roll"
|
|
|
|
|
value="&{template:simple} {{roll=Casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}} {{effect=[[@{spellEffect}]]}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}} {{effect=[[@{spellEffect}]]}}"></button>
|
|
|
|
|
<button type="roll" name="spellDescribe" class="roll-describe"
|
|
|
|
|
value="&{template:simple} {{roll=Casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}}"></button>
|
|
|
|
|
</div>
|
|
|
|
|
<input type="number" min="0" name="attr_spellMemorized" checked data-i18n-title="memorized" title="Memorized"
|
|
|
|
|
value="0" />
|
|
|
|
@@ -643,12 +657,99 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="sheet-spells sheet-repeat">
|
|
|
|
|
<h1>Spells</h1>
|
|
|
|
|
<div class="flex grid-spacing spells-per-level">
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<span>1</span>
|
|
|
|
|
<input type="number" min="0" name="attr_spellsLevel1Available" title="Spells Available"
|
|
|
|
|
data-i18n-title="spells-available" value="0" />
|
|
|
|
|
<label class="divider" for="spells-level-1-total">/</label>
|
|
|
|
|
<input type="number" min="0" id="spells-level-1-total" name="attr_spellsLevel1Total" title="Spells Total"
|
|
|
|
|
data-i18n-title="spells-total" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<span>2</span>
|
|
|
|
|
<input type="number" min="0" name="attr_spellsLevel2Available" title="Spells Available"
|
|
|
|
|
data-i18n-title="spells-available" value="0" />
|
|
|
|
|
<label class="divider" for="spells-level-2-total">/</label>
|
|
|
|
|
<input type="number" min="0" id="spells-level-2-total" name="attr_spellsLevel2Total" title="Spells Total"
|
|
|
|
|
data-i18n-title="spells-total" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<span>3</span>
|
|
|
|
|
<input type="number" min="0" name="attr_spellsLevel3Available" title="Spells Available"
|
|
|
|
|
data-i18n-title="spells-available" value="0" />
|
|
|
|
|
<label class="divider" for="spells-level-3-total">/</label>
|
|
|
|
|
<input type="number" min="0" id="spells-level-3-total" name="attr_spellsLevel3Total" title="Spells Total"
|
|
|
|
|
data-i18n-title="spells-total" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<span>4</span>
|
|
|
|
|
<input type="number" min="0" name="attr_spellsLevel4Available" title="Spells Available"
|
|
|
|
|
data-i18n-title="spells-available" value="0" />
|
|
|
|
|
<label class="divider" for="spells-level-4-total">/</label>
|
|
|
|
|
<input type="number" min="0" id="spells-level-4-total" name="attr_spellsLevel4Total" title="Spells Total"
|
|
|
|
|
data-i18n-title="spells-total" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<span>5</span>
|
|
|
|
|
<input type="number" min="0" name="attr_spellsLevel5Available" title="Spells Available"
|
|
|
|
|
data-i18n-title="spells-available" value="0" />
|
|
|
|
|
<label class="divider" for="spells-level-5-total">/</label>
|
|
|
|
|
<input type="number" min="0" id="spells-level-5-total" name="attr_spellsLevel5Total" title="Spells Total"
|
|
|
|
|
data-i18n-title="spells-total" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex">
|
|
|
|
|
<span>6</span>
|
|
|
|
|
<input type="number" min="0" name="attr_spellsLevel6Available" title="Spells Available"
|
|
|
|
|
data-i18n-title="spells-available" value="0" />
|
|
|
|
|
<label class="divider" for="spells-level-6-total">/</label>
|
|
|
|
|
<input type="number" min="0" id="spells-level-6-total" name="attr_spellsLevel6Total" title="Spells Total"
|
|
|
|
|
data-i18n-title="spells-total" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="spells-grid">
|
|
|
|
|
<span></span>
|
|
|
|
|
<span data-i18n-title="memorized" title="Memorized" class="memorized"></span>
|
|
|
|
|
<span data-i18n="name">Name</span>
|
|
|
|
|
<span data-i18n="level-abbr">LVL</span>
|
|
|
|
|
<span data-i18n="duration">Duration</span>
|
|
|
|
|
<span data-i18n="range">Range</span>
|
|
|
|
|
<span data-i18n="description">Description</span>
|
|
|
|
|
<span data-i18n="effect-roll">Effect Roll</span>
|
|
|
|
|
</div>
|
|
|
|
|
<fieldset class="repeating_spells">
|
|
|
|
|
<div class="spells-grid">
|
|
|
|
|
<div>
|
|
|
|
|
<input type="hidden" name="attr_spellRollType" value="describe" />
|
|
|
|
|
<button type="roll" name="spellCast" class="roll"
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}} {{effect=[[@{spellEffect}]]}}"></button>
|
|
|
|
|
<button type="roll" name="spellDescribe" class="roll-describe"
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}}"></button>
|
|
|
|
|
</div>
|
|
|
|
|
<input type="number" min="0" name="attr_spellMemorized" checked data-i18n-title="memorized" title="Memorized"
|
|
|
|
|
value="0" />
|
|
|
|
|
<input type="text" name="attr_spellName" placeholder="Spell Name"
|
|
|
|
|
data-i18n-placeholder="spell-name-placeholder" />
|
|
|
|
|
<input type="number" min="1" name="attr_spellLevel" value="1" />
|
|
|
|
|
<input type="text" name="attr_spellDuration" />
|
|
|
|
|
<input type="text" name="attr_spellRange" />
|
|
|
|
|
<input type="text" name="attr_spellDescription" placeholder="Description" data-i18n-placeholder="description" />
|
|
|
|
|
<input type="text" class="half-input" name="attr_spellEffect" />
|
|
|
|
|
</div>
|
|
|
|
|
</fieldset>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="sheet-retainers">
|
|
|
|
|
<div>
|
|
|
|
|
<h1 data-i18n="retainer-modifiers">Retainer Modifiers</h1>
|
|
|
|
|
<div class="flex">
|
|
|
|
|
<div class="flex roll">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<span data-i18n="npc-reaction">NPC Reaction</span>
|
|
|
|
|
<button type="roll" name="attr_rollNPCReaction"
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} rolls for NPC Reaction}} {{result=[[2d6+@{chaMod}]]}}"
|
|
|
|
|
data-i18n="npc-reaction">NPC
|
|
|
|
|
Reaction</button>
|
|
|
|
|
<input type="number" readOnly name="attr_chaMod" value="0" />
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
@@ -792,7 +893,8 @@
|
|
|
|
|
<label class="inline-flex initiative">
|
|
|
|
|
<input type="hidden" name="attr_individualInitiative" value="disabled" />
|
|
|
|
|
<button type="roll" name="attr_rollInit"
|
|
|
|
|
value="&{template:simple} {{roll=Initiative}} {{result=[[1d6 &{tracker}]]}}" data-i18n="initiative-init">
|
|
|
|
|
value="&{template:simple} {{roll=Enemy Initiative}} {{result=[[1d6 &{tracker}]]}}"
|
|
|
|
|
data-i18n="initiative-init">
|
|
|
|
|
Init.
|
|
|
|
|
</button>
|
|
|
|
|
<button type="roll" name="attr_rollInitIndividual"
|
|
|
|
@@ -905,10 +1007,10 @@
|
|
|
|
|
<div class="weapons-grid">
|
|
|
|
|
<!-- AAC Attack -->
|
|
|
|
|
<button type="roll" name="aacAttackRoll" class="attack-roll attack-roll-aac"
|
|
|
|
|
value="&{template:simple} {{roll=Attack with @{weaponName}}} {{attack=[[1d20+@{monsterBAB}+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}]]}} {{description=@{weaponDescription}}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} attacks with @{weaponName}}} {{attack=[[1d20+@{monsterBAB}+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}]]}} {{description=@{weaponDescription}}}"></button>
|
|
|
|
|
<!-- DAC Attack (no BAB added) -->
|
|
|
|
|
<button type="roll" name="dacAttackRoll" class="attack-roll attack-roll-dac"
|
|
|
|
|
value="&{template:simple} {{roll=Attack with @{weaponName}}} {{attack=[[1d20+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}]]}} {{description=@{weaponDescription}}} {{attackMatrix9=@{monsterAttackMatrix9}}} {{attackMatrix8=@{monsterAttackMatrix8}}} {{attackMatrix7=@{monsterAttackMatrix7}}} {{attackMatrix6=@{monsterAttackMatrix6}}} {{attackMatrix5=@{monsterAttackMatrix5}}} {{attackMatrix4=@{monsterAttackMatrix4}}} {{attackMatrix3=@{monsterAttackMatrix3}}} {{attackMatrix2=@{monsterAttackMatrix2}}} {{attackMatrix1=@{monsterAttackMatrix1}}} {{attackMatrix0=@{monsterAttackMatrix0}}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} attacks with @{weaponName}}} {{attack=[[1d20+@{optionalModQuery}]]}} {{damage=[[@{weaponDamageDie}]]}} {{description=@{weaponDescription}}} {{attackMatrix9=@{monsterAttackMatrix9}}} {{attackMatrix8=@{monsterAttackMatrix8}}} {{attackMatrix7=@{monsterAttackMatrix7}}} {{attackMatrix6=@{monsterAttackMatrix6}}} {{attackMatrix5=@{monsterAttackMatrix5}}} {{attackMatrix4=@{monsterAttackMatrix4}}} {{attackMatrix3=@{monsterAttackMatrix3}}} {{attackMatrix2=@{monsterAttackMatrix2}}} {{attackMatrix1=@{monsterAttackMatrix1}}} {{attackMatrix0=@{monsterAttackMatrix0}}}"></button>
|
|
|
|
|
<input type="number" min="0" name="attr_weaponAttacks" value="1" />
|
|
|
|
|
<input type="text" name="attr_weaponName" placeholder="Weapon" data-i18n-placeholder="weapon" />
|
|
|
|
|
<input type="text" name="attr_weaponDamageDie" value="1d6" class="input-as-number" />
|
|
|
|
@@ -950,9 +1052,9 @@
|
|
|
|
|
<div>
|
|
|
|
|
<input type="hidden" name="attr_spellRollType" value="describe" />
|
|
|
|
|
<button type="roll" name="spellCast" class="roll"
|
|
|
|
|
value="&{template:simple} {{roll=Casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}} {{effect=[[@{spellEffect}]]}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}} {{effect=[[@{spellEffect}]]}}"></button>
|
|
|
|
|
<button type="roll" name="spellDescribe" class="roll-describe"
|
|
|
|
|
value="&{template:simple} {{roll=Casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}}"></button>
|
|
|
|
|
value="&{template:simple} {{roll=@{character_name} casts @{spellName}}} {{duration=@{spellDuration}}} {{range=@{spellRange}}} {{description=@{spellDescription}}}"></button>
|
|
|
|
|
</div>
|
|
|
|
|
<input type="text" name="attr_spellName" placeholder="Magic Missile"
|
|
|
|
|
data-i18n-placeholder="spell-name-placeholder" />
|
|
|
|
@@ -972,7 +1074,7 @@
|
|
|
|
|
<div class="saving roll flex">
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveD"
|
|
|
|
|
value="&{template:greater} {{roll=^{death-poison-full}}} {{result=[[ [[1d20]]>@{saveD}+@{modQuery} ]]}} {{check=[[@{saveD}+@{modQuery}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{death-poison-full}}} {{result=[[ [[1d20]]>@{saveD}+@{modQuery} ]]}} {{check=[[@{saveD}+@{modQuery}]]}}"
|
|
|
|
|
data-i18n="death-poison">
|
|
|
|
|
Death, Poison
|
|
|
|
|
</button>
|
|
|
|
@@ -981,7 +1083,7 @@
|
|
|
|
|
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveW"
|
|
|
|
|
value="&{template:greater} {{roll=^{magic-wands-full}}} {{result=[[ [[1d20]]>@{saveW}+@{modQuery} ]]}} {{check=[[@{saveW}+@{modQuery}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{magic-wands-full}}} {{result=[[ [[1d20]]>@{saveW}+@{modQuery} ]]}} {{check=[[@{saveW}+@{modQuery}]]}}"
|
|
|
|
|
data-i18n="magic-wands">
|
|
|
|
|
Magic wands
|
|
|
|
|
</button>
|
|
|
|
@@ -990,7 +1092,7 @@
|
|
|
|
|
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveP"
|
|
|
|
|
value="&{template:greater} {{roll=^{paralysis-petrification-full}}} {{result=[[ [[1d20]]>@{saveP}+@{modQuery} ]]}} {{check=[[@{saveP}+@{modQuery}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{paralysis-petrification-full}}} {{result=[[ [[1d20]]>@{saveP}+@{modQuery} ]]}} {{check=[[@{saveP}+@{modQuery}]]}}"
|
|
|
|
|
data-i18n="paralysis-petrification">
|
|
|
|
|
Paralysis, Petrification
|
|
|
|
|
</button>
|
|
|
|
@@ -999,7 +1101,7 @@
|
|
|
|
|
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveB"
|
|
|
|
|
value="&{template:greater} {{roll=^{breath-attacks-full}}} {{result=[[ [[1d20]]>@{saveB}+@{modQuery} ]]}} {{check=[[@{saveB}+@{modQuery}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{breath-attacks-full}}} {{result=[[ [[1d20]]>@{saveB}+@{modQuery} ]]}} {{check=[[@{saveB}+@{modQuery}]]}}"
|
|
|
|
|
data-i18n="breath-attacks">
|
|
|
|
|
Breath attacks
|
|
|
|
|
</button>
|
|
|
|
@@ -1007,7 +1109,7 @@
|
|
|
|
|
</label>
|
|
|
|
|
<label class="inline-flex inline-flex-wide-label">
|
|
|
|
|
<button type="roll" name="attr_rollSaveS"
|
|
|
|
|
value="&{template:greater} {{roll=^{spells-rods-staves-full}}} {{result=[[ [[1d20]]>@{saveS}+@{modQuery} ]]}} {{check=[[@{saveS}+@{modQuery}]]}}"
|
|
|
|
|
value="&{template:greater} {{roll=@{character_name} rolls save against ^{spells-rods-staves-full}}} {{result=[[ [[1d20]]>@{saveS}+@{modQuery} ]]}} {{check=[[@{saveS}+@{modQuery}]]}}"
|
|
|
|
|
data-i18n="spells-rods-staves">
|
|
|
|
|
Spells, Rods, Staves
|
|
|
|
|
</button>
|
|
|
|
@@ -1397,7 +1499,7 @@
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Tabs
|
|
|
|
|
const buttonlist = ["character", "retainers", "monster", "notes", "settings"];
|
|
|
|
|
const buttonlist = ["character", "spells", "retainers", "monster", "notes", "settings"];
|
|
|
|
|
buttonlist.forEach((button) => {
|
|
|
|
|
on(`clicked:${button}`, function (event) {
|
|
|
|
|
setAttrs({ sheetTab: button });
|
|
|
|
@@ -1452,6 +1554,11 @@
|
|
|
|
|
setAttrs({ HPConMod: getModifiers(values.con) });
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
on("sheet:opened change:int", function () {
|
|
|
|
|
getAttrs(["int"], function (values) {
|
|
|
|
|
setAttrs({ intMod: getModifiers(values.int) });
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
on("sheet:opened change:wis", function () {
|
|
|
|
|
getAttrs(["wis"], function (values) {
|
|
|
|
|
const wisMod = getModifiers(values.wis);
|
|
|
|
|