mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
1778 lines
91 KiB
HTML
1778 lines
91 KiB
HTML
<div class="main-wrapper">
|
||
|
||
<input type="radio" name="attr_tab_selector" class="sheet-tab-input sheet-tab1" value="1" checked />
|
||
<span class="sheet-tab-visual">DATOS Y HABILIDADES</span>
|
||
|
||
<span class="sheet-spacer"></span>
|
||
|
||
<input type="radio" name="attr_tab_selector" class="sheet-tab-input sheet-tab2" value="2" />
|
||
<span class="sheet-tab-visual">ESTADO Y EQUIPO</span>
|
||
|
||
<br><br><hr>
|
||
|
||
<div class="sheet-page-container sheet-page-1">
|
||
|
||
<h3 class="sheet-full-width-title">DATOS PERSONALES</h3>
|
||
<div class="sheet-personal-data-row">
|
||
<div class="sheet-data-box"><label>Nombre:</label> <input type="text" name="attr_character_name" style="width: 150px;"></div>
|
||
<div class="sheet-data-box"><label>Nacionalidad:</label> <input type="text" name="attr_nacionalidad" style="width: 100px;"></div>
|
||
<div class="sheet-data-box"><label>Nivel Social:</label> <input type="text" name="attr_nivel_social" style="width: 40px;"></div>
|
||
<div class="sheet-data-box"><label>Edad:</label> <input type="number" name="attr_edad"></div>
|
||
<div class="sheet-data-box"><label>Sexo:</label> <input type="text" name="attr_sexo" style="width: 60px;"></div>
|
||
<div class="sheet-data-box"><label>Altura:</label> <input type="text" name="attr_altura" style="width: 60px;"></div>
|
||
<div class="sheet-data-box"><label>Peso:</label> <input type="number" name="attr_peso"></div>
|
||
|
||
<div class="sheet-data-box" style="display: flex; align-items: flex-end; padding-bottom: 2px;">
|
||
<button type="action" name="act_roll_sombra" class="sheet-btn-tirada_sombra">Tirada Sombra</button>
|
||
</div>
|
||
<div class="sheet-personal-data-row">
|
||
<div class="sheet-data-box"><label>Pasos:</label> <input type="text" name="attr_character_pasos" style="width: 500px;"></div>
|
||
<div class="sheet-data-box"><label>Exp. Actual:</label> <input type="text" name="attr_character_exp_actual" style="width: 40px;"></div>
|
||
<div class="sheet-data-box"><label>Exp. Acumulada:</label> <input type="text" name="attr_character_exp_acumulada" style="width: 60px;"></div>
|
||
</div>
|
||
|
||
|
||
<!-- SECCIÓN DE ESTADO PESTAÑA 1 INTEGRADA -->
|
||
<div class="sheet-estado-p1-container">
|
||
<h3 class="sheet-full-width-title">ESTADO DEL PERSONAJE</h3>
|
||
|
||
<div class="sheet-alerts-wrapper-p1">
|
||
|
||
<!-- PRIMERA FILA: BANNERS CRÍTICOS -->
|
||
<div class="sheet-flex-row-status">
|
||
<input type="hidden" name="attr_salud_status" class="sheet-health-toggle" value="normal">
|
||
<div class="sheet-alert-banner sheet-alert-danger sheet-msg-inconsciente">INCONSCIENTE</div>
|
||
<div class="sheet-alert-banner sheet-alert-danger sheet-msg-moribundo">MORIBUNDO</div>
|
||
|
||
<input type="hidden" name="attr_sobrecarga_status" class="sheet-sobrecarga-toggle" value="0">
|
||
<div class="sheet-alert-banner sheet-alert-warning sheet-msg-sobrecarga">SOBRECARGADO</div>
|
||
|
||
<input type="hidden" name="attr_sangrado_l_status" class="sheet-sangrado-l-toggle" value="0">
|
||
<div class="sheet-alert-banner sheet-alert-bleeding sheet-msg-sangrado-1">Sangrado Leve +1PH/minuto</div>
|
||
<div class="sheet-alert-banner sheet-alert-bleeding sheet-msg-sangrado-2">Sangrado leve +2PH/minuto</div>
|
||
<div class="sheet-alert-banner sheet-alert-bleeding sheet-msg-sangrado-3">Sangrado leve +3PH/minuto</div>
|
||
|
||
<input type="hidden" name="attr_sangrado_g_status" class="sheet-toggle" value="0">
|
||
<div class="sheet-alert-banner sheet-alert-bleeding sheet-msg-show">Sangrado Grave: +1PH/5as</div>
|
||
</div>
|
||
|
||
<!-- SEGUNDA FILA: DETALLES DE HERIDAS (Solo aparecen si hay herida) -->
|
||
<div class="sheet-flex-row-wounds">
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_cabeza_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve Cabeza: +3 todas acciones</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_pecho_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve Pecho: +3 acciones físicas</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_pecho_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Grave Pecho: +5 acciones físicas</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_brazod_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve B.Dcho: +3 acciones brazo</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_brazod_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida GraveB.Dcho: Inutilizado</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_brazoi_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve B.Izdo: +3 acciones brazo</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_brazoi_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Grave B.Izdo: Inutilizado</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_abdomen_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve Abdomen: +3 todas acciones/ Mov 1/2</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_abdomen_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Grave Abdomen: DERRIBADO/Sin acciones</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_piernai_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve P.Izda: Deseq / Mov 1/2</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_piernai_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Grave P.Izda: Inutilizada / DERRIBADO</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_piernad_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Leve P.Dcha: Deseq / Mov 1/2</div></div>
|
||
<div class="sheet-alert-item"><input type="hidden" name="attr_status_piernad_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-tag sheet-msg-show">Herida Grave P.Dcha: Inutilizada / DERRIBADO</div></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-four-column-layout">
|
||
|
||
<div class="sheet-column">
|
||
<h3>CARACTERÍSTICAS</h3>
|
||
<div class="sheet-atributos-compact">
|
||
<div class="sheet-atributo-grupo">
|
||
<div class="sheet-header-with-input">
|
||
<h4>CUERPO</h4> <input type="number" name="attr_cuerpo" value="5" class="sheet-characteristic-input">
|
||
</div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_fue" class="sheet-skill-roll-btn">t</button>
|
||
<label>Fuerza:</label> <input type="number" name="attr_fue" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_vit" class="sheet-skill-roll-btn">t</button>
|
||
<label>Vitalidad:</label> <input type="number" name="attr_vit" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_res" class="sheet-skill-roll-btn">t</button>
|
||
<label>Resistencia:</label> <input type="number" name="attr_res" value="5"></div>
|
||
</div>
|
||
<div class="sheet-atributo-grupo">
|
||
<div class="sheet-header-with-input">
|
||
<h4>DESTREZA</h4> <input type="number" name="attr_destreza" value="5" class="sheet-characteristic-input">
|
||
</div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_agi" class="sheet-skill-roll-btn">t</button>
|
||
<label>Agilidad:</label> <input type="number" name="attr_agi" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_coo" class="sheet-skill-roll-btn">t</button>
|
||
<label>Coordinación:</label> <input type="number" name="attr_coo" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_vel" class="sheet-skill-roll-btn">t</button>
|
||
<label>Velocidad:</label> <input type="number" name="attr_vel" value="5"></div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-atributo-grupo">
|
||
<div class="sheet-header-with-input">
|
||
<h4>INSTINTO</h4> <input type="number" name="attr_instinto" value="5" class="sheet-characteristic-input">
|
||
</div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_per" class="sheet-skill-roll-btn">t</button>
|
||
<label>Percepción:</label> <input type="number" name="attr_per" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_con" class="sheet-skill-roll-btn">t</button>
|
||
<label>Concentración:</label> <input type="number" name="attr_con" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_int" class="sheet-skill-roll-btn">t</button>
|
||
<label>Intuición:</label> <input type="number" name="attr_int" value="5"></div>
|
||
|
||
</div>
|
||
|
||
<div class="sheet-atributo-grupo">
|
||
<div class="sheet-header-with-input">
|
||
<h4>INTELIGENCIA</h4> <input type="number" name="attr_inteligencia" value="5" class="sheet-characteristic-input">
|
||
</div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_mem" class="sheet-skill-roll-btn">t</button>
|
||
<label>Memoria:</label> <input type="number" name="attr_mem" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_log" class="sheet-skill-roll-btn">t</button>
|
||
<label>Lógica:</label> <input type="number" name="attr_log" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_inv" class="sheet-skill-roll-btn">t</button>
|
||
<label>Inventiva:</label> <input type="number" name="attr_inv" value="5"></div>
|
||
</div>
|
||
<div class="sheet-atributo-grupo">
|
||
<div class="sheet-header-with-input">
|
||
<h4>PRESENCIA</h4> <input type="number" name="attr_presencia" value="5" class="sheet-characteristic-input">
|
||
</div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_car" class="sheet-skill-roll-btn">t</button>
|
||
<label>Carisma:</label> <input type="number" name="attr_car" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_vol" class="sheet-skill-roll-btn">t</button>
|
||
<label>Voluntad:</label> <input type="number" name="attr_vol" value="5"></div>
|
||
<div class="sheet-sub-row">
|
||
<span></span><button type="action" name="act_roll_apa" class="sheet-skill-roll-btn">t</button>
|
||
<label>Apariencia:</label> <input type="number" name="attr_apa" value="5"></div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="sheet-column">
|
||
<h3>BÁSICAS</h3>
|
||
<div class="sheet-skills-container">
|
||
<div class="sheet-skill-row sheet-skill-header">
|
||
|
||
<span></span> <!-- Espacio para el botón -->
|
||
<span>Hab.</span> <span>At.</span> <span>Bs</span> <span>Nv</span> <span>Tot</span>
|
||
</div>
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_burocracia" class="sheet-skill-roll-btn">t</button>
|
||
<span>Burocracia</span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_burocracia_base" readonly>
|
||
<input type="number" name="attr_burocracia_nivel">
|
||
<input type="number" name="attr_burocracia_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_callejeo" class="sheet-skill-roll-btn">t</button>
|
||
<span>Callejeo</span>
|
||
<span class="sheet-attr-ref">INT</span>
|
||
<input type="number" name="attr_callejeo_base" readonly>
|
||
<input type="number" name="attr_callejeo_nivel">
|
||
<input type="number" name="attr_callejeo_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_camuflar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Camuflar</span>
|
||
<span class="sheet-attr-ref">INV</span>
|
||
<input type="number" name="attr_camuflar_base" readonly>
|
||
<input type="number" name="attr_camuflar_nivel">
|
||
<input type="number" name="attr_camuflar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_conocimiento" class="sheet-skill-roll-btn">t</button>
|
||
<span>Conocimiento</span>
|
||
<span class="sheet-attr-ref">INV</span>
|
||
<input type="number" name="attr_conocimiento_base" readonly>
|
||
<input type="number" name="attr_conocimiento_nivel">
|
||
<input type="number" name="attr_conocimiento_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_descubrir" class="sheet-skill-roll-btn">t</button>
|
||
<span>Descubrir</span>
|
||
<span class="sheet-attr-ref">PER</span>
|
||
<input type="number" name="attr_descubrir_base" readonly>
|
||
<input type="number" name="attr_descubrir_nivel">
|
||
<input type="number" name="attr_descubrir_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_dialectica" class="sheet-skill-roll-btn">t</button>
|
||
<span>Dialéctica</span>
|
||
<span class="sheet-attr-ref">CAR</span>
|
||
<input type="number" name="attr_dialectica_base" readonly>
|
||
<input type="number" name="attr_dialectica_nivel">
|
||
<input type="number" name="attr_dialectica_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_equitacion" class="sheet-skill-roll-btn">t</button>
|
||
<span>Equitacion</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_equitacion_base" readonly>
|
||
<input type="number" name="attr_equitacion_nivel">
|
||
<input type="number" name="attr_equitacion_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_esconder" class="sheet-skill-roll-btn">t</button>
|
||
<span>Esconder</span>
|
||
<span class="sheet-attr-ref">INT</span>
|
||
<input type="number" name="attr_esconder_base" readonly>
|
||
<input type="number" name="attr_esconder_nivel">
|
||
<input type="number" name="attr_esconder_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_escuchar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Escuchar</span>
|
||
<span class="sheet-attr-ref">PER</span>
|
||
<input type="number" name="attr_escuchar_base" readonly>
|
||
<input type="number" name="attr_escuchar_nivel">
|
||
<input type="number" name="attr_escuchar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_falsificar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Falsificar</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_falsificar_base" readonly>
|
||
<input type="number" name="attr_falsificar_nivel">
|
||
<input type="number" name="attr_falsificar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_geografia" class="sheet-skill-roll-btn">t</button>
|
||
<span>Geografia</span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_geografia_base" readonly>
|
||
<input type="number" name="attr_geografia_nivel">
|
||
<input type="number" name="attr_geografia_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_lanzar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Lanzar</span>
|
||
<span class="sheet-attr-ref">FUE</span>
|
||
<input type="number" name="attr_lanzar_base" readonly>
|
||
<input type="number" name="attr_lanzar_nivel">
|
||
<input type="number" name="attr_lanzar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_nadar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Nadar</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_nadar_base" readonly>
|
||
<input type="number" name="attr_nadar_nivel">
|
||
<input type="number" name="attr_nadar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_ocultar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Ocultar</span>
|
||
<span class="sheet-attr-ref">INV</span>
|
||
<input type="number" name="attr_ocultar_base" readonly>
|
||
<input type="number" name="attr_ocultar_nivel">
|
||
<input type="number" name="attr_ocultar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_orientacion" class="sheet-skill-roll-btn">t</button>
|
||
<span>Orientacion</span>
|
||
<span class="sheet-attr-ref">LOG</span>
|
||
<input type="number" name="attr_orientacion_base" readonly>
|
||
<input type="number" name="attr_orientacion_nivel">
|
||
<input type="number" name="attr_orientacion_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_rastrear" class="sheet-skill-roll-btn">t</button>
|
||
<span>Rastrear</span>
|
||
<span class="sheet-attr-ref">LOG</span>
|
||
<input type="number" name="attr_rastrear_base" readonly>
|
||
<input type="number" name="attr_rastrear_nivel">
|
||
<input type="number" name="attr_rastrear_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_robar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Robar</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_robar_base" readonly>
|
||
<input type="number" name="attr_robar_nivel">
|
||
<input type="number" name="attr_robar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_saltar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Saltar</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_saltar_base" readonly>
|
||
<input type="number" name="attr_saltar_nivel">
|
||
<input type="number" name="attr_saltar_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_seduccion" class="sheet-skill-roll-btn">t</button>
|
||
<span>Seducción</span>
|
||
<span class="sheet-attr-ref">CAR</span>
|
||
<input type="number" name="attr_seduccion_base" readonly>
|
||
<input type="number" name="attr_seduccion_nivel">
|
||
<input type="number" name="attr_seduccion_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_trepar" class="sheet-skill-roll-btn">t</button>
|
||
<span>Trepar</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_trepar_base" readonly>
|
||
<input type="number" name="attr_trepar_nivel">
|
||
<input type="number" name="attr_trepar_total" readonly class="sheet-total-box">
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="sheet-column">
|
||
<h3>ESPECIALES</h3>
|
||
<div class="sheet-skills-container">
|
||
<div class="sheet-skill-row sheet-skill-header">
|
||
<span></span> <!-- Espacio para el botón -->
|
||
<span>Hab.</span> <span>At.</span> <span>Bs</span> <span>Nv</span> <span>Tot</span></div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_cerraduras" class="sheet-skill-roll-btn">t</button>
|
||
<span>Cerradura</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_cerraduras_base" readonly>
|
||
<input type="number" name="attr_cerraduras_nivel">
|
||
<input type="number" name="attr_cerraduras_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_comunicaciones" class="sheet-skill-roll-btn">t</button>
|
||
<span>Comunicaciones</span>
|
||
<span class="sheet-attr-ref">CON</span>
|
||
<input type="number" name="attr_comunicaciones_base" readonly>
|
||
<input type="number" name="attr_comunicaciones_nivel">
|
||
<input type="number" name="attr_comunicaciones_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_explosivos" class="sheet-skill-roll-btn">t</button>
|
||
<span>Explosivos</span>
|
||
<span class="sheet-attr-ref">LOG</span>
|
||
<input type="number" name="attr_explosivos_base" readonly>
|
||
<input type="number" name="attr_explosivos_nivel">
|
||
<input type="number" name="attr_explosivos_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_ingenios" class="sheet-skill-roll-btn">t</button>
|
||
<span>Ingenios</span>
|
||
<span class="sheet-attr-ref">INV</span>
|
||
<input type="number" name="attr_ingenios_base" readonly>
|
||
<input type="number" name="attr_ingenios_nivel">
|
||
<input type="number" name="attr_ingenios_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_interrogacion" class="sheet-skill-roll-btn">t</button>
|
||
<span>Interrogación</span>
|
||
<span class="sheet-attr-ref">VOL</span>
|
||
<input type="number" name="attr_interrogacion_base" readonly>
|
||
<input type="number" name="attr_interrogacion_nivel">
|
||
<input type="number" name="attr_interrogacion_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_mecanica" class="sheet-skill-roll-btn">t</button>
|
||
<span>Mecánica</span>
|
||
<span class="sheet-attr-ref">CON</span>
|
||
<input type="number" name="attr_mecanica_base" readonly>
|
||
<input type="number" name="attr_mecanica_nivel">
|
||
<input type="number" name="attr_mecanica_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_medicina" class="sheet-skill-roll-btn">t</button>
|
||
<span>Medicina</span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_medicina_base" readonly>
|
||
<input type="number" name="attr_medicina_nivel">
|
||
<input type="number" name="attr_medicina_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_paracaidismo" class="sheet-skill-roll-btn">t</button>
|
||
<span>Paracaidismo</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_paracaidismo_base" readonly>
|
||
<input type="number" name="attr_paracaidismo_nivel">
|
||
<input type="number" name="attr_paracaidismo_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_primeros_auxilios" class="sheet-skill-roll-btn">t</button>
|
||
<span>Primeros Auxilios</span>
|
||
<span class="sheet-attr-ref">INT</span>
|
||
<input type="number" name="attr_primeros_auxilios_base" readonly>
|
||
<input type="number" name="attr_primeros_auxilios_nivel">
|
||
<input type="number" name="attr_primeros_auxilios_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_quimica" class="sheet-skill-roll-btn">t</button>
|
||
<span>Química</span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_quimica_base" readonly>
|
||
<input type="number" name="attr_quimica_nivel">
|
||
<input type="number" name="attr_quimica_total" readonly class="sheet-total-box">
|
||
</div>
|
||
<div class="sheet-skill-bracket">
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_motos" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar motos</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_motos_base" readonly>
|
||
<input type="number" name="attr_pilotar_motos_nivel">
|
||
<input type="number" name="attr_pilotar_motos_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_coches" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar coches</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_coches_base" readonly>
|
||
<input type="number" name="attr_pilotar_coches_nivel">
|
||
<input type="number" name="attr_pilotar_coches_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_camiones" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar camiones</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_camiones_base" readonly>
|
||
<input type="number" name="attr_pilotar_camiones_nivel">
|
||
<input type="number" name="attr_pilotar_camiones_total" readonly class="sheet-total-box">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_tanques" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar tanques</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_tanques_base" readonly>
|
||
<input type="number" name="attr_pilotar_tanques_nivel">
|
||
<input type="number" name="attr_pilotar_tanques_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-bracket">
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_cazas" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar cazas</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_cazas_base" readonly>
|
||
<input type="number" name="attr_pilotar_cazas_nivel">
|
||
<input type="number" name="attr_pilotar_cazas_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_bombarderos" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar bombarderos</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_bombarderos_base" readonly>
|
||
<input type="number" name="attr_pilotar_bombarderos_nivel">
|
||
<input type="number" name="attr_pilotar_bombarderos_total" readonly class="sheet-total-box">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_barcas" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar barcas</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_barcas_base" readonly>
|
||
<input type="number" name="attr_pilotar_barcas_nivel">
|
||
<input type="number" name="attr_pilotar_barcas_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pilotar_buques" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pilotar buques</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pilotar_buques_base" readonly>
|
||
<input type="number" name="attr_pilotar_buques_nivel">
|
||
<input type="number" name="attr_pilotar_buques_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-root-skill sheet-skill-restricted">
|
||
<button type="action" name="act_roll_idioma_1" class="sheet-skill-roll-btn">t</button>
|
||
<span><input type="text" name="attr_idioma_1_nombre" placeholder="Idioma..." class="sheet-text-line"></span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_idioma_1_base" readonly>
|
||
<input type="number" name="attr_idioma_1_nivel">
|
||
<input type="number" name="attr_idioma_1_total" readonly class="sheet-total-box">
|
||
</div>
|
||
<div class="sheet-skill-row sheet-root-skill sheet-skill-restricted">
|
||
<button type="action" name="act_roll_idioma_2" class="sheet-skill-roll-btn">t</button>
|
||
<span><input type="text" name="attr_idioma_2_nombre" placeholder="Idioma..." class="sheet-text-line"></span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_idioma_2_base" readonly>
|
||
<input type="number" name="attr_idioma_2_nivel">
|
||
<input type="number" name="attr_idioma_2_total" readonly class="sheet-total-box">
|
||
</div>
|
||
<div class="sheet-skill-row sheet-root-skill sheet-skill-restricted">
|
||
<button type="action" name="act_roll_idioma_3" class="sheet-skill-roll-btn">t</button>
|
||
<span><input type="text" name="attr_idioma_3_nombre" placeholder="Idioma..." class="sheet-text-line"></span>
|
||
<span class="sheet-attr-ref">MEM</span>
|
||
<input type="number" name="attr_idioma_3_base" readonly>
|
||
<input type="number" name="attr_idioma_3_nivel">
|
||
<input type="number" name="attr_idioma_3_total" readonly class="sheet-total-box">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-column">
|
||
<h3>DE COMBATE</h3>
|
||
<div class="sheet-skills-container">
|
||
<div class="sheet-skill-row sheet-skill-header">
|
||
<span></span> <!-- Espacio para el botón -->
|
||
<span>Hab.</span> <span>At.</span> <span>Bs</span> <span>Nv</span> <span>Tot</span></div>
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_pistola" class="sheet-skill-roll-btn">t</button>
|
||
<span>Pistola</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_pistola_base" readonly>
|
||
<input type="number" name="attr_pistola_nivel">
|
||
<input type="number" name="attr_pistola_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-bracket">
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_fusil" class="sheet-skill-roll-btn">t</button>
|
||
<span>Fusil</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_fusil_base" readonly>
|
||
<input type="number" name="attr_fusil_nivel">
|
||
<input type="number" name="attr_fusil_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_bayoneta" class="sheet-skill-roll-btn">t</button>
|
||
<span>Bayoneta</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_bayoneta_base" readonly>
|
||
<input type="number" name="attr_bayoneta_nivel">
|
||
<input type="number" name="attr_bayoneta_total" readonly class="sheet-total-box">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-skill-bracket">
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_subfusil" class="sheet-skill-roll-btn">t</button>
|
||
<span>Subfusil</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_subfusil_base" readonly>
|
||
<input type="number" name="attr_subfusil_nivel">
|
||
<input type="number" name="attr_subfusil_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_ametralladora" class="sheet-skill-roll-btn">t</button>
|
||
<span>Ametralladora</span>
|
||
<span class="sheet-attr-ref">FUE</span>
|
||
<input type="number" name="attr_ametralladora_base" readonly>
|
||
<input type="number" name="attr_ametralladora_nivel">
|
||
<input type="number" name="attr_ametralladora_total" readonly class="sheet-total-box">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_lanzallamas" class="sheet-skill-roll-btn">t</button>
|
||
<span>Lanzallamas</span>
|
||
<span class="sheet-attr-ref">COO</span>
|
||
<input type="number" name="attr_lanzallamas_base" readonly>
|
||
<input type="number" name="attr_lanzallamas_nivel">
|
||
<input type="number" name="attr_lanzallamas_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_lanzagranadas" class="sheet-skill-roll-btn">t</button>
|
||
<span>Lanzagranadas</span>
|
||
<span class="sheet-attr-ref">FUE</span>
|
||
<input type="number" name="attr_lanzagranadas_base" readonly>
|
||
<input type="number" name="attr_lanzagranadas_nivel">
|
||
<input type="number" name="attr_lanzagranadas_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_artilleria_campana" class="sheet-skill-roll-btn">t</button>
|
||
<span>Artillería de campaña</span>
|
||
<span class="sheet-attr-ref">CON</span>
|
||
<input type="number" name="attr_artilleria_campana_base" readonly>
|
||
<input type="number" name="attr_artilleria_campana_nivel">
|
||
<input type="number" name="attr_artilleria_campana_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_artilleria_pesada" class="sheet-skill-roll-btn">t</button>
|
||
<span>Artillería pesada</span>
|
||
<span class="sheet-attr-ref">CON</span>
|
||
<input type="number" name="attr_artilleria_pesada_base" readonly>
|
||
<input type="number" name="attr_artilleria_pesada_nivel">
|
||
<input type="number" name="attr_artilleria_pesada_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_armamento_aereo" class="sheet-skill-roll-btn">t</button>
|
||
<span>Armamento aéreo</span>
|
||
<span class="sheet-attr-ref">CON</span>
|
||
<input type="number" name="attr_armamento_aereo_base" readonly>
|
||
<input type="number" name="attr_armamento_aereo_nivel">
|
||
<input type="number" name="attr_armamento_aereo_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_armas_arrojadizas" class="sheet-skill-roll-btn">t</button>
|
||
<span>Armas arrojadizas</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_armas_arrojadizas_base" readonly>
|
||
<input type="number" name="attr_armas_arrojadizas_nivel">
|
||
<input type="number" name="attr_armas_arrojadizas_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_armas_blancas" class="sheet-skill-roll-btn">t</button>
|
||
<span>Armas blancas</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_armas_blancas_base" readonly>
|
||
<input type="number" name="attr_armas_blancas_nivel">
|
||
<input type="number" name="attr_armas_blancas_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_armas_contundentes" class="sheet-skill-roll-btn">t</button>
|
||
<span>Armas contundentes</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_armas_contundentes_base" readonly>
|
||
<input type="number" name="attr_armas_contundentes_nivel">
|
||
<input type="number" name="attr_armas_contundentes_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row sheet-skill-restricted">
|
||
<button type="action" name="act_roll_matar_silencio" class="sheet-skill-roll-btn">t</button>
|
||
<span>Matar en Silencio</span>
|
||
<span class="sheet-attr-ref">CON</span>
|
||
<input type="number" name="attr_matar_silencio_base" readonly>
|
||
<input type="number" name="attr_matar_silencio_nivel">
|
||
<input type="number" name="attr_matar_silencio_total" readonly class="sheet-total-box">
|
||
</div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_lucha_desarmado" class="sheet-skill-roll-btn">t</button>
|
||
<span>Lucha desarmado</span>
|
||
<span class="sheet-attr-ref">AGI</span>
|
||
<input type="number" name="attr_lucha_desarmado_base" readonly>
|
||
<input type="number" name="attr_lucha_desarmado_nivel">
|
||
<input type="number" name="attr_lucha_desarmado_total" readonly class="sheet-total-box">
|
||
</div>
|
||
<h3>SECUNDARIAS</h3>
|
||
<div class="sheet-skills-container">
|
||
<div class="sheet-skill-row sheet-skill-header">
|
||
<span></span> <!-- Espacio para el botón -->
|
||
<span>Ámbito</span> <span>At.</span> <span>Bs</span> <span>Nv</span> <span>Tot</span></div>
|
||
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_secundaria_1" class="sheet-skill-roll-btn">t</button>
|
||
<span><input type="text" name="attr_secundaria_1_nombre" placeholder="Hab..." class="sheet-text-line"></span>
|
||
<span><input type="text" name="attr_secundaria_1_atributo" placeholder="Atr..." class="sheet-text-line"></span>
|
||
<input type="number" name="attr_secundaria_1_base" readonly>
|
||
<input type="number" name="attr_secundaria_1_nivel">
|
||
<input type="number" name="attr_secundaria_1_total" readonly class="sheet-total-box">
|
||
</div>
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_secundaria_2" class="sheet-skill-roll-btn">t</button>
|
||
<span><input type="text" name="attr_secundaria_2_nombre" placeholder="Hab..." class="sheet-text-line"></span>
|
||
<span><input type="text" name="attr_secundaria_2_atributo" placeholder="Atr..." class="sheet-text-line"></span>
|
||
<input type="number" name="attr_secundaria_2_base" readonly>
|
||
<input type="number" name="attr_secundaria_2_nivel">
|
||
<input type="number" name="attr_secundaria_2_total" readonly class="sheet-total-box">
|
||
</div>
|
||
<div class="sheet-skill-row">
|
||
<button type="action" name="act_roll_secundaria_3" class="sheet-skill-roll-btn">t</button>
|
||
<span><input type="text" name="attr_secundaria_3_nombre" placeholder="Hab..." class="sheet-text-line"></span>
|
||
<span><input type="text" name="attr_secundaria_3_atributo" placeholder="Atr..." class="sheet-text-line"></span>
|
||
<input type="number" name="attr_secundaria_3_base" readonly>
|
||
<input type="number" name="attr_secundaria_3_nivel">
|
||
<input type="number" name="attr_secundaria_3_total" readonly class="sheet-total-box">
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div> </div> </div>
|
||
|
||
<div class="sheet-page-container sheet-page-2">
|
||
|
||
<div class="sheet-page2-grid">
|
||
|
||
<div class="sheet-armamento-col">
|
||
|
||
<div class="sheet-rasgos-row">
|
||
|
||
<div class="sheet-rasgo-container">
|
||
<h3 class="sheet-full-width-title" style="text-align: center; margin-top: 0;">VIRTUDES</h3>
|
||
<fieldset class="repeating_virtudes">
|
||
<div class="sheet-rasgo-row">
|
||
<input type="text" name="attr_virtud_nombre" placeholder="Virtud...">
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<div class="sheet-rasgo-container">
|
||
<h3 class="sheet-full-width-title" style="text-align: center; margin-top: 0;">DEFECTOS</h3>
|
||
<fieldset class="repeating_defectos">
|
||
<div class="sheet-rasgo-row">
|
||
<input type="text" name="attr_defecto_nombre" placeholder="Defecto...">
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<h3 class="sheet-full-width-title" style="text-align: center; margin-top: 0;">ARMAMENTO</h3>
|
||
<div class="sheet-armamento-container">
|
||
|
||
<div class="sheet-armamento-header">
|
||
<span>Eq.</span>
|
||
<span style="text-align: left;">Nombre</span>
|
||
<span>Valor</span>
|
||
<span>Daño</span>
|
||
<span>Parada</span>
|
||
<span>Rt.</span>
|
||
<span>Res.</span>
|
||
<span>Alcance</span>
|
||
<span>Peso</span>
|
||
<span>Precio</span>
|
||
</div>
|
||
|
||
<fieldset class="repeating_armamento">
|
||
<div class="sheet-armamento-row">
|
||
<input type="checkbox" name="attr_arma_equipado" value="1" checked>
|
||
<input type="text" name="attr_arma_nombre" class="sheet-arma-nombre" placeholder="Ej: Fusil">
|
||
<input type="number" name="attr_arma_valor">
|
||
<input type="text" name="attr_arma_dano">
|
||
<input type="text" name="attr_arma_parada">
|
||
<input type="text" name="attr_arma_rt">
|
||
<input type="text" name="attr_arma_res">
|
||
<div class="sheet-alcance-inputs">
|
||
<input type="text" name="attr_arma_alcance_1"> <span>/</span>
|
||
<input type="text" name="attr_arma_alcance_2"> <span>/</span>
|
||
<input type="text" name="attr_arma_alcance_3"> <span>/</span>
|
||
<input type="text" name="attr_arma_alcance_4"> <span>/</span>
|
||
<input type="text" name="attr_arma_alcance_5">
|
||
|
||
</div>
|
||
<input type="number" name="attr_arma_peso" step="0.1">
|
||
<input type="text" name="attr_arma_precio">
|
||
</div>
|
||
</fieldset>
|
||
|
||
</div> <div class="sheet-contactos-equipo-row">
|
||
|
||
<div class="sheet-equipo-container">
|
||
<h3 class="sheet-full-width-title" style="text-align: center;">EQUIPO</h3>
|
||
<div class="sheet-equipo-header">
|
||
<span>Eq.</span>
|
||
<span style="text-align: left;">Nombre</span>
|
||
<span>Cant.</span>
|
||
<span>Peso</span>
|
||
<span>Precio</span>
|
||
|
||
</div>
|
||
<fieldset class="repeating_equipo1">
|
||
<div class="sheet-equipo-row">
|
||
<input type="checkbox" name="attr_equipo1_equipado" value="1" checked>
|
||
<input type="text" name="attr_equipo1_nombre" class="sheet-text-left">
|
||
<input type="number" name="attr_equipo1_cantidad">
|
||
<input type="number" name="attr_equipo1_peso" step="0.1">
|
||
<input type="number" name="attr_equipo1_precio">
|
||
</div>
|
||
|
||
</fieldset>
|
||
</div>
|
||
|
||
<div class="sheet-equipo-container">
|
||
<h3 class="sheet-full-width-title" style="text-align: center;">EQUIPO</h3>
|
||
<div class="sheet-equipo-header">
|
||
<span>Eq.</span>
|
||
<span style="text-align: left;">Nombre</span>
|
||
<span>Cant.</span>
|
||
<span>Peso</span>
|
||
<span>Precio</span>
|
||
</div>
|
||
<fieldset class="repeating_equipo2">
|
||
<div class="sheet-equipo-row">
|
||
<input type="checkbox" name="attr_equipo2_equipado" value="1" checked>
|
||
<input type="text" name="attr_equipo2_nombre" class="sheet-text-left">
|
||
<input type="number" name="attr_equipo2_cantidad">
|
||
<input type="number" name="attr_equipo2_peso" step="0.1">
|
||
<input type="number" name="attr_equipo2_precio">
|
||
</div>
|
||
</fieldset>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="sheet-horizontal-container">
|
||
<!-- CAJA DE PESO TOTAL -->
|
||
<div class="sheet-status-box sheet-peso-total-box">
|
||
<h4 style="font-family: 'Georgia', serif; font-size: 1.1em; letter-spacing: 2px; margin-bottom: 10px;">PESO TOTAL</h4>
|
||
<div class="sheet-peso-display">
|
||
<input type="number" name="attr_peso_total" value="0" step="0.1" readonly>
|
||
<span style="font-family: 'Georgia', serif; font-size: 1.1em;">Kg</span>
|
||
</div>
|
||
|
||
<!-- Lógica de sobrecarga -->
|
||
<input type="hidden" name="attr_sobrecarga_status" class="sheet-sobrecarga-toggle" value="0">
|
||
<div class="sheet-alert-banner sheet-alert-warning sheet-msg-sobrecarga" style="font-size: 0.9em; padding: 5px; margin-top: 10px;">SOBRECARGADO</div>
|
||
</div>
|
||
<!-- CAJA DE DINERO (Ahora dentro del mismo contenedor) -->
|
||
<div class="sheet-status-box sheet-dinero-box-horizontal">
|
||
<h4 style="font-family: 'Georgia', serif; font-size: 1.1em; letter-spacing: 2px; margin-bottom: 10px;">DINERO</h4>
|
||
<div class="sheet-dinero-horizontal-container">
|
||
<div class="sheet-dinero-item">
|
||
<label>Ingresos:</label>
|
||
<input type="number" name="attr_dinero_ingresos">
|
||
</div>
|
||
<div class="sheet-dinero-item">
|
||
<label>Ahorros:</label>
|
||
<input type="number" name="attr_dinero_ahorros">
|
||
</div>
|
||
<div class="sheet-dinero-item">
|
||
<label>De bolsillo:</label>
|
||
<input type="number" name="attr_dinero_bolsillo">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-notas-container">
|
||
<h4 class="sheet-notas-title">NOTAS</h4>
|
||
<textarea name="attr_notas_libres" class="sheet-notas-textarea"></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-estado-col">
|
||
|
||
<div class="sheet-status-box sheet-localizaciones-box">
|
||
|
||
<div class="sheet-loc-zone"><strong>0 Cabeza</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_cabeza_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_cabeza_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_cabeza_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_cabeza_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: +3 a todas las acciones</div>
|
||
|
||
</div>
|
||
<div class="sheet-loc-zone"><strong>1 2 3 Pecho</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_pecho_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_pecho_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_pecho_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_pecho_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: +3 acciones físicas</div>
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_pecho_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Grave: +5 acciones físicas</div>
|
||
</div>
|
||
<div class="sheet-loc-zone"><strong>4 Brazo Dch.</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_brazod_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_brazod_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_brazod_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_brazod_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: +3 acciones brazo derecho</div>
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_brazod_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Grave: Brazo inutilizado</div>
|
||
</div>
|
||
<div class="sheet-loc-zone"><strong>5 Brazo Izq.</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_brazoi_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_brazoi_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_brazoi_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_brazoi_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: +3 acciones brazo izquierdo</div>
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_brazoi_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Grave: Brazo inutilizado</div>
|
||
</div>
|
||
|
||
<div class="sheet-loc-zone"><strong>6 7 Abdomen</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_abdomen_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_abdomen_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_abdomen_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_abdomen_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: +3 todas acciones / Movimiento a la mitad</div>
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_abdomen_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Grave: DERRIBADO / Sin acciones</div>
|
||
</div>
|
||
|
||
<div class="sheet-loc-zone"><strong>8 Pierna Izq.</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_piernai_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_piernai_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_piernai_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_piernai_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: Desequilibrado(+1GD) / Movimiento a la mitad</div>
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_piernai_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Grave: Pierna inutilizada / DERRIBADO</div>
|
||
</div>
|
||
|
||
<div class="sheet-loc-zone"><strong>9 Pierna Dch.</strong></div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">Armadura:</label>
|
||
<input type="number" name="attr_loc_piernad_dan">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida leve (<input type="number" name="attr_herida_leve" readonly class="sheet-inline-val">a
|
||
<input type="number" name="attr_herida_leve_max" readonly class="sheet-inline-val">):
|
||
</label>
|
||
<input type="number" name="attr_loc_piernad_heridasL">
|
||
</div>
|
||
<div class="sheet-loc-row">
|
||
<label class="sheet-loc-label-phrase">
|
||
Herida grave (<input type="number" name="attr_herida_grave" readonly class="sheet-inline-val">o +):
|
||
</label>
|
||
<input type="number" name="attr_loc_piernad_heridasG">
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_piernad_l" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Leve: Desequilibrado(+1GD) / Movimiento a la mitad</div>
|
||
</div>
|
||
<div class="sheet-loc-box-alerts">
|
||
<input type="hidden" name="attr_status_piernad_g" class="sheet-toggle" value="0">
|
||
<div class="sheet-loc-effect-text sheet-msg-show">Herida Grave: Pierna inutilizada / DERRIBADO</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-estado-col2">
|
||
|
||
<div class="sheet-status-box">
|
||
<h4>PUNTOS DE VIDA</h4>
|
||
<div class="sheet-row"> <label>Heridas:</label> <input type="number" name="attr_hp_heridas" value="0"> </div>
|
||
<div class="sheet-row"> <label>Golpes:</label> <input type="number" name="attr_hp_golpes" value="0"> </div>
|
||
<div class="sheet-row total"> <label>Máximo:</label> <input type="number" name="attr_hp_max" value="0" readonly style="background:#eee;"> </div>
|
||
|
||
<!-- Lógica de estados de salud -->
|
||
<input type="hidden" name="attr_salud_status" class="sheet-health-toggle" value="normal">
|
||
<div class="sheet-alert-banner sheet-alert-danger sheet-msg-inconsciente" style="font-size: 0.9em; padding: 5px; margin-top: 10px;">INCONSCIENTE</div>
|
||
<div class="sheet-alert-banner sheet-alert-danger sheet-msg-moribundo" style="font-size: 0.9em; padding: 5px; margin-top: 10px;">MORIBUNDO</div>
|
||
|
||
</div>
|
||
|
||
<div class="sheet-status-box">
|
||
<h4>MARCADOR DE MORAL</h4>
|
||
<div class="sheet-row"> <label>Actual:</label> <input type="number" name="attr_moral_actual" value="0"> </div>
|
||
</div>
|
||
<div class="sheet-status-box">
|
||
<h4>MARCADOR DE MANDO</h4>
|
||
<div class="sheet-row"> <label>Actual:</label> <input type="number" name="attr_mando_actual" value="0"> </div>
|
||
</div>
|
||
|
||
<div class="sheet-status-box sheet-capacidades-box">
|
||
<h4>CAPACIDADES</h4>
|
||
|
||
<div class="sheet-cap-row"><label>Ajuste por Fuerza (fue-5)</label> <input type="number" name="attr_cap_ajuste_fue" readonly></div>
|
||
<div class="sheet-cap-row"><span></span>
|
||
<button type="action" name="act_roll_cap_alerta" class="sheet-skill-roll-btn">t</button>
|
||
<label>Alerta (3per)</label> <input type="number" name="attr_cap_alerta_total" readonly></div>
|
||
|
||
<div class="sheet-cap-row"><label>Andar (agi)</label> <span>m/as: <input type="number" name="attr_cap_andar" readonly></span></div>
|
||
<div class="sheet-cap-row"><label>Carga (7fue)</label> <span>Kg: <input type="number" name="attr_cap_carga" readonly></span></div>
|
||
|
||
<div class="sheet-cap-row"><label>Correr (agi+2vel)</label> <span>m/as: <input type="number" name="attr_cap_correr" readonly></span></div>
|
||
<div class="sheet-cap-row sheet-cap-sub"><label>Duración Correr (10vit)</label> <span>as: <input type="number" name="attr_cap_duracion_correr" readonly></span></div>
|
||
|
||
<div class="sheet-cap-row"><span></span>
|
||
<button type="action" name="act_roll_cap_esquivar" class="sheet-skill-roll-btn">t</button>
|
||
<label>Esquivar (2×agi + vel)</label> <input type="number" name="attr_cap_esquivar_total" readonly></div>
|
||
|
||
<div class="sheet-cap-row"><label>Iniciativa (vel,agi)</label> <span class="sheet-multi-input">
|
||
<input type="number" name="attr_cap_iniciativa_1" readonly> , <input type="number" name="attr_cap_iniciativa_2" readonly></span>
|
||
</div>
|
||
|
||
<div class="sheet-cap-row"><label> Levantar Peso (3carga)</label> <span>Kg: <input type="number" name="attr_cap_lev_peso" readonly></span></div>
|
||
|
||
<div class="sheet-cap-row"><span></span>
|
||
<button type="action" name="act_roll_cap_mando" class="sheet-skill-roll-btn">t</button>
|
||
<label>Mando (2vol + inv)</label> <input type="number" name="attr_cap_mando_total" readonly></div>
|
||
|
||
<div class="sheet-cap-row"><span></span>
|
||
<button type="action" name="act_roll_cap_moral" class="sheet-skill-roll-btn">t</button>
|
||
<label>Moral (3vol)</label> <input type="number" name="attr_cap_moral_total" readonly></div>
|
||
|
||
<div class="sheet-cap-row"><label>Resistir Dolor (vol/2)</label> <input type="number" name="attr_cap_resistir_dolor" readonly></div>
|
||
|
||
<div class="sheet-cap-row"><label>Salto H. (fue+vel/5)</label> <input type="number" name="attr_cap_salto_h" step="0.1" readonly></div>
|
||
<div class="sheet-cap-row sheet-cap-sub"><label>arr. (fue/5), abj. (agi/3)</label>
|
||
<span class="sheet-multi-input"><input type="number" name="attr_cap_salto_arr" step="0.1" readonly> ,
|
||
<input type="number" name="attr_cap_salto_abj" step="0.1" readonly></span>
|
||
</div>
|
||
|
||
<div class="sheet-cap-row"><label>Sprintar (agi+3vel)</label> <span>m/as: <input type="number" name="attr_cap_sprintar" readonly></span></div>
|
||
<div class="sheet-cap-row sheet-cap-sub"><label>Duración Sprintar (vit)</label> <span>as:
|
||
<input type="number" name="attr_cap_duracion_sprintar" readonly></span>
|
||
</div>
|
||
<div class="sheet-cap-row"><label>Umbral Mortal (vit)</label> <input type="number" name="attr_cap_umbral_mortal" readonly></div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<script type="text/worker">
|
||
const charHierarchy = {
|
||
"cuerpo": ["fue", "vit", "res"],
|
||
"destreza": ["agi", "coo", "vel"],
|
||
"inteligencia": ["mem", "log", "inv"],
|
||
"presencia": ["car", "vol", "apa"],
|
||
"instinto": ["per", "int", "con"]
|
||
};
|
||
|
||
const normalSkillMap = {
|
||
"burocracia": "mem", "callejeo": "int", "camuflar": "inv", "conocimiento": "inv", "descubrir": "per",
|
||
"dialectica": "car", "equitacion": "coo", "esconder": "int", "escuchar": "per", "falsificar": "coo",
|
||
"geografia": "mem", "lanzar": "fue", "nadar": "agi", "ocultar": "int", "orientacion": "log",
|
||
"rastrear": "log", "robar": "coo", "saltar": "agi", "seduccion": "car", "trepar": "agi",
|
||
"cerraduras": "coo", "comunicaciones": "con", "explosivos": "log", "ingenios": "inv",
|
||
"interrogacion": "vol", "mecanica": "con", "medicina": "mem", "paracaidismo": "agi",
|
||
"primeros_auxilios": "int", "quimica": "mem", "pilotar_motos": "coo", "pilotar_coches": "coo",
|
||
"pilotar_camiones": "coo", "pilotar_tanques": "coo", "pilotar_cazas": "coo", "pilotar_bombarderos": "coo",
|
||
"pilotar_barcas": "coo", "pilotar_buques": "coo", "idioma_1": "mem", "idioma_2": "mem", "idioma_3": "mem",
|
||
"pistola": "coo", "fusil": "coo", "bayoneta": "agi", "subfusil": "coo", "ametralladora": "fue",
|
||
"lanzallamas": "coo", "lanzagranadas": "fue", "artilleria_campana": "con", "artilleria_pesada": "con",
|
||
"armamento_aereo": "con", "armas_arrojadizas": "agi", "armas_blancas": "agi", "armas_contundentes": "agi",
|
||
"matar_silencio": "con", "lucha_desarmado": "agi"
|
||
};
|
||
|
||
|
||
// Lista de secundarias
|
||
const secondarySkills = ["secundaria_1", "secundaria_2", "secundaria_3"];
|
||
|
||
// Mapeo de texto a atributo real
|
||
const attrAlias = {
|
||
"fue": "fue", "fuerza": "fue",
|
||
"vit": "vit", "vitalidad": "vit",
|
||
"res": "res", "resistencia": "res",
|
||
"agi": "agi", "agilidad": "agi",
|
||
"coo": "coo", "coordinacion": "coo", "coordinación": "coo",
|
||
"vel": "vel", "velocidad": "vel",
|
||
"per": "per", "percepcion": "per", "percepción": "per",
|
||
"int": "int", "intuicion": "int", "intuición": "int",
|
||
"con": "con", "concentracion": "con", "concentración": "con",
|
||
"mem": "mem", "memoria": "mem",
|
||
"log": "log", "logica": "log", "lógica": "log",
|
||
"inv": "inv", "inventiva": "inv",
|
||
"car": "car", "carisma": "car",
|
||
"vol": "vol", "voluntad": "vol",
|
||
"apa": "apa", "apariencia": "apa"
|
||
};
|
||
|
||
const characteristics = Object.keys(charHierarchy);
|
||
const attributes = Object.values(charHierarchy).flat();
|
||
const normalSkills = Object.keys(normalSkillMap);
|
||
|
||
// Eventos: ahora escuchamos también cambios en los nombres de atributo de las secundarias
|
||
const secEvents = secondarySkills.map(s => `change:${s}_atributo change:${s}_nivel`).join(" ");
|
||
|
||
on(`change:nivel_social ${characteristics.map(c => `change:${c}`).join(" ")} ${attributes.map(a => `change:${a}`).join(" ")} ${normalSkills.map(s => `change:${s}_nivel`).join(" ")} ${secEvents} sheet:opened`, () => {
|
||
|
||
const secAttrsToGet = [];
|
||
secondarySkills.forEach(s => {
|
||
secAttrsToGet.push(`${s}_atributo`, `${s}_nivel`);
|
||
});
|
||
|
||
getAttrs(["nivel_social", "moral_actual", ...characteristics, ...attributes, ...normalSkills.map(s => `${s}_nivel`), ...secAttrsToGet], (values) => {
|
||
const update = {};
|
||
const finalAttrs = {};
|
||
|
||
// 1. Calcular Atributos (limitados por característica)
|
||
characteristics.forEach(charName => {
|
||
const charValue = parseInt(values[charName]) || 5;
|
||
charHierarchy[charName].forEach(attrName => {
|
||
let attrValue = parseInt(values[attrName]) || 5;
|
||
if (attrValue > charValue) {
|
||
attrValue = charValue;
|
||
update[attrName] = charValue;
|
||
}
|
||
finalAttrs[attrName] = attrValue;
|
||
});
|
||
});
|
||
|
||
const restrictedSkills = [
|
||
"equitacion", "falsificar", "nadar", "cerraduras", "comunicaciones",
|
||
"explosivos", "mecanica", "medicina", "paracaidismo", "quimica",
|
||
"pilotar_motos", "pilotar_coches", "pilotar_camiones", "pilotar_tanques",
|
||
"pilotar_cazas", "pilotar_bombarderos", "pilotar_barcas", "pilotar_buques",
|
||
"idioma_1", "idioma_2", "idioma_3", "pistola", "fusil", "bayoneta",
|
||
"subfusil", "ametralladora", "lanzallamas", "lanzagranadas",
|
||
"artilleria_campana", "artilleria_pesada", "armamento_aereo", "matar_silencio"
|
||
];
|
||
|
||
const relatedGroups = [
|
||
["pilotar_motos", "pilotar_coches", "pilotar_camiones"],
|
||
["pilotar_cazas", "pilotar_bombarderos"],
|
||
["fusil", "bayoneta"],
|
||
["subfusil", "ametralladora"]
|
||
];
|
||
|
||
// 2. Habilidades Normales
|
||
normalSkills.forEach(skillName => {
|
||
const governingAttr = normalSkillMap[skillName];
|
||
const attrVal = finalAttrs[governingAttr] || 0;
|
||
const level = parseInt(values[`${skillName}_nivel`]) || 0;
|
||
update[`${skillName}_base`] = attrVal;
|
||
update[`${skillName}_total`] = attrVal + level;
|
||
|
||
|
||
// LÓGICA DE RELACIONADAS
|
||
// Comprobamos si esta habilidad pertenece a algún grupo
|
||
let groupIsTrained = false;
|
||
const group = relatedGroups.find(g => g.includes(skillName));
|
||
|
||
if (group) {
|
||
// Si pertenece a un grupo, miramos si ALGUIEN en el grupo tiene nivel > 0
|
||
groupIsTrained = group.some(s => (parseInt(values[`${s}_nivel`]) || 0) > 0);
|
||
}
|
||
|
||
// APLICAR RESTRICCIÓN
|
||
// Una habilidad restringida funciona si:
|
||
// a) Ella misma tiene nivel > 0
|
||
// b) Pertenece a un grupo donde otra tiene nivel > 0 (Relacionada)
|
||
// c) NO es una habilidad restringida (RestrictedSkills ya lo definimos antes)
|
||
|
||
const isRestricted = restrictedSkills.includes(skillName);
|
||
|
||
if (isRestricted && level === 0 && !groupIsTrained) {
|
||
update[`${skillName}_total`] = 0;
|
||
} else {
|
||
update[`${skillName}_total`] = attrVal + level;
|
||
}
|
||
});
|
||
|
||
// 3. LÓGICA PARA SECUNDARIAS
|
||
secondarySkills.forEach(s => {
|
||
const rawInput = (values[`${s}_atributo`] || "").toLowerCase().trim();
|
||
const level = parseInt(values[`${s}_nivel`]) || 0;
|
||
|
||
// Buscamos si el texto introducido coincide con nuestro mapa de alias
|
||
const targetAttr = attrAlias[rawInput];
|
||
|
||
if (targetAttr && finalAttrs[targetAttr]) {
|
||
const attrVal = finalAttrs[targetAttr];
|
||
update[`${s}_base`] = attrVal;
|
||
update[`${s}_total`] = attrVal + level;
|
||
} else {
|
||
// Si no hay atributo válido, la base es 0
|
||
update[`${s}_base`] = 0;
|
||
update[`${s}_total`] = level;
|
||
}
|
||
});
|
||
|
||
// --- CÁLCULO DE CAPACIDADES ---
|
||
|
||
// 1. Extraemos los atributos necesarios (si no existen, valen 0)
|
||
let fue = finalAttrs.fue || 0;
|
||
let inv = finalAttrs.inv || 0;
|
||
let per = finalAttrs.per || 0;
|
||
let agi = finalAttrs.agi || 0;
|
||
let vel = finalAttrs.vel || 0;
|
||
let vit = finalAttrs.vit || 0;
|
||
let vol = finalAttrs.vol || 0;
|
||
let res = finalAttrs.res || 0;
|
||
|
||
// 2. Aplicamos las fórmulas
|
||
|
||
update["hp_max"] = res * 3;
|
||
update["herida_leve"] = res + 1;
|
||
update["herida_leve_max"] = res * 2;
|
||
update["herida_grave"] = res * 2 + 1;
|
||
|
||
update["cap_ajuste_fue"] = fue - 5;
|
||
update["cap_alerta_total"] = 3 * per;
|
||
|
||
update["cap_andar"] = agi;
|
||
update["cap_carga"] = 7 * fue;
|
||
|
||
update["cap_correr"] = agi + (2 * vel);
|
||
update["cap_duracion_correr"] = 10 * vit;
|
||
|
||
update["cap_esquivar_total"] = (2 * agi) + vel;
|
||
|
||
update["cap_iniciativa_1"] = vel;
|
||
update["cap_iniciativa_2"] = agi;
|
||
|
||
update["cap_lev_peso"] = 21 * fue;
|
||
update["cap_mando_total"] = (2 * vol) + inv;
|
||
update["cap_moral_total"] = (3 * vol);
|
||
|
||
// Redondeo hacia abajo para Resistir Dolor (lo habitual en manuales)
|
||
update["cap_resistir_dolor"] = Math.floor(vol / 2);
|
||
|
||
// Saltos: Permitimos un decimal (ej: 2.4) para mayor precisión al dividir
|
||
update["cap_salto_h"] = parseFloat(((fue + vel) / 5).toFixed(1));
|
||
update["cap_salto_arr"] = parseFloat((fue / 5).toFixed(1));
|
||
update["cap_salto_abj"] = parseFloat((agi / 3).toFixed(1));
|
||
|
||
update["cap_sprintar"] = agi + (3 * vel);
|
||
update["cap_duracion_sprintar"] = vit;
|
||
|
||
|
||
update["cap_umbral_mortal"] = vit;
|
||
setAttrs(update, {silent: true});
|
||
|
||
});
|
||
});
|
||
|
||
|
||
/* === LÓGICA INTEGRADA DE SALUD, LOCALIZACIÓN Y SANGRADO === */
|
||
const bodyParts = ['cabeza', 'pecho', 'brazod', 'brazoi', 'abdomen', 'piernai', 'piernad'];
|
||
|
||
on(`change:hp_heridas change:hp_golpes change:hp_max ${bodyParts.map(p => `change:loc_${p}_heridasL change:loc_${p}_heridasG`).join(" ")}`, () => {
|
||
const fields = ['hp_heridas', 'hp_golpes', 'hp_max'];
|
||
bodyParts.forEach(p => fields.push(`loc_${p}_heridasL`, `loc_${p}_heridasG`));
|
||
|
||
getAttrs(fields, (v) => {
|
||
const update = {};
|
||
const heridas = parseInt(v.hp_heridas) || 0;
|
||
const golpes = parseInt(v.hp_golpes) || 0;
|
||
const max = parseInt(v.hp_max) || 0;
|
||
const dmgTotal = heridas + golpes;
|
||
|
||
let totalHeridasLeves = 0;
|
||
let anyG = false;
|
||
|
||
// Procesar cada parte del cuerpo
|
||
bodyParts.forEach(p => {
|
||
const valL = parseInt(v[`loc_${p}_heridasL`]) || 0;
|
||
const valG = parseInt(v[`loc_${p}_heridasG`]) || 0;
|
||
|
||
update[`status_${p}_l`] = (valL > 0) ? "1" : "0";
|
||
update[`status_${p}_g`] = (valG > 0) ? "1" : "0";
|
||
|
||
totalHeridasLeves += valL;
|
||
if (valG > 0) anyG = true;
|
||
});
|
||
|
||
// Lógica de Sangrado
|
||
if (totalHeridasLeves === 0) {
|
||
update['sangrado_l_status'] = "0";
|
||
} else if (totalHeridasLeves === 1) {
|
||
update['sangrado_l_status'] = "1";
|
||
} else if (totalHeridasLeves === 2) {
|
||
update['sangrado_l_status'] = "2";
|
||
} else {
|
||
update['sangrado_l_status'] = "3plus"; // Si hay 3 o más
|
||
}
|
||
|
||
update['sangrado_g_status'] = anyG ? "1" : "0";
|
||
|
||
// Lógica de Salud Principal
|
||
let status = "normal";
|
||
// Cabeza Grave también causa Inconsciencia
|
||
const cabezaGrave = parseInt(v.loc_cabeza_heridasG) || 0;
|
||
|
||
if (heridas >= max && max > 0) {
|
||
status = "moribundo";
|
||
} else if ((dmgTotal >= max && max > 0) || cabezaGrave > 0) {
|
||
status = "inconsciente";
|
||
}
|
||
|
||
update["salud_status"] = status;
|
||
setAttrs(update);
|
||
});
|
||
});
|
||
|
||
|
||
/* === CÁLCULO DE PESO TOTAL CON FILTRO DE EQUIPADO === */
|
||
const updateWeight = () => {
|
||
getSectionIDs('repeating_armamento', (armIds) => {
|
||
getSectionIDs('repeating_equipo1', (eq1Ids) => {
|
||
getSectionIDs('repeating_equipo2', (eq2Ids) => {
|
||
|
||
let fields = [];
|
||
// Pedimos tanto el peso como el estado del checkbox
|
||
armIds.forEach(id => fields.push(`repeating_armamento_${id}_arma_peso`, `repeating_armamento_${id}_arma_equipado`));
|
||
eq1Ids.forEach(id => fields.push(`repeating_equipo1_${id}_equipo1_peso`, `repeating_equipo1_${id}_equipo1_equipado`));
|
||
eq2Ids.forEach(id => fields.push(`repeating_equipo2_${id}_equipo2_peso`, `repeating_equipo2_${id}_equipo2_equipado`));
|
||
|
||
getAttrs(fields, (values) => {
|
||
let total = 0;
|
||
|
||
// Sumar Armamento
|
||
armIds.forEach(id => {
|
||
const isEquipped = values[`repeating_armamento_${id}_arma_equipado`] === "1";
|
||
if (isEquipped) {
|
||
total += parseFloat(values[`repeating_armamento_${id}_arma_peso`]) || 0;
|
||
}
|
||
});
|
||
|
||
// Sumar Equipo 1
|
||
eq1Ids.forEach(id => {
|
||
const isEquipped = values[`repeating_equipo1_${id}_equipo1_equipado`] === "1";
|
||
if (isEquipped) {
|
||
// Si tienes cantidad, podrías multiplicar peso * cantidad aquí
|
||
total += parseFloat(values[`repeating_equipo1_${id}_equipo1_peso`]) || 0;
|
||
}
|
||
});
|
||
|
||
// Sumar Equipo 2
|
||
eq2Ids.forEach(id => {
|
||
const isEquipped = values[`repeating_equipo2_${id}_equipo2_equipado`] === "1";
|
||
if (isEquipped) {
|
||
total += parseFloat(values[`repeating_equipo2_${id}_equipo2_peso`]) || 0;
|
||
}
|
||
});
|
||
|
||
setAttrs({ peso_total: total.toFixed(1) });
|
||
});
|
||
});
|
||
});
|
||
});
|
||
};
|
||
|
||
// Actualizamos los listeners para que también escuchen el cambio en el checkbox "_equipado"
|
||
on('change:repeating_armamento:arma_peso change:repeating_armamento:arma_equipado ' +
|
||
'change:repeating_equipo1:equipo1_peso change:repeating_equipo1:equipo1_equipado ' +
|
||
'change:repeating_equipo2:equipo2_peso change:repeating_equipo2:equipo2_equipado ' +
|
||
'remove:repeating_armamento remove:repeating_equipo1 remove:repeating_equipo2', updateWeight);
|
||
|
||
/* === LÓGICA DE SOBRECARGA === */
|
||
on('change:peso_total change:cap_carga', () => {
|
||
getAttrs(['peso_total', 'cap_carga'], (v) => {
|
||
const peso = parseFloat(v.peso_total) || 0;
|
||
const carga = parseFloat(v.cap_carga) || 0;
|
||
|
||
// Si el peso es mayor que la carga, status = 1, si no 0
|
||
const status = (peso > carga) ? "1" : "0";
|
||
|
||
setAttrs({
|
||
sobrecarga_status: status
|
||
});
|
||
});
|
||
});
|
||
|
||
// Listeners para detectar cambios en las filas o si se borra una fila
|
||
on('change:repeating_armamento:arma_peso change:repeating_equipo1:equipo1_peso change:repeating_equipo2:equipo2_peso remove:repeating_armamento remove:repeating_equipo1 remove:repeating_equipo2', updateWeight);
|
||
|
||
|
||
|
||
|
||
// === TIRADA SOMBRA ACTUALIZADA CON CRÍTICOS Y ESPECIALES ===
|
||
|
||
|
||
// LISTA DE HABILIDADES (Asegúrate de que los nombres coincidan con los de tus botones act_roll_XXX)
|
||
|
||
// 1. ATRIBUTOS (Se tiran multiplicando el valor por 3)
|
||
const attrsWithButtons = [
|
||
"fue", "vit", "res", "agi", "coo", "vel",
|
||
"per", "con", "int", "mem", "log", "inv",
|
||
"car", "vol", "apa"
|
||
];
|
||
|
||
// 2. HABILIDADES (Se tiran usando el valor _total)
|
||
const skillsWithButtons = [
|
||
// Básicas
|
||
"burocracia", "callejeo", "camuflar", "conocimiento", "descubrir",
|
||
"dialectica", "equitacion", "esconder", "escuchar", "falsificar",
|
||
"geografia", "lanzar", "nadar", "ocultar", "orientacion",
|
||
"rastrear", "robar", "saltar", "seduccion", "trepar",
|
||
|
||
// Especiales
|
||
"cerraduras", "comunicaciones", "explosivos", "ingenios",
|
||
"interrogacion", "mecanica", "medicina", "paracaidismo",
|
||
"primeros_auxilios", "quimica", "pilotar_motos", "pilotar_coches",
|
||
"pilotar_camiones", "pilotar_tanques", "pilotar_cazas",
|
||
"pilotar_bombarderos", "pilotar_barcas", "pilotar_buques",
|
||
"idioma_1", "idioma_2", "idioma_3",
|
||
|
||
// Combate
|
||
"pistola", "fusil", "bayoneta", "subfusil", "ametralladora",
|
||
"lanzallamas", "lanzagranadas", "artilleria_campana",
|
||
"artilleria_pesada", "armamento_aereo", "armas_arrojadizas",
|
||
"armas_blancas", "armas_contundentes", "matar_silencio",
|
||
"lucha_desarmado",
|
||
|
||
// Secundarias
|
||
"secundaria_1", "secundaria_2", "secundaria_3",
|
||
|
||
// Capacidades (que tienen botón de tirada)
|
||
"cap_alerta", "cap_esquivar", "cap_mando", "cap_moral"
|
||
];
|
||
|
||
|
||
/* --- LISTENERS ACTUALIZADOS --- */
|
||
|
||
// Para las Habilidades
|
||
skillsWithButtons.forEach(skill => {
|
||
on(`clicked:roll_${skill}`, () => {
|
||
// Pedimos el total de la habilidad Y la moral actual
|
||
getAttrs([`${skill}_total`, "moral_actual"], (v) => {
|
||
const val = parseInt(v[`${skill}_total`]) || 0;
|
||
const moral = parseInt(v["moral_actual"]) || 0;
|
||
executeShadowRoll(val, skill.toUpperCase(), moral);
|
||
});
|
||
});
|
||
});
|
||
|
||
// Para los Atributos
|
||
attrsWithButtons.forEach(attr => {
|
||
on(`clicked:roll_${attr}`, () => {
|
||
getAttrs([attr, "moral_actual"], (v) => {
|
||
const val = (parseInt(v[attr]) || 0) * 3;
|
||
const moral = parseInt(v["moral_actual"]) || 0;
|
||
executeShadowRoll(val, attr.toUpperCase(), moral);
|
||
});
|
||
});
|
||
});
|
||
|
||
// Para el botón de Tirada Manual
|
||
on('clicked:roll_sombra', () => {
|
||
getAttrs(["moral_actual"], (v) => {
|
||
const moral = parseInt(v["moral_actual"]) || 0;
|
||
executeShadowRoll(null, "MANUAL", moral);
|
||
});
|
||
});
|
||
|
||
/* --- FUNCIÓN executeShadowRoll ACTUALIZADA CON TÍTULO DINÁMICO --- */
|
||
|
||
function executeShadowRoll(skillValue, label, moralActual) {
|
||
const habValue = (skillValue === null) ? "?{Valor de la Habilidad|10}" : skillValue;
|
||
|
||
// Si la etiqueta llega vacía por algún motivo, usamos un texto por defecto
|
||
const titulo = label ? label.toUpperCase() : "TIRADA SOMBRA";
|
||
|
||
// Aquí es donde insertamos moralActual como valor por defecto en el Query ?{...|valor}
|
||
const rollCmd = `&{template:tirada_sombra} {{nombre_tirada=${titulo}}} {{habilidad_valor=[[${habValue}]]}} {{modificador=[[?{Modificador a la Tirada |${moralActual}}]]}} {{mostrar_dano=[[?{¿Mostrar daño?|No,0|Tipo 0,1|Tipo I,2|Tipo II,3|Tipo III,4|Tipo IV (Área/Metralla),5|Tipo V (Fragmentación),6}]]}} {{modificador_dano=[[?{Modificador al Daño (+ sumar, - restar)|0}]]}} {{dsombra=[[1d10]]}} {{d1=[[1d10]]}} {{d2=[[1d10]]}} {{total_final=[[0]]}} {{sombra=[[0]]}} {{mayor=[[0]]}} {{menor=[[0]]}} {{tipo_resultado=[[0]]}} {{dano_titulo=[[0]]}} {{num_hits=[[0]]}} {{dano_total_suma=[[0]]}} {{l0_n=[[0]]}} {{l0_d=[[0]]}} {{l1_n=[[0]]}} {{l1_d=[[0]]}} {{l2_n=[[0]]}} {{l2_d=[[0]]}} {{l3_n=[[0]]}} {{l3_d=[[0]]}} {{l4_n=[[0]]}} {{l4_d=[[0]]}} {{l5_n=[[0]]}} {{l5_d=[[0]]}} {{l6_n=[[0]]}} {{l6_d=[[0]]}} {{l7_n=[[0]]}} {{l7_d=[[0]]}} {{l8_n=[[0]]}} {{l8_d=[[0]]}} {{l9_n=[[0]]}} {{l9_d=[[0]]}}`;
|
||
|
||
startRoll(rollCmd, (results) => {
|
||
const vSombraRaw = results.results.dsombra.result;
|
||
const v1 = results.results.d1.result;
|
||
const v2 = results.results.d2.result;
|
||
const vHab = results.results.habilidad_valor.result;
|
||
const vMod = results.results.modificador.result;
|
||
|
||
const choiceDano = results.results.mostrar_dano.result;
|
||
const vModDano = results.results.modificador_dano.result;
|
||
|
||
const dL = vSombraRaw === 10 ? 0 : vSombraRaw;
|
||
const normD1 = v1 === 10 ? 0 : v1;
|
||
const normD2 = v2 === 10 ? 0 : v2;
|
||
|
||
const vMayor = Math.max(v1, v2);
|
||
const vMenor = Math.min(v1, v2);
|
||
const tSum = vMayor + vMenor;
|
||
const totalConMod = vSombraRaw + v1 + v2 + vMod;
|
||
|
||
const esExito = totalConMod <= vHab;
|
||
const triple = (vSombraRaw === v1 && v1 === v2);
|
||
|
||
|
||
const sumaDano = v1 + v2;
|
||
|
||
let status = 0;
|
||
|
||
if (esExito) {
|
||
if (triple) {
|
||
status = 2; // Éxito Crítico (Triple)
|
||
} else if (sumaDano >= 5) {
|
||
status = 4; // Éxito Medio
|
||
} else {
|
||
status = 5; // Éxito Bajo
|
||
}
|
||
} else {
|
||
if (triple) {
|
||
status = 3; // Pifia (Triple)
|
||
} else if (sumaDano <= 4) {
|
||
status = 6; // Fracaso Bajo
|
||
} else {
|
||
status = 7; // Fracaso Medio
|
||
}
|
||
}
|
||
|
||
const getLocName = (v) => {
|
||
if (v === 0) return "CABEZA";
|
||
if (v >= 1 && v <= 3) return "PECHO";
|
||
if (v === 4) return "BRAZO DCH.";
|
||
if (v === 5) return "BRAZO IZQ.";
|
||
if (v >= 6 && v <= 7) return "ABDOMEN";
|
||
if (v === 8) return "PIERNA IZQ.";
|
||
if (v === 9) return "PIERNA DCH.";
|
||
return "CUERPO";
|
||
};
|
||
|
||
const calcDano = (baseDmg) => Math.max(0, baseDmg + vModDano);
|
||
|
||
let finishData = {
|
||
total_final: totalConMod, sombra: vSombraRaw, mayor: vMayor, menor: vMenor,
|
||
tipo_resultado: status, dano_titulo: " ", num_hits: 0, dano_total_suma: 0
|
||
};
|
||
for(let i=0; i<10; i++) { finishData[`l${i}_n`] = " "; finishData[`l${i}_d`] = 0; }
|
||
|
||
if (choiceDano > 0) {
|
||
let locs = [];
|
||
|
||
if (choiceDano === 1) { finishData.dano_titulo = "TIPO 0"; locs.push({n: getLocName(dL), d: calcDano(vMenor)}); }
|
||
else if (choiceDano === 2) { finishData.dano_titulo = "TIPO I"; locs.push({n: getLocName(dL), d: calcDano(vMayor)}); }
|
||
else if (choiceDano === 3) { finishData.dano_titulo = "TIPO II"; locs.push({n: getLocName(dL), d: calcDano(tSum)}); }
|
||
else if (choiceDano === 4) { finishData.dano_titulo = "TIPO III"; locs.push({n: getLocName(dL), d: calcDano(tSum * 2)}); }
|
||
|
||
else if (choiceDano === 5) {
|
||
finishData.dano_titulo = `TIPO IV (Área - ${vMenor} locs)`;
|
||
let secuencia = [0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8, 9, -9];
|
||
let hits = [];
|
||
for (let i = 0; i < secuencia.length; i++) {
|
||
let locCandidata = dL + secuencia[i];
|
||
if (locCandidata >= 0 && locCandidata <= 9) {
|
||
if (!hits.includes(locCandidata)) hits.push(locCandidata);
|
||
}
|
||
if (hits.length === vMenor) break;
|
||
}
|
||
hits.forEach((l, index) => {
|
||
let baseD = (index === 0) ? tSum : (index < 3 ? vMayor : vMenor);
|
||
locs.push({n: getLocName(l), d: calcDano(baseD)});
|
||
});
|
||
}
|
||
|
||
else if (choiceDano === 6) {
|
||
finishData.dano_titulo = "TIPO V (Fragmentación)";
|
||
[dL, normD1, normD2].forEach(l => {
|
||
locs.push({n: getLocName(l), d: calcDano(tSum)});
|
||
});
|
||
}
|
||
|
||
// Guardamos localizaciones e instanciamos la suma total
|
||
finishData.num_hits = locs.length;
|
||
let sumaTemporal = 0;
|
||
|
||
locs.forEach((loc, index) => {
|
||
finishData[`l${index}_n`] = loc.n;
|
||
finishData[`l${index}_d`] = loc.d;
|
||
sumaTemporal += loc.d;
|
||
});
|
||
|
||
// Si es un daño múltiple (IV o V), pasamos la suma total a la plantilla
|
||
if (choiceDano === 5 || choiceDano === 6) {
|
||
finishData.dano_total_suma = sumaTemporal;
|
||
}
|
||
}
|
||
|
||
// 2. FINALIZACIÓN
|
||
finishRoll(results.rollId, finishData);
|
||
});
|
||
}
|
||
|
||
</script>
|
||
|
||
<!-- PLANTILLA TIRADA PRINCIPAL -->
|
||
<rolltemplate class="sheet-rolltemplate-tirada_sombra">
|
||
<div class="sheet-rt-card">
|
||
<div class="sheet-rt-header">{{nombre_tirada}}</div>
|
||
|
||
<div class="sheet-rt-row"><span>Habilidad:</span><span>{{habilidad_valor}}</span></div>
|
||
<div class="sheet-rt-row"><span>Modificador:</span><span>{{modificador}}</span></div>
|
||
<div class="sheet-rt-row sheet-shadow-row"><span>Total:</span><span class="sheet-value sheet-main-value">{{computed::total_final}}</span></div>
|
||
|
||
<div class="sheet-rt-row"><span>Dado Sombra:</span><span>{{computed::sombra}}</span></div>
|
||
<div class="sheet-rt-row"><span>Dado D+:</span><span>{{computed::mayor}}</span></div>
|
||
<div class="sheet-rt-row"><span>Dado D-:</span><span>{{computed::menor}}</span></div>
|
||
|
||
<div class="sheet-rt-result-box">
|
||
<!-- ÉXITOS -->
|
||
{{#rollTotal() computed::tipo_resultado 2}}<div class="sheet-rt-msg-critico">¡ÉXITO CRÍTICO!</div>{{/rollTotal() computed::tipo_resultado 2}}
|
||
{{#rollTotal() computed::tipo_resultado 4}}<div class="sheet-rt-msg-exito">ÉXITO MEDIO</div>{{/rollTotal() computed::tipo_resultado 4}}
|
||
{{#rollTotal() computed::tipo_resultado 5}}<div class="sheet-rt-msg-exito" style="color: #7fb3d5;">ÉXITO BAJO</div>{{/rollTotal() computed::tipo_resultado 5}}
|
||
|
||
<!-- FALLOS -->
|
||
{{#rollTotal() computed::tipo_resultado 3}}<div class="sheet-rt-msg-pifia">¡PÍFIA!</div>{{/rollTotal() computed::tipo_resultado 3}}
|
||
{{#rollTotal() computed::tipo_resultado 6}}<div class="sheet-rt-msg-fallo" style="color: #e59866;">FRACASO BAJO</div>{{/rollTotal() computed::tipo_resultado 6}}
|
||
{{#rollTotal() computed::tipo_resultado 7}}<div class="sheet-rt-msg-fallo">FRACASO MEDIO</div>{{/rollTotal() computed::tipo_resultado 7}}
|
||
</div>
|
||
|
||
{{#rollGreater() mostrar_dano 0}}
|
||
<div style="border-top: 2px solid #2c3e50; margin-top: 5px; background: #fdfaf4;">
|
||
|
||
<div style="background: #630d0d; color: white; text-align: center; font-weight: bold; padding: 4px; font-size: 0.9em; letter-spacing: 1px;">
|
||
IMPACTO: {{computed::dano_titulo}}
|
||
</div>
|
||
|
||
{{#rollGreater() computed::num_hits 0}}<div class="sheet-rt-row" style="background: #ece0d1;"><span>{{computed::l0_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l0_d}}</span></div>{{/rollGreater() computed::num_hits 0}}
|
||
{{#rollGreater() computed::num_hits 1}}<div class="sheet-rt-row"><span>{{computed::l1_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l1_d}}</span></div>{{/rollGreater() computed::num_hits 1}}
|
||
{{#rollGreater() computed::num_hits 2}}<div class="sheet-rt-row"><span>{{computed::l2_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l2_d}}</span></div>{{/rollGreater() computed::num_hits 2}}
|
||
{{#rollGreater() computed::num_hits 3}}<div class="sheet-rt-row"><span>{{computed::l3_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l3_d}}</span></div>{{/rollGreater() computed::num_hits 3}}
|
||
{{#rollGreater() computed::num_hits 4}}<div class="sheet-rt-row"><span>{{computed::l4_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l4_d}}</span></div>{{/rollGreater() computed::num_hits 4}}
|
||
{{#rollGreater() computed::num_hits 5}}<div class="sheet-rt-row"><span>{{computed::l5_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l5_d}}</span></div>{{/rollGreater() computed::num_hits 5}}
|
||
{{#rollGreater() computed::num_hits 6}}<div class="sheet-rt-row"><span>{{computed::l6_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l6_d}}</span></div>{{/rollGreater() computed::num_hits 6}}
|
||
{{#rollGreater() computed::num_hits 7}}<div class="sheet-rt-row"><span>{{computed::l7_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l7_d}}</span></div>{{/rollGreater() computed::num_hits 7}}
|
||
{{#rollGreater() computed::num_hits 8}}<div class="sheet-rt-row"><span>{{computed::l8_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l8_d}}</span></div>{{/rollGreater() computed::num_hits 8}}
|
||
{{#rollGreater() computed::num_hits 9}}<div class="sheet-rt-row"><span>{{computed::l9_n}}</span><span class="sheet-value" style="color: #630d0d;">{{computed::l9_d}}</span></div>{{/rollGreater() computed::num_hits 9}}
|
||
|
||
{{#rollGreater() computed::dano_total_suma 0}}
|
||
<div class="sheet-rt-row" style="background: #e6b8b8; border-top: 1px solid #630d0d;">
|
||
<span style="font-weight: bold; color: #630d0d;">DAÑO TOTAL:</span>
|
||
<span class="sheet-value" style="color: #630d0d; font-weight: bold; font-size: 1.2em;">{{computed::dano_total_suma}}</span>
|
||
</div>
|
||
{{/rollGreater() computed::dano_total_suma 0}}
|
||
|
||
</div>
|
||
{{/rollGreater() mostrar_dano 0}}
|
||
|
||
</div>
|
||
</rolltemplate> |