Files
roll20-character-sheets/Private Eye/privateeye.html
T
2024-06-03 13:15:14 -04:00

1030 lines
66 KiB
HTML

<!-- skill inputs (hidden) -->
<input type="hidden" name="attr_health_max" value="0"/>
<input type="hidden" name="attr_weapon_1_hit_probability" value="0"/>
<input type="hidden" name="attr_weapon_2_hit_probability" value="0"/>
<input type="hidden" name="attr_weapon_3_hit_probability" value="0"/>
<input type="hidden" name="attr_weapon_4_hit_probability" value="0"/>
<input type="hidden" name="attr_skill_cab_driving_base_value" value="10"/>
<input type="hidden" name="attr_skill_cab_driving_modulator" value="0"/>
<input type="hidden" name="attr_skill_cab_driving" value="0"/>
<input type="hidden" name="attr_skill_forging_base_value" value="10"/>
<input type="hidden" name="attr_skill_forging_modulator" value="0"/>
<input type="hidden" name="attr_skill_forging" value="0"/>
<input type="hidden" name="attr_skill_fistfight_base_value" value="15"/>
<input type="hidden" name="attr_skill_fistfight_modulator" value="0"/>
<input type="hidden" name="attr_skill_fistfight" value="0"/>
<input type="hidden" name="attr_skill_foreign_language_base_value" value="5"/>
<input type="hidden" name="attr_skill_foreign_language_modulator" value="0"/>
<input type="hidden" name="attr_skill_foreign_language_1" value="0"/>
<input type="hidden" name="attr_skill_foreign_language_2" value="0"/>
<input type="hidden" name="attr_skill_foreign_language_3" value="0"/>
<input type="hidden" name="attr_skill_law_base_value" value="5"/>
<input type="hidden" name="attr_skill_law_modulator" value="0"/>
<input type="hidden" name="attr_skill_law" value="0"/>
<input type="hidden" name="attr_skill_crafting_base_value" value="10"/>
<input type="hidden" name="attr_skill_crafting_modulator" value="0"/>
<input type="hidden" name="attr_skill_crafting" value="0"/>
<input type="hidden" name="attr_skill_climbing_base_value" value="10"/>
<input type="hidden" name="attr_skill_climbing_modulator" value="0"/>
<input type="hidden" name="attr_skill_climbing" value="0"/>
<input type="hidden" name="attr_skill_melee_weapons_base_value" value="10"/>
<input type="hidden" name="attr_skill_melee_weapons_modulator" value="0"/>
<input type="hidden" name="attr_skill_melee_weapons" value="0"/>
<input type="hidden" name="attr_skill_psychology_base_value" value="5"/>
<input type="hidden" name="attr_skill_psychology_modulator" value="0"/>
<input type="hidden" name="attr_skill_psychology" value="0"/>
<input type="hidden" name="attr_skill_research_base_value" value="10"/>
<input type="hidden" name="attr_skill_research_modulator" value="0"/>
<input type="hidden" name="attr_skill_research" value="0"/>
<input type="hidden" name="attr_skill_acting_base_value" value="20"/>
<input type="hidden" name="attr_skill_acting_modulator" value="0"/>
<input type="hidden" name="attr_skill_acting" value="0"/>
<input type="hidden" name="attr_skill_sneaking_base_value" value="15"/>
<input type="hidden" name="attr_skill_sneaking_modulator" value="0"/>
<input type="hidden" name="attr_skill_sneaking" value="0"/>
<input type="hidden" name="attr_skill_lock_picking_base_value" value="5"/>
<input type="hidden" name="attr_skill_lock_picking_modulator" value="0"/>
<input type="hidden" name="attr_skill_lock_picking" value="0"/>
<input type="hidden" name="attr_skill_firearms_base_value" value="10"/>
<input type="hidden" name="attr_skill_firearms_modulator" value="0"/>
<input type="hidden" name="attr_skill_firearms" value="0"/>
<input type="hidden" name="attr_skill_forensics_base_value" value="5"/>
<input type="hidden" name="attr_skill_forensics_modulator" value="0"/>
<input type="hidden" name="attr_skill_forensics" value="0"/>
<input type="hidden" name="attr_skill_city_knowledge_base_value" value="20"/>
<input type="hidden" name="attr_skill_city_knowledge_modulator" value="0"/>
<input type="hidden" name="attr_skill_city_knowledge" value="0"/>
<input type="hidden" name="attr_skill_technology_base_value" value="10"/>
<input type="hidden" name="attr_skill_technology_modulator" value="0"/>
<input type="hidden" name="attr_skill_technology_1" value="0"/>
<input type="hidden" name="attr_skill_technology_2" value="0"/>
<input type="hidden" name="attr_skill_technology_3" value="0"/>
<input type="hidden" name="attr_skill_tracking_base_value" value="10"/>
<input type="hidden" name="attr_skill_tracking_modulator" value="0"/>
<input type="hidden" name="attr_skill_tracking" value="0"/>
<input type="hidden" name="attr_skill_interrogation_base_value" value="20"/>
<input type="hidden" name="attr_skill_interrogation_modulator" value="0"/>
<input type="hidden" name="attr_skill_interrogation" value="0"/>
<input type="hidden" name="attr_skill_disguise_base_value" value="20"/>
<input type="hidden" name="attr_skill_disguise_modulator" value="0"/>
<input type="hidden" name="attr_skill_disguise" value="0"/>
<input type="hidden" name="attr_skill_hiding_base_value" value="15"/>
<input type="hidden" name="attr_skill_hiding_modulator" value="0"/>
<input type="hidden" name="attr_skill_hiding" value="0"/>
<input type="hidden" name="attr_skill_perception_base_value" value="25"/>
<input type="hidden" name="attr_skill_perception_modulator" value="0"/>
<input type="hidden" name="attr_skill_perception" value="0"/>
<input type="hidden" name="attr_skill_throwing_base_value" value="10"/>
<input type="hidden" name="attr_skill_throwing_modulator" value="0"/>
<input type="hidden" name="attr_skill_throwing" value="0"/>
<input type="hidden" name="attr_skill_science_base_value" value="5"/>
<input type="hidden" name="attr_skill_science_modulator" value="0"/>
<input type="hidden" name="attr_skill_science_1" value="0"/>
<input type="hidden" name="attr_skill_science_2" value="0"/>
<input type="hidden" name="attr_skill_science_3" value="0"/>
<input type="hidden" name="attr_skill_science_4" value="0"/>
<div class="pe-dynamic-modifiers">
<input type="checkbox" value="1" name="attr_use_dynamic_modifiers"/>
<span data-i18n="use-dynamic-modifiers">Use dynamic modifiers</span>
</div>
<div class="pe-header">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Private%20Eye/images/privateeye_banner.png" alt="Private Eye">
</div>
<!-- Row: personal characteristics and avatar -->
<div class="pe-sheet-wrapper">
<div class="pe-sheet-section pe-width-75">
<h1 data-i18n="personal-characteristics">Personal characteristics</h1>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-name" style="width: 80px;">Name</span>
<input type="text" name="attr_character_name" class="pe-grow"/>
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-gender" style="width: 80px;">Gender</span>
<input type="text" name="attr_gender" class="pe-grow"/>
<span class="pe-label" data-i18n="character-age" style="width: 40px">Age</span>
<input type="number" name="attr_age" style="width: 60px;" value="0"/>
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-size" style="width: 80px">Size</span>
<input type="text" name="attr_size" class="pe-grow"/>
<span class="pe-label" data-i18n="character-weight" style="width: 80px">Weight</span>
<input type="text" name="attr_weight" class="pe-grow"/>
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-nationality" style="width: 80px;">Nationality</span>
<input type="text" name="attr_nationality" class="pe-grow"/>
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-place-of-birth" style="width: 80px;">Place of birth</span>
<input type="text" name="attr_place_of_birth" class="pe-grow"/>
</div>
</div>
<div class="pe-sheet-section pe-width-25 pe-borderless pe-centered avatar-widthfix">
<img name="attr_character_avatar" class="img-fit-content"/>
</div>
</div>
<!-- Row: social characteristics -->
<div class="pe-sheet-wrapper">
<div class="pe-sheet-section pe-width-100">
<h1 data-i18n="social-characteristics">Social characteristics</h1>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-occupation" style="width: 80px;">Occupation</span>
<input type="text" name="attr_occupation" class="pe-grow">
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-education-text" style="width: 80px;">Education</span>
<input type="text" name="attr_education-text" class="pe-grow">
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-origin" style="width: 80px;">Origin</span>
<input type="text" name="attr_origin" class="pe-grow">
<span class="pe-label" data-i18n="character-location" style="width: 130px">Location</span>
<input type="text" name="attr_location">
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-wealth" style="width: 80px;">Wealth</span>
<input type="text" name="attr_wealth" class="pe-grow">
</div>
</div>
</div>
<!-- Row: base properties and progression -->
<div class="pe-sheet-wrapper">
<div class="pe-sheet-section pe-width-50">
<h1 data-i18n="base-properties">Properties</h1>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-strength" style="width: 20px;">STR</span>
<input type="number" name="attr_strength" class="pe-grow" value="0">
<button class="character-roll" type="roll" name="roll_character_strength"></button>
<span class="pe-label" data-i18n="character-intelligence" style="width: 20px;">INT</span>
<input type="number" name="attr_intelligence" class="pe-grow" value="0">
<button class="character-roll" type="roll" name="roll_character_intelligence"></button>
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-skill" style="width: 20px;">SKI</span>
<input type="number" name="attr_skill" class="pe-grow" value="0">
<button class="character-roll" type="roll" name="roll_character_skill"></button>
<span class="pe-label" data-i18n="character-charme" style="width: 20px;">CHA</span>
<input type="number" name="attr_charme" class="pe-grow" value="0">
<button class="character-roll" type="roll" name="roll_character_charme"></button>
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-constitution" style="width: 20px;">CON</span>
<input type="number" name="attr_constitution" class="pe-grow" value="0">
<button class="character-roll" type="roll" name="roll_character_constitution"></button>
<span class="pe-label" data-i18n="character-education" style="width: 20px;">EDU</span>
<input type="number" name="attr_education" class="pe-grow" value="0">
<button class="character-roll" type="roll" name="roll_character_education"></button>
</div>
</div>
<div class="pe-sheet-section pe-width-50">
<h1 data-i18n="health-properties">Health & Advancement</h1>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-health" style="width: 20px;">LP</span>
<input type="number" name="attr_health" class="pe-grow" value="0">
<span class="pe-label" data-i18n="character-max" style="width: 20px;">Max</span>
<span name="attr_health_max" class="pe-grow"></span>
<span class="pe-label" data-i18n="character-experience" style="width: 20px;">XP</span>
<input type="number" name="attr_experience" class="pe-grow" value="0">
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-level" style="width: 90px;">Level</span>
<input type="number" name="attr_level" class="pe-grow" value="1">
</div>
<div class="pe-sheet-row">
<span class="pe-label" data-i18n="character-reputation" style="width: 90px;">Reputation</span>
<input type="number" name="attr_reputation" class="pe-grow" value="1">
</div>
</div>
</div>
<div class="pe-sheet-wrapper">
<div class="pe-sheet-section pe-width-100">
<h1 data-i18n="skills">Skills</h1>
<div class="pe-skill-grid" data-i18n-list="skills-list" data-i18n-error="">
<!-- Header -->
<div class="pe-skill-row border-dashed" data-i18n-list-item="header">
<span class="pe-skill-gridcell pe-wider pe-bold" data-i18n="header-skill">Skill</span>
<span class="pe-skill-gridcell pe-bold" data-i18n="header-property">Property</span>
<span class="pe-skill-gridcell pe-bold" data-i18n="header-base-value">Base value</span>
<span class="pe-skill-gridcell pe-bold" data-i18n="header-property-bonus">Property Bonus</span>
<span class="pe-skill-gridcell pe-bold" data-i18n="header-points">Points</span>
<span class="pe-skill-gridcell pe-bold" data-i18n="header-total">Total</span>
<span class="pe-skill-gridcell pe-narrow"></span>
</div>
<div class="pe-skill-row" data-i18n-list-item="cab-driving">
<!-- Skill: Drive Carriages -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-cab-driving">Cab driving</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_cab_driving_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_cab_driving_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_cab_driving_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_cab_driving"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_cab_driving"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="forging">
<!-- Skill: Forge -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-forging">Forging</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_forging_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_forging_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_forging_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_forging"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_forging"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="fistfight">
<!-- Skill: Fist fight -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-fistfight">Fistfight</span>
<span class="pe-skill-gridcell" data-i18n="character-strength">STR</span>
<span class="pe-skill-gridcell" name="attr_skill_fistfight_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_fistfight_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_fistfight_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_fistfight"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_fistfight"></button>
</div>
<div class="pe-skill-row border-none" data-i18n-list-item="foreign-language-header">
<!-- Subheader: Foreign language-->
<span class="pe-skill-gridcell pe-fullrow pe-bold" data-i18n="skill-foreign-language">Foreign language</span>
</div>
<div class="pe-skill-row" data-i18n-list-item="foreign-language-1">
<!-- Skill: Foreign language 1 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_foreign_language_1_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_foreign_language_1_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_1"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_foreign_language_1"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="foreign-language-2">
<!-- Skill: Foreign language 2 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_foreign_language_2_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_foreign_language_2_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_2"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_foreign_language_2"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="foreign-language-3">
<!-- Skill: Foreign language 3 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_foreign_language_3_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_foreign_language_3_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_foreign_language_3"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_foreign_language_3"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="law">
<!-- Skill: Law -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-law">Law</span>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_law_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_law_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_law_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_law"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_law"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="crafting">
<!-- Skill: Crafting -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-crafting">Crafting</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_crafting_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_crafting_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_crafting_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_crafting"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_crafting"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="climbing">
<!-- Skill: Climb -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-climbing">Climbing</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_climbing_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_climbing_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_climbing_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_climbing"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_climbing"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="melee-weapons">
<!-- Skill: Melee weapons -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-melee-weapons">Melee weapons</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_melee_weapons_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_melee_weapons_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_melee_weapons_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_melee_weapons"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_melee_weapons"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="psychology">
<!-- Skill: Psychology -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-psychology">Psychology</span>
<span class="pe-skill-gridcell" data-i18n="character-intelligence">INT</span>
<span class="pe-skill-gridcell" name="attr_skill_psychology_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_psychology_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_psychology_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_psychology"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_psychology"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="research">
<!-- Skill: Research -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-research">Research</span>
<span class="pe-skill-gridcell" data-i18n="character-intelligence">INT</span>
<span class="pe-skill-gridcell" name="attr_skill_research_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_research_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_research_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_research"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_research"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="acting">
<!-- Skill: Acting -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-acting">Acting</span>
<span class="pe-skill-gridcell" data-i18n="character-charme">CHA</span>
<span class="pe-skill-gridcell" name="attr_skill_acting_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_acting_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_acting_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_acting"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_acting"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="sneaking">
<!-- Skill: Stealth -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-sneaking">Sneaking</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_sneaking_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_sneaking_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_sneaking_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_sneaking"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_sneaking"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="lock-picking">
<!-- Skill: Lockpick -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-lock-picking">Lock picking</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_lock_picking_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_lock_picking_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_lock_picking_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_lock_picking"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_lock_picking"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="firearms">
<!-- Skill: Firearms -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-firearms">Firearms</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_firearms_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_firearms_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_firearms_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_firearms"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_firearms"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="forensics">
<!-- Skill: Forensics -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-forensics">Forensics</span>
<span class="pe-skill-gridcell" data-i18n="character-intelligence">INT</span>
<span class="pe-skill-gridcell" name="attr_skill_forensics_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_forensics_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_forensics_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_forensics"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_forensics"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="city-knowledge">
<!-- Skill: City knowledge -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-city-knowledge">City knowledge</span>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_city_knowledge_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_city_knowledge_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_city_knowledge_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_city_knowledge"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_city_knowledge"></button>
</div>
<div class="pe-skill-row border-none" data-i18n-list-item="technology-header">
<!-- Subheader: Technology-->
<span class="pe-skill-gridcell pe-fullrow pe-bold" data-i18n="skill-technology">Technology</span>
</div>
<div class="pe-skill-row" data-i18n-list-item="technology-1">
<!-- Skill: Technology 1 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_technology_1_name"/>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_technology_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_technology_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_technology_1_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_technology_1"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_technology_1"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="technology-2">
<!-- Skill: Technology 2 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_technology_2_name"/>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_technology_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_technology_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_technology_2_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_technology_2"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_technology_2"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="technology-3">
<!-- Skill: Technology 3 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_technology_3_name"/>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_technology_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_technology_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_technology_3_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_technology_3"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_technology_3"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="tracking">
<!-- Skill: Track -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-tracking">Tracking</span>
<span class="pe-skill-gridcell" data-i18n="character-constitution">CON</span>
<span class="pe-skill-gridcell" name="attr_skill_tracking_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_tracking_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_tracking_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_tracking"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_tracking"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="interrogation">
<!-- Skill: Interrogation -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-interrogation">Interrogation</span>
<span class="pe-skill-gridcell" data-i18n="character-intelligence">INT</span>
<span class="pe-skill-gridcell" name="attr_skill_interrogation_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_interrogation_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_interrogation_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_interrogation"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_interrogation"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="disguise">
<!-- Skill: Disguise -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-disguise">Disguise</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_disguise_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_disguise_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_disguise_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_disguise"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_disguise"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="hiding">
<!-- Skill: Hide -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-hiding">Hiding</span>
<span class="pe-skill-gridcell" data-i18n="character-skill">SKI</span>
<span class="pe-skill-gridcell" name="attr_skill_hiding_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_hiding_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_hiding_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_hiding"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_hiding"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="perception">
<!-- Skill: Perception -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-perception">Perception</span>
<span class="pe-skill-gridcell" data-i18n="character-intelligence">INT</span>
<span class="pe-skill-gridcell" name="attr_skill_perception_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_perception_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_perception_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_perception"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_perception"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="throwing">
<!-- Skill: Throw -->
<span class="pe-skill-gridcell pe-wider" data-i18n="skill-throwing">Throwing</span>
<span class="pe-skill-gridcell" data-i18n="character-strength">STR</span>
<span class="pe-skill-gridcell" name="attr_skill_throwing_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_throwing_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_throwing_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_throwing"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll" type="roll" name="roll_skill_throwing"></button>
</div>
<div class="pe-skill-row border-none" data-i18n-list-item="science-header">
<!-- Subheader: Science-->
<span class="pe-skill-gridcell pe-fullrow pe-bold" data-i18n="skill-science">Science</span>
</div>
<div class="pe-skill-row" data-i18n-list-item="science-1">
<!-- Skill: Science 1 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_science_1_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_science_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_science_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_science_1_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_science_1"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_science_1"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="science-2">
<!-- Skill: Science 2 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_science_2_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_science_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_science_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_science_2_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_science_2"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_science_2"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="science-3">
<!-- Skill: Science 3 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_science_3_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_science_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_science_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_science_3_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_science_3"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_science_3"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="science-4">
<!-- Skill: Science 4 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_science_4_name"/>
<span class="pe-skill-gridcell" data-i18n="character-education">EDU</span>
<span class="pe-skill-gridcell" name="attr_skill_science_base_value"></span>
<span class="pe-skill-gridcell" name="attr_skill_science_modulator"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_science_4_points" value="0"/>
<span class="pe-skill-gridcell" name="attr_skill_science_4"></span>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_science_4"></button>
</div>
<div class="pe-skill-row border-none" data-i18n-list-item="custom-header">
<!-- Subheader: Custom-->
<span class="pe-skill-gridcell pe-fullrow pe-bold" data-i18n="skill-custom">Custom skills</span>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-1">
<!-- Skill: Custom 1 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_1_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_1" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_1"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-2">
<!-- Skill: Custom 2 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_2_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_2" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_2"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-3">
<!-- Skill: Custom 3 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_3_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_3" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_3"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-4">
<!-- Skill: Custom 4 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_4_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_4" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_4"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-5">
<!-- Skill: Custom 5 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_5_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_5" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_5"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-6">
<!-- Skill: Custom 6 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_6_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_6" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_6"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-7">
<!-- Skill: Custom 7 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_7_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_7" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_7"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-8">
<!-- Skill: Custom 8 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_8_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_8" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_8"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-9">
<!-- Skill: Custom 9 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_9_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_9" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_9"></button>
</div>
<div class="pe-skill-row" data-i18n-list-item="custom-10">
<!-- Skill: Custom 10 -->
<input type="text" class="pe-skill-gridcell pe-wider" name="attr_skill_custom_10_name"/>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<span class="pe-skill-gridcell"></span>
<input type="number" class="pe-skill-gridcell" name="attr_skill_custom_10" value="0"/>
<button class="pe-skill-gridcell pe-narrow skill-roll-dn" type="roll" name="roll_skill_custom_10"></button>
</div>
</div>
</div>
</div>
<div class="pe-sheet-wrapper">
<div class="pe-sheet-section pe-width-100">
<h1 data-i18n="weapons-properties">Weapons</h1>
<div class="pe-sheet-row">
<span class="pe-label pe-grow pe-bold" data-i18n="weapon-name">Weapon</span>
<span class="pe-label pe-bold" data-i18n="weapon-type" style="width: 97px;">Damage Type</span>
<span class="pe-label pe-bold" data-i18n="weapon-used-skill" style="width: 97px;">Used skill</span>
<span class="pe-label pe-bold" data-i18n="weapon-hit-probability" style="width: 40px;">HP</span>
<span class="pe-label pe-bold" data-i18n="weapon-attack-probability" style="width: 70px;">AP</span>
<span class="pe-label pe-bold" data-i18n="weapon-defense-probability" style="width: 75px;">DP</span>
</div>
<div class="pe-sheet-row">
<input type="text" name="attr_weapon_1_name" class="pe-grow">
<select name="attr_weapon_1_type" style="width: 120px;">
<option value="blunt"><span data-i18n="weapon-type-blunt">Blunt</span></option>
<option value="pointed"><span data-i18n="weapon-type-pointed">Pointed</span></option>
</select>
<select name="attr_weapon_1_used_skill" style="width: 120px;">
<option value="fistfight"><span data-i18n="skill-fistfight">Fistfight</span></option>
<option value="melee_weapons"><span data-i18n="skill-melee-weapons">Melee weapons</span></option>
<option value="firearms"><span data-i18n="skill-firearms">Firearms</span></option>
<option value="throwing"><span data-i18n="skill-throwing">Throwing</span></option>
</select>
<span name="attr_weapon_1_hit_probability" style="width: 55px"></span>
<input type="number" name="attr_weapon_1_attack_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="1" data-combat-roll-type="attack" name="roll_weapon_1_attack_probability"></button>
<input type="number" name="attr_weapon_1_defense_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="1" data-combat-roll-type="defense" name="roll_weapon_1_defense_probability"></button>
</div>
<div class="pe-sheet-row">
<input type="text" name="attr_weapon_2_name" class="pe-grow">
<select name="attr_weapon_2_type" style="width: 120px;">
<option value="blunt"><span data-i18n="weapon-type-blunt">Blunt</span></option>
<option value="pointed"><span data-i18n="weapon-type-pointed">Pointed</span></option>
</select>
<select name="attr_weapon_2_used_skill" style="width: 120px;">
<option value="fistfight"><span data-i18n="skill-fistfight">Fistfight</span></option>
<option value="melee_weapons"><span data-i18n="skill-melee-weapons">Melee weapons</span></option>
<option value="firearms"><span data-i18n="skill-firearms">Firearms</span></option>
<option value="throwing"><span data-i18n="skill-throwing">Throwing</span></option>
</select>
<span name="attr_weapon_2_hit_probability" style="width: 55px"></span>
<input type="number" name="attr_weapon_2_attack_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="2" data-combat-roll-type="attack" name="roll_weapon_2_attack_probability" ></button>
<input type="number" name="attr_weapon_2_defense_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="2" data-combat-roll-type="defense" name="roll_weapon_2_defense_probability" ></button>
</div>
<div class="pe-sheet-row">
<input type="text" name="attr_weapon_3_name" class="pe-grow">
<select name="attr_weapon_3_type" style="width: 120px;">
<option value="blunt"><span data-i18n="weapon-type-blunt">Blunt</span></option>
<option value="pointed"><span data-i18n="weapon-type-pointed">Pointed</span></option>
</select>
<select name="attr_weapon_3_used_skill" style="width: 120px;">
<option value="fistfight"><span data-i18n="skill-fistfight">Fistfight</span></option>
<option value="melee_weapons"><span data-i18n="skill-melee-weapons">Melee weapons</span></option>
<option value="firearms"><span data-i18n="skill-firearms">Firearms</span></option>
<option value="throwing"><span data-i18n="skill-throwing">Throwing</span></option>
</select>
<span name="attr_weapon_3_hit_probability" style="width: 55px"></span>
<input type="number" name="attr_weapon_3_attack_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="3" data-combat-roll-type="attack" name="roll_weapon_3_attack_probability" ></button>
<input type="number" name="attr_weapon_3_defense_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="3" data-combat-roll-type="defense" name="roll_weapon_3_defense_probability" ></button>
</div>
<div class="pe-sheet-row">
<input type="text" name="attr_weapon_4_name" class="pe-grow">
<select name="attr_weapon_4_type" style="width: 120px;">
<option value="blunt"><span data-i18n="weapon-type-blunt">Blunt</span></option>
<option value="pointed"><span data-i18n="weapon-type-pointed">Pointed</span></option>
</select>
<select name="attr_weapon_4_used_skill" style="width: 120px;">
<option value="fistfight"><span data-i18n="skill-fistfight">Fistfight</span></option>
<option value="melee_weapons"><span data-i18n="skill-melee-weapons">Melee weapons</span></option>
<option value="firearms"><span data-i18n="skill-firearms">Firearms</span></option>
<option value="throwing"><span data-i18n="skill-throwing">Throwing</span></option>
</select>
<span name="attr_weapon_4_hit_probability" style="width: 55px"></span>
<input type="number" name="attr_weapon_4_attack_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="4" data-combat-roll-type="attack" name="roll_weapon_4_attack_probability"></button>
<input type="number" name="attr_weapon_4_defense_probability" style="width: 55px" value="0">
<button type="roll" class="weapon-roll" data-weapon-number="4" data-combat-roll-type="defense" name="roll_weapon_4_defense_probability"></button>
</div>
</div>
</div>
<div class="pe-footer">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Private%20Eye/images/redaktion-phantastik-logo.png" height="250px" alt="Redaktion Phantastik">
</div>
<rolltemplate class="sheet-rolltemplate-pe-roll">
<div class="sheet-box">
<div class="sheet-outer-border">
<div class="sheet-inner-border">
<div class="sheet-row sheet-title-row">
<span>{{name}}</span>
</div>
<div class="sheet-row sheet-successrate-row">
{{#rollWasCrit() roll}}
<span class="sheet-success sheet-critical" data-i18n="rt-critical">Critical</span>
{{/rollWasCrit() roll}}
{{#rollWasFumble() roll}}
<span class="sheet-failure sheet-critical" data-i18n="rt-fumble">Fumble</span>
{{/rollWasFumble() roll}}
{{#^rollWasCrit() roll}}
{{#^rollWasFumble() roll}}
{{#^rollGreater() computed::roll success}}
<span class="sheet-success" data-i18n="rt-success">Success</span>
{{/^rollGreater() computed::roll success}}
{{#rollGreater() computed::roll success}}
<span class="sheet-failure" data-i18n="rt-failure">Failure</span>
{{/rollGreater() computed::roll success}}
{{/^rollWasFumble() roll}}
{{/^rollWasCrit() roll}}
</div>
<div class="sheet-row sheet-result-row">
<div class="sheet-result">
<span>Result</span><br/>
{{roll}}
</div>
<div class="sheet-result">
<span>Target</span><br/>
{{success}}
</div>
</div>
<div class="sheet-row sheet-damage-row">
{{#^rollGreater() computed::roll success}}
{{#attack}}
<span>Damage: {{computed::damage_roll}}</span>
{{/attack}}
{{/^rollGreater() computed::roll success}}
</div>
</div>
</div>
</div>
</rolltemplate>
<script type="text/worker">
const simpleSkills = [
'fistfight', 'throwing', 'cab_driving', 'forging', 'crafting', 'climbing', 'melee_weapons', 'sneaking',
'lock_picking', 'firearms', 'disguise', 'hiding', 'law', 'city_knowledge', 'psychology', 'research', 'forensics',
'interrogation', 'perception','psychology', 'acting', 'tracking'
];
const dynamicSkills = {
'foreign_language': 3,
'technology': 3,
'science': 4
}
function getPropertyBonus(value) {
if (value < 17) {
return -10
} else if (value < 25) {
return -5
} else if (value > 91) {
return 20
} else if (value > 83) {
return 15
} else if (value > 75) {
return 10
} else if (value > 67) {
return 5
} else {
return 0
}
}
on('change:strength change:skill change:education change:charme change:intelligence change:constitution', function (eventInfo) {
const propAttrs = {
'strength': ['fistfight', 'throwing'],
'skill': ['cab_driving', 'forging', 'crafting', 'climbing', 'melee_weapons', 'sneaking', 'lock_picking', 'firearms', 'technology', 'disguise', 'hiding'],
'education': ['law', 'foreign_language', 'city_knowledge', 'science'],
'charme': ['acting'],
'intelligence': ['psychology', 'research', 'forensics', 'interrogation', 'perception'],
'constitution': ['tracking']
}
const modifier = getPropertyBonus(eventInfo.newValue)
let attrsToSet = {}
propAttrs[eventInfo.sourceAttribute].forEach(function(attr){
attrsToSet['skill_' + attr + '_modulator'] = modifier
})
setAttrs(attrsToSet)
})
simpleSkills.forEach(function(skill){
let eventSelector = 'sheet:opened change:skill_' + skill + '_modulator change:skill_' + skill + '_points'
on(eventSelector, function(){
getAttrs(['skill_' + skill + '_base_value', 'skill_' + skill + '_modulator', 'skill_' + skill + '_points'], function (attributes){
let result = {}
let attrName = 'skill_' + skill
result[attrName] = 0
Object.keys(attributes).forEach(function (attr) {
result[attrName] += parseInt(attributes[attr])
})
setAttrs(result)
});
});
});
Object.keys(dynamicSkills).forEach(function(skill){
for (let i = 0; i < dynamicSkills[skill]; i++) {
let dynamicSkillId = skill + '_' + parseInt(parseInt(i)+1)
let eventSelector = 'sheet:opened change:skill_' + skill + '_modulator change:skill_' + dynamicSkillId + '_points'
on(eventSelector, function(){
getAttrs(['skill_' + skill + '_base_value', 'skill_' + skill + '_modulator', 'skill_' + dynamicSkillId + '_points'], function (attributes){
let result = {}
let attrName = 'skill_' + dynamicSkillId
result[attrName] = 0
Object.keys(attributes).forEach(function (attr) {
result[attrName] += parseInt(attributes[attr])
})
setAttrs(result)
});
});
}
})
on('change:constitution', function(eventInfo){
healthMax = Math.round(parseFloat(eventInfo.newValue)/5.00)
setAttrs({'health_max': healthMax})
getAttrs(['health'], function(attrVal){
if (attrVal['health'] == 0) {
setAttrs({'health': healthMax})
}
});
});
on('change:skill_fistfight change:skill_melee_weapons change:skill_firearms change:skill_throwing', function(eventinfo) {
const lowVal = Math.floor(parseFloat(eventinfo.newValue)/2.00)
const highVal = Math.ceil(parseFloat(eventinfo.newValue)/2.00)
for (let i = 1; i <= 4; i++) {
let prefix = 'weapon_' + i + '_'
getAttrs([prefix + 'used_skill'], function (attrs){
if ('skill_' + attrs[prefix + 'used_skill'] === eventinfo.sourceAttribute) {
let changes = {}
changes[prefix + "hit_probability"] = eventinfo.newValue
changes[prefix + "attack_probability"] = lowVal
changes[prefix + "defense_probability"] = highVal
setAttrs(changes)
}
})
}
});
on('change:weapon_1_used_skill change:weapon_2_used_skill change:weapon_3_used_skill change:weapon_4_used_skill', function(eventinfo) {
const parts = eventinfo.sourceAttribute.split("_")
const prefix = parts[0] + "_" + parts[1] + "_"
getAttrs(["skill_" + eventinfo.newValue], function (attrs){
const lowVal = Math.floor(parseFloat(attrs["skill_" + eventinfo.newValue])/2.00)
const highVal = Math.ceil(parseFloat(attrs["skill_" + eventinfo.newValue])/2.00)
let changes = {}
changes[prefix + "hit_probability"] = attrs["skill_" + eventinfo.newValue]
changes[prefix + "attack_probability"] = lowVal
changes[prefix + "defense_probability"] = highVal
setAttrs(changes)
})
});
$20('button.weapon-roll').on('click', function(e){
const weapon = "weapon_" + e["htmlAttributes"]["data-weapon-number"]
const crType = e["htmlAttributes"]["data-combat-roll-type"]
getAttrs(['use_dynamic_modifiers', weapon + '_name', weapon + '_type', weapon + '_' + crType + '_probability'], function(attrs) {
const rollMacro = attrs[weapon + '_' + crType + '_probability'] < 6 ? "[[1d100cf>98cs<1]]" : "[[1d100cf>98cs<3]]"
const damageMacro = attrs[weapon + '_type'] == 'blunt' ? "[[1d5cs<10cf>13]]" : "[[1d10cs<12cf>13]]"
const damageCritMacro = attrs[weapon + '_type'] == 'blunt' ? "[[1d5+1cs<10cf>13]]" : "[[1d10+2cs<12cf>13]]"
const attackType = crType == "attack" ? "{{attack=true}}" : ""
let dynamicModifier = ""
if (attrs['use_dynamic_modifiers'] == 1) {
let dynamicModifierPrompt = getTranslationByKey('dynamic-modifiers-prompt')
dynamicModifier = "+ ?{" + dynamicModifierPrompt + "|0}"
}
startRoll(
"&{template:pe-roll} "
+ "{{name=" + attrs[weapon + '_name'] + " (^{weapon-roll-type-" + crType + "})}}"
+ attackType
+ "{{roll=" + rollMacro + "}}"
+ "{{success=[[" + attrs[weapon + '_' + crType + '_probability'] + dynamicModifier + "]]}}"
+ "{{damage_roll=" + damageMacro + "}}"
+ "{{damage_crit_roll=" + damageCritMacro + "}}"
, function(rollResult) {
let computedResults = {
"damage_roll": rollResult["results"]["damage_roll"]["result"]
}
if (rollResult["results"]["roll"]["result"] <= parseInt(rollResult["results"]["roll"]["expression"].split("cs<")[1])) {
computedResults["damage_roll"] = rollResult["results"]["damage_crit_roll"]["result"]
}
finishRoll(rollResult["rollId"], computedResults)
}
)
});
});
$20('button.skill-roll-dn').on('click', function(e){
const attribute = e["htmlAttributes"]["name"].replace('roll_', '')
getAttrs(['use_dynamic_modifiers', attribute, attribute+'_name'], function(attrs){
let dynamicModifier = ""
if (attrs['use_dynamic_modifiers'] == 1) {
let dynamicModifierPrompt = getTranslationByKey('dynamic-modifiers-prompt')
dynamicModifier = "+ ?{" + dynamicModifierPrompt + "|0}"
}
const rollMacro = attrs[attribute] < 6 ? "[[1d100cf>98cs<1]]" : "[[1d100cf>98cs<3]]"
startRoll(
"&{template:pe-roll} "
+ "{{name=" + attrs[attribute+'_name'] +"}}"
+ "{{roll=" + rollMacro + "}}"
+ "{{success=[[" + attrs[attribute] + dynamicModifier + "]]}}"
, function(rollResult) {
finishRoll(rollResult["rollId"])
}
)
})
});
$20('button.skill-roll').on('click', function(e){
const attribute = e["htmlAttributes"]["name"].replace('roll_', '')
getAttrs(['use_dynamic_modifiers', attribute], function(attrs){
let dynamicModifier = ""
if (attrs['use_dynamic_modifiers'] == 1) {
let dynamicModifierPrompt = getTranslationByKey('dynamic-modifiers-prompt')
dynamicModifier = "+ ?{" + dynamicModifierPrompt + "|0}"
}
const rollMacro = attrs[attribute] < 6 ? "[[1d100cf>98cs<1]]" : "[[1d100cf>98cs<3]]"
startRoll(
"&{template:pe-roll} "
+ "{{name=^{" + attribute.replaceAll('_', '-') +"}}}"
+ "{{roll=" + rollMacro + "}}"
+ "{{success=[[" + attrs[attribute] + dynamicModifier + "]]}}"
, function(rollResult) {
finishRoll(rollResult["rollId"])
}
)
})
});
$20('button.character-roll').on('click', function(e){
const attribute = e["htmlAttributes"]["name"].replace('roll_character_', '')
getAttrs(['use_dynamic_modifiers', attribute], function(attrs){
let dynamicModifier = ""
if (attrs['use_dynamic_modifiers'] == 1) {
let dynamicModifierPrompt = getTranslationByKey('dynamic-modifiers-prompt')
dynamicModifier = "+ ?{" + dynamicModifierPrompt + "|0}"
}
const rollMacro = attrs[attribute] < 6 ? "[[1d100cf>98cs<1]]" : "[[1d100cf>98cs<3]]"
startRoll(
"&{template:pe-roll} "
+ "{{name=^{character-" + attribute +"}}}"
+ "{{roll=" + rollMacro + "}}"
+ "{{success=[[" + attrs[attribute] + dynamicModifier + "]]}}"
, function(rollResult) {
finishRoll(rollResult["rollId"])
}
)
})
});
</script>