Files

1967 lines
66 KiB
HTML

<!-- HIDDEN INPUTS -->
<input type="hidden" name="attr_sheetTab" value="character" />
<!-- SHEET SELECTOR -->
<div class="sheet-button-select">
<button type="action" name="act_character">Personagem</button>
<button type="action" name="act_equipment">Equipamento</button>
<button type="action" name="act_magic">Magia</button>
<button type="action" name="act_evolution">Evolução</button>
<button type="action" name="act_recipes">Receitas</button>
<button type="action" name="act_retainers">Auxiliares</button>
<button type="action" name="act_notes">Notas</button>
</div>
<!-- END OF SHEET SELECTOR -->
<!-- CHARACTER SHEET -->
<div class="sheet-character">
<div class="logo-and-header">
<!-- Header -->
<div class="header">
<div class="header-line">
<label>
Nome:
<input type="text" name="attr_name" id="name-input" />
</label>
<label>
Origem:
<input type="text" name="attr_title" />
</label>
</div>
<div class="header-line">
<label>
Alinhamento:
<input type="text" name="attr_alignment" />
</label>
<label>
Classe:
<input type="text" name="attr_class" />
</label>
</div>
<div class="header-line">
<label>
XP:
<input type="text" name="attr_xp" />
</label>
<label>
XP(Meta):
<input type="text" name="attr_xpTarget" />
</label>
<label>
Nível:
<input type="text" name="attr_level" />
</label>
</div>
</div>
<!-- End of Header -->
</div>
<!-- Attributes, saves and avatar -->
<div class="attributes-saves-and-avatar">
<!-- Attributes -->
<div class="attributes">
<div class="attributes-container">
<h3>Atributos</h3>
<div class="attributes-content">
<div class="attributes-line">
<label>
<span>For:</span>
<input type="text" name="attr_str" class="attribute-input" />
</label>
<input
hidden
readonly
id="ability-strength-modifier"
name="attr_strMod"
value="0"
/>
<input
readonly
id="ability-strength-modifier"
name="attr_maskedStrMod"
value="0"
/>
</div>
<div class="attributes-line">
<label>
<span>Int:</span>
<input type="text" name="attr_int" class="attribute-input" />
</label>
<input
hidden
readonly
id="ability-intelligence-modifier"
name="attr_intMod"
value="0"
/>
<input
readonly
id="ability-intelligence-modifier"
name="attr_maskedIntMod"
value="0"
/>
</div>
<div class="attributes-line">
<label>
<span>Sab:</span>
<input type="text" name="attr_wis" class="attribute-input" />
</label>
<input
hidden
readonly
id="ability-wisdom-modifier"
name="attr_wisMod"
value="0"
/>
<input
readonly
id="ability-wisdom-modifier"
name="attr_maskedWisMod"
value="0"
/>
</div>
<div class="attributes-line">
<label>
<span>Des:</span>
<input type="text" name="attr_dex" class="attribute-input" />
</label>
<input
hidden
readonly
id="ability-dexterity-modifier"
name="attr_dexMod"
value="0"
/>
<input
readonly
id="ability-dexterity-modifier"
name="attr_maskedDexMod"
value="0"
/>
</div>
<div class="attributes-line">
<label>
<span>Con:</span>
<input type="text" name="attr_con" class="attribute-input" />
</label>
<input
hidden
readonly
id="ability-constitution-modifier"
name="attr_conMod"
value="0"
/>
<input
readonly
id="ability-constitution-modifier"
name="attr_maskedConMod"
value="0"
/>
</div>
<div class="attributes-line">
<label>
<span>Car:</span>
<input type="text" name="attr_cha" class="attribute-input" />
</label>
<input
hidden
readonly
id="ability-charisma-modifier"
name="attr_chaMod"
value="0"
/>
<input
readonly
id="ability-charisma-modifier"
name="attr_maskedChaMod"
value="0"
/>
</div>
</div>
</div>
</div>
<!-- End of Attributes -->
<!-- Saves -->
<div class="saves">
<div class="saves-container">
<h3>Salvaguardas</h3>
<div class="saves-content">
<div class="saves-line">
<input type="text" name="attr_saveDeath" />
<button
type="roll"
name="attr_rollSaveDeath"
value="&{template:default} {{name=@{character_name} salvaguarda contra Morte}} {{resultado=[[ [[1d20]]>@{saveDeath} ]]}} {{alvo=[[@{saveDeath}]]}}"
class="save-button"
>
Morte
</button>
</div>
<div class="saves-line">
<input type="text" name="attr_saveContact" />
<button
type="roll"
name="attr_rollSaveContact"
value="&{template:default} {{name=@{character_name} salvaguarda contra Contato}} {{resultado=[[ [[1d20]]>@{saveContact} ]]}} {{alvo=[[@{saveContact}]]}}"
class="save-button"
>
Contato
</button>
</div>
<div class="saves-line">
<input type="text" name="attr_saveParalysis" />
<button
type="roll"
name="attr_rollSaveParalysis"
value="&{template:default} {{name=@{character_name} salvaguarda contra Paralisia}} {{resultado=[[ [[1d20]]>@{saveParalysis} ]]}} {{alvo=[[@{saveParalysis}]]}}"
class="save-button"
>
Paralisia
</button>
</div>
<div class="saves-line">
<input type="text" name="attr_saveIrruption" />
<button
type="roll"
name="attr_rollSaveIrruption"
value="&{template:default} {{name=@{character_name} salvaguarda contra Irrupção}} {{resultado=[[ [[1d20]]>@{saveIrruption} ]]}} {{alvo=[[@{saveIrruption}]]}}"
class="save-button"
>
Irrupção
</button>
</div>
<div class="saves-line">
<input type="text" name="attr_saveSpell" />
<button
type="roll"
name="attr_rollSaveSpell"
value="&{template:default} {{name=@{character_name} salvaguarda contra Feitiço}} {{resultado=[[ [[1d20]]>@{saveSpell} ]]}} {{alvo=[[@{saveSpell}]]}}"
class="save-button"
>
Feitiço
</button>
</div>
</div>
</div>
</div>
<!-- End of Saves -->
<!-- Avatar -->
<div class="avatarContainer">
<h3>Arte</h3>
<div class="art-container">
<div class="art" name="attr_character_avatar"></div>
</div>
</div>
<!-- End of Avatar -->
</div>
<!-- End of Attributes, saves and avatar -->
<!-- MOVEMENT AND COMBAT-->
<div class="move-and-combat">
<!-- Movement -->
<div class="movement">
<h3>Deslocamento e Carga</h3>
<div class="movement-content">
<div class="movement-line">
<label>Base <input type="text" name="attr_moveBase" /></label>
</div>
<div class="movement-line">
<label
>Exploração/Corrida
<input type="text" name="attr_moveExplorationOrRunning"
/></label>
</div>
<div class="movement-line">
<label>Viagem <input type="text" name="attr_moveTravel" /></label>
</div>
<div class="movement-line">
<label
>Carga<input readonly type="text" name="attr_encumbrance"
/></label>
</div>
</div>
</div>
<!-- End of Movement -->
<!-- Combat -->
<div class="combat">
<h3>Combate</h3>
<div class="combat-line">
<label
>Bônus de Ataque:<input type="text" name="attr_ba" value="0"
/></label>
</div>
<div class="combat-line">
<label>CA<input readonly type="text" name="attr_ac" /></label>
</div>
<div class="combat-line">
<label>PV Máximo<input type="text" name="attr_pvMax" /></label>
</div>
<div class="combat-line">
<label>PV Atual<input type="text" name="attr_pvCurrent" /></label>
</div>
</div>
<!-- End of Combat -->
</div>
<!-- END OF MOVE AND COMBAT -->
<!-- LANGUAGES AND ABILITIES -->
<div class="languages-and-abilities">
<!-- Languages -->
<div class="languages-container">
<div class="languages">
<div class="languages-content">
<div class="language-grid">
<span class="language-name">Idioma</span>
<span class="language-fluent">Fluente</span>
<span class="language-literate">Letrado</span>
</div>
<fieldset class="repeating_lenguage">
<div class="language-line">
<input
type="text"
name="attr_languageName"
class="language-name"
/>
<input
class="language-fluent"
type="checkbox"
name="attr_languageFluent"
/>
<input
class="language-literate"
type="checkbox"
name="attr_languageLiterate"
/>
</div>
</fieldset>
</div>
</div>
</div>
<!-- End of Languages -->
<!-- Abilities -->
<div class="abilities-container">
<div class="abilities">
<span>Habilidades</span>
<div class="abilities-content">
<fieldset class="repeating_abilities">
<div class="ability-line">
<input
type="text"
name="attr_abilityNameName"
class="ability-name"
/>
</div>
</fieldset>
</div>
</div>
</div>
<!-- End of Abilities -->
</div>
<!-- END OF LANGUAGES AND ABILITIES -->
<!-- Weapons -->
<div class="weapons">
<h3>Armas</h3>
<fieldset class="repeating_weapons">
<div class="weapon">
<div class="weapon-grid">
<div id="weapon-roll">
<span>.</span>
<input type="hidden" name="attr_bonusDamage" value="0" />
<button
type="roll"
name="dacAttackRoll"
class="attack-roll attack-roll-dac"
value="&{template:simple} {{roll=@{character_name} ataca com @{weaponName}}} {{ataque=[[1d20+@{dexMod}+@{weaponAttackBonus}+@{ba}]]}} {{dano=[[@{weaponDamageDie}+@{weaponDamageBonus}+@{bonusDamage}]]}} {{descrição=@{weaponDescription}}}"
></button>
</div>
<div id="weapon-name">
<span>Nome</span>
<input type="text" name="attr_weaponName" />
</div>
<div id="weapon-attack-type">
<span>Tipo de Ataque</span>
<select name="attr_attackType">
<option value="melee">Corpo a Corpo</option>
<option value="ranged">A Distância</option>
</select>
</div>
<div id="weapon-attack-bonus">
<span>+Atq</span>
<input type="number" name="attr_weaponAttackBonus" value="0" />
</div>
<div id="weapon-damage-die">
<span>Dano</span>
<input
type="text"
name="attr_weaponDamageDie"
value="1d6"
class="input-as-number"
/>
</div>
<div id="weapon-damage-bonus">
<span>+Dano</span>
<input type="number" name="attr_weaponDamageBonus" value="0" />
</div>
</div>
<input
id="weapon-description"
type="text"
name="attr_weaponDescription"
class="weapon-description"
placeholder="Descrição"
value=""
/>
</div>
</fieldset>
</div>
<!-- End of Weapons -->
</div>
<!-- END OF CHARACTER SHEET -->
<!-- EQUIPMENT SHEET -->
<div class="sheet-equipment">
<div class="encumbrance">
<label>Carga</label>
<div>
<span>Pessoal</span>
<input
readonly
name="attr_TotalEncumbrance"
value="0"
class="encumbrance-input"
/>
</div>
<div>
<span>Auxiliares</span>
<input
readonly
name="attr_retainerEncumbrance"
value="0"
class="encumbrance-input"
/>
</div>
<div>
<span>Montaria</span>
<input
readonly
name="attr_mountEncumbrance"
value="0"
class="encumbrance-input"
/>
</div>
<div>
<span>Guardado</span>
<input
readonly
name="attr_StowedEncumbrance"
value="0"
class="encumbrance-input"
/>
</div>
</div>
<div class="items">
<div class="equipment-grid">
<span class="item-name">Itens</span>
<span class="armor-value">CA</span>
</div>
<div class="equipment-line">
<input
placeholder="&#9995;"
type="text"
name="attr_itemName1"
class="item-name"
/>
<input
type="text"
name="attr_armorValue1"
value="0"
class="armor-value"
/>
</div>
<div class="equipment-line equipment-line-even">
<input
placeholder="&#9995;"
type="text"
name="attr_itemName2"
class="item-name"
/>
<input
type="text"
name="attr_armorValue2"
value="0"
class="armor-value"
/>
</div>
<div class="equipment-line">
<input type="text" name="attr_itemName3" class="item-name" />
<input
type="text"
name="attr_armorValue3"
value="0"
class="armor-value"
/>
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_itemName4" class="item-name" />
<input
type="text"
name="attr_armorValue4"
value="0"
class="armor-value"
/>
</div>
<div class="equipment-line">
<input type="text" name="attr_itemName5" class="item-name" />
<input
type="text"
name="attr_armorValue5"
value="0"
class="armor-value"
/>
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_itemName6" class="item-name" />
<input
type="text"
name="attr_armorValue6"
value="0"
class="armor-value"
/>
</div>
</div>
<input
type="checkbox"
class="belt-pouch-toggle-show"
name="attr_showbeltpouch"
value="0"
/>
<div class="belt-pouch">
<div class="equipment-grid">
<span class="item-name">Bolsa de Cinto</span>
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_beltPouch1" class="item-name" />
</div>
<div class="equipment-line">
<input type="text" name="attr_beltPouch2" class="item-name" />
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_beltPouch3" class="item-name" />
</div>
</div>
<input
type="checkbox"
class="backpack-toggle-show"
name="attr_showbackpack"
value="0"
/>
<div class="backpack">
<div class="equipment-grid">
<span class="item-name">Mochila</span>
</div>
<div class="equipment-line">
<input type="text" name="attr_backPack1" class="item-name" />
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_backPack2" class="item-name" />
</div>
<div class="equipment-line">
<input type="text" name="attr_backPack3" class="item-name" />
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_backPack4" class="item-name" />
</div>
<div class="equipment-line">
<input type="text" name="attr_backPack5" class="item-name" />
</div>
<div class="equipment-line equipment-line-even">
<input type="text" name="attr_backPack6" class="item-name" />
</div>
</div>
<input
type="checkbox"
class="sacks-toggle-show"
name="attr_showsacks"
value="0"
/>
<div class="sacks">
<div class="equipment-grid">
<span class="item-name">Sacos</span>
</div>
<input
type="checkbox"
class="sack-toggle-show-1"
name="attr_showsack1"
value="0"
/>
<div class="equipment-line equipment-line-1">
<input type="text" name="attr_sack1" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-2">
<input type="text" name="attr_sack2" class="item-name" />
</div>
<div class="equipment-line equipment-line-3">
<input type="text" name="attr_sack3" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-4">
<input type="text" name="attr_sack4" class="item-name" />
</div>
<input
type="checkbox"
class="sack-toggle-show-2"
name="attr_showsack2"
value="0"
/>
<div class="equipment-line equipment-line-5">
<input type="text" name="attr_sack5" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-6">
<input type="text" name="attr_sack6" class="item-name" />
</div>
<div class="equipment-line equipment-line-7">
<input type="text" name="attr_sack7" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-8">
<input type="text" name="attr_sack8" class="item-name" />
</div>
<input
type="checkbox"
class="sack-toggle-show-3"
name="attr_showsack3"
value="0"
/>
<div class="equipment-line equipment-line-9">
<input type="text" name="attr_sack9" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-10">
<input type="text" name="attr_sack10" class="item-name" />
</div>
<div class="equipment-line equipment-line-11">
<input type="text" name="attr_sack11" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-12">
<input type="text" name="attr_sack12" class="item-name" />
</div>
<input
type="checkbox"
class="sack-toggle-show-4"
name="attr_showsack4"
value="0"
/>
<div class="equipment-line equipment-line-13">
<input type="text" name="attr_sack13" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-14">
<input type="text" name="attr_sack14" class="item-name" />
</div>
<div class="equipment-line equipment-line-15">
<input type="text" name="attr_sack15" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-16">
<input type="text" name="attr_sack16" class="item-name" />
</div>
<input
type="checkbox"
class="sack-toggle-show-5"
name="attr_showsack5"
value="0"
/>
<div class="equipment-line equipment-line-17">
<input type="text" name="attr_sack17" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-18">
<input type="text" name="attr_sack18" class="item-name" />
</div>
<div class="equipment-line equipment-line-19">
<input type="text" name="attr_sack19" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-20">
<input type="text" name="attr_sack20" class="item-name" />
</div>
<input
type="checkbox"
class="sack-toggle-show-6"
name="attr_showsack6"
value="0"
/>
<div class="equipment-line equipment-line-21">
<input type="text" name="attr_sack21" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-22">
<input type="text" name="attr_sack22" class="item-name" />
</div>
<div class="equipment-line equipment-line-23">
<input type="text" name="attr_sack23" class="item-name" />
</div>
<div class="equipment-line equipment-line-even equipment-line-24">
<input type="text" name="attr_sack24" class="item-name" />
</div>
</div>
<div class="retainer-items">
<div class="equipment-grid">
<span class="item-name">Itens com Auxiliares</span>
</div>
<fieldset class="repeating_retaineritems">
<div class="equipment-line">
<input class="item-name" type="text" name="attr_RetainerItemName" />
</div>
</fieldset>
</div>
<div class="mount-items">
<div class="equipment-grid">
<span class="item-name">Itens na Montaria</span>
</div>
<fieldset class="repeating_mountitems">
<div class="equipment-line">
<input class="item-name" type="text" name="attr_MountItemName" />
</div>
</fieldset>
</div>
<div class="stowed-items">
<div class="equipment-grid">
<span class="item-name">Itens Guardados</span>
</div>
<fieldset class="repeating_stoweditems">
<div class="equipment-line">
<input class="item-name" type="text" name="attr_StowedItemName" />
</div>
</fieldset>
</div>
</div>
<!-- END OF EQUIPMENT SHEET -->
<!-- MAGIC SHEET -->
<div class="sheet-magic">
<div class="magic-per-circle">
<label>
<span>1</span>
<input
type="number"
name="attr_magicCircle1Available"
title="Magias Disponíveis"
value="0"
/>
/
<input
type="number"
id="magic-circle-1-total"
name="attr_magicCircle1Total"
title="Magias Totais"
value="0"
/>
</label>
<label class="inline-flex">
<span>2</span>
<input
type="number"
name="attr_magicCircle2Available"
title="Magias Disponíveis"
value="0"
/>
/
<input
type="number"
id="magic-circle-2-total"
name="attr_magicCircle2Total"
title="Magias Totais"
value="0"
/>
</label>
<label class="inline-flex">
<span>3</span>
<input
type="number"
name="attr_magicCircle3Available"
title="Magias Disponíveis"
value="0"
/>
/
<input
type="number"
id="magic-circle-3-total"
name="attr_magicCircle3Total"
title="Magias Totais"
value="0"
/>
</label>
<label class="inline-flex">
<span>4</span>
<input
type="number"
name="attr_magicCircle4Available"
title="Magias Disponíveis"
value="0"
/>
/
<input
type="number"
id="magic-circle-4-total"
name="attr_magicCircle4Total"
title="Magias Totais"
value="0"
/>
</label>
<label class="inline-flex">
<span>5</span>
<input
type="number"
name="attr_magicCircle5Available"
title="Magias Disponíveis"
value="0"
/>
/
<input
type="number"
id="magic-circle-5-total"
name="attr_magicCircle5Total"
title="Magias Totais"
value="0"
/>
</label>
</div>
<div>
<fieldset class="repeating_magic">
<div class="magic-grid">
<span class="magic-roll"></span>
<span class="magic-memorized">Mem.</span>
<span class="magic-name">Nome</span>
<span class="magic-circle">Círculo</span>
<span class="magic-effect">Efeito</span>
</div>
<div class="magic-grid">
<div class="magic-roll">
<button
type="roll"
name="magicCast"
value="&{template:simple} {{roll=@{character_name} conjura @{magicName}}} {{efeito=[[0+@{magicEffect}]]}} {{efeitoEspelho=@{magicEffect}}} {{descrição=@{magicDescription}}}"
></button>
</div>
<input
type="number"
name="attr_magicMemorized"
checked
title="Memorizadas"
value="0"
class="magic-memorized"
/>
<input type="text" name="attr_magicName" class="magic-name" />
<input
type="number"
min="1"
name="attr_magicCircle"
value="1"
class="magic-circle"
/>
<input
type="text"
class="magic-effect"
name="attr_magicEffect"
value=""
/>
</div>
<textarea
type="text"
name="attr_magicDescription"
class="magic-description"
placeholder="Descrição"
/>
</fieldset>
</div>
</div>
<!-- END OF MAGIC SHEET -->
<!-- EVOLUTION SHEET -->
<div class="sheet-evolution">
<input type="hidden" readonly name="attr_featCount" />
<div class="feats">
<div class="feats-grid">
<button
type="roll"
class="feat-number"
value="&{template:default}{{name=Rolagem de Feito}} {{=[[1D100]]}}"
></button>
<span class="feat-description">Feitos</span>
</div>
<div class="feats-line">
<label class="feat-number">1.</label>
<input type="text" name="attr_feat1" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">2.</label>
<input type="text" name="attr_feat2" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">3.</label>
<input type="text" name="attr_feat3" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">4.</label>
<input type="text" name="attr_feat4" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">5.</label>
<input type="text" name="attr_feat5" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">6.</label>
<input type="text" name="attr_feat6" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">7.</label>
<input type="text" name="attr_feat7" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">8.</label>
<input type="text" name="attr_feat8" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">9.</label>
<input type="text" name="attr_feat9" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">10.</label>
<input type="text" name="attr_feat10" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">11.</label>
<input type="text" name="attr_feat11" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">12.</label>
<input type="text" name="attr_feat12" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">13.</label>
<input type="text" name="attr_feat13" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">14.</label>
<input type="text" name="attr_feat14" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">15.</label>
<input type="text" name="attr_feat15" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">16.</label>
<input type="text" name="attr_feat16" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">17.</label>
<input type="text" name="attr_feat17" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">18.</label>
<input type="text" name="attr_feat18" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">19.</label>
<input type="text" name="attr_feat19" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">20.</label>
<input type="text" name="attr_feat20" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">21.</label>
<input type="text" name="attr_feat21" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">22.</label>
<input type="text" name="attr_feat22" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">23.</label>
<input type="text" name="attr_feat23" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">24.</label>
<input type="text" name="attr_feat24" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">25.</label>
<input type="text" name="attr_feat25" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">26.</label>
<input type="text" name="attr_feat26" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">27.</label>
<input type="text" name="attr_feat27" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">28.</label>
<input type="text" name="attr_feat28" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">29.</label>
<input type="text" name="attr_feat29" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">30.</label>
<input type="text" name="attr_feat30" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">31.</label>
<input type="text" name="attr_feat31" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">32.</label>
<input type="text" name="attr_feat32" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">33.</label>
<input type="text" name="attr_feat33" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">34.</label>
<input type="text" name="attr_feat34" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">35.</label>
<input type="text" name="attr_feat35" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">36.</label>
<input type="text" name="attr_feat36" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">37.</label>
<input type="text" name="attr_feat37" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">38.</label>
<input type="text" name="attr_feat38" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">39.</label>
<input type="text" name="attr_feat39" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">40.</label>
<input type="text" name="attr_feat40" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">41.</label>
<input type="text" name="attr_feat41" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">42.</label>
<input type="text" name="attr_feat42" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">43.</label>
<input type="text" name="attr_feat43" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">44.</label>
<input type="text" name="attr_feat44" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">45.</label>
<input type="text" name="attr_feat45" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">46.</label>
<input type="text" name="attr_feat46" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">47.</label>
<input type="text" name="attr_feat47" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">48.</label>
<input type="text" name="attr_feat48" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">49.</label>
<input type="text" name="attr_feat49" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">50.</label>
<input type="text" name="attr_feat50" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">51.</label>
<input type="text" name="attr_feat51" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">52.</label>
<input type="text" name="attr_feat52" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">53.</label>
<input type="text" name="attr_feat53" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">54.</label>
<input type="text" name="attr_feat54" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">55.</label>
<input type="text" name="attr_feat55" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">56.</label>
<input type="text" name="attr_feat56" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">57.</label>
<input type="text" name="attr_feat57" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">58.</label>
<input type="text" name="attr_feat58" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">59.</label>
<input type="text" name="attr_feat59" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">60.</label>
<input type="text" name="attr_feat60" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">61.</label>
<input type="text" name="attr_feat61" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">62.</label>
<input type="text" name="attr_feat62" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">63.</label>
<input type="text" name="attr_feat63" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">64.</label>
<input type="text" name="attr_feat64" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">65.</label>
<input type="text" name="attr_feat65" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">66.</label>
<input type="text" name="attr_feat66" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">67.</label>
<input type="text" name="attr_feat67" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">68.</label>
<input type="text" name="attr_feat68" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">69.</label>
<input type="text" name="attr_feat69" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">70.</label>
<input type="text" name="attr_feat70" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">71.</label>
<input type="text" name="attr_feat71" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">72.</label>
<input type="text" name="attr_feat72" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">73.</label>
<input type="text" name="attr_feat73" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">74.</label>
<input type="text" name="attr_feat74" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">75.</label>
<input type="text" name="attr_feat75" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">76.</label>
<input type="text" name="attr_feat76" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">77.</label>
<input type="text" name="attr_feat77" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">78.</label>
<input type="text" name="attr_feat78" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">79.</label>
<input type="text" name="attr_feat79" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">80.</label>
<input type="text" name="attr_feat80" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">81.</label>
<input type="text" name="attr_feat81" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">82.</label>
<input type="text" name="attr_feat82" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">83.</label>
<input type="text" name="attr_feat83" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">84.</label>
<input type="text" name="attr_feat84" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">85.</label>
<input type="text" name="attr_feat85" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">86.</label>
<input type="text" name="attr_feat86" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">87.</label>
<input type="text" name="attr_feat87" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">88.</label>
<input type="text" name="attr_feat88" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">89.</label>
<input type="text" name="attr_feat89" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">90.</label>
<input type="text" name="attr_feat90" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">91.</label>
<input type="text" name="attr_feat91" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">92.</label>
<input type="text" name="attr_feat92" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">93.</label>
<input type="text" name="attr_feat93" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">94.</label>
<input type="text" name="attr_feat94" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">95.</label>
<input type="text" name="attr_feat95" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">96.</label>
<input type="text" name="attr_feat96" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">97.</label>
<input type="text" name="attr_feat97" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">98.</label>
<input type="text" name="attr_feat98" class="feat-description" />
</div>
<div class="feats-line">
<label class="feat-number">99.</label>
<input type="text" name="attr_feat99" class="feat-description" />
</div>
<div class="feats-line feats-line-even">
<label class="feat-number">100.</label>
<input type="text" name="attr_feat100" class="feat-description" />
</div>
</div>
<div class="progression">
<div class="progression-grid">
<span class="progression-by-level">Progressão por Nível</span>
</div>
<div class="progression-line">
<label class="progression-number">1.</label>
<input type="text" name="attr_prog1" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">2.</label>
<input type="text" name="attr_prog2" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">3.</label>
<input type="text" name="attr_prog3" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">4.</label>
<input type="text" name="attr_prog4" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">5.</label>
<input type="text" name="attr_prog5" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">6.</label>
<input type="text" name="attr_prog6" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">7.</label>
<input type="text" name="attr_prog7" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">8.</label>
<input type="text" name="attr_prog8" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">9.</label>
<input type="text" name="attr_prog9" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">10.</label>
<input type="text" name="attr_prog10" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">11.</label>
<input type="text" name="attr_prog11" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">12.</label>
<input type="text" name="attr_prog12" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">13.</label>
<input type="text" name="attr_prog13" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">14.</label>
<input type="text" name="attr_prog14" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">15.</label>
<input type="text" name="attr_prog15" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">16.</label>
<input type="text" name="attr_prog16" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">17.</label>
<input type="text" name="attr_prog17" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">18.</label>
<input type="text" name="attr_prog18" class="progression-description" />
</div>
<div class="progression-line">
<label class="progression-number">19.</label>
<input type="text" name="attr_prog19" class="progression-description" />
</div>
<div class="progression-line progression-line-even">
<label class="progression-number">20.</label>
<input type="text" name="attr_prog20" class="progression-description" />
</div>
</div>
</div>
<!-- END OF EVOLUTION SHEET -->
<!-- RECIPES SHEET -->
<div class="sheet-recipes">
<fieldset class="repeating_recipes">
<div class="recipe">
<div class="recipe-header">
<input
id="recipe-name"
type="text"
name="attr_recipeName"
placeholder="Receita"
/>
<button
type="roll"
value="&{template:default}{{name=@{recipeName}}}{{Método=@{recipeMethod}}} {{Preparação=@{recipePreparation}}} {{Ingredientes=@{recipeIngredients}}} {{Duração=@{recipeDuration}}} {{Custo=@{recipeCost}}} {{Descrição=@{recipeDescription}}}"
>
w
</button>
</div>
<div class="recipes-info">
<label class="recipes-line">
<span>Método</span>
<input type="text" name="attr_recipeMethod" />
</label>
<label class="recipes-line">
<span>Preparação</span>
<input type="text" name="attr_recipePreparation" />
</label>
<label class="recipes-line">
<span>Ingredientes</span>
<input type="text" name="attr_recipeIngredients" />
</label>
<label class="recipes-line">
<span>Duração</span>
<input type="text" name="attr_recipeDuration" />
</label>
<label class="recipes-line">
<span>Custo</span>
<input type="text" name="attr_recipeCost" />
</label>
<textarea placeholder="Descrição" name="attr_recipeDescription"></textarea>
</div>
</div>
</fieldset>
</div>
<!-- END OF RECIPES SHEET -->
<!-- RETAINERS SHEET -->
<div class="sheet-retainers">
<fieldset class="repeating_retainer">
<div id="retainer">
<div id="retainers-header-wrapper">
<div class="retainers-header">
<input
id="retainer-name"
type="text"
name="attr_retainerName"
placeholder="Nome"
/>
<input
id="retainer-profession"
type="text"
min="0"
name="attr_retainerProfession"
placeholder="Ofício"
/>
<select id="retainer-kind" name="attr_retainerKind">
<option value="follower" selected>Auxiliar</option>
<option value="hireling">Profissional</option>
<option value="mount">Montaria</option>
<option value="animal">Animal</option>
</select>
<select id="retainer-loyalty" name="attr_retainerLoyalty">
<option value="loyal">Leal</option>
<option value="notLoyal" selected>Não Leal</option>
</select>
</div>
<div id="retainers-header-filler"></div>
</div>
<div class="retainers-info">
<div class="retainers-hd-moral-thac0-and-saves">
<div class="retainers-hd-moral-and-thac0">
<div>
<span>DV</span>
<input
type="number"
min="0"
name="attr_retainerHD"
placeholder="0"
/>
</div>
<div class="retainers-hd-and-moral">
<button
type="roll"
value="&{template:default}{{name=Rolagem de Moral de @{retainerName}}}{{resultado MAIOR que Moral da criatura, ela foge/se rende = Resultado MENOR OU IGUAL a Moral da criatura, ela se mantém lutando}} {{Moral=@{retainerMoral}}} {{Resultado=[[2D6]]}}"
>
ML
</button>
<input
type="number"
min="0"
name="attr_retainerMoral"
placeholder="0"
/>
</div>
<div class="retainers-hd-and-moral">
<span>BA</span>
<input
type="number"
min="0"
name="attr_retainerTaco"
placeholder="0"
/>
</div>
</div>
<div class="retainer-saves">
<button
type="roll"
value="&{template:default}{{name=Rolagem de salvaguarda de @{retainerName}}}{{Resultado=[[1D20]]}}"
>
Salvaguardas
</button>
<input
hidden
id="retainer-name"
type="text"
name="attr_retainerName"
placeholder="Nome"
/>
<div>
<span> M </span>
<input
type="number"
min="0"
name="attr_retainerDeathSave"
placeholder="0"
/>
</div>
<div>
<span> C </span>
<input
type="number"
min="0"
name="attr_retainerContactSave"
placeholder="0"
/>
</div>
<div>
<span> P </span>
<input
type="number"
min="0"
name="attr_retainerParalysisSave"
placeholder="0"
/>
</div>
<div>
<span> I </span>
<input
type="number"
min="0"
name="attr_retainerIrruptionSave"
placeholder="0"
/>
</div>
<div>
<span> F </span>
<input
type="number"
min="0"
name="attr_retainerSpellSave"
placeholder="0"
/>
</div>
</div>
</div>
<label class="retainer-training-and-description">
<span>Treinamento</span>
<input type="text" name="attr_retainerTraining" />
</label>
<label class="retainer-training-and-description">
<span>Descrição</span>
<input type="text" name="attr_retainerDescription" />
</label>
</div>
</div>
</fieldset>
</div>
<!-- END OF RETAINERS SHEET -->
<!-- NOTES SHEET -->
<div class="sheet-notes">
<textarea name="attr_notes" class="notes"></textarea>
</div>
<!-- END OF NOTES SHEET -->
<!-- ROLLTEMPLATES -->
<rolltemplate class="sheet-rolltemplate-simple">
<table>
<caption>
{{roll}}
</caption>
<tbody>
{{#efeitoEspelho}}
<tr>
<td>Efeito</td>
<td>{{efeito}}</td>
</tr>
{{/efeitoEspelho}} {{#allprops() roll efeito efeitoEspelho descrição}}
<tr>
<td>{{key}}</td>
<td>{{value}}</td>
</tr>
{{/allprops() roll efeito efeitoEspelho descrição }} {{#descrição}}
<tr>
<td>Descrição</td>
<td>{{descrição}}</td>
</tr>
{{/descrição}}
</tbody>
</table>
</rolltemplate>
<!-- END OF ROLLTEMPLATES -->
<!-- SCRIPTS -->
<script type="text/worker">
// Tabs
const buttonlist = ["character", "magic", "equipment", "evolution", "recipes", "retainers", "notes"];
buttonlist.forEach((button) => {
on(`clicked:${button}`, function (event) {
setAttrs({ sheetTab: button });
});
});
const repeatingSum = (
destination,
section,
fields,
{ multiplier = 1, callback = Function.prototype }
) => {
if (!Array.isArray(fields)) fields = [fields];
getSectionIDs(`repeating_${section}`, (idArray) => {
const attrArray = idArray.reduce(
(m, id) => [
...m,
...fields.map((field) => `repeating_${section}_${id}_${field}`),
],
[]
);
getAttrs(attrArray, (v) => {
// getValue: if not a number, returns 1 if it is 'on' (checkbox), otherwise returns 0..
const getValue = (section, id, field) =>
parseFloat(v[`repeating_${section}_${id}_${field}`]) ||
(v[`repeating_${section}_${id}_${field}`] === "on" ? 1 : 0);
const sumTotal = idArray.reduce(
(total, id) =>
total +
fields.reduce(
(subtotal, field) => subtotal * getValue(section, id, field),
1
),
0
);
setAttrs({ [destination]: sumTotal * multiplier }, callback);
});
});
};
function getModifiers(value, modifiers = [-3, -2, -1, 0, 1, 2, 3]) {
if (value <= 3) {
return modifiers[0];
} else if (value >= 4 && value <= 5) {
return modifiers[1];
} else if (value >= 6 && value <= 8) {
return modifiers[2];
} else if (value >= 9 && value <= 12) {
return modifiers[3];
} else if (value >= 13 && value <= 15) {
return modifiers[4];
} else if (value >= 16 && value <= 17) {
return modifiers[5];
} else {
return modifiers[6];
}
}
on("sheet:opened change:str", function () {
getAttrs(["str"], function (values) {
const strMod = getModifiers(values.str);
let maskedStrMod = strMod;
if (strMod > 0) maskedStrMod = `+${strMod}`;
maskedStrMod = `(${maskedStrMod})`
setAttrs({ strMod, maskedStrMod });
});
});
on("sheet:opened change:int", function () {
getAttrs(["int"], function (values) {
const intMod = getModifiers(values.int);
let maskedIntMod = intMod;
if (intMod > 0) maskedIntMod = `+${intMod}`;
maskedIntMod = `(${maskedIntMod})`
setAttrs({ intMod, maskedIntMod });
});
});
on("sheet:opened change:wis", function () {
getAttrs(["wis"], function (values) {
const wisMod = getModifiers(values.wis);
let maskedWisMod = wisMod;
if (wisMod > 0) maskedWisMod = `+${wisMod}`;
maskedWisMod = `(${maskedWisMod})`
setAttrs({ wisMod, maskedWisMod });
});
});
on("sheet:opened change:dex", function () {
getAttrs(["dex"], function (values) {
const dexMod = getModifiers(values.dex);
let maskedDexMod = dexMod;
if (dexMod > 0) maskedDexMod = `+${dexMod}`;
maskedDexMod = `(${maskedDexMod})`
setAttrs({ dexMod, maskedDexMod });
});
});
on("sheet:opened change:con", function () {
getAttrs(["con"], function (values) {
const conMod = getModifiers(values.con);
let maskedConMod = conMod;
if (conMod > 0) maskedConMod = `+${conMod}`;
maskedConMod = `(${maskedConMod})`
setAttrs({ conMod, maskedConMod });
});
});
on("sheet:opened change:cha", function () {
getAttrs(["cha"], function (values) {
const chaMod = getModifiers(values.cha);
let maskedChaMod = chaMod;
if (chaMod > 0) maskedChaMod = `+${chaMod}`;
maskedChaMod = `(${maskedChaMod})`
setAttrs({ chaMod, maskedChaMod });
});
});
on("sheet:opened change:repeating_weapons:attackType change:strMod", function () {
getSectionIDs("repeating_weapons", function (idArray) {
idArray.forEach(function (id) {
const attributes = [`repeating_weapons_${id}_attackType`, "strMod"];
getAttrs(attributes, function (values) {
const attackType = values[`repeating_weapons_${id}_attackType`] || "";
const strMod = parseInt(values.strMod) || 0; // Global strMod
let bonusDamage = 0;
if (attackType.toLowerCase() === "melee") {
bonusDamage = strMod;
} else if (attackType.toLowerCase() === "ranged") {
bonusDamage = 0;
}
setAttrs({
[`repeating_weapons_${id}_bonusDamage`]: bonusDamage
});
});
});
});
});
on(
"sheet:opened change:itemName1 change:itemName2 change:itemName3 change:itemName4 change:itemName5 change:itemName6 change:armorValue1 change:armorValue2 change:armorValue3 change:armorValue4 change:armorValue5 change:armorValue6 " +
"change:backPack1 change:backPack2 change:backPack3 change:backPack4 change:backPack5 change:backPack6 " +
"change:beltPouch1 change:beltPouch2 change:beltPouch3 " +
"change:sack1 change:sack2 change:sack3 change:sack4 change:sack5 change:sack6 change:sack7 change:sack8 change:sack9 change:sack10 change:sack11 change:sack12 change:sack13 change:sack14 change:sack15 change:sack16 change:sack17 change:sack18 change:sack19 change:sack20 change:sack21 change:sack22 change:sack23 change:sack24",
function () {
getAttrs(
[
"itemName1",
"itemName2",
"itemName3",
"itemName4",
"itemName5",
"itemName6",
"armorValue1",
"armorValue2",
"armorValue3",
"armorValue4",
"armorValue5",
"armorValue6",
"backPack1",
"backPack2",
"backPack3",
"backPack4",
"backPack5",
"backPack6",
"beltPouch1",
"beltPouch2",
"beltPouch3",
"sack1",
"sack2",
"sack3",
"sack4",
"sack5",
"sack6",
"sack7",
"sack8",
"sack9",
"sack10",
"sack11",
"sack12",
"sack13",
"sack14",
"sack15",
"sack16",
"sack17",
"sack18",
"sack19",
"sack20",
"sack21",
"sack22",
"sack23",
"sack24",
],
function (values) {
let totalArmor = 0;
let shouldCheck = false;
let shouldCheckBeltPouch = false;
let sackCount = 0;
let totalItems = 0;
const sackAttributes = {};
// Verifica itens principais
for (let i = 1; i <= 6; i++) {
const itemName = values[`itemName${i}`];
const armorValue = parseInt(values[`armorValue${i}`]) || 0;
if (itemName && armorValue) {
totalArmor += armorValue;
}
if (itemName && itemName.toLowerCase().startsWith("mochila")) {
shouldCheck = true;
}
if (itemName && itemName.toLowerCase().startsWith("bolsa")) {
shouldCheckBeltPouch = true;
}
if (itemName && itemName.toLowerCase().startsWith("saco")) {
sackCount++;
}
// Cada item principal conta
if (itemName) totalItems++;
}
// Verifica itens de mochilas
if (shouldCheck) {
for (let i = 1; i <= 6; i++) {
if (values[`backPack${i}`]) totalItems++;
}
}
// Verifica itens de bolsas
if (shouldCheckBeltPouch) {
for (let i = 1; i <= 3; i++) {
if (values[`beltPouch${i}`]) totalItems++;
}
}
// Verifica itens de sacos
const sackRanges = [
[1, 4],
[5, 8],
[9, 12],
[13, 16],
[17, 20],
[21, 24],
];
sackRanges.forEach((range, index) => {
if (sackCount >= index + 1) {
for (let i = range[0]; i <= range[1]; i++) {
if (values[`sack${i}`]) totalItems++;
}
}
});
// Atualiza atributos baseados nos cálculos
setAttrs({ ac: totalArmor + 10 });
setAttrs({ showbackpack: shouldCheck ? "0" : "1" });
setAttrs({ showbeltpouch: shouldCheckBeltPouch ? "0" : "1" });
setAttrs({ showsacks: sackCount > 0 ? "0" : "1" });
setAttrs({ TotalEncumbrance: totalItems });
for (let i = 1; i <= 6; i++) {
sackAttributes[`showsack${i}`] = i <= sackCount ? "0" : "1";
}
setAttrs(sackAttributes);
}
);
}
);
on("change:repeating_retaineritems change:repeating_mountitems change:repeating_stoweditems remove:repeating_retaineritems remove:repeating_mountitems remove:repeating_stoweditems", function () {
// Função genérica para calcular os itens preenchidos
function calculateEncumbrance(fieldsetName, itemNameAttr, encumbranceAttr) {
getSectionIDs(fieldsetName, function (idArray) {
let itemCount = 0;
if (idArray.length > 0) {
const attributes = idArray.map((id) => `${fieldsetName}_${id}_${itemNameAttr}`);
getAttrs(attributes, function (values) {
idArray.forEach((id) => {
const itemName = values[`${fieldsetName}_${id}_${itemNameAttr}`];
if (itemName && itemName.trim() !== "") {
itemCount++;
}
});
// Atualiza o valor do encumbrance
const update = {};
update[encumbranceAttr] = itemCount;
setAttrs(update);
});
} else {
// Atualiza para 0 caso não haja itens no fieldset
const update = {};
update[encumbranceAttr] = 0;
setAttrs(update);
}
});
}
// Calcular para cada fieldset
calculateEncumbrance("repeating_retaineritems", "RetainerItemName", "retainerEncumbrance");
calculateEncumbrance("repeating_mountitems", "MountItemName", "mountEncumbrance");
calculateEncumbrance("repeating_stoweditems", "StowedItemName", "stowedEncumbrance");
});
on("sheet:opened change:TotalEncumbrance", function () {
getAttrs(["TotalEncumbrance"], function (values) {
const totalEncumbrance = parseInt(values.TotalEncumbrance) || 0;
let encumbrance = "-";
let moveBase = 40;
let moveExplorationOrRunning = 120;
let moveTravel = 20;
if (totalEncumbrance >= 7 && totalEncumbrance <= 8) {
encumbrance = "Leve";
moveBase = 30;
moveExplorationOrRunning = 90;
moveTravel = 15;
} else if (totalEncumbrance >= 9 && totalEncumbrance <= 10) {
encumbrance = "Média";
moveBase = 20;
moveExplorationOrRunning = 60;
moveTravel = 10;
} else if (totalEncumbrance > 10) {
encumbrance = "Pesada";
moveBase = 10;
moveExplorationOrRunning = 30;
moveTravel = 5;
}
setAttrs({
encumbrance: encumbrance,
moveBase: moveBase,
moveExplorationOrRunning: moveExplorationOrRunning,
moveTravel: moveTravel,
});
});
});
on("sheet:opened change:feat1 change:feat2 change:feat3 change:feat4 change:feat5 change:feat6 change:feat7 change:feat8 change:feat9 change:feat10 change:feat11 change:feat12 change:feat13 change:feat14 change:feat15 change:feat16 change:feat17 change:feat18 change:feat19 change:feat20 change:feat21 change:feat22 change:feat23 change:feat24 change:feat25 change:feat26 change:feat27 change:feat28 change:feat29 change:feat30 change:feat31 change:feat32 change:feat33 change:feat34 change:feat35 change:feat36 change:feat37 change:feat38 change:feat39 change:feat40 change:feat41 change:feat42 change:feat43 change:feat44 change:feat45 change:feat46 change:feat47 change:feat48 change:feat49 change:feat50 change:feat51 change:feat52 change:feat53 change:feat54 change:feat55 change:feat56 change:feat57 change:feat58 change:feat59 change:feat60 change:feat61 change:feat62 change:feat63 change:feat64 change:feat65 change:feat66 change:feat67 change:feat68 change:feat69 change:feat70 change:feat71 change:feat72 change:feat73 change:feat74 change:feat75 change:feat76 change:feat77 change:feat78 change:feat79 change:feat80 change:feat81 change:feat82 change:feat83 change:feat84 change:feat85 change:feat86 change:feat87 change:feat88 change:feat89 change:feat90 change:feat91 change:feat92 change:feat93 change:feat94 change:feat95 change:feat96 change:feat97 change:feat98 change:feat99 change:feat100", function () {
// List of feat fields
const featFields = Array.from({ length: 100 }, (_, i) => `feat${i + 1}`);
// Get all feat fields
getAttrs(featFields, function (values) {
let featCount = 0;
// Count fields with values
featFields.forEach((field) => {
if (values[field] && values[field].trim() !== "") {
featCount++;
}
});
// Set featCount attribute
setAttrs({ featCount });
});
});
</script>
<!-- END OF SCRIPTS -->