mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
1025 lines
41 KiB
HTML
1025 lines
41 KiB
HTML
<!-- Old Dragon 2e Character Sheet -->
|
|
<div class="sheet-container">
|
|
<!-- Sidebar -->
|
|
<div class="sheet-sidebar">
|
|
<!-- Atributos -->
|
|
<div class="stats">
|
|
<!-- Força -->
|
|
<div class="stat">
|
|
<div class="stat-value">
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Teste de Força}} {{rollformula= **Resultado:** [[1d20]] comparado a @{forca} (FOR) }} {{stat=[[@{forca}]]}}" name="roll_For" title="Rolar Teste de Força"><span class="font-bold">FOR</span></button>
|
|
<input type="number" name="attr_forca" value="">
|
|
</div>
|
|
<div class="stat-mod">
|
|
<div class="text-sm">M. FOR</div>
|
|
<span name="attr_mod_forca"></span>
|
|
</div>
|
|
</div>
|
|
<!-- Destreza -->
|
|
<div class="stat">
|
|
<div class="stat-value">
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Teste de Destreza}} {{rollformula= **Resultado:** [[1d20]] comparado a @{destreza} (DES) }} {{stat=[[@{destreza}]]}}" name="roll_Des" title="Rolar Teste de Destreza"><span class="font-bold">DES</span></button>
|
|
<input type="number" name="attr_destreza" value="">
|
|
</div>
|
|
<div class="stat-mod">
|
|
<div class="text-sm">M. DES</div>
|
|
<span name="attr_mod_destreza"></span>
|
|
</div>
|
|
</div>
|
|
<!-- Constituição -->
|
|
<div class="stat">
|
|
<div class="stat-value">
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Teste de Constituição}} {{rollformula= **Resultado:** [[1d20]] comparado a @{constituicao} (CON) }} {{stat=[[@{constituicao}]]}}" name="roll_Con" title="Rolar Teste de Constituição"><span class="font-bold">CON</span></button>
|
|
<input type="number" name="attr_constituicao" value="">
|
|
</div>
|
|
<div class="stat-mod">
|
|
<div class="text-sm">M. CON</div>
|
|
<span name="attr_mod_constituicao"></span>
|
|
</div>
|
|
</div>
|
|
<!-- Sabedoria -->
|
|
<div class="stat">
|
|
<div class="stat-value">
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Teste de Sabedoria}} {{rollformula= **Resultado:** [[1d20]] comparado a @{sabedoria} (SAB) }} {{stat=[[@{sabedoria}]]}}" name="roll_Sab" title="Rolar Teste de Sabedoria"><span class="font-bold">SAB</span></button>
|
|
<input type="number" name="attr_sabedoria" value="">
|
|
</div>
|
|
<div class="stat-mod">
|
|
<div class="text-sm">M. SAB</div>
|
|
<span name="attr_mod_sabedoria"></span>
|
|
</div>
|
|
</div>
|
|
<!-- Inteligência -->
|
|
<div class="stat">
|
|
<div class="stat-value">
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Teste de Inteligência}} {{rollformula= **Resultado:** [[1d20]] comparado a @{inteligencia} (INT) }} {{stat=[[@{inteligencia}]]}}" name="roll_Int" title="Rolar Teste de Inteligência"><span class="font-bold">INT</span></button>
|
|
<input type="number" name="attr_inteligencia" value="">
|
|
</div>
|
|
<div class="stat-mod">
|
|
<div class="text-sm">M. INT</div>
|
|
<span name="attr_mod_inteligencia"></span>
|
|
</div>
|
|
</div>
|
|
<!-- Carisma -->
|
|
<div class="stat">
|
|
<div class="stat-value">
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Teste de Carisma}} {{rollformula= **Resultado:** [[1d20]] comparado a @{carisma} (CAR) }} {{stat=[[@{carisma}]]}}" name="roll_Car" title="Rolar Teste de Carisma"><span class="font-bold">CAR</span></button>
|
|
<input type="number" name="attr_carisma" value="">
|
|
</div>
|
|
<div class="stat-mod">
|
|
<div class="text-sm">M. CAR</div>
|
|
<span name="attr_mod_carisma"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- JP | Jogada de Proteção -->
|
|
<div class="jp">
|
|
<div class="font-bold">JP | Jogada de Proteção</div>
|
|
<!-- JPD (Jogada de Proteção de Destreza) -->
|
|
<div class="jp-group">
|
|
<!-- JPD -->
|
|
<div class="jpd">
|
|
<span name="attr_jpd" class="attr-value"></span>
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Jogada de Proteção de Destreza}} {{rollformula= **Resultado:** [[1d20]] comparado a @{jpd} (JPD) }} {{stat=[[@{jpd}]]}}" name="roll_Jpd" title="Rolar Jogada de Proteção de Destreza" class="jp-roll"><span class="font-bold">JPD</span></button>
|
|
</div>
|
|
<div class="jp-values">
|
|
<!-- Base (Classe) -->
|
|
<div class="jp-value">
|
|
<input type="number" name="attr_jpd_class" value="">
|
|
<div class="text-xs">Classe</div>
|
|
</div>
|
|
<!-- Bônus (Raça) -->
|
|
<div class="jp-value">
|
|
<input type="number" name="attr_jpd_race" value="">
|
|
<div class="text-xs">Raça</div>
|
|
</div>
|
|
<!-- M. DES -->
|
|
<div class="jp-value">
|
|
<span name="attr_mod_destreza"></span>
|
|
<div class="text-xs">M. DES</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- JPC (Jogada de Proteção de Constituição) -->
|
|
<div class="jp-group">
|
|
<!-- JPC -->
|
|
<div class="jpc">
|
|
<span name="attr_jpc" class="attr-value"></span>
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Jogada de Proteção de Constituição}} {{rollformula= **Resultado:** [[1d20]] comparado a @{jpc} (JPC) }} {{stat=[[@{jpc}]]}}" name="roll_Jpc" title="Rolar Jogada de Proteção de Constituição" class="jp-roll"><span class="font-bold">JPC</span></button>
|
|
</div>
|
|
<div class="jp-values">
|
|
<!-- Base (Classe) -->
|
|
<div class="jp-value">
|
|
<input type="number" name="attr_jpc_class" value="">
|
|
<div class="text-xs">Classe</div>
|
|
</div>
|
|
<!-- Bônus (Raça) -->
|
|
<div class="jp-value">
|
|
<input type="number" name="attr_jpc_race" value="">
|
|
<div class="text-xs">Raça</div>
|
|
</div>
|
|
<!-- M. CON -->
|
|
<div class="jp-value">
|
|
<span name="attr_mod_constituicao"></span>
|
|
<div class="text-xs">M. CON</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- JPS (Jogada de Proteção de Sabedoria) -->
|
|
<div class="jp-group">
|
|
<!-- JPS -->
|
|
<div class="jps">
|
|
<span name="attr_jps" class="attr-value"></span>
|
|
<button type="roll" value="&{template:basicroll} {{character=@{character_name}}} {{rollname=Jogada de Proteção de Sabedoria}} {{rollformula= **Resultado:** [[1d20]] comparado a @{jps} (JPS) }} {{stat=[[@{jps}]]}}" name="roll_Jps" title="Rolar Jogada de Proteção de Sabedoria" class="jp-roll"><span class="font-bold">JPS</span></button>
|
|
</div>
|
|
<div class="jp-values">
|
|
<!-- Base (Classe) -->
|
|
<div class="jp-value">
|
|
<input type="number" name="attr_jps_class" value="">
|
|
<div class="text-xs">Classe</div>
|
|
</div>
|
|
<!-- Bônus (Raça) -->
|
|
<div class="jp-value">
|
|
<input type="number" name="attr_jps_race" value="">
|
|
<div class="text-xs">Raça</div>
|
|
</div>
|
|
<!-- M. SAB -->
|
|
<div class="jp-value">
|
|
<span name="attr_mod_sabedoria"></span>
|
|
<div class="text-xs">M. SAB</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Body -->
|
|
<div class="sheet-body">
|
|
<div class="header">
|
|
<!-- Nome; Raça; Classe; Alinhamento; Nível -->
|
|
<div class="basic-info">
|
|
<!-- Nome -->
|
|
<div>
|
|
<input type="text" name="attr_character_name">
|
|
<div class="font-bold">Nome</div>
|
|
</div>
|
|
<!-- Raça -->
|
|
<div>
|
|
<input type="text" name="attr_race">
|
|
<div class="font-bold">Raça</div>
|
|
</div>
|
|
<!-- Classe -->
|
|
<div>
|
|
<input type="text" name="attr_class">
|
|
<div class="font-bold">Classe</div>
|
|
</div>
|
|
<!-- Nível -->
|
|
<div>
|
|
<select name="attr_level">
|
|
<option value="1" selected>1º</option>
|
|
<option value="2">2º</option>
|
|
<option value="3">3º</option>
|
|
<option value="4">4º</option>
|
|
<option value="5">5º</option>
|
|
<option value="6">6º</option>
|
|
<option value="7">7º</option>
|
|
<option value="8">8º</option>
|
|
<option value="9">9º</option>
|
|
<option value="10">10º</option>
|
|
<option value="11">11º</option>
|
|
<option value="12">12º</option>
|
|
<option value="13">13º</option>
|
|
<option value="14">14º</option>
|
|
<option value="15">15º</option>
|
|
</select>
|
|
<div class="font-bold">Nível</div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<!-- Movimento; Pontos de Experiência; PV -->
|
|
<div class="additional-info">
|
|
<!-- Alinhamento -->
|
|
<div class="alignment">
|
|
<div class="font-bold">Alinhamento</div>
|
|
<select name="attr_alignment">
|
|
<option value="" selected></option>
|
|
<option value="ordeiro">Ordeiro</option>
|
|
<option value="neutro">Neutro</option>
|
|
<option value="caotico">Caotico</option>
|
|
</select>
|
|
</div>
|
|
<!-- Movimento -->
|
|
<div class="mv">
|
|
<div class="font-bold">Movimento</div>
|
|
<div class="mv-values">
|
|
<!-- Atual -->
|
|
<div class="mv-value">
|
|
<input type="number" name="attr_current_movement" value="">
|
|
<div class="text-sm">Atual</div>
|
|
</div>
|
|
<!-- Correr -->
|
|
<div class="mv-value">
|
|
<span name="attr_movement_run"></span>
|
|
<div class="text-sm">Correr</div>
|
|
</div>
|
|
<!-- Escalar -->
|
|
<div class="mv-value">
|
|
<span name="attr_movement_climb"></span>
|
|
<div class="text-sm">Escalar</div>
|
|
</div>
|
|
<!-- Nadar -->
|
|
<div class="mv-value">
|
|
<span name="attr_movement_swim"></span>
|
|
<div class="text-sm">Nadar</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Pontos de Experiência -->
|
|
<div class="xp">
|
|
<div class="font-bold">Pontos de Experiência</div>
|
|
<div class="xp-values">
|
|
<!-- Atual -->
|
|
<div class="xp-value">
|
|
<input type="text" name="attr_xp_current" value="">
|
|
<div class="text-sm">Atual</div>
|
|
</div>
|
|
<!-- Próx. Nível -->
|
|
<div class="xp-value">
|
|
<input type="text" name="attr_xp_next_level" value="">
|
|
<div class="text-sm">Próx. Nível</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- PV | Pontos de Vida -->
|
|
<div class="hp">
|
|
<div class="font-bold">PV | Pontos de Vida</div>
|
|
<div class="hp-values">
|
|
<!-- Atual -->
|
|
<div class="hp-value">
|
|
<input type="number" name="attr_hp_current" value="">
|
|
<div class="text-sm font-bold">PV Atual</div>
|
|
</div>
|
|
<!-- Total -->
|
|
<div class="hp-value">
|
|
<input type="number" name="attr_hp_max" value="">
|
|
<div class="text-sm font-bold">PV Total</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<!-- CA; BA; Economia -->
|
|
<div class="overview">
|
|
|
|
<!-- CA | Classe de Armadura -->
|
|
<div class="ca border">
|
|
<div class="font-bold">CA | Classe de Armadura</div>
|
|
<div class="ca-values">
|
|
<!-- CA -->
|
|
<div class="ca-total">
|
|
<span name="attr_ca"></span>
|
|
<div class="font-bold">CA</div>
|
|
</div>
|
|
<!-- Base -->
|
|
<div class="ca-value">
|
|
<input type="number" name="attr_ca_base" value="">
|
|
<div class="text-xs">Base</div>
|
|
</div>
|
|
<!-- M. DES -->
|
|
<div class="ca-value">
|
|
<span name="attr_mod_destreza"></span>
|
|
<div class="text-xs">M. DES</div>
|
|
</div>
|
|
<!-- Armadura -->
|
|
<div class="ca-value">
|
|
<input type="number" name="attr_ca_armor" value="">
|
|
<div class="text-xs">Armadura</div>
|
|
</div>
|
|
<!-- Escudo -->
|
|
<div class="ca-value">
|
|
<input type="number" name="attr_ca_shield" value="">
|
|
<div class="text-xs">Escudo</div>
|
|
</div>
|
|
<!-- Arma Mágica -->
|
|
<div class="ca-value">
|
|
<input type="number" name="attr_ca_magic_weapon" value="">
|
|
<div class="text-xs">Extra</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- BA | Base de Ataque -->
|
|
<div class="ba border">
|
|
<div class="font-bold">BA | Base de Ataque</div>
|
|
<div class="ba-values">
|
|
<!-- BAC -->
|
|
<div class="bac">
|
|
<span name="attr_bac" class="attr-value"></span>
|
|
<button type="roll" value="&{template:bacroll} {{character=@{character_name}}} {{rollformula= **Resultado:** [[ [[1d20]] + @{bac} ]] contra CA do alvo %NEWLINE%%NEWLINE% *Detalhes: $[[0]] + @{bac} (BAC)*}}" name="roll_BacRoll" title="Rolar ataque corpo a corpo" class="ba-roll"><span class="font-bold">BAC</span></button>
|
|
</div>
|
|
<!-- M. FOR -->
|
|
<div class="ba-value">
|
|
<span name="attr_mod_forca"></span>
|
|
<div class="text-xs">M. FOR</div>
|
|
</div>
|
|
<!-- Base -->
|
|
<div class="ba-value">
|
|
<input type="number" name="attr_ba_base" value="">
|
|
<div class="text-xs">Base</div>
|
|
</div>
|
|
<!-- M. DES -->
|
|
<div class="ba-value">
|
|
<span name="attr_mod_destreza"></span>
|
|
<div class="text-xs">M. DES</div>
|
|
</div>
|
|
<!-- BAD -->
|
|
<div class="bad">
|
|
<span name="attr_bad" class="attr-value"></span>
|
|
<button type="roll" value="&{template:badroll} {{character=@{character_name}}} {{rollformula= **Resultado:** [[ [[1d20]] + @{bad} ]] contra CA do alvo %NEWLINE%%NEWLINE% *Detalhes: $[[0]] + @{bad} (BAD)*}}" name="roll_BadRoll" title="Rolar ataque à distância" class="ba-roll"><span class="font-bold">BAD</span></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Economia -->
|
|
<div class="economy border">
|
|
<div class="font-bold">Economia</div>
|
|
<div class="currency">
|
|
<!-- PO | Peças de Ouro -->
|
|
<div class="gp">
|
|
<input type="number" name="attr_gp" value="">
|
|
<div class="font-bold gp-label" title="Peças de Ouro"><span class="font-pictos">L</span> PO</div>
|
|
</div>
|
|
<!-- PP | Peças de Prata -->
|
|
<div class="sp">
|
|
<input type="number" name="attr_sp" value="">
|
|
<div class="font-bold sp-label" title="Peças de Prata"><span class="font-pictos">L</span> PP</div>
|
|
</div>
|
|
<!-- PC | Peças de Cobre -->
|
|
<div class="cp">
|
|
<input type="number" name="attr_cp" value="">
|
|
<div class="font-bold cp-label" title="Peças de Cobre"><span class="font-pictos">L</span> PC</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="main">
|
|
<input type="hidden" class="sheet-tabstoggle" name="attr_sheetTab" value="attacks">
|
|
<div class="navigation-tabs">
|
|
<button type="action" name="act_attacks">Ataques</button>
|
|
<button type="action" name="act_skills">Habilidades Raça/Classe</button>
|
|
<button type="action" name="act_spells">Magias</button>
|
|
<button type="action" name="act_equipment">Equipamentos</button>
|
|
<button type="action" name="act_details">Detalhes</button>
|
|
<button type="action" name="act_notes">Anotações</button>
|
|
</div>
|
|
<!-- attacks tab (Ataques) -->
|
|
<div class="tab-attacks">
|
|
<div class="attack-list-header">
|
|
<div class="attack-name-label">Arma</div>
|
|
<div class="attack-range-label">Alcance</div>
|
|
<div class="attack-ba-label">BA <span style="font-family: 'Pictos';font-weight: 100;padding-left: 2px;cursor: help;" title="Apenas números inteiros positivos ou negativos (Ex: 4, -1)">i</span></div>
|
|
<div class="attack-bonus-ba-label">Bôn. BA <span style="font-family: 'Pictos';font-weight: 100;padding-left: 2px;cursor: help;" title="Apenas números inteiros positivos ou negativos (Ex: 4, -1)">i</span></div>
|
|
<div class="attack-damage-label">Dano <span style="font-family: 'Pictos';font-weight: 100;padding-left: 2px;cursor: help;" title="Apenas dados (Ex: 1d4, 2d6)">i</span></div>
|
|
<div class="attack-bonus-damage-label">Bôn. Dano <span style="font-family: 'Pictos';font-weight: 100;padding-left: 2px;cursor: help;" title="Apenas números inteiros positivos ou negativos (Ex: 4, -1)">i</span></div>
|
|
<div class="attack-properties-label">Propriedades</div>
|
|
<div class="attack-action-label">Ações</div>
|
|
</div>
|
|
<!-- Repeating Sections for attacks -->
|
|
<fieldset class="repeating_attacks">
|
|
<div class="attack-data">
|
|
<div class="attack-name">
|
|
<input type="text" name="attr_attack_name" placeholder="Nome do ataque">
|
|
</div>
|
|
<div class="attack-range">
|
|
<input type="text" name="attr_attack_range" placeholder="Alcance">
|
|
</div>
|
|
<div class="attack-ba">
|
|
<input type="number" name="attr_attack_ba" value="0" placeholder="BA">
|
|
</div>
|
|
<div class="attack-bonus-ba">
|
|
<input type="number" name="attr_attack_bonus_ba" value="0" placeholder="Bôn. BA">
|
|
</div>
|
|
<div class="attack-damage">
|
|
<input type="text" name="attr_attack_damage" value="1d0" placeholder="Dano">
|
|
</div>
|
|
<div class="attack-bonus-damage">
|
|
<input type="number" name="attr_attack_bonus_damage" value="0" placeholder="Bôn. Dano">
|
|
</div>
|
|
<div class="attack-properties">
|
|
<input type="text" name="attr_attack_properties" placeholder="Propriedades">
|
|
</div>
|
|
<div class="attack-action">
|
|
<button type="roll" value="&{template:attackroll} {{character=@{character_name}}} {{attack=@{attack_name}}} {{rollformula= **Resultado:** [[ [[1d20]] + @{attack_ba} + @{attack_bonus_ba} ]] contra CA do alvo %NEWLINE%%NEWLINE% *Detalhes: $[[0]] + @{attack_ba} (BA) + @{attack_bonus_ba} (Bônus na BA)* }}" name="roll_AttackRoll" title="Rolar ataque" class="attack-roll"><span style="font-family: 'dicefontd20'">0</span></button>
|
|
<button type="roll" value="&{template:damageroll} {{character=@{character_name}}} {{attack=@{attack_name}}} {{rollformula= **Resultado:** [[ [[@{attack_damage}]] + @{attack_bonus_damage} ]] de dano %NEWLINE%%NEWLINE% *Detalhes: $[[0]] + @{attack_bonus_damage} (Bônus no Dano)* }}" name="roll_DamageRoll" title="Rolar dano" class="damage-roll"><span style="font-family: 'Pictos Custom'">t</span></button>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
</div>
|
|
<!-- skills tab (Habilidades Raça/Classe) -->
|
|
<div class="tab-skills">
|
|
<!-- Infravisão -->
|
|
<div class="infravision">
|
|
<div><span class="font-pictos">E</span> <span class="font-bold">Infravisão</span></div>
|
|
<input type="number" name="attr_infravision" value="">
|
|
</div>
|
|
<!-- Habilidades de Raça -->
|
|
<div class="race-skills">
|
|
<div class="tab-title">Habilidades de Raça</div>
|
|
<textarea name="attr_race_skills"></textarea>
|
|
</div>
|
|
<!-- Habilidades de Classe -->
|
|
<div class="class-skills">
|
|
<div class="tab-title">Habilidades de Classe</div>
|
|
<textarea name="attr_class_skills"></textarea>
|
|
</div>
|
|
</div>
|
|
<!-- spells tab (Magias) -->
|
|
<div class="tab-spells">
|
|
<div class="spell-list-header">
|
|
<div class="spell-name-label">Magia</div>
|
|
<div class="spell-school-label">Tipo</div>
|
|
<div class="spell-circle-label">Círculo</div>
|
|
<div class="spell-range-label">Alcance</div>
|
|
<div class="spell-duration-label">Duração</div>
|
|
<div class="spell-jp-label">JP</div>
|
|
<div class="spell-slot-label">Usos</div>
|
|
<div class="spell-roll-label">Conjurar</div>
|
|
</div>
|
|
<!-- Repeating Sections for spells -->
|
|
<fieldset class="repeating_spells">
|
|
<div class="spell-data">
|
|
<div class="spell-name">
|
|
<input type="text" name="attr_spell_name" placeholder="Nome da magia">
|
|
</div>
|
|
<div class="spell-school">
|
|
<input type="text" name="attr_spell_school" placeholder="Tipo">
|
|
</div>
|
|
<div class="spell-circle">
|
|
<input type="text" name="attr_spell_circle" placeholder="Círculo">
|
|
</div>
|
|
<div class="spell-range">
|
|
<input type="text" name="attr_spell_range" placeholder="Alcance">
|
|
</div>
|
|
<div class="spell-duration">
|
|
<input type="text" name="attr_spell_duration" placeholder="Duração">
|
|
</div>
|
|
<div class="spell-jp">
|
|
<input type="text" name="attr_spell_jp" placeholder="JP">
|
|
</div>
|
|
<div class="spell-slot">
|
|
<select name="attr_spell_slot">
|
|
<option value="9">9</option>
|
|
<option value="8">8</option>
|
|
<option value="7">7</option>
|
|
<option value="6">6</option>
|
|
<option value="5">5</option>
|
|
<option value="4">4</option>
|
|
<option value="3">3</option>
|
|
<option value="2">2</option>
|
|
<option value="1">1</option>
|
|
<option value="0" selected>0</option>
|
|
</select>
|
|
</div>
|
|
<div class="spell-roll">
|
|
<button type="roll" value="&{template:spellroll} {{character=@{character_name}}} {{spell=@{spell_name}}} {{school=@{spell_school}}} {{circle=@{spell_circle}}} {{range=@{spell_range}}} {{duration=@{spell_duration}}} {{jp=@{spell_jp}}} {{description=@{spell_description}}}" name="roll_SpellRoll" title="Conjurar magia" class="spell-roll"><span style="font-family: 'Pictos Three'">g</span></button>
|
|
</div>
|
|
</div>
|
|
<input type="checkbox" name="attr_spell_description_field" class="spell-description-input spell-description-header" value="0" title="Ocultar/Mostrar"><span class="spell-description-input spell-description-header">Descrição</span>
|
|
<div class="spell-description">
|
|
<textarea name="attr_spell_description" placeholder="Descrição da magia"></textarea>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
</div>
|
|
<!-- equipment tab (Equipamentos) -->
|
|
<div class="tab-equipment">
|
|
<!-- Armas -->
|
|
<div class="equipment-list-header">
|
|
<div class="equipment-name-label">Armas</div>
|
|
<div class="equipment-quantity-label">Qtd</div>
|
|
<div class="equipment-weight-label">Peso/Carga</div>
|
|
<div class="equipment-cost-label">Valor</div>
|
|
<div class="equipment-description-label">Descrição</div>
|
|
</div>
|
|
<!-- Repeating Sections for weapon -->
|
|
<fieldset class="repeating_weapon">
|
|
<div class="equipment-data">
|
|
<div class="equipment-name">
|
|
<input type="text" name="attr_weapon_name" placeholder="Nome da equipamento">
|
|
</div>
|
|
<div class="equipment-quantity">
|
|
<input type="text" name="attr_weapon_quantity" placeholder="Qtd">
|
|
</div>
|
|
<div class="equipment-weight">
|
|
<input type="text" name="attr_weapon_weight" placeholder="Peso/Carga">
|
|
</div>
|
|
<div class="equipment-cost">
|
|
<input type="text" name="attr_weapon_cost" placeholder="Valor">
|
|
</div>
|
|
<div class="equipment-description">
|
|
<input type="text" name="attr_weapon_description" placeholder="Descrição">
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
<!-- Armaduras -->
|
|
<div class="equipment-list-header second-item">
|
|
<div class="equipment-name-label">Armaduras</div>
|
|
<div class="equipment-quantity-label">Qtd</div>
|
|
<div class="equipment-weight-label">Peso/Carga</div>
|
|
<div class="equipment-cost-label">Valor</div>
|
|
<div class="equipment-description-label">Descrição</div>
|
|
</div>
|
|
<!-- Repeating Sections for armor -->
|
|
<fieldset class="repeating_armor">
|
|
<div class="equipment-data">
|
|
<div class="equipment-name">
|
|
<input type="text" name="attr_armor_name" placeholder="Nome da equipamento">
|
|
</div>
|
|
<div class="equipment-quantity">
|
|
<input type="text" name="attr_armor_quantity" placeholder="Qtd">
|
|
</div>
|
|
<div class="equipment-weight">
|
|
<input type="text" name="attr_armor_weight" placeholder="Peso/Carga">
|
|
</div>
|
|
<div class="equipment-cost">
|
|
<input type="text" name="attr_armor_cost" placeholder="Valor">
|
|
</div>
|
|
<div class="equipment-description">
|
|
<input type="text" name="attr_armor_description" placeholder="Descrição">
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
<!-- Escudos -->
|
|
<div class="equipment-list-header second-item">
|
|
<div class="equipment-name-label">Escudos</div>
|
|
<div class="equipment-quantity-label">Qtd</div>
|
|
<div class="equipment-weight-label">Peso/Carga</div>
|
|
<div class="equipment-cost-label">Valor</div>
|
|
<div class="equipment-description-label">Descrição</div>
|
|
</div>
|
|
<!-- Repeating Sections for shield -->
|
|
<fieldset class="repeating_shield">
|
|
<div class="equipment-data">
|
|
<div class="equipment-name">
|
|
<input type="text" name="attr_shield_name" placeholder="Nome da equipamento">
|
|
</div>
|
|
<div class="equipment-quantity">
|
|
<input type="text" name="attr_shield_quantity" placeholder="Qtd">
|
|
</div>
|
|
<div class="equipment-weight">
|
|
<input type="text" name="attr_shield_weight" placeholder="Peso/Carga">
|
|
</div>
|
|
<div class="equipment-cost">
|
|
<input type="text" name="attr_shield_cost" placeholder="Valor">
|
|
</div>
|
|
<div class="equipment-description">
|
|
<input type="text" name="attr_shield_description" placeholder="Descrição">
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
<!-- Itens Gerais -->
|
|
<div class="equipment-list-header second-item">
|
|
<div class="equipment-name-label">Itens Gerais</div>
|
|
<div class="equipment-quantity-label">Qtd</div>
|
|
<div class="equipment-weight-label">Peso/Carga</div>
|
|
<div class="equipment-cost-label">Valor</div>
|
|
<div class="equipment-description-label">Descrição</div>
|
|
</div>
|
|
<!-- Repeating Sections for misc -->
|
|
<fieldset class="repeating_misc">
|
|
<div class="equipment-data">
|
|
<div class="equipment-name">
|
|
<input type="text" name="attr_misc_name" placeholder="Nome da equipamento">
|
|
</div>
|
|
<div class="equipment-quantity">
|
|
<input type="text" name="attr_misc_quantity" placeholder="Qtd">
|
|
</div>
|
|
<div class="equipment-weight">
|
|
<input type="text" name="attr_misc_weight" placeholder="Peso/Carga">
|
|
</div>
|
|
<div class="equipment-cost">
|
|
<input type="text" name="attr_misc_cost" placeholder="Valor">
|
|
</div>
|
|
<div class="equipment-description">
|
|
<input type="text" name="attr_misc_description" placeholder="Descrição">
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
<!-- Recipientes & Vasilhames -->
|
|
<div class="equipment-list-header second-item">
|
|
<div class="equipment-name-label">Recipientes & Vasilhames</div>
|
|
<div class="equipment-quantity-label">Qtd</div>
|
|
<div class="equipment-weight-label">Peso/Carga</div>
|
|
<div class="equipment-cost-label">Valor</div>
|
|
<div class="equipment-description-label">Descrição</div>
|
|
</div>
|
|
<!-- Repeating Sections for container -->
|
|
<fieldset class="repeating_container">
|
|
<div class="equipment-data">
|
|
<div class="equipment-name">
|
|
<input type="text" name="attr_container_name" placeholder="Nome da equipamento">
|
|
</div>
|
|
<div class="equipment-quantity">
|
|
<input type="text" name="attr_container_quantity" placeholder="Qtd">
|
|
</div>
|
|
<div class="equipment-weight">
|
|
<input type="text" name="attr_container_weight" placeholder="Peso/Carga">
|
|
</div>
|
|
<div class="equipment-cost">
|
|
<input type="text" name="attr_container_cost" placeholder="Valor">
|
|
</div>
|
|
<div class="equipment-description">
|
|
<input type="text" name="attr_container_description" placeholder="Descrição">
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
<!-- Montarias & Transportes -->
|
|
<div class="equipment-list-header second-item">
|
|
<div class="equipment-name-label">Montarias & Transportes</div>
|
|
<div class="equipment-quantity-label">Qtd</div>
|
|
<div class="equipment-weight-label">Peso/Carga</div>
|
|
<div class="equipment-cost-label">Valor</div>
|
|
<div class="equipment-description-label">Descrição</div>
|
|
</div>
|
|
<!-- Repeating Sections for vehicle -->
|
|
<fieldset class="repeating_vehicle">
|
|
<div class="equipment-data">
|
|
<div class="equipment-name">
|
|
<input type="text" name="attr_vehicle_name" placeholder="Nome da equipamento">
|
|
</div>
|
|
<div class="equipment-quantity">
|
|
<input type="text" name="attr_vehicle_quantity" placeholder="Qtd">
|
|
</div>
|
|
<div class="equipment-weight">
|
|
<input type="text" name="attr_vehicle_weight" placeholder="Peso/Carga">
|
|
</div>
|
|
<div class="equipment-cost">
|
|
<input type="text" name="attr_vehicle_cost" placeholder="Valor">
|
|
</div>
|
|
<div class="equipment-description">
|
|
<input type="text" name="attr_vehicle_description" placeholder="Descrição">
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</fieldset>
|
|
<!-- Carga -->
|
|
<div class="load-section">
|
|
<div class="load border">
|
|
<div class="font-bold">Carga</div>
|
|
<div class="load-values">
|
|
<!-- Carga Atual -->
|
|
<div class="current-load">
|
|
<input type="number" name="attr_current_load" value="">
|
|
<div>Atual</div>
|
|
</div>
|
|
<div class="max-load">
|
|
<input type="number" name="attr_max_load" value="">
|
|
<div>Máx.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- details tab (Detalhes) -->
|
|
<div class="tab-details">
|
|
<!-- Idiomas -->
|
|
<div class="languages">
|
|
<div class="tab-title">Idiomas</div>
|
|
<textarea class="languages-textarea" name="attr_languages"></textarea>
|
|
</div>
|
|
<!-- Reputação -->
|
|
<div class="reputation">
|
|
<div class="tab-title">Reputação</div>
|
|
<select name="attr_reputation">
|
|
<option value="0" selected>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
</select>
|
|
</div>
|
|
<!-- Aparência -->
|
|
<div class="appearance">
|
|
<div class="tab-title">Aparência</div>
|
|
<textarea name="attr_appearance"></textarea>
|
|
</div>
|
|
<!-- Personalidade -->
|
|
<div class="personality">
|
|
<div class="tab-title">Personalidade</div>
|
|
<textarea name="attr_personality"></textarea>
|
|
</div>
|
|
<!-- Histórico -->
|
|
<div class="background">
|
|
<div class="tab-title">Histórico</div>
|
|
<textarea name="attr_background"></textarea>
|
|
</div>
|
|
</div>
|
|
<!-- notes tab (Anotações) -->
|
|
<div class="tab-notes">
|
|
<!-- Anotações -->
|
|
<div class="notes">
|
|
<div class="tab-title">Anotações</div>
|
|
<textarea name="attr_notes"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Old Dragon 2e Roll Templates -->
|
|
|
|
<!-- Basic Roll (FOR, DES, CON, SAB, INT, CAR, JPD, JPC, JPS rolls) -->
|
|
<rolltemplate class="sheet-rolltemplate-basicroll">
|
|
<div class="sheet-character-name">{{character}}</div>
|
|
<h3>{{rollname}}</h3>
|
|
|
|
{{#rollformula}}
|
|
{{#^rollGreater() rollformula stat}}
|
|
<h4 class="sheet-success">SUCESSO!</h4>
|
|
{{/^rollGreater() rollformula stat}}
|
|
{{#rollGreater() rollformula stat}}
|
|
<h4 class="sheet-fail">FALHA</h4>
|
|
{{/rollGreater() rollformula stat}}
|
|
<div class="sheet-rollresult">{{rollformula}}</div>
|
|
{{/rollformula}}
|
|
<hr>
|
|
</rolltemplate>
|
|
|
|
<!-- BAC Roll -->
|
|
<rolltemplate class="sheet-rolltemplate-bacroll">
|
|
<div class="sheet-character-name">{{character}}</div>
|
|
<h3>Ataque corpo a corpo</h3>
|
|
|
|
{{#rollformula}}
|
|
<div class="sheet-rollresult">{{rollformula}}</div>
|
|
{{/rollformula}}
|
|
<hr>
|
|
</rolltemplate>
|
|
|
|
<!-- BAD Roll -->
|
|
<rolltemplate class="sheet-rolltemplate-badroll">
|
|
<div class="sheet-character-name">{{character}}</div>
|
|
<h3>Ataque à distância</h3>
|
|
|
|
{{#rollformula}}
|
|
<div class="sheet-rollresult">{{rollformula}}</div>
|
|
{{/rollformula}}
|
|
<hr>
|
|
</rolltemplate>
|
|
|
|
<!-- Attack Roll -->
|
|
<rolltemplate class="sheet-rolltemplate-attackroll">
|
|
<div class="sheet-character-name">{{character}}</div>
|
|
<h3>Ataque com {{attack}}</h3>
|
|
|
|
{{#rollformula}}
|
|
<div class="sheet-rollresult">{{rollformula}}</div>
|
|
{{/rollformula}}
|
|
<hr>
|
|
</rolltemplate>
|
|
|
|
<!-- Damage Roll -->
|
|
<rolltemplate class="sheet-rolltemplate-damageroll">
|
|
<div class="sheet-character-name">{{character}}</div>
|
|
<h3>Dano com {{attack}}</h3>
|
|
|
|
{{#rollformula}}
|
|
<div class="sheet-rollresult">{{rollformula}}</div>
|
|
{{/rollformula}}
|
|
<hr>
|
|
</rolltemplate>
|
|
|
|
<!-- Spell Roll -->
|
|
<rolltemplate class="sheet-rolltemplate-spellroll">
|
|
<div class="sheet-character-name">{{character}}</div>
|
|
<h3>{{spell}}</h3>
|
|
<div class="sheet-school">
|
|
<span>{{school}}</span>
|
|
<span>({{circle}}º círculo)</span>
|
|
</div>
|
|
<div class="sheet-range">
|
|
<strong>Alcance:</strong>
|
|
<span>{{range}}</span>
|
|
</div>
|
|
<div class="sheet-duration">
|
|
<strong>Duração:</strong>
|
|
<span>{{duration}}</span>
|
|
</div>
|
|
<div class="sheet-jp">
|
|
<strong>JP:</strong>
|
|
<span>{{jp}}</span>
|
|
</div>
|
|
<div>{{description}}</div>
|
|
<hr>
|
|
</rolltemplate>
|
|
|
|
<!-- Old Dragon 2e Script -->
|
|
<script type="text/worker">
|
|
// Initialize attributes and modifiers
|
|
on("sheet:opened", () => {
|
|
const stats = ["forca", "destreza", "constituicao", "sabedoria", "inteligencia", "carisma"];
|
|
const additionalAttrs = ["jpd_class", "jpd_race", "jpc_class", "jpc_race", "jps_class", "jps_race", "ca_base", "ca_armor", "ca_shield", "ca_magic_weapon", "ba_base"];
|
|
const attrsToGet = stats.concat(stats.map(stat => `mod_${stat}`)).concat(additionalAttrs);
|
|
|
|
getAttrs(attrsToGet, values => {
|
|
const initialAttrs = {};
|
|
|
|
stats.forEach(stat => {
|
|
if (!values[stat]) {
|
|
initialAttrs[stat] = "10";
|
|
}
|
|
if (!values[`mod_${stat}`]) {
|
|
initialAttrs[`mod_${stat}`] = "+0";
|
|
}
|
|
});
|
|
|
|
additionalAttrs.forEach(attr => {
|
|
if (!values[attr]) {
|
|
initialAttrs[attr] = "0";
|
|
}
|
|
});
|
|
|
|
if (Object.keys(initialAttrs).length > 0) {
|
|
setAttrs(initialAttrs);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Calculate modifiers
|
|
const int = score => parseInt(score, 10) || 0;
|
|
const stats = ["forca", "destreza", "constituicao", "sabedoria", "inteligencia", "carisma"];
|
|
|
|
stats.forEach(stat => {
|
|
on(`change:${stat}`, () => {
|
|
getAttrs([stat], values => {
|
|
const stat_base = int(values[stat]);
|
|
let stat_mod = 0;
|
|
if (stat_base < 2) stat_mod = "-4";
|
|
else if (stat_base < 4) stat_mod = "-3";
|
|
else if (stat_base < 6) stat_mod = "-2";
|
|
else if (stat_base < 9) stat_mod = "-1";
|
|
else if (stat_base < 13) stat_mod = "+0";
|
|
else if (stat_base < 15) stat_mod = "+1";
|
|
else if (stat_base < 17) stat_mod = "+2";
|
|
else if (stat_base < 19) stat_mod = "+3";
|
|
else stat_mod = "+4";
|
|
|
|
setAttrs({
|
|
[`mod_${stat}`]: stat_mod
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculate JPD
|
|
on("change:jpd change:jpd_class change:jpd_race change:mod_destreza", function() {
|
|
getAttrs(["jpd", "jpd_class", "jpd_race", "mod_destreza"], function(values) {
|
|
let jpd = int(values.jpd);
|
|
let jpd_class = int(values.jpd_class);
|
|
let jpd_race = int(values.jpd_race);
|
|
let mod_des = int(values.mod_destreza);
|
|
|
|
let jpd_total = jpd_class + jpd_race + mod_des;
|
|
setAttrs({
|
|
jpd: jpd_total
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculate JPC
|
|
on("change:jpc change:jpc_class change:jpc_race change:mod_constituicao", function() {
|
|
getAttrs(["jpc", "jpc_class", "jpc_race", "mod_constituicao"], function(values) {
|
|
let jpc = int(values.jpc);
|
|
let jpc_class = int(values.jpc_class);
|
|
let jpc_race = int(values.jpc_race);
|
|
let mod_cos = int(values.mod_constituicao);
|
|
|
|
let jpc_total = jpc_class + jpc_race + mod_cos;
|
|
setAttrs({
|
|
jpc: jpc_total
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculate JPS
|
|
on("change:jps change:jps_class change:jps_race change:mod_sabedoria", function() {
|
|
getAttrs(["jps", "jps_class", "jps_race", "mod_sabedoria"], function(values) {
|
|
let jps = int(values.jps);
|
|
let jps_class = int(values.jps_class);
|
|
let jps_race = int(values.jps_race);
|
|
let mod_sab = int(values.mod_sabedoria);
|
|
|
|
let jps_total = jps_class + jps_race + mod_sab;
|
|
setAttrs({
|
|
jps: jps_total
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculate CA
|
|
on("change:ca_base change:mod_destreza change:ca_armor change:ca_shield change:ca_magic_weapon", function() {
|
|
getAttrs(["ca_base", "mod_destreza", "ca_armor", "ca_shield", "ca_magic_weapon"], function(values) {
|
|
let ca_base = int(values.ca_base);
|
|
let mod_des = int(values.mod_destreza);
|
|
let ca_armor = int(values.ca_armor);
|
|
let ca_shield = int(values.ca_shield);
|
|
let ca_magic_weapon = int(values.ca_magic_weapon);
|
|
|
|
let ca_total = ca_base + mod_des + ca_armor + ca_shield + ca_magic_weapon;
|
|
setAttrs({
|
|
ca: ca_total
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculate BA
|
|
on("change:ba_base change:mod_forca change:mod_destreza", function() {
|
|
getAttrs(["ba_base", "mod_forca", "mod_destreza"], function(values) {
|
|
let ba_base = int(values.ba_base);
|
|
let mod_for = int(values.mod_forca);
|
|
let mod_des = int(values.mod_destreza);
|
|
|
|
let bac = ba_base + mod_for;
|
|
let bad = ba_base + mod_des;
|
|
setAttrs({
|
|
bac: bac,
|
|
bad: bad
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculate movement
|
|
on("change:current_movement", function() {
|
|
getAttrs(["current_movement"], function(values) {
|
|
let current_mv = values.current_movement;
|
|
|
|
let mv_run = Math.floor(current_mv * 2);
|
|
let mv_climb = Math.floor(current_mv - 2);
|
|
let mv_swim = Math.floor(current_mv / 2);
|
|
|
|
setAttrs({
|
|
movement_run: mv_run,
|
|
movement_climb: mv_climb,
|
|
movement_swim: mv_swim
|
|
});
|
|
});
|
|
});
|
|
|
|
// Tabs system
|
|
const buttonlist = ["attacks", "skills", "spells", "equipment", "details", "notes"];
|
|
buttonlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
sheetTab: button
|
|
});
|
|
});
|
|
});
|
|
|
|
// Data validation
|
|
attack_stats = ["attack_ba", "attack_bonus_ba", "attack_bonus_damage"];
|
|
|
|
attack_stats.forEach(stat => {
|
|
on(`change:repeating_attacks:${stat}`, () => {
|
|
getAttrs([`repeating_attacks_${stat}`], values => {
|
|
const stat_value = values[`repeating_attacks_${stat}`];
|
|
pattern = /^-?\d*?\d+$/;
|
|
|
|
if (!pattern.test(stat_value)) {
|
|
setAttrs({
|
|
[`repeating_attacks_${stat}`]: ""
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_attacks:attack_damage", function() {
|
|
getAttrs(["repeating_attacks_attack_damage"], function(values) {
|
|
let attack_damage = values.repeating_attacks_attack_damage;
|
|
pattern = /^\d+d{1}\d+$/;
|
|
if (!pattern.test(attack_damage)) {
|
|
setAttrs({
|
|
repeating_attacks_attack_damage: ""
|
|
});
|
|
};
|
|
});
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
|