mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
2222 lines
126 KiB
HTML
2222 lines
126 KiB
HTML
<div>
|
|
<div class="sheet-section sheet-character">
|
|
<strong>1</strong>
|
|
<div class="sheet-flex">
|
|
<label class="sheet-col1">
|
|
<span data-i18n="player" data-i18n-title="player-name" title="Player name">Player</span>
|
|
<input type="text" name="attr_player_name" data-i18n-placeholder="player-name" placeholder="Player name">
|
|
</label>
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-logo.png" alt="Dungeonslayers 4 Logo">
|
|
<label class="sheet-col4">
|
|
<span data-i18n="character" data-i18n-title="character-name" title="Character name">Character</span>
|
|
<input type="text" name="attr_character_name" data-i18n-placeholder="character-name" placeholder="Character name">
|
|
</label>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<label class="sheet-col1">
|
|
<span data-i18n="race" data-i18n-title="race-example" title="Elf, Human, Dwarf, ...">Race</span>
|
|
<input type="text" name="attr_race" data-i18n-placeholder="race-example" placeholder="Elf, Human, Dwarf, ...">
|
|
</label>
|
|
<label class="sheet-col2">
|
|
<span class="sheet-center" data-i18n="experience-points-short" data-i18n-title="experience-points" title="Experience points">EP</span>
|
|
<input class="sheet-center" type="text" name="attr_experience_points" value="0">
|
|
</label>
|
|
<label class="sheet-col3">
|
|
<span class="sheet-center" data-i18n="level">Level</span>
|
|
<input class="sheet-center" type="text" name="attr_level">
|
|
</label>
|
|
<label class="sheet-col4">
|
|
<span data-i18n="class" data-i18n-title="class-example" title="Fighter, Scout, Healer, Wizard, Sorcerer, ...">Class</span>
|
|
<input type="text" name="attr_class" data-i18n-placeholder="class-example" placeholder="Fighter, Scout, Healer, Wizard, Sorcerer, ...">
|
|
</label>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<label class="sheet-col1">
|
|
<span data-i18n="culture" data-i18n-title="culture-example" title="Barbarians, Mountain Dwarves, Freelander, Kaiban, Wood Elves, Wild Elves, Desert Dwarves, Wyndlanders, Zasarian, ...">Culture</span>
|
|
<input type="text" name="attr_culture" data-i18n-placeholder="culture-example" placeholder="Barbarians, Mountain Dwarves, Freelander, Kaiban, Wood Elves, Wild Elves, Desert Dwarves, Wyndlanders, Zasarian, ...">
|
|
</label>
|
|
<label class="sheet-col2">
|
|
<span class="sheet-center" data-i18n-title="progress-points" title="Progress points" data-i18n="progress-points-short">PP</span>
|
|
<input disabled class="sheet-center sheet-split" type="text" name="attr_calculated_progress_points" value="@{progress_points}"><input disabled class="sheet-center sheet-split" type="text" value="/"><input class="sheet-center sheet-split" type="text" name="attr_progress_points_max" value="0">
|
|
</label>
|
|
<label class="sheet-col3">
|
|
<span class="sheet-center" data-i18n-title="talent-points" title="Talent points" data-i18n="talent-points-short">TP</span>
|
|
<input name="attr_talent_points" class="sheet-center sheet-split" type="text" value="0"><input disabled class="sheet-center sheet-split" type="text" value="/"><input disabled name="attr_calculated_talent_points_max" class="sheet-center sheet-split" type="text" value="@{max-talent_points}">
|
|
</label>
|
|
<label class="sheet-col4">
|
|
<span data-i18n="hero-class" data-i18n-title="hero-class-example" title="Berserker, Paladin, Weapon Master, Assassin, Ranger, Rogue, Cleric, Druid, Monk, Archmage, Battle Mage, Elementalist, Blood Mage, Demonologist, Necromancer, ...">Hero class</span>
|
|
<input type="text" name="attr_hero_class" data-i18n-placeholder="hero-class-example" placeholder="Berserker, Paladin, Weapon Master, Assassin, Ranger, Rogue, Cleric, Druid, Monk, Archmage, Battle Mage, Elementalist, Blood Mage, Demonologist, Necromancer, ...">
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-section sheet-attributes-traits">
|
|
<strong>2</strong>
|
|
<div class="sheet-flex sheet-attributes">
|
|
<label>
|
|
<span data-i18n="body">Body</span>
|
|
<input disabled name="attr_calculated_body" style="text-align:center" type="text" value="@{body}">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="mobility">Mobility</span>
|
|
<input disabled name="attr_calculated_mobility" style="text-align:center" type="text" value="@{mobility}">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="mind">Mind</span>
|
|
<input disabled name="attr_calculated_mind" style="text-align:center" type="text" value="@{mind}">
|
|
</label>
|
|
</div>
|
|
<div class="sheet-flex sheet-traits">
|
|
<label>
|
|
<span data-i18n="strength">Strength</span>
|
|
<input disabled name="attr_calculated_strength" style="text-align:center" type="text" value="@{strength}">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="agility">Agility</span>
|
|
<input disabled name="attr_calculated_agility" style="text-align:center" type="text" value="@{agility}">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="intellect">Intellect</span>
|
|
<input disabled name="attr_calculated_intellect" style="text-align:center" type="text" value="@{intellect}">
|
|
</label>
|
|
</div>
|
|
<div class="sheet-flex sheet-traits">
|
|
<label>
|
|
<span data-i18n="constitution">Constitution</span>
|
|
<input disabled name="attr_calculated_constitution" style="text-align:center" type="text" value="@{constitution}">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="dexterity">Dexterity</span>
|
|
<input disabled name="attr_calculated_dexterity" style="text-align:center" type="text" value="@{dexterity}">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="aura">Aura</span>
|
|
<input disabled name="attr_calculated_aura" style="text-align:center" type="text" value="@{aura}">
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-section sheet-combat-values">
|
|
<strong>3</strong>
|
|
<div class="sheet-flex">
|
|
<div class="sheet-flex">
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_max-hit-points" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-HP.png');" type="text" value="@{max-hit-points}">
|
|
<span data-i18n="hit-points" title="BOD + CO + 10*">Hit points</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_defense" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-DEF.png');" type="text" value="@{defense}">
|
|
<span data-i18n="defense" title="BOD + CO + AV">Defense</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_initiative" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-INI.png');" type="text" value="@{initiative}">
|
|
<span data-i18n="initiative" title="MOB + AG">Initiative</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_movement-rate" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-MR.png');" type="text" value="@{movement-rate}">
|
|
<span data-i18n="movement-rate" title="(MOB / 2) + 1*">Movement rate</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_max-mana" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-MP.png');" type="text" value="@{max-mana}">
|
|
<span data-i18n="mana" title="MND + AU + Level">Mana</span>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_melee-attack" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-MAT.png');" type="text" value="@{melee-attack}">
|
|
<span data-i18n="melee-attack" title="BOD + ST + Weapon">Melee attack</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_ranged-attack" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-RAT.png');" type="text" value="@{ranged-attack}">
|
|
<span data-i18n="ranged-attack" title="MOB + DX + Weapon">Ranged attack</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_normal-spellcasting" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-SPC.png');" type="text" value="@{normal-spellcasting}">
|
|
<span data-i18n="normal-spellcasting" title="MND + AU - AV + Spell">Spellcasting</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<input disabled name="attr_calculated_targeted-spellcasting" style="background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-TSC.png');" type="text" value="@{targeted-spellcasting}">
|
|
<span data-i18n="targeted-spellcasting" title="MND + DX - AV + Spell">Targeted spellcasting</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-section sheet-spell">
|
|
<strong>4</strong>
|
|
<div class="sheet-flex sheet-header">
|
|
<span class="sheet-col1" data-i18n="spell">Spell</span>
|
|
<span class="sheet-col2" data-i18n="type" data-i18n-title="spell-type" title="Normal spell, Targeted spell or Mind-influencing spell">Type</span>
|
|
<span class="sheet-col3" data-i18n-title="spell-modifier" title="Spell modifier" data-i18n="spell-modifier-short">SM</span>
|
|
<span class="sheet-col4" data-i18n="mana">Mana</span>
|
|
<span class="sheet-col5" data-i18n="distance">Distance</span>
|
|
<span class="sheet-col6" data-i18n="duration">Duration</span>
|
|
<span class="sheet-col7" data-i18n="cooldown">Cooldown</span>
|
|
</div>
|
|
<fieldset class="repeating_spell">
|
|
<div class="sheet-flex">
|
|
<div class="sheet-col1">
|
|
<input type="checkbox" name="attr_spell_active" value="1" data-i18n-title="active" title="Active">
|
|
<input type="text" name="attr_spell_name">
|
|
</div>
|
|
<div class="sheet-col2 sheet-img-select">
|
|
<label>
|
|
<input type="radio" name="attr_spell_type" value="spc">
|
|
<span class="sheet-normal-spell" data-i18n-title="normal-spell" title="Normal spell"></span>
|
|
</label>
|
|
<label>
|
|
<input type="radio" name="attr_spell_type" value="tsc">
|
|
<span class="sheet-targeted-spell" data-i18n-title="targeted-spell" title="Targeted spell"></span>
|
|
</label>
|
|
<label>
|
|
<input type="radio" name="attr_spell_type" value="msc">
|
|
<span class="sheet-mind-influencing-spell" data-i18n-title="mind-influencing-spell" title="Mind-influencing spell"></span>
|
|
</label>
|
|
</div>
|
|
<input class="sheet-col3" type="text" name="attr_spell_modifier">
|
|
<input class="sheet-col4" type="text" name="attr_spell_mana">
|
|
<input class="sheet-col5" type="text" name="attr_spell_distance">
|
|
<input class="sheet-col6" type="text" name="attr_spell_duration">
|
|
<input class="sheet-col7" type="text" name="attr_spell_cooldown">
|
|
<label class="sheet-row2">
|
|
<span data-i18n="effect">Effect</span>
|
|
<textarea name="attr_spell_effect" rowspan="2"></textarea>
|
|
</label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-section sheet-weapon">
|
|
<strong>5</strong>
|
|
<div class="sheet-flex sheet-header">
|
|
<span class="sheet-col1" data-i18n="weapon">Weapon</span>
|
|
<span class="sheet-col2" data-i18n="type" data-i18n-title="weapon-type" title="Melee attack or Ranged attack">Type</span>
|
|
<span class="sheet-col3" data-i18n-title="weapon-bonus" title="Weapon bonus" data-i18n="weapon-bonus-short">WB</span>
|
|
<span class="sheet-col4" data-i18n-title="magic-bonus" title="Magic bonus" data-i18n="magic-bonus-short">MB</span>
|
|
<span class="sheet-col5" data-i18n-title="opponent-defense" title="Opponent's defense" data-i18n="opponent-defense-short">OD</span>
|
|
<span class="sheet-col6" data-i18n="hands" data-i18n-title="hands-example" title="1H = one-handed, 2H = two-handed, ...">Hands</span>
|
|
<span class="sheet-col7" data-i18n="special">Special</span>
|
|
</div>
|
|
<fieldset class="repeating_weapon">
|
|
<div class="sheet-flex">
|
|
<div class="sheet-col1">
|
|
<input type="checkbox" name="attr_weapon_active" value="1" data-i18n-title="active" title="Active">
|
|
<input type="text" name="attr_weapon_name">
|
|
<label>
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-edit.png" class="sheet-edit-bonuses" data-i18n-title="edit-bonuses" title="Edit bonuses">
|
|
<input type="radio" name="attr_weapon_details_visibility" value="toggle">
|
|
</label>
|
|
</div>
|
|
<div class="sheet-col2 sheet-img-select">
|
|
<label>
|
|
<input type="radio" name="attr_weapon_type" value="mat">
|
|
<span class="sheet-melee-attack" data-i18n-title="melee-attack" title="Melee attack"></span>
|
|
</label>
|
|
<label>
|
|
<input type="radio" name="attr_weapon_type" value="rat">
|
|
<span class="sheet-ranged-attack" data-i18n-title="ranged-attack" title="Ranged attack"></span>
|
|
</label>
|
|
<label>
|
|
<input type="radio" name="attr_weapon_type" value="mra">
|
|
<span class="sheet-both-attack" data-i18n-title="both-attack" title="Both"></span>
|
|
</label>
|
|
</div>
|
|
<input class="sheet-col3" type="text" name="attr_weapon_mb_weapon_bonus">
|
|
<input type="hidden" name="attr_weapon_bonus">
|
|
<input class="sheet-col4" type="text" name="attr_weapon_magic_bonus">
|
|
<input class="sheet-col5" type="text" name="attr_weapon_mb_opponent_defense">
|
|
<input type="hidden" name="attr_weapon_opponent_defense">
|
|
<input class="sheet-col6" type="text" name="attr_weapon_hands">
|
|
<input class="sheet-col7" type="text" name="attr_weapon_special">
|
|
</div>
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_weapon_details_visibility" value="visible">
|
|
<input type="hidden" name="attr_weapon_details_visibility_toggle">
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_weapon_details_visibility" value="hidden" checked>
|
|
<table class="sheet-bonus-details">
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="body">Body</span>
|
|
<input type="text" name="attr_weapon_body_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mobility">Mobility</span>
|
|
<input type="text" name="attr_weapon_mobility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mind">Mind</span>
|
|
<input type="text" name="attr_weapon_mind_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="hit-points">Hit points</span>
|
|
<input type="text" name="attr_weapon_hit-points_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="defense">Defense</span>
|
|
<input type="text" name="attr_weapon_defense_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="strength">Strength</span>
|
|
<input type="text" name="attr_weapon_strength_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="agility">Agility</span>
|
|
<input type="text" name="attr_weapon_agility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="intellect">Intellect</span>
|
|
<input type="text" name="attr_weapon_intellect_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="initiative">Initiative</span>
|
|
<input type="text" name="attr_weapon_mb_initiative_bonus">
|
|
<input type="hidden" name="attr_weapon_initiative_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="movement-rate">Movement rate</span>
|
|
<input type="text" name="attr_weapon_movement-rate_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="constitution">Constitution</span>
|
|
<input type="text" name="attr_weapon_constitution_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="dexterity">Dexterity</span>
|
|
<input type="text" name="attr_weapon_dexterity_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="aura">Aura</span>
|
|
<input type="text" name="attr_weapon_aura_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="melee-attack">Melee attack</span>
|
|
<input type="text" name="attr_weapon_melee-attack_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="ranged-attack">Ranged attack</span>
|
|
<input type="text" name="attr_weapon_ranged-attack_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="normal-spellcasting">Spellcasting</span>
|
|
<input type="text" name="attr_weapon_normal-spellcasting_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="targeted-spellcasting">Targeted spellcasting</span>
|
|
<input type="text" name="attr_weapon_targeted-spellcasting_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="mana">Mana</span>
|
|
<input type="text" name="attr_weapon_mana_bonus">
|
|
</td>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-section sheet-armor">
|
|
<strong>6</strong>
|
|
<div class="sheet-flex sheet-header">
|
|
<span class="sheet-col1" data-i18n="armor">Armor</span>
|
|
<span class="sheet-col2" data-i18n-title="armor-value" title="Armor value" data-i18n="armor-value-short">AV</span>
|
|
<span class="sheet-col3" data-i18n-title="magic-bonus" title="Magic bonus" data-i18n="magic-bonus-short">MB</span>
|
|
<span class="sheet-col4" data-i18n="type" data-i18n-title="armor-type-example" title="Helmet, Body, Vambrace, Greaves, Shield, ...">Type</span>
|
|
<span class="sheet-col5" data-i18n="material" data-i18n-title="armor-material-example" title="Wood, Leather, Metal, ...">Material</span>
|
|
<span class="sheet-col6" data-i18n="special">Special</span>
|
|
</div>
|
|
<fieldset class="repeating_armor">
|
|
<div class="sheet-flex">
|
|
<div class="sheet-col1">
|
|
<input type="checkbox" name="attr_armor_active" value="1" data-i18n-title="active" title="Active">
|
|
<input type="text" name="attr_armor_name">
|
|
<label>
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-edit.png" class="sheet-edit-bonuses" data-i18n-title="edit-bonuses" title="Edit bonuses">
|
|
<input type="radio" name="attr_armor_details_visibility" value="toggle">
|
|
</label>
|
|
</div>
|
|
<input class="sheet-col2" type="text" name="attr_armor_value">
|
|
<input class="sheet-col3" type="text" name="attr_armor_magic_bonus">
|
|
<input class="sheet-col4" type="text" name="attr_armor_type">
|
|
<input class="sheet-col5" type="text" name="attr_armor_material">
|
|
<input class="sheet-col6" type="text" name="attr_armor_special">
|
|
</div>
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_armor_details_visibility" value="visible">
|
|
<input type="hidden" name="attr_armor_details_visibility_toggle">
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_armor_details_visibility" value="hidden" checked>
|
|
<table class="sheet-bonus-details">
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="body">Body</span>
|
|
<input type="text" name="attr_armor_body_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mobility">Mobility</span>
|
|
<input type="text" name="attr_armor_mobility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mind">Mind</span>
|
|
<input type="text" name="attr_armor_mind_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="hit-points">Hit points</span>
|
|
<input type="text" name="attr_armor_hit-points_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="defense">Defense</span>
|
|
<input type="text" name="attr_armor_defense_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="strength">Strength</span>
|
|
<input type="text" name="attr_armor_strength_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="agility">Agility</span>
|
|
<input type="text" name="attr_armor_agility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="intellect">Intellect</span>
|
|
<input type="text" name="attr_armor_intellect_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="initiative">Initiative</span>
|
|
<input type="text" name="attr_armor_mb_initiative_bonus">
|
|
<input type="hidden" name="attr_armor_initiative_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="movement-rate">Movement rate</span>
|
|
<input type="text" name="attr_armor_mb_movement-rate_bonus">
|
|
<input type="hidden" name="attr_armor_movement-rate_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="constitution">Constitution</span>
|
|
<input type="text" name="attr_armor_constitution_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="dexterity">Dexterity</span>
|
|
<input type="text" name="attr_armor_dexterity_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="aura">Aura</span>
|
|
<input type="text" name="attr_armor_aura_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="melee-attack">Melee attack</span>
|
|
<input type="text" name="attr_armor_melee-attack_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="ranged-attack">Ranged attack</span>
|
|
<input type="text" name="attr_armor_ranged-attack_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="normal-spellcasting">Spellcasting</span>
|
|
<input type="text" name="attr_armor_normal-spellcasting_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="targeted-spellcasting">Targeted spellcasting</span>
|
|
<input type="text" name="attr_armor_targeted-spellcasting_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="mana">Mana</span>
|
|
<input type="text" name="attr_armor_mana_bonus">
|
|
</td>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-section sheet-equipment">
|
|
<strong>7</strong>
|
|
<div class="sheet-flex sheet-header">
|
|
<span data-i18n="equipment">Equipment</span>
|
|
<span data-i18n="quantity">Quantity</span>
|
|
<span data-i18n="where-carried">Where carried?</span>
|
|
<span data-i18n="special">Special</span>
|
|
</div>
|
|
<fieldset class="repeating_equipment">
|
|
<div class="sheet-flex">
|
|
<div>
|
|
<input type="text" name="attr_equipment_name">
|
|
<label>
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-edit.png" class="sheet-edit-bonuses" data-i18n-title="edit-bonuses" title="Edit bonuses">
|
|
<input type="radio" name="attr_equipment_details_visibility" value="toggle">
|
|
</label>
|
|
</div>
|
|
<input type="text" name="attr_equipment_quantity">
|
|
<input type="text" name="attr_equipment_location">
|
|
<input type="text" name="attr_equipment_special">
|
|
</div>
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_equipment_details_visibility" value="visible">
|
|
<input type="hidden" name="attr_equipment_details_visibility_toggle">
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_equipment_details_visibility" value="hidden" checked>
|
|
<table class="sheet-bonus-details">
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="body">Body</span>
|
|
<input type="text" name="attr_equipment_body_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mobility">Mobility</span>
|
|
<input type="text" name="attr_equipment_mobility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mind">Mind</span>
|
|
<input type="text" name="attr_equipment_mind_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="hit-points">Hit points</span>
|
|
<input type="text" name="attr_equipment_hit-points_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="defense">Defense</span>
|
|
<input type="text" name="attr_equipment_defense_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="strength">Strength</span>
|
|
<input type="text" name="attr_equipment_strength_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="agility">Agility</span>
|
|
<input type="text" name="attr_equipment_agility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="intellect">Intellect</span>
|
|
<input type="text" name="attr_equipment_intellect_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="initiative">Initiative</span>
|
|
<input type="text" name="attr_equipment_initiative_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="movement-rate">Movement rate</span>
|
|
<input type="text" name="attr_equipment_movement-rate_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="constitution">Constitution</span>
|
|
<input type="text" name="attr_equipment_constitution_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="dexterity">Dexterity</span>
|
|
<input type="text" name="attr_equipment_dexterity_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="aura">Aura</span>
|
|
<input type="text" name="attr_equipment_aura_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="melee-attack">Melee attack</span>
|
|
<input type="text" name="attr_equipment_melee-attack_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="ranged-attack">Ranged attack</span>
|
|
<input type="text" name="attr_equipment_ranged-attack_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="normal-spellcasting">Spellcasting</span>
|
|
<input type="text" name="attr_equipment_normal-spellcasting_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="targeted-spellcasting">Targeted spellcasting</span>
|
|
<input type="text" name="attr_equipment_targeted-spellcasting_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="mana">Mana</span>
|
|
<input type="text" name="attr_equipment_mana_bonus">
|
|
</td>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-section sheet-talent">
|
|
<strong>8</strong>
|
|
<div class="sheet-flex sheet-header">
|
|
<span class="sheet-col1" data-i18n="talent">Talent</span>
|
|
<span class="sheet-col2" data-i18n="tier">Tier</span>
|
|
<span class="sheet-col3" data-i18n="effect">Effect</span>
|
|
</div>
|
|
<fieldset class="repeating_talent">
|
|
<div class="sheet-flex">
|
|
<div class="sheet-col1">
|
|
<input type="checkbox" name="attr_talent_active" value="1" data-i18n-title="active" title="Active">
|
|
<input type="text" name="attr_talent_name">
|
|
<label>
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-edit.png" class="sheet-edit-bonuses" data-i18n-title="edit-bonuses" title="Edit bonuses">
|
|
<input type="radio" name="attr_talent_details_visibility" value="toggle">
|
|
</label>
|
|
</div>
|
|
<input class="sheet-col2-1" type="text" name="attr_talent_rank">
|
|
<span class="sheet-col2-2" data-i18n="of">of</span>
|
|
<input class="sheet-col2-3" type="text" name="attr_talent_rank_max">
|
|
<input class="sheet-col3" type="text" name="attr_talent_effect">
|
|
</div>
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_talent_details_visibility" value="visible">
|
|
<input type="hidden" name="attr_talent_details_visibility_toggle">
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_talent_details_visibility" value="hidden" checked>
|
|
<table class="sheet-bonus-details">
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="body">Body</span>
|
|
<input type="text" name="attr_talent_body_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mobility">Mobility</span>
|
|
<input type="text" name="attr_talent_mobility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mind">Mind</span>
|
|
<input type="text" name="attr_talent_mind_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="hit-points">Hit points</span>
|
|
<input type="text" name="attr_talent_hit-points_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="defense">Defense</span>
|
|
<input type="text" name="attr_talent_defense_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="strength">Strength</span>
|
|
<input type="text" name="attr_talent_strength_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="agility">Agility</span>
|
|
<input type="text" name="attr_talent_agility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="intellect">Intellect</span>
|
|
<input type="text" name="attr_talent_intellect_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="initiative">Initiative</span>
|
|
<input type="text" name="attr_talent_initiative_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="movement-rate">Movement rate</span>
|
|
<input type="text" name="attr_talent_movement-rate_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="constitution">Constitution</span>
|
|
<input type="text" name="attr_talent_constitution_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="dexterity">Dexterity</span>
|
|
<input type="text" name="attr_talent_dexterity_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="aura">Aura</span>
|
|
<input type="text" name="attr_talent_aura_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="melee-attack">Melee attack</span>
|
|
<input type="text" name="attr_talent_melee-attack_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="ranged-attack">Ranged attack</span>
|
|
<input type="text" name="attr_talent_ranged-attack_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="normal-spellcasting">Spellcasting</span>
|
|
<input type="text" name="attr_talent_normal-spellcasting_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="targeted-spellcasting">Targeted spellcasting</span>
|
|
<input type="text" name="attr_talent_targeted-spellcasting_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="mana">Mana</span>
|
|
<input type="text" name="attr_talent_mana_bonus">
|
|
</td>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-section sheet-miscellaneous">
|
|
<strong>9</strong>
|
|
<div class="sheet-flex sheet-header">
|
|
<span data-i18n="miscellaneous">Miscellaneous</span>
|
|
<span data-i18n="special">Special</span>
|
|
</div>
|
|
<fieldset class="repeating_miscellaneous">
|
|
<div class="sheet-flex">
|
|
<div class="sheet-col1">
|
|
<input type="checkbox" name="attr_miscellaneous_active" value="1" data-i18n-title="active" title="Active">
|
|
<input type="text" name="attr_miscellaneous_name">
|
|
<label>
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-edit.png" class="sheet-edit-bonuses" data-i18n-title="edit-bonuses" title="Edit bonuses">
|
|
<input type="radio" name="attr_miscellaneous_details_visibility" value="toggle">
|
|
</label>
|
|
</div>
|
|
<input type="text" name="attr_miscellaneous_special">
|
|
</div>
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_miscellaneous_details_visibility" value="visible">
|
|
<input type="hidden" name="attr_miscellaneous_details_visibility_toggle">
|
|
<input class="sheet-visibility-controls" type="radio" name="attr_miscellaneous_details_visibility" value="hidden" checked>
|
|
<table class="sheet-bonus-details">
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="body">Body</span>
|
|
<input type="text" name="attr_miscellaneous_body_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mobility">Mobility</span>
|
|
<input type="text" name="attr_miscellaneous_mobility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="mind">Mind</span>
|
|
<input type="text" name="attr_miscellaneous_mind_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="hit-points">Hit points</span>
|
|
<input type="text" name="attr_miscellaneous_hit-points_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="defense">Defense</span>
|
|
<input type="text" name="attr_miscellaneous_defense_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="strength">Strength</span>
|
|
<input type="text" name="attr_miscellaneous_strength_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="agility">Agility</span>
|
|
<input type="text" name="attr_miscellaneous_agility_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="intellect">Intellect</span>
|
|
<input type="text" name="attr_miscellaneous_intellect_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="initiative">Initiative</span>
|
|
<input type="text" name="attr_miscellaneous_initiative_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="movement-rate">Movement rate</span>
|
|
<input type="text" name="attr_miscellaneous_movement-rate_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span data-i18n="constitution">Constitution</span>
|
|
<input type="text" name="attr_miscellaneous_constitution_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="dexterity">Dexterity</span>
|
|
<input type="text" name="attr_miscellaneous_dexterity_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="aura">Aura</span>
|
|
<input type="text" name="attr_miscellaneous_aura_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="melee-attack">Melee attack</span>
|
|
<input type="text" name="attr_miscellaneous_melee-attack_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="ranged-attack">Ranged attack</span>
|
|
<input type="text" name="attr_miscellaneous_ranged-attack_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="normal-spellcasting">Spellcasting</span>
|
|
<input type="text" name="attr_miscellaneous_normal-spellcasting_bonus">
|
|
</td>
|
|
<td>
|
|
<span data-i18n="targeted-spellcasting">Targeted spellcasting</span>
|
|
<input type="text" name="attr_miscellaneous_targeted-spellcasting_bonus">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"> </td>
|
|
<td>
|
|
<span data-i18n="mana">Mana</span>
|
|
<input type="text" name="attr_miscellaneous_mana_bonus">
|
|
</td>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-section sheet-progress-points1">
|
|
<strong>10</strong>
|
|
<div><table>
|
|
<tr class="sheet-header">
|
|
<th></th>
|
|
<th data-i18n="start">Start</th>
|
|
<th colspan="5" data-i18n="progress-points">Progress points</th>
|
|
<th data-i18n="weapon">Weapon</th>
|
|
<th data-i18n="armor">Armor</th>
|
|
<th data-i18n="equipment">Equipment</th>
|
|
<th data-i18n="talent">Talent</th>
|
|
<th data-i18n="miscellaneous">Miscellaneous</th>
|
|
<th colspan="3" data-i18n="total">Total</th>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="body">Body</td>
|
|
<td><input type="text" name="attr_body_initial" placeholder="4-8" tabindex="1"></td>
|
|
<td><input type="text" name="attr_body_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_body_progress_costs" placeholder="-" tabindex="20"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_body_progress_points_bonus" value="@{body_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_body_weapon_bonus" value="@{body_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_body_armor_bonus" value="@{body_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_body_equipment_bonus" value="@{body_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_body_talent_bonus" value="@{body_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_body_miscellaneous_bonus" value="@{body_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_body" value="@{body}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_body_max" tabindex="40"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="mobility">Mobility</td>
|
|
<td><input type="text" name="attr_mobility_initial" placeholder="4-8" tabindex="2"></td>
|
|
<td><input type="text" name="attr_mobility_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_mobility_progress_costs" placeholder="-" tabindex="21"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility_progress_points_bonus" value="@{mobility_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility_weapon_bonus" value="@{mobility_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility_armor_bonus" value="@{mobility_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility_equipment_bonus" value="@{mobility_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility_talent_bonus" value="@{mobility_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility_miscellaneous_bonus" value="@{mobility_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mobility" value="@{mobility}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_mobility_max" tabindex="41"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="mind">Mind</td>
|
|
<td><input type="text" name="attr_mind_initial" placeholder="4-8" tabindex="3"></td>
|
|
<td><input type="text" name="attr_mind_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_mind_progress_costs" placeholder="-" tabindex="22"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_mind_progress_points_bonus" value="@{mind_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mind_weapon_bonus" value="@{mind_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mind_armor_bonus" value="@{mind_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mind_equipment_bonus" value="@{mind_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mind_talent_bonus" value="@{mind_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mind_miscellaneous_bonus" value="@{mind_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mind" value="@{mind}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_mind_max" tabindex="42"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="strength">Strength</td>
|
|
<td><input type="text" name="attr_strength_initial" placeholder="0-4" tabindex="4"></td>
|
|
<td><input type="text" name="attr_strength_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_strength_progress_costs" tabindex="23"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_strength_progress_points_bonus" value="@{strength_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_strength_weapon_bonus" value="@{strength_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_strength_armor_bonus" value="@{strength_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_strength_equipment_bonus" value="@{strength_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_strength_talent_bonus" value="@{strength_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_strength_miscellaneous_bonus" value="@{strength_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_strength2" value="@{strength}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_strength_max" tabindex="43"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="constitution">Constitution</td>
|
|
<td><input type="text" name="attr_constitution_initial" placeholder="0-4" tabindex="5"></td>
|
|
<td><input type="text" name="attr_constitution_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_constitution_progress_costs" tabindex="24"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution_progress_points_bonus" value="@{constitution_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution_weapon_bonus" value="@{constitution_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution_armor_bonus" value="@{constitution_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution_equipment_bonus" value="@{constitution_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution_talent_bonus" value="@{constitution_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution_miscellaneous_bonus" value="@{constitution_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_constitution" value="@{constitution}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_constitution_max" tabindex="44"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="agility">Agility</td>
|
|
<td><input type="text" name="attr_agility_initial" placeholder="0-4" tabindex="6"></td>
|
|
<td><input type="text" name="attr_agility_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_agility_progress_costs" tabindex="25"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_agility_progress_points_bonus" value="@{agility_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_agility_weapon_bonus" value="@{agility_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_agility_armor_bonus" value="@{agility_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_agility_equipment_bonus" value="@{agility_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_agility_talent_bonus" value="@{agility_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_agility_miscellaneous_bonus" value="@{agility_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_agility" value="@{agility}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_agility_max" tabindex="45"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="dexterity">Dexterity</td>
|
|
<td><input type="text" name="attr_dexterity_initial" placeholder="0-4" tabindex="7"></td>
|
|
<td><input type="text" name="attr_dexterity_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_dexterity_progress_costs" tabindex="26"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity_progress_points_bonus" value="@{dexterity_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity_weapon_bonus" value="@{dexterity_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity_armor_bonus" value="@{dexterity_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity_equipment_bonus" value="@{dexterity_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity_talent_bonus" value="@{dexterity_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity_miscellaneous_bonus" value="@{dexterity_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_dexterity" value="@{dexterity}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_dexterity_max" tabindex="46"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="intellect">Intellect</td>
|
|
<td><input type="text" name="attr_intellect_initial" placeholder="0-4" tabindex="8"></td>
|
|
<td><input type="text" name="attr_intellect_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_intellect_progress_costs" tabindex="27"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect_progress_points_bonus" value="@{intellect_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect_weapon_bonus" value="@{intellect_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect_armor_bonus" value="@{intellect_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect_equipment_bonus" value="@{intellect_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect_talent_bonus" value="@{intellect_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect_miscellaneous_bonus" value="@{intellect_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_intellect" value="@{intellect}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_intellect_max" tabindex="47"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="aura">Aura</td>
|
|
<td><input type="text" name="attr_aura_initial" placeholder="0-4" tabindex="9"></td>
|
|
<td><input type="text" name="attr_aura_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_aura_progress_costs" tabindex="28"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_aura_progress_points_bonus" value="@{aura_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_aura_weapon_bonus" value="@{aura_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_aura_armor_bonus" value="@{aura_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_aura_equipment_bonus" value="@{aura_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_aura_talent_bonus" value="@{aura_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_aura_miscellaneous_bonus" value="@{aura_miscellaneous_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_aura" value="@{aura}"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input type="text" name="attr_aura_max" tabindex="48"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="hit-points">Hit points</td>
|
|
<td><input type="text" name="attr_hit-points_start" tabindex="10"></td>
|
|
<td><input type="text" name="attr_hit-points_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_hit-points_progress_costs" tabindex="29"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_hit-points_progress_points_bonus" value="@{hit-points_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_hit-points_weapon_bonus" value="@{hit-points_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_hit-points_armor_bonus" value="@{hit-points_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_hit-points_equipment_bonus" value="@{hit-points_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_hit-points_talent_bonus" value="@{hit-points_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_hit-points_miscellaneous_bonus" value="@{hit-points_miscellaneous_bonus}"></td>
|
|
<td><input type="text" name="attr_hit-points" data-i18n-title="current-hit-points" title="Current hit points"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input disabled type="text" name="attr_calculated_max-hit-points" value="@{max-hit-points}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="defense">Defense</td>
|
|
<td><input type="text" name="attr_defense_start" placeholder="-" tabindex="11"></td>
|
|
<td><input type="text" name="attr_defense_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_defense_progress_costs" placeholder="-" tabindex="30"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_defense_progress_points_bonus" value="@{defense_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_defense_weapon_bonus" value="@{defense_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_defense_armor_bonus" value="@{defense_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_defense_equipment_bonus" value="@{defense_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_defense_talent_bonus" value="@{defense_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_defense_miscellaneous_bonus" value="@{defense_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_defense" value="@{defense}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="initiative">Initiative</td>
|
|
<td><input type="text" name="attr_initiative_start" placeholder="-" tabindex="12"></td>
|
|
<td><input type="text" name="attr_initiative_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_initiative_progress_costs" placeholder="-" tabindex="31"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_initiative_progress_points_bonus" value="@{initiative_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_initiative_weapon_bonus" value="@{initiative_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_initiative_armor_bonus" value="@{initiative_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_initiative_equipment_bonus" value="@{initiative_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_initiative_talent_bonus" value="@{initiative_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_initiative_miscellaneous_bonus" value="@{initiative_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_initiative" value="@{initiative}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="movement-rate">Movement rate</td>
|
|
<td><input type="text" name="attr_movement-rate_start" tabindex="12"></td>
|
|
<td><input type="text" name="attr_movement-rate_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_movement-rate_progress_costs" placeholder="-" tabindex="32"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_movement-rate_progress_points_bonus" value="@{movement-rate_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_movement-rate_weapon_bonus" value="@{movement-rate_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_movement-rate_armor_bonus" value="@{movement-rate_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_movement-rate_equipment_bonus" value="@{movement-rate_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_movement-rate_talent_bonus" value="@{movement-rate_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_movement-rate_miscellaneous_bonus" value="@{movement-rate_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_movement-rate" value="@{movement-rate}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="mana">Mana</td>
|
|
<td><input type="text" name="attr_mana_start" placeholder="-" tabindex="13"></td>
|
|
<td><input type="text" name="attr_mana_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_mana_progress_costs" placeholder="-" tabindex="33"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_mana_progress_points_bonus" value="@{mana_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mana_weapon_bonus" value="@{mana_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mana_armor_bonus" value="@{mana_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mana_equipment_bonus" value="@{mana_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mana_talent_bonus" value="@{mana_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_mana_miscellaneous_bonus" value="@{mana_miscellaneous_bonus}"></td>
|
|
<td><input type="text" name="attr_mana" data-i18n-title="current-mana-points" title="Current mana points"></td>
|
|
<td data-i18n="of">of</td>
|
|
<td><input disabled type="text" name="attr_calculated_max-mana" value="@{max-mana}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="melee-attack">Melee attack</td>
|
|
<td><input type="text" name="attr_melee-attack_start" placeholder="-" tabindex="14"></td>
|
|
<td><input type="text" name="attr_melee-attack_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_melee-attack_progress_costs" placeholder="-" tabindex="34"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_melee-attack_progress_points_bonus" value="@{melee-attack_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_melee-attack_weapon_bonus" value="@{melee-attack_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_melee-attack_armor_bonus" value="@{melee-attack_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_melee-attack_equipment_bonus" value="@{melee-attack_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_melee-attack_talent_bonus" value="@{melee-attack_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_melee-attack_miscellaneous_bonus" value="@{melee-attack_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_melee-attack" value="@{melee-attack}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="ranged-attack">Ranged attack</td>
|
|
<td><input type="text" name="attr_ranged-attack_start" placeholder="-" tabindex="15"></td>
|
|
<td><input type="text" name="attr_ranged-attack_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_ranged-attack_progress_costs" placeholder="-" tabindex="35"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_ranged-attack_progress_points_bonus" value="@{ranged-attack_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_ranged-attack_weapon_bonus" value="@{ranged-attack_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_ranged-attack_armor_bonus" value="@{ranged-attack_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_ranged-attack_equipment_bonus" value="@{ranged-attack_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_ranged-attack_talent_bonus" value="@{ranged-attack_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_ranged-attack_miscellaneous_bonus" value="@{ranged-attack_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_ranged-attack" value="@{ranged-attack}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="normal-spellcasting">Spellcasting</td>
|
|
<td><input type="text" name="attr_normal-spellcasting_start" placeholder="-" tabindex="16"></td>
|
|
<td><input type="text" name="attr_normal-spellcasting_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_normal-spellcasting_progress_costs" placeholder="-" tabindex="36"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_normal-spellcasting_progress_points_bonus" value="@{normal-spellcasting_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_normal-spellcasting_weapon_bonus" value="@{normal-spellcasting_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_normal-spellcasting_armor_bonus" value="@{normal-spellcasting_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_normal-spellcasting_equipment_bonus" value="@{normal-spellcasting_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_normal-spellcasting_talent_bonus" value="@{normal-spellcasting_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_normal-spellcasting_miscellaneous_bonus" value="@{normal-spellcasting_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_normal-spellcasting" value="@{normal-spellcasting}"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="targeted-spellcasting">Targeted spellcasting</td>
|
|
<td><input type="text" name="attr_targeted-spellcasting_start" placeholder="-" tabindex="17"></td>
|
|
<td><input type="text" name="attr_targeted-spellcasting_progress_points" placeholder="-"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_targeted-spellcasting_progress_costs" placeholder="-" tabindex="37"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_targeted-spellcasting_progress_points_bonus" value="@{targeted-spellcasting_progress_points_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_targeted-spellcasting_weapon_bonus" value="@{targeted-spellcasting_weapon_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_targeted-spellcasting_armor_bonus" value="@{targeted-spellcasting_armor_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_targeted-spellcasting_equipment_bonus" value="@{targeted-spellcasting_equipment_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_targeted-spellcasting_talent_bonus" value="@{targeted-spellcasting_talent_bonus}"></td>
|
|
<td><input disabled type="text" name="attr_calculated_targeted-spellcasting_miscellaneous_bonus" value="@{targeted-spellcasting_miscellaneous_bonus}"></td>
|
|
<td colspan="3"><input disabled style="width:100%;text-align:center" type="text" name="attr_calculated_targeted-spellcasting" value="@{targeted-spellcasting}"></td>
|
|
</tr>
|
|
</table></div>
|
|
</div>
|
|
<div class="sheet-section sheet-progress-points2">
|
|
<strong>11</strong>
|
|
<div><table>
|
|
<tr class="sheet-header">
|
|
<th></th>
|
|
<th colspan="5" data-i18n="progress-points">Progress points</th>
|
|
<th data-i18n="additional">Additional</th>
|
|
<th data-i18n="learned">Learned</th>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="talents">Talents</td>
|
|
<td><input type="text" name="attr_talent_points_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_talent_points_progress_costs" placeholder="3" value="3"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_talent_points_progress_points_bonus" value="@{talent_points_progress_points_bonus}"></td>
|
|
<td><input type="text" name="attr_talent_points_additional" placeholder="1-2"></td>
|
|
<td><input type="text" name="attr_talent_points_special"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="cultural-talents">Cultural talents</td>
|
|
<td><input type="text" name="attr_culture_talent_progress_points"></td>
|
|
<td></td>
|
|
<td>=></td>
|
|
<td></td>
|
|
<td><input type="text" name="attr_culture_talent_progress_bonus"></td>
|
|
<td><input type="text" name="attr_culture_talent_additional" placeholder="0-4"></td>
|
|
<td><input type="text" name="attr_culture_talent_special"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="languages">Languages</td>
|
|
<td><input type="text" name="attr_language_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_language_progress_costs" placeholder="1" value="1"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_language_progress_points_bonus" value="@{language_progress_points_bonus}"></td>
|
|
<td><input type="text" name="attr_language_additional" placeholder="1-2"></td>
|
|
<td><input type="text" name="attr_language_special"></td>
|
|
</tr>
|
|
<tr>
|
|
<td data-i18n="alphabets">Alphabets</td>
|
|
<td><input type="text" name="attr_alphabet_progress_points"></td>
|
|
<td>/</td>
|
|
<td><input type="text" name="attr_alphabet_progress_costs" placeholder="1" value="1"></td>
|
|
<td>=</td>
|
|
<td><input disabled type="text" name="attr_calculated_alphabet_progress_points_bonus" value="@{alphabet_progress_points_bonus}"></td>
|
|
<td><input type="text" name="attr_alphabet_additional" placeholder="0-2"></td>
|
|
<td><input type="text" name="attr_alphabet_special"></td>
|
|
</tr>
|
|
</table></div>
|
|
</div>
|
|
<div class="sheet-section sheet-checks">
|
|
<strong>12</strong>
|
|
<div class="sheet-flex">
|
|
<div class="sheet-flex sheet-header">
|
|
<span data-i18n="typical-checks">Typical checks</span>
|
|
<span data-i18n-title="attribute+trait" title="Attribute + Trait" data-i18n="base">Base</span>
|
|
<span data-i18n-title="talent" title="Talent" data-i18n="bonus">Bonus</span>
|
|
</div>
|
|
<div class="sheet-flex sheet-header">
|
|
<span data-i18n="typical-checks">Typical checks</span>
|
|
<span data-i18n-title="attribute+trait" title="Attribute + Trait" data-i18n="base">Base</span>
|
|
<span data-i18n-title="talent" title="Talent" data-i18n="bonus">Bonus</span>
|
|
</div>
|
|
<div class="sheet-flex sheet-header">
|
|
<span data-i18n="typical-checks">Typical checks</span>
|
|
<span data-i18n-title="attribute+trait" title="Attribute + Trait" data-i18n="base">Base</span>
|
|
<span data-i18n-title="talent" title="Talent" data-i18n="bonus">Bonus</span>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{appraise} ^{check}}}{{^{check-value}=[[@{appraise_base} + @{appraise_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_appraise_check" data-i18n="appraise">Appraise</button>
|
|
<input disabled type="text" name="attr_appraise_base" data-i18n-title="mind-short+intellect-short" title="MND+IN" value="@{mind} [GEI] + @{intellect} [VE]">
|
|
<input type="text" name="attr_appraise_bonus" data-i18n-title="appraise-bonus" title="Appraise, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{climb} ^{check}}}{{^{check-value}=[[@{climb_base} + @{climb_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_climb_check" data-i18n="climb">Climb</button>
|
|
<input disabled type="text" name="attr_climb_base" data-i18n-title="mobility-short+strength-short" title="MOB+ST" value="@{mobility} [AGI] + @{strength} [ST]">
|
|
<input type="text" name="attr_climb_bonus" data-i18n-title="climb-bonus" title="Acrobat, Master Climber, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{communicate} ^{check}}}{{^{check-value}=[[@{communicate_base} + @{communicate_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_communicate_check" data-i18n="communicate">Communicate</button>
|
|
<input disabled type="text" name="attr_communicate_base" data-i18n-title="mind-short+dexterity-short" title="MND+DX" value="@{mind} [GEI] + @{dexterity} [GE]">
|
|
<input type="text" name="attr_communicate_bonus" data-i18n-title="communicate-bonus" title="Education, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{decipher-script} ^{check}}}{{^{check-value}=[[@{decipher_script_base} + @{decipher_script_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_decipher_script_check" data-i18n="decipher-script">Decipher script</button>
|
|
<input disabled type="text" name="attr_decipher_script_base" data-i18n-title="mind-short+intellect-short" title="MND+IN" value="@{mind} [GEI] + @{intellect} [VE]">
|
|
<input type="text" name="attr_decipher_script_bonus" data-i18n-title="decipher-script-bonus" title="Alertness, Education, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{defy-poison} ^{check}}}{{^{check-value}=[[@{defy_poison_base} + @{defy_poison_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_defy_poison_check" data-i18n="defy-poison">Defy poison</button>
|
|
<input disabled type="text" name="attr_defy_poison_base" data-i18n-title="body-short+constitution-short" title="BOD+CO" value="@{body} [KÖR] + @{constitution} [HÄ]">
|
|
<input type="text" name="attr_defy_poison_bonus" data-i18n-title="defy-poison-bonus" title="Endurance, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{disable-traps} ^{check}}}{{^{check-value}=[[@{disable_traps_base} + @{disable_traps_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_disable_traps_check" data-i18n="disable-traps">Disable traps</button>
|
|
<input disabled type="text" name="attr_disable_traps_base" data-i18n-title="mind-short+dexterity-short" title="MND+DX" value="@{mind} [GEI] + @{dexterity} [GE]">
|
|
<input type="text" name="attr_disable_traps_bonus" data-i18n-title="disable-traps-bonus" title="Thievery, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{feat-of-strength} ^{check}}}{{^{check-value}=[[@{feat_of_strength_base} + @{feat_of_strength_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_feat_of_strength_check" data-i18n="feat-of-strength">Feat of strength</button>
|
|
<input disabled type="text" name="attr_feat_of_strength_base" data-i18n-title="body-short+strength-short" title="BOD+ST" value="@{body} [KÖR] + @{strength} [ST]">
|
|
<input type="text" name="attr_feat_of_strength_bonus" data-i18n-title="feat-of-strength-bonus" title="Brutal Blow, Devastating Strike, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{flirt} ^{check}}}{{^{check-value}=[[@{flirt_base} + @{flirt_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_flirt_check" data-i18n="flirt">Flirt</button>
|
|
<input disabled type="text" name="attr_flirt_base" data-i18n-title="mind-short+aura-short" title="MND+AU" value="@{mind} [GEI] + @{aura} [AU]">
|
|
<input type="text" name="attr_flirt_bonus" data-i18n-title="flirt-bonus" title="Charming, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{haggle} ^{check}}}{{^{check-value}=[[@{haggle_base} + @{haggle_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_haggle_check" data-i18n="haggle">Haggle</button>
|
|
<input disabled type="text" name="attr_calculated_haggle_base" data-i18n-title="haggle-base" title="MND+MAX(IN, AU)" value="@{haggle_base}">
|
|
<input type="text" name="attr_haggle_bonus" data-i18n-title="haggle-bonus" title="Charming, Rascal, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{hide} ^{check}}}{{^{check-value}=[[@{hide_base} + @{hide_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_hide_check" data-i18n="hide">Hide</button>
|
|
<input disabled type="text" name="attr_hide_base" data-i18n-title="mobility-short+agility-short" title="MOB+AG" value="@{mobility} [AGI] + @{agility} [BE]">
|
|
<input type="text" name="attr_hide_bonus" data-i18n-title="stealth-bonus" title="Stealth, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{jump} ^{check}}}{{^{check-value}=[[@{jump_base} + @{jump_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_jump_check" data-i18n="jump">Jump</button>
|
|
<input disabled type="text" name="attr_jump_base" data-i18n-title="mobility-short+agility-short" title="MOB+AG" value="@{mobility} [AGI] + @{agility} [BE]">
|
|
<input type="text" name="attr_jump_bonus" data-i18n-title="jump-bonus" title="Acrobat, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{knowledge} ^{check}}}{{^{check-value}=[[@{knowledge_base} + @{knowledge_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_knowledge_check" data-i18n="knowledge">Knowledge</button>
|
|
<input disabled type="text" name="attr_knowledge_base" data-i18n-title="mind-short+intellect-short" title="MND+IN" value="@{mind} [GEI] + @{intellect} [VE]">
|
|
<input type="text" name="attr_knowledge_bonus" data-i18n-title="knowledge-bonus" title="Education, Expertise, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{open-lock} ^{check}}}{{^{check-value}=[[@{open_lock_base} + @{open_lock_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_open_lock_check" data-i18n="open-lock">Open lock</button>
|
|
<input disabled type="text" name="attr_open_lock_base" data-i18n-title="mind-short+dexterity-short" title="MND+DX" value="@{mind} [GEI] + @{dexterity} [GE]">
|
|
<input type="text" name="attr_open_lock_bonus" data-i18n-title="open-lock-bonus" title="Thievery, Lockpicking, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{perception} ^{check}}}{{^{check-value}=[[@{perception_base} + @{perception_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_perception_check" data-i18n="perception">Perception</button>
|
|
<input disabled type="text" name="attr_calculated_perception_base" data-i18n-title="mind-short+intellect-short-or-eight" title="MAX(MND+IN, 8)" value="@{perception_base}">
|
|
<input type="text" name="attr_perception_bonus" data-i18n-title="perception-bonus" title="Thievery, Alertness, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{pick-pocket} ^{check}}}{{^{check-value}=[[@{pick_pocket_base} + @{pick_pocket_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_pick_pocket_check" data-i18n="pick-pocket">Pick pocket</button>
|
|
<input disabled type="text" name="attr_pick_pocket_base" data-i18n-title="mobility-short+dexterity-short" title="MOB+DX" value="@{mobility} [AGI] + @{dexterity} [GE]">
|
|
<input type="text" name="attr_pick_pocket_bonus" data-i18n-title="pick-pocket-bonus" title="Thievery, Stealth, Diversion, Pickpocket, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{read-tracks} ^{check}}}{{^{check-value}=[[@{read_tracks_base} + @{read_tracks_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_read_tracks_check" data-i18n="read-tracks">Read tracks</button>
|
|
<input disabled type="text" name="attr_read_tracks_base" data-i18n-title="mind-short+intellect-short" title="MND+IN" value="@{mind} [GEI] + @{intellect} [VE]">
|
|
<input type="text" name="attr_read_tracks_bonus" data-i18n-title="read-tracks-bonus" title="Hunter, Alertness, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{resist-disease} ^{check}}}{{^{check-value}=[[@{resist_disease_base} + @{resist_disease_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_resist_disease_check" data-i18n="resist-disease">Resist disease</button>
|
|
<input disabled type="text" name="attr_resist_disease_base" data-i18n-title="body-short+constitution-short" title="BOD+CO" value="@{body} [KÖR] + @{constitution} [HÄ]">
|
|
<input type="text" name="attr_resist_disease_bonus" data-i18n-title="resist-disease-bonus" title="Endurance, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{ride} ^{check}}}{{^{check-value}=[[@{ride_base} + @{ride_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_ride_check" data-i18n="ride">Ride</button>
|
|
<input disabled type="text" name="attr_calculated_ride_base" data-i18n-title="ride-base" title="MOB+MAX(AG, AU)" value="@{ride_base}">
|
|
<input type="text" name="attr_ride_bonus" data-i18n-title="ride-bonus" title="Riding, Mounted Archer, Beast Master, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{search} ^{check}}}{{^{check-value}=[[@{search_base} + @{search_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_search_check" data-i18n="search">Search</button>
|
|
<input disabled type="text" name="attr_calculated_search_base" data-i18n-title="mind-short+intellect-short-or-eight" title="MAX(MND+IN, 8)" value="@{search_base}">
|
|
<input type="text" name="attr_search_bonus" data-i18n-title="search-bonus" title="Thievery, Stealth, Alertness, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{sneak} ^{check}}}{{^{check-value}=[[@{sneak_base} + @{sneak_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_sneak_check" data-i18n="sneak">Sneak</button>
|
|
<input disabled type="text" name="attr_sneak_base" data-i18n-title="mobility-short+agility-short" title="MOB+AG" value="@{mobility} [AGI] + @{agility} [BE]">
|
|
<input type="text" name="attr_sneak_bonus" data-i18n-title="sneak-bonus" title="Stealth, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{start-fire} ^{check}}}{{^{check-value}=[[@{start_fire_base} + @{start_fire_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_start_fire_check" data-i18n="start-fire">Start fire</button>
|
|
<input disabled type="text" name="attr_start_fire_base" data-i18n-title="mind-short+dexterity-short" title="MND+DX" value="@{mind} [GEI] + @{dexterity} [GE]">
|
|
<input type="text" name="attr_start_fire_bonus" data-i18n-title="start-fire-bonus" title="Hunter, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{swim} ^{check}}}{{^{check-value}=[[@{swim_base} + @{swim_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_swim_check" data-i18n="swim">Swim</button>
|
|
<input disabled type="text" name="attr_swim_base" data-i18n-title="mobility-short+strength-short" title="MOB+ST" value="@{mobility} [AGI] + @{strength} [ST]">
|
|
<input type="text" name="attr_swim_bonus" data-i18n-title="swim-bonus" title="Swim, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{wake-up} ^{check}}}{{^{check-value}=[[@{wake_up_base} + @{wake_up_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_wake_up_check" data-i18n="wake-up">Wake up</button>
|
|
<input disabled type="text" name="attr_wake_up_base" data-i18n-title="mind-short+intellect-short" title="MND+IN" value="@{mind} [GEI] + @{intellect} [VE]">
|
|
<input type="text" name="attr_wake_up_bonus" data-i18n-title="wake-up-bonus" title="Lightning Reflexes, Alertness, ..." value="0">
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{work-mechanism} ^{check}}}{{^{check-value}=[[@{work-mechanism_base} + @{work-mechanism_bonus} + ?{Modifier|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_work-mechanism_check" data-i18n="work-mechanism">Work mechanism</button>
|
|
<input disabled type="text" name="attr_calculated_work-mechanism_base" data-i18n-title="work-mechanism-base" title="MND+MAX(DX, IN)" value="@{work-mechanism_base}">
|
|
<input type="text" name="attr_work-mechanism_bonus" data-i18n-title="work-mechanism-bonus" title="Thievery, Artisan, Lockpicking, ..." value="0">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-section sheet-characteristics">
|
|
<strong>13</strong>
|
|
<div class="sheet-flex">
|
|
<div class="sheet-flex">
|
|
<label>
|
|
<span data-i18n="gender">Gender</span>
|
|
<input type="text" name="attr_gender" tabindex="50">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="date-of-birth">Date of birth</span>
|
|
<input type="text" name="attr_date_of_birth" tabindex="52">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="character-height">Height</span>
|
|
<input type="text" name="attr_height" tabindex="54">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="hair-color">Hair color</span>
|
|
<input type="text" name="attr_hair_color" tabindex="56">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="racial-abilities">Racial abilities</span>
|
|
<textarea name="attr_racial_abilities" tabindex="58"></textarea>
|
|
</label>
|
|
<label>
|
|
<span data-i18n="special-characteristics">Special characteristics</span>
|
|
<textarea name="attr_special_characteristics" tabindex="60"></textarea>
|
|
</label>
|
|
<label>
|
|
<span data-i18n="public-biography">Public biography</span>
|
|
<textarea name="attr_public_biography" tabindex="62"></textarea>
|
|
</label>
|
|
</div>
|
|
<div class="sheet-flex">
|
|
<label>
|
|
<span data-i18n="place-of-birth">Place of birth</span>
|
|
<input type="text" name="attr_place_of_birth" tabindex="51">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="age">Age</span>
|
|
<input type="text" name="attr_age" tabindex="53">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="weight">Weight</span>
|
|
<input type="text" name="attr_weight" tabindex="55">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="eye-color">Eye color</span>
|
|
<input type="text" name="attr_eye_color" tabindex="57">
|
|
</label>
|
|
<label>
|
|
<span data-i18n="other-abilities">Other abilities</span>
|
|
<textarea name="attr_other_abilities" tabindex="59"></textarea>
|
|
</label>
|
|
<label>
|
|
<span data-i18n="special-behavior">Special behavior</span>
|
|
<textarea name="attr_special_behavior" tabindex="61"></textarea>
|
|
</label>
|
|
<label>
|
|
<span data-i18n="private-biography">Private biography</span>
|
|
<textarea name="attr_private_biography" tabindex="63"></textarea>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-section sheet-notes">
|
|
<strong>14</strong>
|
|
<div class="sheet-flex">
|
|
<textarea name="attr_notes" data-i18n-placeholder="notes" placeholder="Notes" tabindex="64"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-section sheet-attack-checks">
|
|
<strong>15</strong>
|
|
<div class="sheet-flex">
|
|
<button type="roll" value="&{template:default}{{name=^{generic} ^{check}}}{{^{check-value}=[[?{Attribut|Körper,@{body} [KÖR]|Agilität,@{mobility} [AGI]|Geist,@{mind} [GEI]} + ?{Eigenschaft|Stärke,@{strength} [ST]|Härte,@{constitution} [HÄ]|Bewegung,@{agility} [BE]|Geschick,@{dexterity} [GE]|Verstand,@{intellect} [VE]|Aura,@{aura} [AU]} + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_generic_check" data-i18n="generic-check">Generic check</button>
|
|
<button type="roll" value="&{template:default}{{name=^{defense}}}{{^{check-value}=[[@{calculated_defense} + ?{Modifikator GA|0} [GA] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}" name="roll_defense" data-i18n="defense">Defense</button>
|
|
<button type="roll" value="@{btn_active_melee_weapon}" name="roll_melee-attack" data-i18n="melee-attack">Melee attack</button>
|
|
<button type="roll" value="@{btn_active_ranged_weapon}" name="roll_ranged-attack" data-i18n="ranged-attack">Ranged attack</button>
|
|
<button type="roll" value="@{btn_active_normal_spell}" name="roll_normal_spell" data-i18n="normal-spellcasting">Normal spellcasting</button>
|
|
<button type="roll" value="@{btn_active_targeted_spell}" name="roll_targeted_spell" data-i18n="targeted-spellcasting">Targeted spellcasting</button>
|
|
</div>
|
|
</div>
|
|
<input type="hidden" name="attr_progress_points" value="0">
|
|
<input type="hidden" name="attr_total_armor_value" value="0">
|
|
<input type="hidden" name="attr_total_armor_magic_bonus">
|
|
<input type="hidden" name="attr_btn_active_melee_weapon" value="0">
|
|
<input type="hidden" name="attr_btn_active_ranged_weapon" value="0">
|
|
<input type="hidden" name="attr_body_start" value="0">
|
|
<input type="hidden" name="attr_mobility_start" value="0">
|
|
<input type="hidden" name="attr_mind_start" value="0">
|
|
<input type="hidden" name="attr_strength_start" value="0">
|
|
<input type="hidden" name="attr_constitution_start" value="0">
|
|
<input type="hidden" name="attr_agility_start" value="0">
|
|
<input type="hidden" name="attr_dexterity_start" value="0">
|
|
<input type="hidden" name="attr_intellect_start" value="0">
|
|
<input type="hidden" name="attr_aura_start" value="0">
|
|
<input type="hidden" name="attr_body_progress_points_bonus">
|
|
<input type="hidden" name="attr_mobility_progress_points_bonus">
|
|
<input type="hidden" name="attr_mind_progress_points_bonus">
|
|
<input type="hidden" name="attr_strength_progress_points_bonus">
|
|
<input type="hidden" name="attr_constitution_progress_points_bonus">
|
|
<input type="hidden" name="attr_agility_progress_points_bonus">
|
|
<input type="hidden" name="attr_dexterity_progress_points_bonus">
|
|
<input type="hidden" name="attr_intellect_progress_points_bonus">
|
|
<input type="hidden" name="attr_aura_progress_points_bonus">
|
|
<input type="hidden" name="attr_hit-points_progress_points_bonus">
|
|
<input type="hidden" name="attr_defense_progress_points_bonus">
|
|
<input type="hidden" name="attr_initiative_progress_points_bonus">
|
|
<input type="hidden" name="attr_movement-rate_progress_points_bonus">
|
|
<input type="hidden" name="attr_melee-attack_progress_points_bonus">
|
|
<input type="hidden" name="attr_ranged-attack_progress_points_bonus">
|
|
<input type="hidden" name="attr_normal-spellcasting_progress_points_bonus">
|
|
<input type="hidden" name="attr_targeted-spellcasting_progress_points_bonus">
|
|
<input type="hidden" name="attr_mana_progress_points_bonus">
|
|
<input type="hidden" name="attr_talent_points_progress_points_bonus">
|
|
<input type="hidden" name="attr_language_progress_points_bonus">
|
|
<input type="hidden" name="attr_alphabet_progress_points_bonus">
|
|
<input type="hidden" name="attr_body_weapon_bonus">
|
|
<input type="hidden" name="attr_mobility_weapon_bonus">
|
|
<input type="hidden" name="attr_mind_weapon_bonus">
|
|
<input type="hidden" name="attr_strength_weapon_bonus">
|
|
<input type="hidden" name="attr_constitution_weapon_bonus">
|
|
<input type="hidden" name="attr_agility_weapon_bonus">
|
|
<input type="hidden" name="attr_dexterity_weapon_bonus">
|
|
<input type="hidden" name="attr_intellect_weapon_bonus">
|
|
<input type="hidden" name="attr_aura_weapon_bonus">
|
|
<input type="hidden" name="attr_hit-points_weapon_bonus">
|
|
<input type="hidden" name="attr_defense_weapon_bonus">
|
|
<input type="hidden" name="attr_initiative_weapon_bonus">
|
|
<input type="hidden" name="attr_movement-rate_weapon_bonus">
|
|
<input type="hidden" name="attr_melee-attack_weapon_bonus">
|
|
<input type="hidden" name="attr_ranged-attack_weapon_bonus">
|
|
<input type="hidden" name="attr_normal-spellcasting_weapon_bonus">
|
|
<input type="hidden" name="attr_targeted-spellcasting_weapon_bonus">
|
|
<input type="hidden" name="attr_mana_weapon_bonus">
|
|
<input type="hidden" name="attr_body_armor_bonus">
|
|
<input type="hidden" name="attr_mobility_armor_bonus">
|
|
<input type="hidden" name="attr_mind_armor_bonus">
|
|
<input type="hidden" name="attr_strength_armor_bonus">
|
|
<input type="hidden" name="attr_constitution_armor_bonus">
|
|
<input type="hidden" name="attr_agility_armor_bonus">
|
|
<input type="hidden" name="attr_dexterity_armor_bonus">
|
|
<input type="hidden" name="attr_intellect_armor_bonus">
|
|
<input type="hidden" name="attr_aura_armor_bonus">
|
|
<input type="hidden" name="attr_hit-points_armor_bonus">
|
|
<input type="hidden" name="attr_defense_armor_bonus">
|
|
<input type="hidden" name="attr_initiative_armor_bonus">
|
|
<input type="hidden" name="attr_movement-rate_armor_bonus">
|
|
<input type="hidden" name="attr_melee-attack_armor_bonus">
|
|
<input type="hidden" name="attr_ranged-attack_armor_bonus">
|
|
<input type="hidden" name="attr_normal-spellcasting_armor_bonus">
|
|
<input type="hidden" name="attr_targeted-spellcasting_armor_bonus">
|
|
<input type="hidden" name="attr_mana_armor_bonus">
|
|
<input type="hidden" name="attr_btn_active_spell" value="0">
|
|
<input type="hidden" name="attr_body_talent_bonus">
|
|
<input type="hidden" name="attr_mobility_talent_bonus">
|
|
<input type="hidden" name="attr_mind_talent_bonus">
|
|
<input type="hidden" name="attr_strength_talent_bonus">
|
|
<input type="hidden" name="attr_constitution_talent_bonus">
|
|
<input type="hidden" name="attr_agility_talent_bonus">
|
|
<input type="hidden" name="attr_dexterity_talent_bonus">
|
|
<input type="hidden" name="attr_intellect_talent_bonus">
|
|
<input type="hidden" name="attr_aura_talent_bonus">
|
|
<input type="hidden" name="attr_hit-points_talent_bonus">
|
|
<input type="hidden" name="attr_defense_talent_bonus">
|
|
<input type="hidden" name="attr_initiative_talent_bonus">
|
|
<input type="hidden" name="attr_movement-rate_talent_bonus">
|
|
<input type="hidden" name="attr_melee-attack_talent_bonus">
|
|
<input type="hidden" name="attr_ranged-attack_talent_bonus">
|
|
<input type="hidden" name="attr_normal-spellcasting_talent_bonus">
|
|
<input type="hidden" name="attr_targeted-spellcasting_talent_bonus">
|
|
<input type="hidden" name="attr_mana_talent_bonus">
|
|
<input type="hidden" name="attr_body_equipment_bonus">
|
|
<input type="hidden" name="attr_mobility_equipment_bonus">
|
|
<input type="hidden" name="attr_mind_equipment_bonus">
|
|
<input type="hidden" name="attr_strength_equipment_bonus">
|
|
<input type="hidden" name="attr_constitution_equipment_bonus">
|
|
<input type="hidden" name="attr_agility_equipment_bonus">
|
|
<input type="hidden" name="attr_dexterity_equipment_bonus">
|
|
<input type="hidden" name="attr_intellect_equipment_bonus">
|
|
<input type="hidden" name="attr_aura_equipment_bonus">
|
|
<input type="hidden" name="attr_hit-points_equipment_bonus">
|
|
<input type="hidden" name="attr_defense_equipment_bonus">
|
|
<input type="hidden" name="attr_initiative_equipment_bonus">
|
|
<input type="hidden" name="attr_movement-rate_equipment_bonus">
|
|
<input type="hidden" name="attr_melee-attack_equipment_bonus">
|
|
<input type="hidden" name="attr_ranged-attack_equipment_bonus">
|
|
<input type="hidden" name="attr_normal-spellcasting_equipment_bonus">
|
|
<input type="hidden" name="attr_targeted-spellcasting_equipment_bonus">
|
|
<input type="hidden" name="attr_mana_equipment_bonus">
|
|
<input type="hidden" name="attr_body_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_mobility_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_mind_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_strength_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_constitution_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_agility_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_dexterity_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_intellect_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_aura_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_hit-points_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_defense_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_initiative_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_movement-rate_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_melee-attack_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_ranged-attack_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_normal-spellcasting_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_targeted-spellcasting_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_mana_miscellaneous_bonus">
|
|
<input type="hidden" name="attr_body" value="0">
|
|
<input type="hidden" name="attr_mobility" value="0">
|
|
<input type="hidden" name="attr_mind" value="0">
|
|
<input type="hidden" name="attr_strength" value="0">
|
|
<input type="hidden" name="attr_constitution" value="0">
|
|
<input type="hidden" name="attr_agility" value="0">
|
|
<input type="hidden" name="attr_dexterity" value="0">
|
|
<input type="hidden" name="attr_intellect" value="0">
|
|
<input type="hidden" name="attr_aura" value="0">
|
|
<input type="hidden" name="attr_hit-points_initial" value="0">
|
|
<input type="hidden" name="attr_defense_initial" value="0">
|
|
<input type="hidden" name="attr_initiative_initial" value="0">
|
|
<input type="hidden" name="attr_movement-rate_initial" value="0">
|
|
<input type="hidden" name="attr_melee-attack_initial" value="0">
|
|
<input type="hidden" name="attr_ranged-attack_initial" value="0">
|
|
<input type="hidden" name="attr_normal-spellcasting_initial" value="0">
|
|
<input type="hidden" name="attr_targeted-spellcasting_initial" value="0">
|
|
<input type="hidden" name="attr_mana_initial" value="0">
|
|
<input type="hidden" name="attr_max-hit-points" value="0">
|
|
<input type="hidden" name="attr_hit-points_max" value="0">
|
|
<input type="hidden" name="attr_defense" value="0">
|
|
<input type="hidden" name="attr_initiative" value="0">
|
|
<input type="hidden" name="attr_movement-rate" value="0">
|
|
<input type="hidden" name="attr_melee-attack" value="0">
|
|
<input type="hidden" name="attr_ranged-attack" value="0">
|
|
<input type="hidden" name="attr_normal-spellcasting" value="0">
|
|
<input type="hidden" name="attr_targeted-spellcasting" value="0">
|
|
<input type="hidden" name="attr_max-mana" value="0">
|
|
<input type="hidden" name="attr_mana_max" value="0">
|
|
<input type="hidden" name="attr_max-talent_points" value="0">
|
|
<input type="hidden" name="attr_talent_points_max" value="0">
|
|
<input type="hidden" name="attr_ride_base" value="0">
|
|
<input type="hidden" name="attr_work-mechanism_base" value="0">
|
|
<input type="hidden" name="attr_haggle_base" value="0">
|
|
<input type="hidden" name="attr_perception_base" value="0">
|
|
<input type="hidden" name="attr_search_base" value="0">
|
|
</div>
|
|
<script type="text/worker">
|
|
var fields = ['body', 'mobility', 'mind', 'strength', 'constitution', 'agility', 'dexterity', 'intellect', 'aura', 'hit-points', 'defense', 'initiative', 'movement-rate', 'mana', 'melee-attack', 'ranged-attack', 'normal-spellcasting', 'targeted-spellcasting'];
|
|
|
|
for(var i = 0; i < fields.length; i++) {
|
|
on('change:'+ fields[i] +'_progress_points change:'+ fields[i] +'_progress_costs', function(eventInfo) {
|
|
var field = eventInfo.sourceAttribute.substr(0, eventInfo.sourceAttribute.indexOf("_"));
|
|
getAttrs([field +'_progress_points', field +'_progress_costs'], function(values) {
|
|
var attrs = {};
|
|
if(isNaN(parseFloat(values[field +'_progress_points'])) || isNaN(parseFloat(values[field +'_progress_costs']))) {
|
|
attrs[field +'_progress_points_bonus'] = '-';
|
|
} else {
|
|
attrs[field +'_progress_points_bonus'] = Math.floor(parseFloat(values[field +'_progress_points']) / parseFloat(values[field +'_progress_costs']));
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
var pps = [];
|
|
for(var j = 0; j < fields.length; j++) {
|
|
pps.push(fields[j] +'_progress_points');
|
|
}
|
|
pps.push('talent_points_progress_points');
|
|
pps.push('culture_talent_progress_points');
|
|
pps.push('language_progress_points');
|
|
pps.push('alphabet_progress_points');
|
|
getAttrs(pps, function(values) {
|
|
var count = 0;
|
|
for(var j = 0; j < pps.length; j++) {
|
|
count += isNaN(parseFloat(values[pps[j]])) ? 0 : parseFloat(values[pps[j]]);
|
|
}
|
|
setAttrs({progress_points: count});
|
|
});
|
|
});
|
|
on('change:'+ fields[i] +'_initial change:'+ fields[i] +'_start change:'+ fields[i] +'_progress_points_bonus change:'+ fields[i] +'_weapon_bonus change:'+ fields[i] +'_armor_bonus change:'+ fields[i] +'_talent_bonus change:'+ fields[i] +'_equipment_bonus change:'+ fields[i] +'_miscellaneous_bonus change:'+ fields[i] +'_max', function(eventInfo) {
|
|
var field = eventInfo.sourceAttribute.substr(0, eventInfo.sourceAttribute.indexOf("_"));
|
|
getAttrs([field +'_initial', field +'_start', field +'_progress_points_bonus', field +'_weapon_bonus', field +'_armor_bonus', field +'_talent_bonus', field +'_equipment_bonus', field +'_miscellaneous_bonus', field +'_max'], function(values) {
|
|
var attrs = {};
|
|
var val = (isNaN(parseFloat(values[field +'_initial'])) ? 0 : parseFloat(values[field +'_initial'])) + (isNaN(parseFloat(values[field +'_start'])) ? 0 : parseFloat(values[field +'_start'])) + (isNaN(parseFloat(values[field +'_progress_points_bonus'])) ? 0 : parseFloat(values[field +'_progress_points_bonus'])) + Math.min((isNaN(parseFloat(values[field +'_weapon_bonus'])) ? 0 : parseFloat(values[field +'_weapon_bonus'])) + (isNaN(parseFloat(values[field +'_armor_bonus'])) ? 0 : parseFloat(values[field +'_armor_bonus'])) + (isNaN(parseFloat(values[field +'_equipment_bonus'])) ? 0 : parseFloat(values[field +'_equipment_bonus'])), 5) + (isNaN(parseFloat(values[field +'_talent_bonus'])) ? 0 : parseFloat(values[field +'_talent_bonus'])) + (isNaN(parseFloat(values[field +'_miscellaneous_bonus'])) ? 0 : parseFloat(values[field +'_miscellaneous_bonus']));
|
|
if(field == 'hit-points' || field == 'mana') {
|
|
attrs[field +'_max'] = val;
|
|
attrs['max-'+ field] = val;
|
|
} else if(isNaN(parseFloat(values[field +'_max']))) {
|
|
attrs[field] = val;
|
|
} else {
|
|
attrs[field] = Math.min(val, parseFloat(values[field +'_max']));
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
}
|
|
|
|
on('change:talent_points_progress_points change:talent_points_progress_costs', function(eventInfo) {
|
|
getAttrs(['talent_points_progress_points', 'talent_points_progress_costs'], function(values) {
|
|
var attrs = {};
|
|
if(isNaN(parseFloat(values['talent_points_progress_points'])) || isNaN(parseFloat(values['talent_points_progress_costs']))) {
|
|
attrs['talent_points_progress_points_bonus'] = '';
|
|
} else {
|
|
attrs['talent_points_progress_points_bonus'] = Math.floor(parseFloat(values['talent_points_progress_points']) / parseFloat(values['talent_points_progress_costs']));
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
var pps = [];
|
|
for(var j = 0; j < fields.length; j++) {
|
|
pps.push(fields[j] +'_progress_points');
|
|
}
|
|
pps.push('talent_points_progress_points');
|
|
pps.push('culture_talent_progress_points');
|
|
pps.push('language_progress_points');
|
|
pps.push('alphabet_progress_points');
|
|
getAttrs(pps, function(values) {
|
|
var count = 0;
|
|
for(var j = 0; j < pps.length; j++) {
|
|
count += isNaN(parseFloat(values[pps[j]])) ? 0 : parseFloat(values[pps[j]]);
|
|
}
|
|
setAttrs({progress_points: count});
|
|
});
|
|
});
|
|
|
|
on('change:talent_points_progress_points_bonus change:talent_points_additional', function(eventInfo) {
|
|
getAttrs(['talent_points_progress_points_bonus', 'talent_points_additional'], function(values) {
|
|
var attrs = {};
|
|
var val = (isNaN(parseFloat(values['talent_points_progress_points_bonus'])) ? 0 : parseFloat(values['talent_points_progress_points_bonus'])) + (isNaN(parseFloat(values['talent_points_additional'])) ? 0 : parseFloat(values['talent_points_additional']));
|
|
attrs['talent_points_max'] = val;
|
|
attrs['max-talent_points'] = val;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:culture_talent_progress_points', function(eventInfo) {
|
|
var pps = [];
|
|
for(var j = 0; j < fields.length; j++) {
|
|
pps.push(fields[j] +'_progress_points');
|
|
}
|
|
pps.push('talent_points_progress_points');
|
|
pps.push('culture_talent_progress_points');
|
|
pps.push('language_progress_points');
|
|
pps.push('alphabet_progress_points');
|
|
getAttrs(pps, function(values) {
|
|
var count = 0;
|
|
for(var j = 0; j < pps.length; j++) {
|
|
count += isNaN(parseFloat(values[pps[j]])) ? 0 : parseFloat(values[pps[j]]);
|
|
}
|
|
setAttrs({progress_points: count});
|
|
});
|
|
});
|
|
|
|
on('change:language_progress_points change:language_progress_costs', function(eventInfo) {
|
|
getAttrs(['language_progress_points', 'language_progress_costs'], function(values) {
|
|
if(isNaN(parseFloat(values['language_progress_points'])) || isNaN(parseFloat(values['language_progress_costs']))) {
|
|
setAttrs({language_progress_points_bonus: '-'});
|
|
} else {
|
|
setAttrs({language_progress_points_bonus: Math.floor(parseFloat(values['language_progress_points']) / parseFloat(values['language_progress_costs']))});
|
|
}
|
|
});
|
|
var pps = [];
|
|
for(var j = 0; j < fields.length; j++) {
|
|
pps.push(fields[j] +'_progress_points');
|
|
}
|
|
pps.push('talent_points_progress_points');
|
|
pps.push('culture_talent_progress_points');
|
|
pps.push('language_progress_points');
|
|
pps.push('alphabet_progress_points');
|
|
getAttrs(pps, function(values) {
|
|
var count = 0;
|
|
for(var j = 0; j < pps.length; j++) {
|
|
count += isNaN(parseFloat(values[pps[j]])) ? 0 : parseFloat(values[pps[j]]);
|
|
}
|
|
setAttrs({progress_points: count});
|
|
});
|
|
});
|
|
|
|
on('change:alphabet_progress_points change:alphabet_progress_costs', function(eventInfo) {
|
|
getAttrs(['alphabet_progress_points', 'alphabet_progress_costs'], function(values) {
|
|
if(isNaN(parseFloat(values['alphabet_progress_points'])) || isNaN(parseFloat(values['alphabet_progress_costs']))) {
|
|
setAttrs({alphabet_progress_points_bonus: '-'});
|
|
} else {
|
|
setAttrs({alphabet_progress_points_bonus: Math.floor(parseFloat(values['alphabet_progress_points']) / parseFloat(values['alphabet_progress_costs']))});
|
|
}
|
|
});
|
|
var pps = [];
|
|
for(var j = 0; j < fields.length; j++) {
|
|
pps.push(fields[j] +'_progress_points');
|
|
}
|
|
pps.push('talent_points_progress_points');
|
|
pps.push('culture_talent_progress_points');
|
|
pps.push('language_progress_points');
|
|
pps.push('alphabet_progress_points');
|
|
getAttrs(pps, function(values) {
|
|
var count = 0;
|
|
for(var j = 0; j < pps.length; j++) {
|
|
count += isNaN(parseFloat(values[pps[j]])) ? 0 : parseFloat(values[pps[j]]);
|
|
}
|
|
setAttrs({progress_points: count});
|
|
});
|
|
});
|
|
|
|
on('change:body', function(eventInfo) {
|
|
getAttrs(['body', 'constitution', 'strength', 'total_armor_value', 'total_armor_magic_bonus'], function(values) {
|
|
var attrs = {};
|
|
var body = isNaN(parseFloat(values['body'])) ? 0 : parseFloat(values['body']);
|
|
var constitution = isNaN(parseFloat(values['constitution'])) ? 0 : parseFloat(values['constitution']);
|
|
var strength = isNaN(parseFloat(values['strength'])) ? 0 : parseFloat(values['strength']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var total_armor_magic_bonus = isNaN(parseFloat(values['total_armor_magic_bonus'])) ? 0 : parseFloat(values['total_armor_magic_bonus']);
|
|
attrs['hit-points_initial'] = body + constitution;
|
|
attrs['defense_initial'] = body + constitution + total_armor_value + total_armor_magic_bonus;
|
|
attrs['melee-attack_initial'] = body + strength;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:strength', function(eventInfo) {
|
|
getAttrs(['body', 'strength'], function(values) {
|
|
var attrs = {};
|
|
var body = isNaN(parseFloat(values['body'])) ? 0 : parseFloat(values['body']);
|
|
var strength = isNaN(parseFloat(values['strength'])) ? 0 : parseFloat(values['strength']);
|
|
attrs['melee-attack_initial'] = body + strength;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:constitution', function(eventInfo) {
|
|
getAttrs(['body', 'constitution', 'total_armor_value', 'total_armor_magic_bonus'], function(values) {
|
|
var attrs = {};
|
|
var body = isNaN(parseFloat(values['body'])) ? 0 : parseFloat(values['body']);
|
|
var constitution = isNaN(parseFloat(values['constitution'])) ? 0 : parseFloat(values['constitution']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var total_armor_magic_bonus = isNaN(parseFloat(values['total_armor_magic_bonus'])) ? 0 : parseFloat(values['total_armor_magic_bonus']);
|
|
attrs['hit-points_initial'] = body + constitution;
|
|
attrs['defense_initial'] = body + constitution + total_armor_value + total_armor_magic_bonus;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:mobility', function(eventInfo) {
|
|
getAttrs(['mobility', 'aura', 'agility', 'dexterity'], function(values) {
|
|
var attrs = {};
|
|
var mobility = isNaN(parseFloat(values['mobility'])) ? 0 : parseFloat(values['mobility']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
var agility = isNaN(parseFloat(values['agility'])) ? 0 : parseFloat(values['agility']);
|
|
var dexterity = isNaN(parseFloat(values['dexterity'])) ? 0 : parseFloat(values['dexterity']);
|
|
attrs['ride_base'] = mobility + Math.max(agility, aura);
|
|
attrs['initiative_initial'] = mobility + agility;
|
|
attrs['movement-rate_initial'] = (mobility / 2);
|
|
attrs['ranged-attack_initial'] = mobility + dexterity;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:agility', function(eventInfo) {
|
|
getAttrs(['mobility', 'aura', 'agility'], function(values) {
|
|
var attrs = {};
|
|
var mobility = isNaN(parseFloat(values['mobility'])) ? 0 : parseFloat(values['mobility']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
var agility = isNaN(parseFloat(values['agility'])) ? 0 : parseFloat(values['agility']);
|
|
attrs['ride_base'] = mobility + Math.max(agility, aura);
|
|
attrs['initiative_initial'] = mobility + agility;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:dexterity', function(eventInfo) {
|
|
getAttrs(['mind', 'intellect', 'dexterity', 'total_armor_value', 'mobility'], function(values) {
|
|
var attrs = {};
|
|
var mind = isNaN(parseFloat(values['mind'])) ? 0 : parseFloat(values['mind']);
|
|
var intellect = isNaN(parseFloat(values['intellect'])) ? 0 : parseFloat(values['intellect']);
|
|
var dexterity = isNaN(parseFloat(values['dexterity'])) ? 0 : parseFloat(values['dexterity']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var mobility = isNaN(parseFloat(values['mobility'])) ? 0 : parseFloat(values['mobility']);
|
|
attrs['work-mechanism_base'] = mind + Math.max(dexterity, intellect);
|
|
attrs['ranged-attack_initial'] = mobility + dexterity;
|
|
attrs['targeted-spellcasting_initial'] = mind + dexterity - total_armor_value;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:mind', function(eventInfo) {
|
|
getAttrs(['mind', 'intellect', 'aura', 'dexterity', 'total_armor_value', 'level'], function(values) {
|
|
var attrs = {};
|
|
var mind = isNaN(parseFloat(values['mind'])) ? 0 : parseFloat(values['mind']);
|
|
var intellect = isNaN(parseFloat(values['intellect'])) ? 0 : parseFloat(values['intellect']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
var dexterity = isNaN(parseFloat(values['dexterity'])) ? 0 : parseFloat(values['dexterity']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var level = isNaN(parseFloat(values['level'])) ? 0 : parseFloat(values['level']);
|
|
attrs['mana_initial'] = mind + aura + level;
|
|
attrs['normal-spellcasting_initial'] = mind + aura - total_armor_value;
|
|
attrs['targeted-spellcasting_initial'] = mind + dexterity - total_armor_value;
|
|
attrs['search_base'] = Math.max(mind + intellect, 8);
|
|
attrs['perception_base'] = Math.max(mind + intellect, 8);
|
|
attrs['haggle_base'] = mind + Math.max(intellect, aura);
|
|
attrs['work-mechanism_base'] = mind + Math.max(dexterity, intellect);
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:intellect', function(eventInfo) {
|
|
getAttrs(['mind', 'intellect', 'aura', 'dexterity'], function(values) {
|
|
var attrs = {};
|
|
var mind = isNaN(parseFloat(values['mind'])) ? 0 : parseFloat(values['mind']);
|
|
var intellect = isNaN(parseFloat(values['intellect'])) ? 0 : parseFloat(values['intellect']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
var dexterity = isNaN(parseFloat(values['dexterity'])) ? 0 : parseFloat(values['dexterity']);
|
|
attrs['search_base'] = Math.max(mind + intellect, 8);
|
|
attrs['perception_base'] = Math.max(mind + intellect, 8);
|
|
attrs['haggle_base'] = mind + Math.max(intellect, aura);
|
|
attrs['work-mechanism_base'] = mind + Math.max(dexterity, intellect);
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:aura', function(eventInfo) {
|
|
getAttrs(['mind', 'mobility', 'aura', 'intellect', 'agility', 'total_armor_value', 'level'], function(values) {
|
|
var attrs = {};
|
|
var mind = isNaN(parseFloat(values['mind'])) ? 0 : parseFloat(values['mind']);
|
|
var mobility = isNaN(parseFloat(values['mobility'])) ? 0 : parseFloat(values['mobility']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
var intellect = isNaN(parseFloat(values['intellect'])) ? 0 : parseFloat(values['intellect']);
|
|
var agility = isNaN(parseFloat(values['agility'])) ? 0 : parseFloat(values['agility']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var level = isNaN(parseFloat(values['level'])) ? 0 : parseFloat(values['level']);
|
|
attrs['haggle_base'] = mind + Math.max(intellect, aura);
|
|
attrs['ride_base'] = mobility + Math.max(agility, aura);
|
|
attrs['mana_initial'] = mind + aura + level;
|
|
attrs['normal-spellcasting_initial'] = mind + aura - total_armor_value;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:total_armor_value', function(eventInfo) {
|
|
getAttrs(['body', 'constitution', 'total_armor_value', 'total_armor_magic_bonus', 'mind', 'dexterity', 'aura'], function(values) {
|
|
var attrs = {};
|
|
var body = isNaN(parseFloat(values['body'])) ? 0 : parseFloat(values['body']);
|
|
var constitution = isNaN(parseFloat(values['constitution'])) ? 0 : parseFloat(values['constitution']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var total_armor_magic_bonus = isNaN(parseFloat(values['total_armor_magic_bonus'])) ? 0 : parseFloat(values['total_armor_magic_bonus']);
|
|
var mind = isNaN(parseFloat(values['mind'])) ? 0 : parseFloat(values['mind']);
|
|
var dexterity = isNaN(parseFloat(values['dexterity'])) ? 0 : parseFloat(values['dexterity']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
attrs['defense_initial'] = body + constitution + total_armor_value + total_armor_magic_bonus;
|
|
attrs['targeted-spellcasting_initial'] = mind + dexterity - total_armor_value;
|
|
attrs['normal-spellcasting_initial'] = mind + aura - total_armor_value;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:total_armor_magic_bonus', function(eventInfo) {
|
|
getAttrs(['body', 'constitution', 'total_armor_value', 'total_armor_magic_bonus'], function(values) {
|
|
var attrs = {};
|
|
var body = isNaN(parseFloat(values['body'])) ? 0 : parseFloat(values['body']);
|
|
var constitution = isNaN(parseFloat(values['constitution'])) ? 0 : parseFloat(values['constitution']);
|
|
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
|
|
var total_armor_magic_bonus = isNaN(parseFloat(values['total_armor_magic_bonus'])) ? 0 : parseFloat(values['total_armor_magic_bonus']);
|
|
attrs['defense_initial'] = body + constitution + total_armor_value + total_armor_magic_bonus;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:level', function(eventInfo) {
|
|
getAttrs(['mind', 'aura', 'level'], function(values) {
|
|
var attrs = {};
|
|
var mind = isNaN(parseFloat(values['mind'])) ? 0 : parseFloat(values['mind']);
|
|
var aura = isNaN(parseFloat(values['aura'])) ? 0 : parseFloat(values['aura']);
|
|
var level = isNaN(parseFloat(values['level'])) ? 0 : parseFloat(values['level']);
|
|
attrs['mana_initial'] = mind + aura + level;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
on('change:repeating_weapon', function(eventInfo) {
|
|
getAttrs(['repeating_weapon_weapon_details_visibility', 'repeating_weapon_weapon_details_visibility_toggle'], function(values) {
|
|
if(values['repeating_weapon_weapon_details_visibility'] == 'toggle') {
|
|
if(values['repeating_weapon_weapon_details_visibility_toggle'] == 'visible') {
|
|
setAttrs({
|
|
repeating_weapon_weapon_details_visibility: 'hidden',
|
|
repeating_weapon_weapon_details_visibility_toggle: 'hidden'
|
|
});
|
|
} else {
|
|
setAttrs({
|
|
repeating_weapon_weapon_details_visibility: 'visible',
|
|
repeating_weapon_weapon_details_visibility_toggle: 'visible'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
getAttrs(['repeating_weapon_weapon_magic_bonus', 'repeating_weapon_weapon_mb_weapon_bonus', 'repeating_weapon_weapon_mb_initiative_bonus', 'repeating_weapon_weapon_mb_opponent_defense'], function(values) {
|
|
var attrs = {};
|
|
var mb = isNaN(parseFloat(values['repeating_weapon_weapon_magic_bonus'])) ? 0 : parseFloat(values['repeating_weapon_weapon_magic_bonus']);
|
|
attrs['repeating_weapon_weapon_bonus'] = mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_weapon_bonus']));
|
|
attrs['repeating_weapon_weapon_initiative_bonus'] = mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_initiative_bonus'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_initiative_bonus']));
|
|
attrs['repeating_weapon_weapon_opponent_defense'] = -1 * mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_opponent_defense'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_opponent_defense']));
|
|
setAttrs(attrs);
|
|
});
|
|
getSectionIDs('repeating_weapon', function(idarray) {
|
|
var actives = [];
|
|
var bonuses = [];
|
|
for(var k=0; k < idarray.length; k++) {
|
|
actives.push('repeating_weapon_'+ idarray[k] +'_weapon_active');
|
|
for(var j = 0; j < fields.length; j++) {
|
|
bonuses.push('repeating_weapon_'+ idarray[k] +'_weapon_'+ fields[j] +'_bonus');
|
|
}
|
|
}
|
|
getAttrs(actives.concat(bonuses), function(values) {
|
|
var attrs = {};
|
|
for(var j = 0; j < fields.length; j++) {
|
|
var bonus = 0;
|
|
for(var k=0; k < actives.length; k++) {
|
|
if(values[actives[k]] == "1") {
|
|
bonus += isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]);
|
|
}
|
|
}
|
|
if(bonus != 0) {
|
|
attrs[fields[j] +'_weapon_bonus'] = bonus;
|
|
} else {
|
|
attrs[fields[j] +'_weapon_bonus'] = "";
|
|
}
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
var weapons = [];
|
|
for(var k=0; k < idarray.length; k++) {
|
|
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_active');
|
|
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_name');
|
|
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_type');
|
|
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_bonus');
|
|
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense');
|
|
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_hands');
|
|
}
|
|
getAttrs(weapons, function(values) {
|
|
var attrs = {};
|
|
var countActiveMeleeWeapon = 0;
|
|
var btnActiveMeleeWeapon = '';
|
|
var countActiveRangedWeapon = 0;
|
|
var btnActiveRangedWeapon = '';
|
|
for(var k=0; k < idarray.length; k++) {
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_active'] == "1") {
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] === undefined || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
|
|
countActiveMeleeWeapon++;
|
|
btnActiveMeleeWeapon += '|'+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +',{{Waffe='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{GA='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{Probenwert=[[@{melee-attack} [Schlagen] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|-10}]]}}';
|
|
}
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'rat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
|
|
countActiveRangedWeapon++;
|
|
btnActiveRangedWeapon += '|'+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +',{{Waffe='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{GA='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{Probenwert=[[@{melee-attack} [Schiessen] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|-10}]]}}';
|
|
}
|
|
}
|
|
}
|
|
if(countActiveMeleeWeapon == 0) {
|
|
btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}{{^{weapon}=^{unarmed}}}{{^{opponent-defense-short}=+5}}{{^{check-value}=[[@{melee-attack} + 0 [WB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
|
|
} else if(countActiveMeleeWeapon == 1) {
|
|
for(var k=0; k < idarray.length; k++) {
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_active'] == "1") {
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] === undefined || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
|
|
btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}{{^{weapon}='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{^{opponent-defense-short}='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{^{check-value}=[[@{melee-attack} + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}?{Waffe'+ btnActiveMeleeWeapon +'}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
if(countActiveRangedWeapon == 0) {
|
|
btnActiveRangedWeapon = '&{template:default}{{name=^{ranged-attack}}}{{^{weapon}=???}}';
|
|
} else if(countActiveRangedWeapon == 1) {
|
|
for(var k=0; k < idarray.length; k++) {
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_active'] == "1") {
|
|
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'rat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
|
|
btnActiveRangedWeapon = '&{template:default}{{name=^{ranged-attack}}}{{^{weapon}='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{^{opponent-defense-short}='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{^{check-value}=[[@{ranged-attack} + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
btnActiveRangedWeapon = '&{template:default}{{name=^{ranged-attack}}}?{Waffe'+ btnActiveRangedWeapon +'}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
attrs['btn_active_melee_weapon'] = btnActiveMeleeWeapon;
|
|
attrs['btn_active_ranged_weapon'] = btnActiveRangedWeapon;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:repeating_armor', function(eventInfo) {
|
|
getAttrs(['repeating_armor_armor_details_visibility', 'repeating_armor_armor_details_visibility_toggle'], function(values) {
|
|
if(values['repeating_armor_armor_details_visibility'] == 'toggle') {
|
|
if(values['repeating_armor_armor_details_visibility_toggle'] == 'visible') {
|
|
setAttrs({
|
|
repeating_armor_armor_details_visibility: 'hidden',
|
|
repeating_armor_armor_details_visibility_toggle: 'hidden'
|
|
});
|
|
} else {
|
|
setAttrs({
|
|
repeating_armor_armor_details_visibility: 'visible',
|
|
repeating_armor_armor_details_visibility_toggle: 'visible'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
getAttrs(['repeating_armor_armor_magic_bonus', 'repeating_armor_armor_mb_initiative_bonus', 'repeating_armor_armor_mb_movement-rate_bonus'], function(values) {
|
|
var attrs = {};
|
|
var mb = isNaN(parseFloat(values['repeating_armor_armor_magic_bonus'])) ? 0 : parseFloat(values['repeating_armor_armor_magic_bonus']);
|
|
var ini = isNaN(parseFloat(values['repeating_armor_armor_mb_initiative_bonus'])) ? 0 : parseFloat(values['repeating_armor_armor_mb_initiative_bonus']);
|
|
var mr = isNaN(parseFloat(values['repeating_armor_armor_mb_movement-rate_bonus'])) ? 0 : parseFloat(values['repeating_armor_armor_mb_movement-rate_bonus']);
|
|
attrs['repeating_armor_armor_initiative_bonus'] = ini < 0 ? Math.min(mb + ini, 0) : ini;
|
|
attrs['repeating_armor_armor_movement-rate_bonus'] = mr < 0 ? Math.min(mb / 2 + mr, 0) : mr;
|
|
setAttrs(attrs);
|
|
});
|
|
getSectionIDs('repeating_armor', function(idarray) {
|
|
var actives = [];
|
|
var avs = [];
|
|
var mbs = [];
|
|
var bonuses = [];
|
|
for(var k=0; k < idarray.length; k++) {
|
|
actives.push('repeating_armor_'+ idarray[k] +'_armor_active');
|
|
avs.push('repeating_armor_'+ idarray[k] +'_armor_value');
|
|
mbs.push('repeating_armor_'+ idarray[k] +'_armor_magic_bonus');
|
|
for(var j = 0; j < fields.length; j++) {
|
|
bonuses.push('repeating_armor_'+ idarray[k] +'_armor_'+ fields[j] +'_bonus');
|
|
}
|
|
}
|
|
getAttrs(actives.concat(bonuses).concat(avs).concat(mbs), function(values) {
|
|
var attrs = {};
|
|
attrs['total_armor_value'] = 0;
|
|
attrs['total_armor_magic_bonus'] = 0;
|
|
for(var k=0; k < actives.length; k++) {
|
|
if(values[actives[k]] == "1") {
|
|
attrs['total_armor_value'] += (isNaN(parseFloat(values[avs[k]])) ? 0 : parseFloat(values[avs[k]]));
|
|
attrs['total_armor_magic_bonus'] += (isNaN(parseFloat(values[mbs[k]])) ? 0 : parseFloat(values[mbs[k]]));
|
|
}
|
|
}
|
|
for(var j = 0; j < fields.length; j++) {
|
|
attrs[fields[j] +'_armor_bonus'] = 0;
|
|
for(var k=0; k < actives.length; k++) {
|
|
if(values[actives[k]] == "1") {
|
|
attrs[fields[j] +'_armor_bonus'] += isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]);
|
|
}
|
|
}
|
|
if(attrs[fields[j] +'_armor_bonus'] == 0) {
|
|
attrs[fields[j] +'_armor_bonus'] = "";
|
|
}
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:repeating_spell', function(eventInfo) {
|
|
getSectionIDs('repeating_spell', function(idarray) {
|
|
var attrs = [];
|
|
for(var k=0; k < idarray.length; k++) {
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_active');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_name');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_type');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_distance');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_duration');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_mana');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_cooldown');
|
|
attrs.push('repeating_spell_'+ idarray[k] +'_spell_modifier');
|
|
}
|
|
getAttrs(attrs, function(values) {
|
|
var countActiveNormalSpell = 0;
|
|
var btnActiveNormalSpell = '';
|
|
var countActiveTargetedSpell = 0;
|
|
var btnActiveTargetedSpell = '';
|
|
for(var k=0; k < idarray.length; k++) {
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_active'] == "1") {
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] === undefined || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'spc' || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc') {
|
|
countActiveNormalSpell++;
|
|
btnActiveNormalSpell += '|'+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +',{{Zauber='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] + (values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc' ? ' (!)' : '') +'}}{{mana='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{Distanz='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{Dauer='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{Abklingzeit='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{Probenwert=[[@{normal-spellcasting} [Zaubern] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}';
|
|
}
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'tsc') {
|
|
countActiveTargetedSpell++;
|
|
btnActiveTargetedSpell += '|'+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +',{{Zauber='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{mana='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{Distanz='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{Dauer='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{Abklingzeit='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{Probenwert=[[@{targeted-spellcasting} [Zielzauber] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}';
|
|
}
|
|
}
|
|
}
|
|
if(countActiveNormalSpell == 0) {
|
|
btnActiveNormalSpell = '&{template:default}{{name=^{normal-spellcasting}}}{{^{spell}=???}}';
|
|
} else if(countActiveNormalSpell == 1) {
|
|
for(var k=0; k < idarray.length; k++) {
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_active'] == "1") {
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] === undefined || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'spc' || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc') {
|
|
btnActiveNormalSpell = '&{template:default}{{name=^{normal-spellcasting}}}{{^{spell}='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{^{mana}='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{^{spell-distance}='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{^{spell-duration}='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{^{spell-cooldown}='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{^{check-value}=[[@{normal-spellcasting} + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
btnActiveNormalSpell = '&{template:default}{{name=^{normal-spellcasting}}}?{Zauber'+ btnActiveNormalSpell +'}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
if(countActiveTargetedSpell == 0) {
|
|
btnActiveTargetedSpell = '&{template:default}{{name=^{targeted-spellcasting}}}{{^{spell}=???}}';
|
|
} else if(countActiveTargetedSpell == 1) {
|
|
for(var k=0; k < idarray.length; k++) {
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_active'] == "1") {
|
|
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'tsc') {
|
|
btnActiveTargetedSpell = '&{template:default}{{name=^{targeted-spellcasting}}}{{^{spell}='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{^{mana}='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{^{spell-distance}='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{^{spell-duration}='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{^{spell-cooldown}='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{^{check-value}=[[@{targeted-spellcasting} + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
btnActiveTargetedSpell = '&{template:default}{{name=^{targeted-spellcasting}}}?{Zauber'+ btnActiveTargetedSpell +'}{{^{check-result}=[[1d20]]}}';
|
|
}
|
|
setAttrs({
|
|
btn_active_normal_spell: btnActiveNormalSpell,
|
|
btn_active_targeted_spell: btnActiveTargetedSpell
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:repeating_talent', function(eventInfo) {
|
|
getAttrs(['repeating_talent_talent_details_visibility', 'repeating_talent_talent_details_visibility_toggle'], function(values) {
|
|
if(values['repeating_talent_talent_details_visibility'] == 'toggle') {
|
|
if(values['repeating_talent_talent_details_visibility_toggle'] == 'visible') {
|
|
setAttrs({
|
|
repeating_talent_talent_details_visibility: 'hidden',
|
|
repeating_talent_talent_details_visibility_toggle: 'hidden'
|
|
});
|
|
} else {
|
|
setAttrs({
|
|
repeating_talent_talent_details_visibility: 'visible',
|
|
repeating_talent_talent_details_visibility_toggle: 'visible'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
getSectionIDs('repeating_talent', function(idarray) {
|
|
var actives = [];
|
|
var ranks = [];
|
|
var bonuses = [];
|
|
for(var k=0; k < idarray.length; k++) {
|
|
actives.push('repeating_talent_'+ idarray[k] +'_talent_active');
|
|
ranks.push('repeating_talent_'+ idarray[k] +'_talent_rank');
|
|
for(var j = 0; j < fields.length; j++) {
|
|
bonuses.push('repeating_talent_'+ idarray[k] +'_talent_'+ fields[j] +'_bonus');
|
|
}
|
|
}
|
|
getAttrs(actives.concat(ranks).concat(bonuses), function(values) {
|
|
var newAttrs = {};
|
|
for(var j = 0; j < fields.length; j++) {
|
|
var bonus = 0;
|
|
for(var k=0; k < ranks.length; k++) {
|
|
if(values[actives[k]] == "1") {
|
|
bonus += (isNaN(parseFloat(values[ranks[k]])) ? 0 : parseFloat(values[ranks[k]])) * (isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]));
|
|
}
|
|
}
|
|
if(bonus != 0) {
|
|
newAttrs[fields[j] +'_talent_bonus'] = bonus;
|
|
} else {
|
|
newAttrs[fields[j] +'_talent_bonus'] = "";
|
|
}
|
|
}
|
|
setAttrs(newAttrs);
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:repeating_equipment', function(eventInfo) {
|
|
getAttrs(['repeating_equipment_equipment_details_visibility', 'repeating_equipment_equipment_details_visibility_toggle'], function(values) {
|
|
if(values['repeating_equipment_equipment_details_visibility'] == 'toggle') {
|
|
if(values['repeating_equipment_equipment_details_visibility_toggle'] == 'visible') {
|
|
setAttrs({
|
|
repeating_equipment_equipment_details_visibility: 'hidden',
|
|
repeating_equipment_equipment_details_visibility_toggle: 'hidden'
|
|
});
|
|
} else {
|
|
setAttrs({
|
|
repeating_equipment_equipment_details_visibility: 'visible',
|
|
repeating_equipment_equipment_details_visibility_toggle: 'visible'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
getSectionIDs('repeating_equipment', function(idarray) {
|
|
var bonuses = [];
|
|
var quantities = []
|
|
for(var k=0; k < idarray.length; k++) {
|
|
quantities.push('repeating_equipment_'+ idarray[k] +'_equipment_quantity');
|
|
for(var j = 0; j < fields.length; j++) {
|
|
bonuses.push('repeating_equipment_'+ idarray[k] +'_equipment_'+ fields[j] +'_bonus');
|
|
}
|
|
}
|
|
getAttrs(quantities.concat(bonuses), function(values) {
|
|
var attrs = {};
|
|
for(var j = 0; j < fields.length; j++) {
|
|
attrs[fields[j] +'_equipment_bonus'] = 0;
|
|
for(var k=0; k < quantities.length; k++) {
|
|
attrs[fields[j] +'_equipment_bonus'] += (isNaN(parseFloat(values[quantities[k]])) ? 0 : parseFloat(values[quantities[k]])) * (isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]));
|
|
}
|
|
if(attrs[fields[j] +'_equipment_bonus'] == 0) {
|
|
attrs[fields[j] +'_equipment_bonus'] = "";
|
|
}
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:repeating_miscellaneous', function(eventInfo) {
|
|
getAttrs(['repeating_miscellaneous_miscellaneous_details_visibility', 'repeating_miscellaneous_miscellaneous_details_visibility_toggle'], function(values) {
|
|
if(values['repeating_miscellaneous_miscellaneous_details_visibility'] == 'toggle') {
|
|
if(values['repeating_miscellaneous_miscellaneous_details_visibility_toggle'] == 'visible') {
|
|
setAttrs({
|
|
repeating_miscellaneous_miscellaneous_details_visibility: 'hidden',
|
|
repeating_miscellaneous_miscellaneous_details_visibility_toggle: 'hidden'
|
|
});
|
|
} else {
|
|
setAttrs({
|
|
repeating_miscellaneous_miscellaneous_details_visibility: 'visible',
|
|
repeating_miscellaneous_miscellaneous_details_visibility_toggle: 'visible'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
getSectionIDs('repeating_miscellaneous', function(idarray) {
|
|
var actives = [];
|
|
var bonuses = [];
|
|
for(var k=0; k < idarray.length; k++) {
|
|
actives.push('repeating_miscellaneous_'+ idarray[k] +'_miscellaneous_active');
|
|
for(var j = 0; j < fields.length; j++) {
|
|
bonuses.push('repeating_miscellaneous_'+ idarray[k] +'_miscellaneous_'+ fields[j] +'_bonus');
|
|
}
|
|
}
|
|
getAttrs(actives.concat(bonuses), function(values) {
|
|
var attrs = {};
|
|
for(var j = 0; j < fields.length; j++) {
|
|
attrs[fields[j] +'_miscellaneous_bonus'] = 0;
|
|
for(var k=0; k < actives.length; k++) {
|
|
if(values[actives[k]] == "1") {
|
|
attrs[fields[j] +'_miscellaneous_bonus'] += (isNaN(parseFloat(values[actives[k]])) ? 0 : parseFloat(values[actives[k]])) * (isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]));
|
|
}
|
|
}
|
|
if(attrs[fields[j] +'_miscellaneous_bonus'] == 0) {
|
|
attrs[fields[j] +'_miscellaneous_bonus'] = "";
|
|
}
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
|