mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
1967 lines
66 KiB
HTML
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="✋"
|
|
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="✋"
|
|
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 -->
|