mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
2164 lines
86 KiB
HTML
2164 lines
86 KiB
HTML
<input class="hide-output-total" type="hidden" name="attr_hide-tOutput" value="1" />
|
|
|
|
<label class="output-message">
|
|
<input class="hide-output" type="checkbox" name="attr_hide-output" value="1" checked="true" />
|
|
<span></span>
|
|
|
|
<input class="output-message" type="text" name="attr_output-message" title="output-message" />
|
|
</label>
|
|
|
|
|
|
<div class="wrapper">
|
|
<div>
|
|
<!-- Logo -->
|
|
|
|
|
|
<!-- --------------- -->
|
|
<!-- Details Section -->
|
|
<!-- --------------- -->
|
|
<div class="section-details">
|
|
<div class="character">
|
|
<input type="text" name="attr_identity-name" title="identity-name" placeholder="Real Identity" data-i18n-placeholder="real-identity" />
|
|
<input type="text" name="attr_character_name" title="real-name" placeholder="Super Alias" data-i18n-placeholder="super-alias" />
|
|
|
|
|
|
</div>
|
|
<div class="details1">
|
|
<b data-i18n="secret">Secret</b><input type="radio" name="attr_identity-status" title="identity-status" value="0" />
|
|
<b data-i18n="gender">Gender:</b><input type="text" name="attr_gender" title="gender" value="" />
|
|
<b data-i18n="height">Height:</b><input type="text" name="attr_height" title="height" />
|
|
<b data-i18n="weight">Weight:</b><input type="text" name="attr_weight" title="weight" />
|
|
<b data-i18n="public">Public</b><input type="radio" name="attr_identity-status" title="identity-status" value="1" />
|
|
<b data-i18n="age">Age:</b><input type="number" name="attr_age" title="age" value="0" />
|
|
<b data-i18n="eyes">Eyes:</b><input type="text" name="attr_eyes" title="eyes" />
|
|
<b data-i18n="hair">Hair:</b><input type="text" name="attr_hair" title="hair" />
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div class="details2">
|
|
<div>
|
|
<input type="text" name="attr_group" title="group" placeholder="Group Affiliation" data-i18n-placeholder="group-affiliation" />
|
|
<input type="text" name="attr_base" title="base" placeholder="Base of Operations" data-i18n-placeholder="base-of-operations" />
|
|
</div>
|
|
<div>
|
|
<input type="number" name="attr_power-level" title="power-level" value="0" placeholder="Power Lever" data-i18n-placeholder="power-level" />
|
|
<span>¢</span>
|
|
</div>
|
|
</div>
|
|
<div class="power">
|
|
<details>
|
|
<summary>
|
|
<b data-i18n="power-point-totals">Power Point Totals:</b>
|
|
<input type="number" name="attr_total-power-points" title="attr_total-power-points" value="(@{ability-points} + @{power-points} + @{advantage-points} + @{skill-points} + @{defense-points})" disabled /><b>/</b>
|
|
<input type="number" name="attr_max-power-points" title="attr_max-power-points" value="(@{starting-power-points} + @{power-points-earned})" disabled/><b> *</b>
|
|
</summary>
|
|
<div class="line">
|
|
<b data-i18n="abilities">Abilities</b><input type="number" name="attr_ability-points" title="ability-points" value="(@{total-ability-score} * 2)" disabled />
|
|
<span></span>
|
|
</div>
|
|
<div class="line">
|
|
<b>+</b>
|
|
<b data-i18n="powers">Powers</b><input type="number" name="attr_power-points" title="power-points" value="0" />
|
|
<span></span>
|
|
</div>
|
|
<div class="line">
|
|
<b>+</b>
|
|
<b data-i18n="advantages">Advantages</b><input type="number" name="attr_advantage-points" title="advantage-points" value="0" />
|
|
<span></span>
|
|
</div>
|
|
<div class="line">
|
|
<b>+</b>
|
|
<b data-i18n="skills">Skills</b><input type="number" name="attr_skill-points" title="skill-points" value="(@{total-skill-ranks} / 2)" disabled />
|
|
<span></span>
|
|
</div>
|
|
<div class="line">
|
|
<b>+</b>
|
|
<b data-i18n="defenses">Defenses</b>
|
|
<input type="number" name="attr_defense-points" title="defense-points" value="@{total-defense-points}" disabled />
|
|
<span></span>
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
<img src="https://i.imgur.com/0aRNO0Z.png" title="Mutants and Masterminds Character Sheet" data-i18n-title="mutants-and-masterminds-character-sheet"/>
|
|
</div>
|
|
</div>
|
|
<span class="note"><b data-i18n="total-power-points-earned">* Total Power Points Earned = Starting Power Points + Power Points Earned</b></span>
|
|
<br />
|
|
|
|
<input type="hidden" name="attr_tab" class="tab" value="stats"/>
|
|
<div class="menu">
|
|
<button class="tab-button" type="action" name="act_stats" data-i18n="stats-skills">Stats & Skills</button>
|
|
<button class="tab-button" type="action" name="act_powers" data-i18n="powers-advantages-equipement">Powers, Advantages, & Equipment</button>
|
|
<button class="tab-button" type="action" name="act_options" data-i18n="options">Options</button>
|
|
</div>
|
|
|
|
|
|
<!-- ------------------------------------- -->
|
|
<!-- Page 1 (Stats & Skills) -->
|
|
<!-- ------------------------------------- -->
|
|
<div class="tab-content tab1">
|
|
<div class="twocolrow">
|
|
<div class="col">
|
|
|
|
<!-- Abilities -->
|
|
<div class="section-abilities">
|
|
<div class="details-row">
|
|
<label data-i18n="name">Name</label>
|
|
<label data-i18n="total">Total</label>
|
|
<label data-i18n="base">Base</label>
|
|
<label data-i18n="misc">Misc</label>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_strength-roll" title="%{strength-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{strength}}} {{result=[[@{die_type}+(@{strength-total})]]}}" data-i18n="strength">Strength</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_strength-total" title="strength-total" value="(@{strength} + @{strength-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_strength" title="strength" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_strength-misc" title="strength-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_agility-roll" title="%{agility-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{agility}}} {{result=[[@{die_type}+(@{agility-total})]]}}" data-i18n="agility">Agility</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_agility-total" title="agility-total" value="(@{agility} + @{agility-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_agility" title="agility" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_agility-misc" title="agility-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_fighting-roll" title="%{fighting-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{fighting}}} {{result=[[@{die_type}+(@{fighting-total})]]}}" data-i18n="fighting">Fighting</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_fighting-total" title="fighting-total" value="(@{fighting} + @{fighting-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_fighting" title="fighting" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_fighting-misc" title="fighting-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_awareness-roll" title="%{awareness-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{awareness}}} {{result=[[@{die_type}+(@{awareness-total})]]}}" data-i18n="awareness">Awareness</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_awareness-total" title="awareness-total" value="(@{awareness} + @{awareness-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_awareness" title="awareness" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_awareness-misc" title="awareness-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_stamina-roll" title="%{stamina-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{stamina}}} {{result=[[@{die_type}+(@{stamina-total})]]}}" data-i18n="stamina">Stamina</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_stamina-total" title="stamina-total" value="(@{stamina} + @{stamina-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_stamina" title="stamina" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_stamina-misc" title="stamina-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_dexterity-roll" title="%{dexterity-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{dexterity}}} {{result=[[@{die_type}+(@{dexterity-total})]]}}" data-i18n="dexterity">Dexterity</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_dexterity-total" title="dexterity-total" value="(@{dexterity} + @{dexterity-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_dexterity" title="dexterity" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_dexterity-misc" title="dexterity-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_intellect-roll" title="%{intellect-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{intellect}}} {{result=[[@{die_type}+(@{intellect-total})]]}}" data-i18n="intellect">Intellect</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_intellect-total" title="intellect-total" value="(@{intellect} + @{intellect-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_intellect" title="intellect" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_intellect-misc" title="intellect-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_presence-roll" title="%{presence-roll}" value="@{who-stat-new} &{template:base} {{name=@{character_name}}} {{type=^{presence}}} {{result=[[@{die_type}+(@{presence-total})]]}}" data-i18n="presence">Presence</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_presence-total" title="presence-total" value="(@{presence} + @{presence-misc})" disabled/>
|
|
</div>
|
|
|
|
<div class="value">
|
|
<input type="number" name="attr_presence" title="presence" value="0"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_presence-misc" title="presence-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<input type="hidden" name="attr_total-ability-score" value="(@{strength} + @{agility} + @{fighting} + @{awareness} + @{stamina} + @{dexterity} + @{intellect} + @{presence})" disabled/>
|
|
</div>
|
|
|
|
<!-- Power Points -->
|
|
<div class="section-points">
|
|
<div class="details-row">
|
|
<div>
|
|
<label data-i18n="starting-power-points">Starting Power Points</label>
|
|
<label data-i18n="earned-power-points">Earned Power Points</label>
|
|
<div>
|
|
<input type="number" name="attr_starting-power-points" title="starting-power-points" value="0"/>
|
|
</div>
|
|
<div>
|
|
<input type="number" name="attr_power-points-earned" title="power-points-earned" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<label data-i18n="hero-points">Hero Points</label>
|
|
<label data-i18n="injuries">Injuries</label>
|
|
<div>
|
|
<input type="number" name="attr_hero-points" title="hero-points" value="0"/>
|
|
</div>
|
|
<div>
|
|
<input type="number" name="attr_injuries" title="injuries" value="0"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Defense -->
|
|
<div class="section-defenses">
|
|
<div class="details-row">
|
|
<div class="defense">
|
|
<label data-i18n="defense-dodge-dc">Defense - Dodge DC</label>
|
|
<input type="number" name="attr_dodge" title="dodge" value="(@{dodge} + 10)" disabled/>
|
|
</div>
|
|
|
|
<div class="parry">
|
|
<label data-i18n="parry-dc">Parry DC</label>
|
|
<input type="number" name="attr_parry" title="parry" value="(@{parry} + 10)" disabled/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<label data-i18n="name">Name</label>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<label data-i18n="total">Total</label>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="points">
|
|
<label data-i18n="points">Points</label>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="abilityScore">
|
|
<label data-i18n="ability">Ability</label>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="misc">
|
|
<label data-i18n="misc">Misc</label>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_Dodge" title="Dodge" value="@{who-combat-new} &{template:base} {{name=@{character_name}}} {{type=^{dodge}}} {{result=[[@{die_type}+[[(@{dodge})]]]]}}" data-i18n="dodge" data-i18n-title="dodge">Dodge</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="agl">AGL</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_dodge" title="dodge" value="(@{dodge-points} + @{agility-total} + @{dodge-misc} + @{Total_Defenses_Mod})" disabled/>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="points">
|
|
<input type="number" name="attr_dodge-points" title="dodge-points" value="0"/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_dodge-ability" title="agility" value="@{agility-total}" disabled/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_dodge-misc" title="dodge-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_Parry" title="Parry" value="@{who-combat-new} &{template:base} {{name=@{character_name}}} {{type=^{parry}}} {{result=[[@{die_type}+[[(@{parry})]]]]}}" data-i18n="parry" data-i18n-title="parry">Parry</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="fighting-short">FGT</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_parry" title="parry" value="(@{parry-points} + @{fighting-total} + @{parry-misc} + @{Total_Defenses_Mod})" disabled/>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="points">
|
|
<input type="number" name="attr_parry-points" title="parry-points" value="0"/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_parry-ability" title="fighting" value="@{fighting-total}" disabled/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_parry-misc" title="parry-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_Fortitude" title="Fortitude" value="@{who-combat-new} &{template:base} {{name=@{character_name}}} {{type=^{fortitude}}} {{result=[[@{die_type}+[[(@{fortitude})]]]]}}" data-i18n-title="fortitude" data-i18n="fortitude">Fortitude</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="stamina-short">STA</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_fortitude" title="fortitude" value="(@{fortitude-points} + @{stamina-total} + @{fortitude-misc})" disabled/>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="points">
|
|
<input type="number" name="attr_fortitude-points" title="fortitude-points" value="0"/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_fortitude-ability" title="stamina" value="@{stamina-total}" disabled/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_fortitude-misc" title="fortitude-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_Toughness" title="Toughness" value="@{who-combat-new} &{template:base} {{name=@{character_name}}} {{type=^{toughness}}} {{result=[[@{die_type}+[[(@{toughness})]]]]}}" data-i18n-title="toughness" data-i18n="toughness">Toughness</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="stamina-short">STA</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_toughness" title="toughness" value="(@{toughness-points} + @{stamina-total} + @{toughness-misc} + (-1 * abs(@{injuries})))" disabled/>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="points">
|
|
<input type="number" name="attr_toughness-points" title="toughness-points" value="0"/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_toughness-ability" title="stamina" value="@{stamina-total}" disabled/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_toughness-misc" title="toughness-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_Will" title="Will" value="@{who-combat-new} &{template:base} {{name=@{character_name}}} {{type=^{will}}} {{result=[[@{die_type}+[[(@{will})]]]]}}" data-i18n-title="will" data-i18n="will">Will</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="awareness-short">AWE</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_will" title="will" value="(@{will-points} + @{awareness-total} + @{will-misc})" disabled/>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="points">
|
|
<input type="number" name="attr_will-points" title="will-points" value="0"/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_will-ability" title="awareness" value="@{awareness-total}" disabled/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_will-misc" title="will-misc" value="0"/>
|
|
</div>
|
|
</div>
|
|
<input type="hidden" name="attr_total-defense-points" value="(@{dodge-points} + @{parry-points} + @{fortitude-points} + @{toughness-points} + @{will-points})" disabled/>
|
|
</div>
|
|
|
|
<!-- Offense -->
|
|
<div class="section-offense">
|
|
<div class="details-row">
|
|
<b data-i18n="offense">Offense</b>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="button">
|
|
<button type="roll" name="roll_Initiative" title="Initiative" value="@{who-initiative-new} &{template:base} {{name=@{character_name}}} {{type=^{initiative}}} {{result=[[@{die_type} + [[@{initiative}]] &{tracker}]]}}" data-i18n-title="initiative" data-i18n="initiative">Initiative</button>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_initiative" title="initiative" value="(@{initiative-misc} + @{agility-total})" disabled/>
|
|
</div>
|
|
|
|
<b>=</b>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_initiative-misc" title="initiative-misc" value="0"/>
|
|
</div>
|
|
|
|
<b>+</b>
|
|
|
|
<div class="ability">
|
|
<input type="number" name="attr_initiative-ability" title="agility" value="@{agility-total}" disabled/>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<fieldset class="repeating_attacks">
|
|
<div class="rButton">
|
|
<button class="die-show" type="roll" name="roll_attack-roll" title="repeating_attack_X_attack-roll (NOT USABLE IN MACROS)" value="@{macro-text}"></button>
|
|
</div>
|
|
|
|
<div class="rName">
|
|
<input type="text" name="attr_name" title="Attack Name" value="Name" data-i18n-title="attack-name" />
|
|
</div>
|
|
|
|
<div class="rBonus">
|
|
<input type="number" name="attr_bonus" title="Attack Bonus" value="0" data-i18n-title="attack-bonus" />
|
|
</div>
|
|
|
|
<div class="rCritRate">
|
|
<input type="number" name="attr_crit_rate" title="Crit Target" value="20" data-i18n-title="crit-target" />
|
|
</div>
|
|
|
|
<div class="rEffectRanks">
|
|
<input type="number" name="attr_effect_ranks" title="Effect Ranks" value="0" data-i18n-title="effect-ranks" />
|
|
</div>
|
|
|
|
<div class="rSaveBase">
|
|
<select name="attr_save_base" title="Save Type">
|
|
<option value="10" data-i18n="dodge">Dodge</option>
|
|
<option value="10" data-i18n="parry">Parry</option>
|
|
<option value="15" data-i18n="toughness" selected>Toughness</option>
|
|
<option value="10" data-i18n="fortitude">Fortitude</option>
|
|
<option value="10" data-i18n="will">Will</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="rEffect">
|
|
<input type="text" name="attr_effect" title="Effect Names" value="Effect notes go here" />
|
|
</div>
|
|
<details>
|
|
<summary>
|
|
<b data-i18n="show-macro-text?">Show Macro Text?</b>
|
|
</summary>
|
|
<div class="autoex autoex24">
|
|
<textarea title="repeating_attacks_X_macro-text" name="attr_macro-text">@{who-combat-new} &{template:base} {{name=@{character_name}}} {{type=@{name}}} {{result=[[@{die_type}cs>@{crit_rate} + @{bonus} + [[@{Total_Attack_Mod}]]]]}} {{effect=^{defense-class-short} [[@{save_base} + @{effect_ranks} + [[@{Total_Effect_Mod}]] ]]}} {{description=@{effect}}}</textarea>
|
|
<span name="attr_macro-text"></span>
|
|
</div>
|
|
</details>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<!-- Modifiers -->
|
|
<div class="section-modifiers">
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<label data-i18n="name">Name</label>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<label data-i18n="attack">Attack</label>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<label data-i18n="defense">Defense</label>
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<label data-i18n="effect">Effect</label>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<b><label data-i18n="accurate-attack">Accurate Attack</label></b>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<input type="number" name="attr_AccAtk_Attack" title="Accurate-Attack Attack Bonus" data-i18n-title="acurate-attack-attack-bonus" value="0"/>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<input type="number" name="attr_AccAtk_Defenses" title="Accurate-Attack Defense Bonus" data-i18n-title="acurate-attack-defense-bonus" value="0" disabled/>
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<input type="number" name="attr_AccAtk_Effect" title="Accurate Attack Effect Penalty" data-i18n-title="acurate-attack-effect-penalty" value="(-1)*@{AccAtk_Attack}" disabled/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<b><label data-i18n="all-out-attack">All-out Attack</label></b>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<input type="number" name="attr_AOAtk_Attack" title="All-out Attack Attack Bonus" data-i18n-title="all-out-attack-attack-bonus" value="0"/>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<input type="number" name="attr_AOAtk_Defenses" title="All0out Attack Defense Penalty" data-i18n-title="all-out-attack-defense-penalty" value="(-1)*@{AOAtk_Attack}" disabled/>
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<input type="number" name="attr_AOAtk_Effect" title="All-out Attack Effect Bonus" data-i18n-title="all-out-attack-effect-bonus" value="0" disabled/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<b><label data-i18n="defensive-attack">Defensive Attack</label></b>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<input type="number" name="attr_DefAtk_Attack" title="Defensive Attack Attack Penalty" data-i18n-title="defensive-attack-attack-penalty" value="(-1)*@{DefAtk_Defenses}" disabled/>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<input type="number" name="attr_DefAtk_Defenses" title="Defensive Attack Defense Bonus" data-i18n-title="defensive-attack-defense-bonus" value="0" />
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<input type="number" name="attr_DefAtk_Effect" title="Defensive Attack Effect Penalty" data-i18n-title="defensive-attack-effect-penalty" value="0"disabled/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<b><label data-i18n="power-attack">Power Attack</label></b>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<input type="number" name="attr_PwrAtk_Attack" title="Power Attack-Attack Penalty" data-i18n-title="power-attack-attack-penalty" value="0"/>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<input type="number" name="attr_PwrAtk_Defenses" title="Power Attack Defense Bonus" data-i18n-title="power-attack-defense-bonus" value="0" disabled/>
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<input type="number" name="attr_PwrAtk_Effect" title="Power Attack Effect Bonus" data-i18n-title="power-attack-effect-bonus" value="(-1)*@{PwrAtk_Attack}" disabled/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<b><label data-i18n="conditions">Conditions</label></b>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<input type="number" name="attr_Cnd_Attack" title="Condition Attack Modifier" data-i18n-title="condition-attack-modifier" value="0"/>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<input type="number" name="attr_Cnd_Defenses" title="Condition Defense Modifier" data-i18n-title="condition-defense-modifier" value="0" disabled/>
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<input type="number" name="attr_Cnd_Effect" title="Condition Effect Modifier" data-i18n-title="condition-effect-modifier" value="0" />
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<b><label data-i18n="totals">Totals</label></b>
|
|
</div>
|
|
|
|
<div class="attack">
|
|
<input type="number" name="attr_Total_Attack_Mod" title="Combined Attack Modifier" data-i18n-title="combined-attack-modifier" value="(@{AccAtk_Attack} + @{AOAtk_Attack} + @{DefAtk_Attack} + @{PwrAtk_Attack} + @{Cnd_Attack})" disabled/>
|
|
</div>
|
|
|
|
<div class="defense">
|
|
<input type="number" name="attr_Total_Defenses_Mod" title="Combined Defense Modifier" data-i18n-title="combined-defense-modifier" value="(@{AccAtk_Defenses} + @{AOAtk_Defenses} + @{DefAtk_Defenses} + @{PwrAtk_Defenses} + @{Cnd_Defenses})" disabled/>
|
|
</div>
|
|
|
|
<div class="effect">
|
|
<input type="number" name="attr_Total_Effect_Mod" title="Combined Effect Modifier" data-i18n-title="combined-effect-modifier" value="(@{AccAtk_Effect} + @{AOAtk_Effect} + @{DefAtk_Effect} + @{PwrAtk_Effect} + @{Cnd_Effect})" disabled/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col">
|
|
<!-- Skills -->
|
|
<div class="section-skills">
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<label data-i18n="name">Name</label>
|
|
</div>
|
|
|
|
<div class="ability"></div>
|
|
|
|
<div class="total">
|
|
<label data-i18n="total">Total</label>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<label data-i18n="ability">Ability</label>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<label data-i18n="ranks">Ranks</label>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<label data-i18n="other">Other</label>
|
|
</div>
|
|
</div>
|
|
<div class="skills" data-i18n-list="skills-list">
|
|
<div class="details-row" data-i18n-list-item="acrobatics">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Acrobatics-Check" title="Acrobatics-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{acrobatics}}} {{result=[[@{die_type} + [[@{Acrobatics}]]]]}}" data-i18n="acrobatics">Acrobatics</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="agility-short">AGI</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Acrobatics" title="Acrobatics" value="(@{Acrobatics-ability} + @{Acrobatics-ranks} + @{Acrobatics-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Acrobatics-ability" title="Acrobatics-ability" value="@{agility-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Acrobatics-ranks" title="Acrobatics-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Acrobatics-other" title="Acrobatics-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="athletics">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Athletics-Check" title="Athletics-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{athletics}}} {{result=[[@{die_type} + [[@{Athletics}]]]]}}" data-i18n="athletics">Athletics</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="strength-short">STR</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Athletics" title="Athletics" value="(@{Athletics-ability} + @{Athletics-ranks} + @{Athletics-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Athletics-ability" title="Athletics-ability" value="@{strength-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Athletics-ranks" title="Athletics-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Athletics-other" title="Athletics-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="group" data-i18n-list-item="close-combat">
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<label data-i18n="close-combat">Close Combat</label>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="fighting-short">FGT</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
|
|
</div>
|
|
|
|
<div class="other">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Close-Combat-1-Check" title="Close-Combat-1-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Close-Combat-1-name}}} {{result=[[@{die_type} + [[@{Close-Combat-1}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Close-Combat-1-name" title="Close-Combat-1-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Close-Combat-1" title="Close-Combat-1" value="(@{Close-Combat-1-ability} + @{Close-Combat-1-ranks} + @{Close-Combat-1-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Close-Combat-1-ability" title="Close-Combat-1-ability" value="@{fighting-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Close-Combat-1-ranks" title="Close-Combat-1-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Close-Combat-1-other" title="Close-Combat-1-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Close-Combat-2-Check" title="Close-Combat-2-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Close-Combat-2-name}}} {{result=[[@{die_type} + [[@{Close-Combat-2}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Close-Combat-2-name" title="Close-Combat-2-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Close-Combat-2" title="Close-Combat-2" value="(@{Close-Combat-2-ability} + @{Close-Combat-2-ranks} + @{Close-Combat-2-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Close-Combat-2-ability" title="Close-Combat-2-ability" value="@{fighting-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Close-Combat-2-ranks" title="Close-Combat-2-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Close-Combat-2-other" title="Close-Combat-2-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Close-Combat-3-Check" title="Close-Combat-3-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Close-Combat-3-name}}} {{result=[[@{die_type} + [[@{Close-Combat-3}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Close-Combat-3-name" title="Close-Combat-3-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Close-Combat-3" title="Close-Combat-3" value="(@{Close-Combat-3-ability} + @{Close-Combat-3-ranks} + @{Close-Combat-3-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Close-Combat-3-ability" title="Close-Combat-3-ability" value="@{fighting-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Close-Combat-3-ranks" title="Close-Combat-3-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Close-Combat-3-other" title="Close-Combat-3-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="details-row" data-i18n-list-item="deception">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Deception-Check" title="Deception-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{deception}}} {{result=[[@{die_type} + [[@{Deception}]]]]}}" data-i18n="deception">Deception</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="presence-short">PRS</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Deception" title="Deception" value="(@{Deception-ability} + @{Deception-ranks} + @{Deception-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Deception-ability" title="Deception-ability" value="@{presence-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Deception-ranks" title="Deception-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Deception-other" title="Deception-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="group" data-i18n-list-item="expertise">
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<label data-i18n="expertise">Expertise</label>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="intellect-short">INT</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
|
|
</div>
|
|
|
|
<div class="other">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Expertise-1-Check" title="Expertise-1-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Expertise-1-name}}} {{result=[[@{die_type} + [[@{Expertise-1}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Expertise-1-name" title="Expertise-1-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Expertise-1" title="Expertise-1" value="(@{Expertise-1-ability} + @{Expertise-1-ranks} + @{Expertise-1-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Expertise-1-ability" title="Expertise-1-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Expertise-1-ranks" title="Expertise-1-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Expertise-1-other" title="Expertise-1-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Expertise-2-Check" title="Expertise-2-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Expertise-2-name}}} {{result=[[@{die_type} + [[@{Expertise-2}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Expertise-2-name" title="Expertise-2-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Expertise-2" title="Expertise-2" value="(@{Expertise-2-ability} + @{Expertise-2-ranks} + @{Expertise-2-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Expertise-2-ability" title="Expertise-2-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Expertise-2-ranks" title="Expertise-2-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Expertise-2-other" title="Expertise-2-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Expertise-3-Check" title="Expertise-3-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Expertise-3-name}}} {{result=[[@{die_type} + [[@{Expertise-3}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Expertise-3-name" title="Expertise-3-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Expertise-3" title="Expertise-3" value="(@{Expertise-3-ability} + @{Expertise-3-ranks} + @{Expertise-3-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Expertise-3-ability" title="Expertise-3-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Expertise-3-ranks" title="Expertise-3-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Expertise-3-other" title="Expertise-3-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Expertise-4-Check" title="Expertise-4-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Expertise-4-name}}} {{result=[[@{die_type} + [[@{Expertise-4}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Expertise-4-name" title="Expertise-4-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Expertise-4" title="Expertise-4" value="(@{Expertise-4-ability} + @{Expertise-4-ranks} + @{Expertise-4-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Expertise-4-ability" title="Expertise-4-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Expertise-4-ranks" title="Expertise-4-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Expertise-4-other" title="Expertise-4-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="details-row" data-i18n-list-item="insight">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Insight-Check" title="Insight-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{insight}}} {{result=[[@{die_type} + [[@{Insight}]]]]}}" data-i18n="insight">Insight</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="awareness-short">AWE</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Insight" title="Insight" value="(@{Insight-ability} + @{Insight-ranks} + @{Insight-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Insight-ability" title="Insight-ability" value="@{awareness-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Insight-ranks" title="Insight-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Insight-other" title="Insight-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="intimidation">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Intimidation-Check" title="Intimidation-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{intimidation}}} {{result=[[@{die_type} + [[@{Intimidation}]]]]}}" data-i18n="intimidation">Intimidation</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="presence-short">PRS</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Intimidation" title="Intimidation" value="(@{Intimidation-ability} + @{Intimidation-ranks} + @{Intimidation-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Intimidation-ability" title="Intimidation-ability" value="@{presence-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Intimidation-ranks" title="Intimidation-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Intimidation-other" title="Intimidation-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="investigation">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Investigation-Check" title="Investigation-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{investigation}}} {{result=[[@{die_type} + [[@{Investigation}]]]]}}" data-i18n="investigation">Investigation</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="intellect-short">INT</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Investigation" title="Investigation" value="(@{Investigation-ability} + @{Investigation-ranks} + @{Investigation-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Investigation-ability" title="Investigation-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Investigation-ranks" title="Investigation-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Investigation-other" title="Investigation-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="perception">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Perception-Check" title="Perception-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{perception}}} {{result=[[@{die_type} + [[@{Perception}]]]]}}" data-i18n="perception">Perception</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="awareness-short">AWE</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Perception" title="Perception" value="(@{Perception-ability} + @{Perception-ranks} + @{Perception-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Perception-ability" title="Perception-ability" value="@{awareness-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Perception-ranks" title="Perception-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Perception-other" title="Perception-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="persuasion">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Persuasion-Check" title="Persuasion-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{persuasion}}} {{result=[[@{die_type} + [[@{Persuasion}]]]]}}" data-i18n="persuasion">Persuasion</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="presence-short">PRS</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Persuasion" title="Persuasion" value="(@{Persuasion-ability} + @{Persuasion-ranks} + @{Persuasion-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Persuasion-ability" title="Persuasion-ability" value="@{presence-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Persuasion-ranks" title="Persuasion-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Persuasion-other" title="Persuasion-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="group" data-i18n-list-item="range-combat">
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<label data-i18n="ranged-combat">Ranged Combat</label>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="dexterity-short">DEX</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
|
|
</div>
|
|
|
|
<div class="other">
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Ranged-Combat-1-Check" title="Ranged-Combat-1-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Ranged-Combat-1-name}}} {{result=[[@{die_type} + [[@{Ranged-Combat-1}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Ranged-Combat-1-name" title="Ranged-Combat-1-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Ranged-Combat-1" title="Ranged-Combat-1" value="(@{Ranged-Combat-1-ability} + @{Ranged-Combat-1-ranks} + @{Ranged-Combat-1-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Ranged-Combat-1-ability" title="Ranged-Combat-1-ability" value="@{dexterity-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Ranged-Combat-1-ranks" title="Ranged-Combat-1-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Ranged-Combat-1-other" title="Ranged-Combat-1-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Ranged-Combat-2-Check" title="Ranged-Combat-2-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Ranged-Combat-2-name}}} {{result=[[@{die_type} + [[@{Ranged-Combat-2}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Ranged-Combat-2-name" title="Ranged-Combat-2-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Ranged-Combat-2" title="Ranged-Combat-2" value="(@{Ranged-Combat-2-ability} + @{Ranged-Combat-2-ranks} + @{Ranged-Combat-2-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Ranged-Combat-2-ability" title="Ranged-Combat-2-ability" value="@{dexterity-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Ranged-Combat-2-ranks" title="Ranged-Combat-2-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Ranged-Combat-2-other" title="Ranged-Combat-2-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row">
|
|
<div class="name">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="roll_Ranged-Combat-3-Check" title="Ranged-Combat-3-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=@{Ranged-Combat-3-name}}} {{result=[[@{die_type} + [[@{Ranged-Combat-3}]]]]}}"></button>
|
|
</div>
|
|
<div class="title">
|
|
<input type="text" name="attr_Ranged-Combat-3-name" title="Ranged-Combat-3-name"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Ranged-Combat-3" title="Ranged-Combat-3" value="(@{Ranged-Combat-3-ability} + @{Ranged-Combat-3-ranks} + @{Ranged-Combat-3-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Ranged-Combat-3-ability" title="Ranged-Combat-3-ability" value="@{dexterity-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Ranged-Combat-3-ranks" title="Ranged-Combat-3-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Ranged-Combat-3-other" title="Ranged-Combat-3-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="details-row" data-i18n-list-item="sleight-of-hand">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Sleight-of-hand-Check" title="Sleight-of-hand-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{sleight-of-hand}}} {{result=[[@{die_type} + [[@{Sleight-of-hand}]]]]}}" data-i18n="sleight-of-hand">Sleight of Hand</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="dexterity-short">DEX</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Sleight-of-hand" title="Sleight-of-hand" value="(@{Sleight-of-hand-ability} + @{Sleight-of-hand-ranks} + @{Sleight-of-hand-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Sleight-of-hand-ability" title="Sleight-of-hand-ability" value="@{dexterity-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Sleight-of-hand-ranks" title="Sleight-of-hand-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Sleight-of-hand-other" title="Sleight-of-hand-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="stealth">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Stealth-Check" title="Stealth-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{stealth}}} {{result=[[@{die_type} + [[@{Stealth}]]]]}}" data-i18n="stealth">Stealth</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="agility-short">AGI</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Stealth" title="Stealth" value="(@{Stealth-ability} + @{Stealth-ranks} + @{Stealth-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Stealth-ability" title="Stealth-ability" value="@{agility-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Stealth-ranks" title="Stealth-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Stealth-other" title="Stealth-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="technology">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Technology-Check" title="Technology-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{technology}}} {{result=[[@{die_type} + [[@{Technology}]]]]}}" data-i18n="technology">Technology</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="intellect-short">INT</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Technology" title="Technology" value="(@{Technology-ability} + @{Technology-ranks} + @{Technology-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Technology-ability" title="Technology-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Technology-ranks" title="Technology-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Technology-other" title="Technology-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="treatment">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Treatment-Check" title="Treatment-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{treatment}}} {{result=[[@{die_type} + [[@{Treatment}]]]]}}" data-i18n="treatment">Treatment</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="intellect-short">INT</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Treatment" title="Treatment" value="(@{Treatment-ability} + @{Treatment-ranks} + @{Treatment-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Treatment-ability" title="Treatment-ability" value="@{intellect-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Treatment-ranks" title="Treatment-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Treatment-other" title="Treatment-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
<div class="details-row" data-i18n-list-item="vehicles">
|
|
<div class="name">
|
|
<button type="roll" name="roll_Vehicles-Check" title="Vehicles-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{vehicles}}} {{result=[[@{die_type} + [[@{Vehicles}]]]]}}" data-i18n="vehicles">Vehicles</button>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
<b><label data-i18n="dexterity-short">DEX</label></b>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_Vehicles" title="Vehicles" value="(@{Vehicles-ability} + @{Vehicles-ranks} + @{Vehicles-other})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
<input type="number" name="attr_Vehicles-ability" title="Vehicles-ability" value="@{dexterity-total}" disabled/>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_Vehicles-ranks" title="Vehicles-ranks" value="0"/>
|
|
</div>
|
|
|
|
<div class="other">
|
|
<input type="number" name="attr_Vehicles-other" title="Vehicles-other" value="0"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="details-row totalRow">
|
|
<div class="name">
|
|
<b data-i18n="total-ranks">Total Ranks</b>
|
|
</div>
|
|
|
|
<div class="ability">
|
|
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_total-skill-ranks" title="total-skill-ranks" value="(@{Acrobatics-ranks} + @{Athletics-ranks} + @{Close-Combat-1-ranks}+ @{Close-Combat-2-ranks} + @{Close-Combat-3-ranks} + @{Deception-ranks} + @{Expertise-1-ranks} + @{Expertise-2-ranks} + @{Expertise-3-ranks} + @{Expertise-4-ranks} + @{Insight-ranks} + @{Intimidation-ranks} + @{Investigation-ranks} + @{Perception-ranks} + @{Persuasion-ranks} + @{Ranged-Combat-1-ranks} + @{Ranged-Combat-2-ranks} + @{Ranged-Combat-3-ranks} + @{Sleight-of-hand-ranks} + @{Stealth-ranks} + @{Technology-ranks} + @{Treatment-ranks} + @{Vehicles-ranks})" disabled/>
|
|
</div>
|
|
|
|
<div class="abilityScore">
|
|
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
|
|
</div>
|
|
|
|
<div class="other">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Notes & Conditions -->
|
|
<div class="section-notes">
|
|
<b data-i18n="notes-conditions">Notes & Conditions</b>
|
|
<div class="autoex autoex100">
|
|
<textarea name="attr_notes" title="notes"></textarea>
|
|
<span name="attr_notes"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br />
|
|
|
|
<!-- Motivations & Complications -->
|
|
<div class="section-complications">
|
|
<b data-i18n="motivations-complications">Motivations & Complications</b>
|
|
<fieldset class="repeating_complication">
|
|
<input type="text" name="attr_name" title="repeating_complication_X_name" value="" placeholder="Name" data-i18n-placeholder="name"/>
|
|
<div class="autoex autoex28">
|
|
<textarea name="attr_description" title="repeating_complication_X_description" placeholder="Description" data-i18n-placeholder="description"></textarea>
|
|
<span name="attr_description"></span>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- ---------------------------------- -->
|
|
<!-- Page 2 (Powers, Advantages & Gear) -->
|
|
<!-- ---------------------------------- -->
|
|
<div class="tab-content tab2">
|
|
<input type="hidden" name="attr_subtab" class="tab" value="all"/>
|
|
<div class="menu">
|
|
<button type="action" name="act_all" data-i18n="all">All</button>
|
|
<button type="action" name="act_devices" data-i18n="powers-devices">Powers & Devices</button>
|
|
<button type="action" name="act_advantages" data-i18n="advantages">Advantages</button>
|
|
<button type="action" name="act_equipment" data-i18n="equipment">Equipment</button>
|
|
</div>
|
|
|
|
|
|
<!-- Powers & Devices -->
|
|
<div class="tab-content tab11 tab99">
|
|
<div class="section-powers">
|
|
<fieldset class="repeating_power">
|
|
<input class="css-alternate-effect" type="hidden" name="attr_alternate-effect" />
|
|
<input type="hidden" class="expand" name="attr_expand" value="1" />
|
|
|
|
<label>
|
|
<input type="checkbox" name="attr_expand" value="1" checked />
|
|
<span name="attr_name" data-i18n="power-name">Power Name</span>
|
|
</label>
|
|
|
|
<div class="hiddenBlock">
|
|
<div class="powergrid">
|
|
<div class="name">
|
|
<label data-i18n="powers-devices">Powers & Devices</label>
|
|
</div>
|
|
|
|
<div class="roll"></div>
|
|
</div>
|
|
<div class="powergrid">
|
|
<div class="name">
|
|
<input type="text" name="attr_name" title="repeating_power_X_name" value="Power Name" placeholder="Power Name" data-i18n-placeholder="power-name" />
|
|
</div>
|
|
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="attr_adv" title="adv" value="@{who-effects-new} &{template:description} {{name=@{character_name}}} {{subname=@{name}}} {{description=@{description}}}" class="btn ui-draggable"></button>
|
|
</div>
|
|
</div>
|
|
<div class="powergrid">
|
|
<div class="ranks">
|
|
<label data-i18n="ranks">Ranks</label>
|
|
</div>
|
|
|
|
<div class="ppRanks">
|
|
<label data-i18n="pp-ranks">PP/Rank</label>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<label data-i18n="misc">Misc</label>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<label data-i18n="total">Total</label>
|
|
</div>
|
|
</div>
|
|
<div class="powergrid">
|
|
<div class="ranks">
|
|
<input type="number" name="attr_ranks" title="repeating_power_X_ranks" value="1"/>
|
|
</div>
|
|
|
|
<div class="ppRanks">
|
|
<input type="number" name="attr_points-per-rank" title="repeating_power_X_points-per-rank" value="1"/>
|
|
</div>
|
|
|
|
<div class="misc">
|
|
<input type="number" name="attr_misc-points" title="repeating_power_X_misc-points" value="0"/>
|
|
</div>
|
|
|
|
<div class="total">
|
|
<input type="number" name="attr_total-cost" title="repeating_power_X_total-cost" value="1" />
|
|
</div>
|
|
</div>
|
|
<div class="selectType">
|
|
<label class="selectType">
|
|
<input type="radio" name="attr_alternate-effect" title="repeating_power_X_alternate-effect" value="0" checked="true" />
|
|
<b data-i18n="normal-power">Normal power</b>
|
|
</label>
|
|
|
|
<label class="selectType">
|
|
<input type="radio" name="attr_alternate-effect" title="repeating_power_X_alternate-effect" value="1" />
|
|
<b data-i18n="alternate-effect">Alternate effect</b>
|
|
</label>
|
|
|
|
<label class="selectType">
|
|
<input type="radio" name="attr_alternate-effect" title="repeating_power_X_dynamic-alternate-effect" value="2" />
|
|
<b data-i18n="dynamic-effect">Dynamic effect</b>
|
|
</label>
|
|
</div>
|
|
<div class="autoex autoex40">
|
|
<textarea name="attr_description" title="repeating_power_X_description" placeholder="Description" data-i18n-placeholder="description"></textarea>
|
|
<span name="attr_description"></span>
|
|
</div>
|
|
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<br />
|
|
</div>
|
|
|
|
<!-- Advantages -->
|
|
<div class="tab-content tab12 tab99">
|
|
<div class="section-advantages">
|
|
<b data-i18n="advantages">Advantages</b>
|
|
<fieldset class="repeating_advantage">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="attr_adv" title="adv" value="@{who-effects-new} &{template:description} {{name=@{character_name}}} {{subname=@{name}}} {{description=@{description}}}" class="btn ui-draggable"></button>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_ranks" title="repeating_advantage_X_ranks" value="1"/>
|
|
</div>
|
|
|
|
<div class="name">
|
|
<input type="text" name="attr_name" title="repeating_advantage_X_name" value="" placeholder="Name" data-i18n-placeholder="name"/>
|
|
</div>
|
|
|
|
<div class="autoex autoex40">
|
|
<textarea name="attr_description" title="repeating_advantage_X_description" placeholder="Description" data-i18n-placeholder="description"></textarea>
|
|
<span name="attr_description"></span>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<br />
|
|
<input type="checkbox" class="secret-macro-show" name="attr_use-wealth-rules" value="1"/><span></span>
|
|
<div class="macro">
|
|
<div class="section-wealth">
|
|
<b data-i18n="wealth">Wealth</b>
|
|
<br />
|
|
<button class="die-show" type="roll" name="roll_Wealth" title="Wealth-Check" value="@{who-skill-new} &{template:base} {{name=@{character_name}}} {{type=^{wealth}}} {{result=[[@{die_type} + @{Wealth}]]}}"></button>
|
|
<input type="number" name="attr_Wealth" title="Wealth" value="8"/>
|
|
<input class="no-border" type="text" name="attr_wealth-description" value="Middle Class" />
|
|
</div>
|
|
</div>
|
|
<br />
|
|
</div>
|
|
|
|
<!-- Equipment, Vehicles, and Headquarters -->
|
|
<div class="tab-content tab13 tab99">
|
|
<div class="section-equipment">
|
|
<b data-i18n="equipment-vehicles-headquarters">Equipment, Vehicles, and Headquarters</b>
|
|
<fieldset class="repeating_equipment">
|
|
<div class="roll">
|
|
<button class="die-show" type="roll" name="attr_adv" title="adv" value="@{who-effects-new} &{template:description} {{name=@{character_name}}} {{subname=@{name}}} {{description=@{description}}}" class="btn ui-draggable"></button>
|
|
</div>
|
|
|
|
<div class="ranks">
|
|
<input type="number" name="attr_cost" title="repeating_equipment_X_cost" value="1"/>
|
|
</div>
|
|
|
|
<div class="name">
|
|
<input type="text" name="attr_name" title="repeating_equipment_X_name" value="" placeholder="Name" data-i18n-placeholder="name" />
|
|
</div>
|
|
|
|
<div class="autoex autoex40">
|
|
<textarea name="attr_description" title="repeating_equipment_X_description" placeholder="Description" data-i18n-placeholder="description"></textarea>
|
|
<span name="attr_description"></span>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------- -->
|
|
<!-- Page 3 (Options) -->
|
|
<!-- --------------------------------- -->
|
|
<div class="tab-content tab3">
|
|
<div class="section-import">
|
|
<b data-i18n="options">Options</b>
|
|
<br />
|
|
</div>
|
|
<div class="section-options">
|
|
<div class="details-row">
|
|
<b data-i18n="roll-target-stats">Roll Target - Stats: </b>
|
|
<select name="attr_who-stat-new" title="@{who-stat-new}">
|
|
<option value="" data-i18n="public" selected>Public</option>
|
|
<option value="/w gm " data-i18n="whisper-gm">Whisper GM</option>
|
|
<option value="/w @{character_name} " data-i18n="whisper-self">Whisper Self</option>
|
|
</select>
|
|
</div>
|
|
<div class="details-row">
|
|
<b data-i18n="roll-target-combat">Roll Target - Combat: </b>
|
|
<select name="attr_who-combat-new" title="@{who-combat}">
|
|
<option value="" data-i18n="public" selected>Public</option>
|
|
<option value="/w gm " data-i18n="whisper-gm">Whisper GM</option>
|
|
<option value="/w @{character_name} " data-i18n="whisper-self">Whisper Self</option>
|
|
</select>
|
|
</div>
|
|
<div class="details-row">
|
|
<b data-i18n="roll-target-initiative">Roll Target - Initiative: </b>
|
|
<select name="attr_who-initiative-new" title="@{who-initiative}">
|
|
<option value="" data-i18n="public" selected>Public</option>
|
|
<option value="/w gm " data-i18n="whisper-gm">Whisper GM</option>
|
|
<option value="/w @{character_name} " data-i18n="whisper-self">Whisper Self</option>
|
|
</select>
|
|
</div>
|
|
<div class="details-row">
|
|
<b data-i18n="roll-target-skill">Roll Target - Skill: </b>
|
|
<select name="attr_who-skill-new" title="@{who-skill}">
|
|
<option value="" data-i18n="public" selected>Public</option>
|
|
<option value="/w gm " data-i18n="whisper-gm">Whisper GM</option>
|
|
<option value="/w @{character_name} " data-i18n="whisper-self">Whisper Self</option>
|
|
</select>
|
|
</div>
|
|
<div class="details-row">
|
|
<b data-i18n="roll-target-effects">Roll Target - Effects: </b>
|
|
<select name="attr_who-effects-new" title="@{who-effects}">
|
|
<option value="" data-i18n="public" selected>Public</option>
|
|
<option value="/w gm " data-i18n="whisper-gm">Whisper GM</option>
|
|
<option value="/w @{character_name} " data-i18n="whisper-self">Whisper Self</option>
|
|
</select>
|
|
</div>
|
|
<div class="details-row">
|
|
<b data-i18n="dice-roll-type">Dice Roll Type: </b>
|
|
<select name="attr_die_type" title="@{die_type}">
|
|
<option value="1d20" selected data-i18n="standard-1d20">Standard 1d20</option>
|
|
<option value="3d20k2dh1" data-i18n="3d20-gamemasters-guide">3d20 Gamematers Guide</option>
|
|
<option value="3d6cs>16" data-i18n="sum-3d6">Sum 3d6</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mnm-footer">
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Mutants%20and%20Masterminds%203E/logo_powered.png" class="mnm-logo">
|
|
</div>
|
|
</div>
|
|
|
|
<rolltemplate class="sheet-rolltemplate-base">
|
|
<h1>{{name}}</h1>
|
|
<div class="result">
|
|
<span>{{type}}</span>
|
|
<span>{{result}}</span>
|
|
</div>
|
|
{{#effect}}
|
|
<div class="result">
|
|
<span data-i18n="effect">Effect</span>
|
|
<span>{{effect}}</span>
|
|
</div>
|
|
{{/effect}}
|
|
{{#description}}
|
|
<div class="description">
|
|
{{description}}
|
|
</div>
|
|
{{/description}}
|
|
</rolltemplate>
|
|
|
|
<rolltemplate class="sheet-rolltemplate-description">
|
|
<h1>{{name}}</h1>
|
|
<h2>{{subname}}</h2>
|
|
<div>
|
|
{{description}}
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<script type="text/worker">
|
|
|
|
["stats", "powers", "options"].forEach((button) => {
|
|
on(`clicked:${button}`, (eventinfo) => {
|
|
setAttrs({ tab: button });
|
|
});
|
|
});
|
|
|
|
["devices", "advantages", "equipment", "all"].forEach((button) => {
|
|
on(`clicked:${button}`, (eventinfo) => {
|
|
setAttrs({ subtab: button });
|
|
});
|
|
});
|
|
|
|
|
|
function clearLog() {
|
|
setAttrs({"output-message": "", "hide-output": "1", "hide-tOutput": "1"}, {silent: true});
|
|
}
|
|
|
|
function log(value) {
|
|
setAttrs({"output-message": value, "hide-output": "0", "hide-tOutput": "0"}, {silent: true});
|
|
console.log(value);
|
|
};
|
|
|
|
function pluralize(count, thing, singular, plural) {
|
|
if(!singular) {
|
|
singular = "";
|
|
}
|
|
if(!plural) {
|
|
plural = "s";
|
|
}
|
|
|
|
return count + " " + thing
|
|
+ (count == 1 ? singular : plural);
|
|
}
|
|
|
|
try {
|
|
var equipmentRowID = null;
|
|
|
|
/**
|
|
* @param repeatingName - The word that comes after "repeating_" in the
|
|
* attribute name. For instance, if you want to find
|
|
* "repeating_equipment_$0_name", then this should be "equipment".
|
|
*
|
|
* @param suffixes - An array of words identifying which parts of the
|
|
* repeating attribute you want. For instance, if you want
|
|
* "repeating_equipment_$0_name" and "repeating_equipment_$0_description",
|
|
* then this should be ["name", "description"].
|
|
*
|
|
* @param callback - A function that takes an array of objects. This
|
|
* will be called once the attributes have been found. Each object in
|
|
* the array will contain a property for each string in suffixes, mapped
|
|
* to the value of that attribute. The objects won't be in order, but
|
|
* they will include the repeating section id. If you passed the values
|
|
* mentioned above, then this might return the following array:
|
|
* [
|
|
* {id:"ABC", name:"Sword", description:""},
|
|
* {id:"DEF", name:"Shield", description:"A simple wooden buckler."}
|
|
* ]
|
|
*/
|
|
function getRepeatingAttributes(repeatingName, suffixes, callback) {
|
|
getSectionIDs("repeating_" + repeatingName, function(idArray) {
|
|
var attributeNames = [];
|
|
for(var suffix of suffixes) {
|
|
for(var id of idArray) {
|
|
attributeNames.push("repeating_" + repeatingName
|
|
+ "_" + id + "_" + suffix);
|
|
}
|
|
}
|
|
|
|
getAttrs(attributeNames, function(attributes) {
|
|
var result = [];
|
|
for(var id of idArray) {
|
|
var attributeSection = {id:id};
|
|
result.push(attributeSection);
|
|
|
|
for(var suffix of suffixes) {
|
|
attributeSection[suffix] = attributes["repeating_"
|
|
+ repeatingName + "_" + id + "_" + suffix];
|
|
}
|
|
}
|
|
|
|
callback(result);
|
|
});
|
|
});
|
|
}
|
|
/**
|
|
* Like getRepeatingAttributes, but puts the array in order.
|
|
*/
|
|
function getRepeatingAttributesOrdered(repeatingName, suffixes, callback) {
|
|
getRepeatingAttributes(repeatingName, suffixes, function(attributes) {
|
|
getSectionIDsOrdered(repeatingName, function(idsOrdered) {
|
|
var result = [];
|
|
|
|
for(var id of idsOrdered) {
|
|
for(var attribute of attributes) {
|
|
if(attribute.id === id) {
|
|
result.push(attribute);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
callback(result);
|
|
});
|
|
}, true);
|
|
}
|
|
|
|
function recountAll() {
|
|
console.log("Recounting everything:");
|
|
recountPowers(true);
|
|
recountAdvantages(recountEquipment);
|
|
}
|
|
|
|
/**
|
|
* @param calculateCost - Set this to true if all powers should be
|
|
* calculated, or to a row ID if you only want to recalculate one. Make
|
|
* sure to convert the row ID to lowercase if it isn't already (this
|
|
* will happen automatically if you extract it from eventInfo).
|
|
*/
|
|
function recountPowers(calculateCost, doneCallback) {
|
|
var suffixes;
|
|
if(calculateCost) {
|
|
suffixes = ["ranks", "points-per-rank", "misc-points", "total-cost",
|
|
"alternate-effect"];
|
|
} else {
|
|
suffixes = ["total-cost"];
|
|
}
|
|
|
|
getRepeatingAttributesOrdered("power", suffixes, function(powers) {
|
|
var total = 0;
|
|
for(var power of powers) {
|
|
if(calculateCost === true || calculateCost === power.id.toLowerCase()) {
|
|
power["total-cost"] = calculatePowerCost(powers, power);
|
|
}
|
|
total += parseInt(power["total-cost"]);
|
|
}
|
|
setAttrs({"power-points": total}, {silent: true});
|
|
console.log("Spent " + pluralize(total, "point") + " on powers.");
|
|
|
|
if(doneCallback) {
|
|
doneCallback();
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Given a complete array of ordered powers and one entry out of that
|
|
* array, calculates the total cost of that power. This updates the
|
|
* attribute (asynchronously), and also updates the power object
|
|
* in-place.
|
|
*/
|
|
function calculatePowerCost(orderedPowers, power) {
|
|
var total = parseInt(power.ranks) * parseFloat(power["points-per-rank"])
|
|
+ parseInt(power["misc-points"]);
|
|
|
|
//If this is an alternate effect, find the effect it's based
|
|
//on and make sure this is cheaper (or the same price).
|
|
if(power["alternate-effect"] === "1" || power["alternate-effect"] === "2") {
|
|
var index = orderedPowers.indexOf(power);
|
|
if(index < 0) {
|
|
return parseInt(power["total-cost"]);
|
|
} else if(index == 0) {
|
|
log("Your first power can't be an alternate effect. Try rearranging your powers.");
|
|
let values = {};
|
|
values["repeating_power_" + power.id + "_alternate-effect"] = "0";
|
|
setAttrs(values, {silent: true});
|
|
return parseInt(power["total-cost"]);
|
|
}
|
|
|
|
for(var i = index - 1; i >= 0; i--) {
|
|
let effectStatus = orderedPowers[i]["alternate-effect"];
|
|
if(effectStatus !== "1" && effectStatus !== "2") {
|
|
//Check the cost.
|
|
if(total > parseInt(orderedPowers[i]["total-cost"])) {
|
|
log("An alternate effect can't cost more than the primary effect. (Current cost: "
|
|
+ total + ", maximum allowed cost: " + orderedPowers[i]["total-cost"] + ".)");
|
|
break;
|
|
} else {
|
|
//Success!
|
|
let values = {};
|
|
values["repeating_power_" + power.id + "_total-cost"] =
|
|
power["total-cost"] = power["alternate-effect"];
|
|
setAttrs(values, {silent: true});
|
|
return parseInt(power["total-cost"]);
|
|
}
|
|
} else if(i == 0) {
|
|
log("Your first power can't be an alternate effect. Try rearranging your powers.");
|
|
}
|
|
}
|
|
|
|
//If none was found or if the cost was wrong,
|
|
//then this isn't a valid alternate effect.
|
|
let values = {};
|
|
values["repeating_power_" + power.id + "_alternate-effect"] = "0";
|
|
setAttrs(values, {silent: true});
|
|
}
|
|
|
|
let values = {};
|
|
values["repeating_power_" + power.id + "_total-cost"] = "" + Math.ceil(total);
|
|
setAttrs(values, {silent: true});
|
|
|
|
console.log("Power " + orderedPowers.indexOf(power) + " costs " + Math.ceil(total));
|
|
|
|
return Math.ceil(total);
|
|
}
|
|
|
|
function recountAdvantages(doneCallback) {
|
|
getAttrs(["Wealth"], function(dict) {
|
|
var wealth = 8;
|
|
if(dict["Wealth"]) {
|
|
wealth = parseInt(dict["Wealth"]);
|
|
}
|
|
if(!wealth || wealth < 0) {
|
|
wealth = 0;
|
|
setAttrs({Wealth:0});
|
|
}
|
|
|
|
getRepeatingAttributes("advantage", ["name", "ranks"], function(advantages) {
|
|
var total = Math.ceil(wealth / 4) - 2;
|
|
equipmentRowID = null;
|
|
|
|
for(var advantage of advantages) {
|
|
total += parseInt(advantage.ranks);
|
|
|
|
if(advantage.name && advantage.name.toLowerCase() === getTranslationByKey("equipment-advantage")) {
|
|
equipmentRowID = advantage.id;
|
|
|
|
console.log(advantage.name);
|
|
|
|
var ranks = parseInt(advantage.ranks);
|
|
if(ranks) {
|
|
setAttrs({"equipment-points":ranks * 5}, {silent: true});
|
|
} else {
|
|
setAttrs({"equipment-points":5}, {silent: true});
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs({"advantage-points": total}, {silent: true});
|
|
|
|
console.log("Spent " + pluralize(total, "point") + " on advantages.");
|
|
|
|
if(doneCallback) {
|
|
doneCallback();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function recountEquipment(doneCallback) {
|
|
getRepeatingAttributes("equipment", ["cost"], function(equipment) {
|
|
var total = 0;
|
|
|
|
for(var e of equipment) {
|
|
total += parseInt(e.cost);
|
|
}
|
|
|
|
getAttrs(["equipment-points"], function(attr) {
|
|
var maximum = 0;
|
|
if(attr["equipment-points"]) {
|
|
maximum = parseInt(attr["equipment-points"]);
|
|
}
|
|
|
|
if(total > maximum) {
|
|
var ranks = Math.ceil(total / 5);
|
|
log("Buying " + pluralize(total, "point") + " of equipment requires "
|
|
+ pluralize(ranks, "rank") + " of the Equipment advantage.");
|
|
} else {
|
|
getAttrs(["output-message"], function(dict) {
|
|
if(dict["output-message"].endsWith(" of the Equipment advantage.")) {
|
|
clearLog();
|
|
}
|
|
});
|
|
}
|
|
|
|
if(doneCallback) {
|
|
doneCallback();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
on("sheet:opened", function() {
|
|
clearLog();
|
|
|
|
getAttrs(["equipment-points"], function(attr) {
|
|
if(!attr["equipment-points"]) {
|
|
recountAll();
|
|
} else {
|
|
getRepeatingAttributes("advantage", ["name"], function(advantages) {
|
|
for(var advantage of advantages) {
|
|
if(advantage.name.toLowerCase() === getTranslationByKey("equipment-advantage")) {
|
|
equipmentRowID = advantage.id;
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
function getSectionIDsOrdered(sectionName, callback) {
|
|
'use strict';
|
|
getAttrs([`_reporder_repeating_${sectionName}`], function(v) {
|
|
getSectionIDs(sectionName, function(idArray) {
|
|
let reporderArray = v[`_reporder_repeating_${sectionName}`]
|
|
? v[`_reporder_repeating_${sectionName}`].toLowerCase().split(',') : [],
|
|
ids = [...new Set(reporderArray.filter(x => idArray.includes(x)).concat(idArray))];
|
|
callback(ids);
|
|
});
|
|
});
|
|
}
|
|
|
|
on("change:repeating_power:name", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker"
|
|
//These values are only ever equal when the attribute is first set.
|
|
&& eventInfo.newValue == eventInfo.previousValue) {
|
|
var rowID = eventInfo.sourceAttribute.substr("repeating_power_".length, 20);
|
|
recountPowers(rowID);
|
|
}
|
|
});
|
|
on("change:repeating_power:ranks change:repeating_power:points-per-rank "
|
|
+ "change:repeating_power:misc-points change:repeating_power:alternate-effect", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
var rowID = eventInfo.sourceAttribute.substr("repeating_power_".length, 20);
|
|
recountPowers(rowID);
|
|
}
|
|
});
|
|
on("change:repeating_power:total-cost remove:repeating_power", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
recountPowers();
|
|
}
|
|
});
|
|
|
|
on("change:repeating_advantage:ranks", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
if(eventInfo.sourceAttribute.toLowerCase().indexOf(equipmentRowID) >= 0) {
|
|
recountAdvantages(recountEquipment);
|
|
} else {
|
|
recountAdvantages();
|
|
}
|
|
}
|
|
});
|
|
|
|
on("change:repeating_advantage:name", function(eventInfo) {
|
|
if(eventInfo.previousValue.toLowerCase() === getTranslationByKey("equipment-advantage")) {
|
|
setAttrs({"equipment-points":0}, function() {
|
|
recountAdvantages(recountEquipment);
|
|
});
|
|
} else if(eventInfo.newValue.toLowerCase() === getTranslationByKey("equipment-advantage")
|
|
|| eventInfo.sourceType !== "sheetworker"
|
|
&& eventInfo.newValue == eventInfo.previousValue) {
|
|
recountAdvantages(recountEquipment);
|
|
}
|
|
});
|
|
|
|
on("remove:repeating_advantage", function(eventInfo) {
|
|
if(eventInfo.sourceAttribute.toLowerCase().indexOf(equipmentRowID) >= 0) {
|
|
setAttrs({"equipment-points":0}, function() {
|
|
recountAdvantages(recountEquipment);
|
|
});
|
|
} else {
|
|
recountAdvantages();
|
|
}
|
|
});
|
|
|
|
on("change:Wealth", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
if(eventInfo.newValue !== undefined) {
|
|
onGotNewValue({Wealth:eventInfo.newValue});
|
|
} else {
|
|
getAttrs(["Wealth"], onGotNewValue);
|
|
}
|
|
|
|
function onGotNewValue(data) {
|
|
var wealth = parseInt(data["Wealth"]);
|
|
|
|
var description;
|
|
if(wealth <= 0) {
|
|
description = "Impoverished";
|
|
} else if(wealth <= 4) {
|
|
description = "Struggling";
|
|
} else if(wealth <= 10) {
|
|
description = "Middle Class";
|
|
} else if(wealth <= 15) {
|
|
description = "Affluent";
|
|
} else if(wealth <= 20) {
|
|
description = "Wealthy";
|
|
} else if(wealth <= 30) {
|
|
description = "Rich";
|
|
} else {
|
|
description = "Filthy Rich";
|
|
}
|
|
|
|
setAttrs({"wealth-description": description}, {silent: true});
|
|
|
|
recountAll();
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
on("change:repeating_equipment:name", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker"
|
|
&& eventInfo.newValue == eventInfo.previousValue) {
|
|
recountEquipment();
|
|
}
|
|
});
|
|
on("change:repeating_equipment:cost remove:repeating_equipment", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
recountEquipment();
|
|
}
|
|
});
|
|
|
|
on("change:output-message", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
clearLog();
|
|
}
|
|
});
|
|
|
|
on("change:hide-output", function(eventInfo) {
|
|
if(eventInfo.sourceType !== "sheetworker") {
|
|
clearLog();
|
|
}
|
|
});
|
|
} catch(e) {
|
|
log("Encountered an error: " + e);
|
|
}
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|