mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
798 lines
48 KiB
HTML
798 lines
48 KiB
HTML
<div class="com_sheet">
|
||
|
||
<div class="header">
|
||
|
||
<div class="quarter_grid">
|
||
<div class="logo"></div>
|
||
</div>
|
||
|
||
<div class="quarter_grid">
|
||
<label class="label">Character Name:</label>
|
||
<input type="text" name="attr_character_name"/>
|
||
</div>
|
||
|
||
<div class="half_grid">
|
||
<div class="third_grid">
|
||
<label class="label label_small">+ Positive Status</label><input type="number" name="attr_plusmod" value="0">
|
||
</div>
|
||
|
||
<div class="third_grid">
|
||
<label class="label label_small">- Negative Status</label><input type="number" name="attr_minusmod" value ="0">
|
||
</div>
|
||
|
||
<div class="third_grid total_power">
|
||
<label>Total Power</label><span name="attr_power" value='0'>0</span>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="full_grid overall_move_grid">
|
||
|
||
<label class="label move_label">Moves</label>
|
||
|
||
<div class="move_grid">
|
||
<label class="label label_small"><br>Investigate</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Investigate}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{investigatesuccess}}} {{partial=@{investigatepartial}}} {{miss=@{investigatemiss}}}' name='roll_investigate'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_investigatesuccess" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">You uncover as many Clues as your Power.
|
||
Spend your Clues 1-to-1 to ask the MC a question about the subject of your investigation or ask another player a rlevant question about their character. They must give you either a straight answer or a solid lead.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_investigatepartial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">You uncover as many Clues as your Power.
|
||
Spend your Clues 1-to-1 to ask the MC a question about the subject of your investigation or ask another player a relevant question about their character. They must give you either a straight answer or a solid lead. They can also choose 1:
|
||
<ul>
|
||
<li>Your investigation exposes you to danger.</li>
|
||
<li>The clues you get are fuzzy, incomplete, or part-true part-false</li>
|
||
<li>Whoever or whatever you are asking the question(s) can ask you
|
||
one question as well. You answer on the same terms.</li>
|
||
</ul>
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_investigatemiss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You uncover no Clues, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="move_grid">
|
||
<label class="label label_small"><br>Convince</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Convince}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{convince_success}}} {{partial=@{convince_partial}}} {{miss=@{convince_miss}}}' name='roll_convince'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_convince_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">They choose either to take a relevant status of your choice with tier=power or update their agenda to include yours, at least for the time being.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_convince_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">They choose either to take a relevant status of your choice with tier=power or give in a little, but protect their own agenda.</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_convince_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You cannot convince, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="move_grid">
|
||
<label class="label label_small">Face<br>Danger</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Face Danger}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{facedanger_success}}} {{partial=@{facedanger_partial}}} {{miss=@{facedanger_miss}}}' name='roll_facedanger'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_facedanger_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">You fend off the effect and take no status at all.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_facedanger_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">You take the status, but with -1 tier.</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_facedanger_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You take the full status, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="move_grid">
|
||
<label class="label label_small">Hit With All<br> You've got</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Hit With All You Got}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{hitallyougot_success}}} {{partial=@{hitallyougot_partial}}} {{miss=@{hitallyougot_miss}}}' name='roll_hitallyougot'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_hitallyougot_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">You hit, inflicting a status upon your target with tier=power and a tag relevant to the abilities you used. Choose 2:
|
||
<ul>
|
||
<li>You take cover or secure a superior position so that they can’t hit you back.</li>
|
||
<li>You get them good or get many of them (+1 tier).</li>
|
||
<li>There’s no collateral damage, or there’s loads of collateral damage.</li>
|
||
<li>You hold the target’s attention, if possible.</li>
|
||
<li>If it’s in your ability to move them, they are out of the way.</li>
|
||
<li>You gain an advantage on the battlefield. You get 1 Juice (see Change the Game move).</li>
|
||
</ul>
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_hitallyougot_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">You hit, inflicting a status upon your target with tier=power and a tag relevant to the abilities you used. Choose 1:
|
||
<ul>
|
||
<li>You take cover or secure a superior position so that they can’t hit you back.</li>
|
||
<li>You get them good or get many of them (+1 tier).</li>
|
||
<li>There’s no collateral damage, or there’s loads of collateral damage.</li>
|
||
<li>You hold the target’s attention, if possible.</li>
|
||
</ul>
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_hitallyougot_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You miss your target, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="move_grid">
|
||
<label class="label label_small">Go Toe<br> To Toe</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Go Toe To Toe}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{gotoe_success}}} {{partial=@{gotoe_partial}}} {{miss=@{gotoe_miss}}}' name='roll_gotoe'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_gotoe_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">Choose 2:
|
||
<ul>
|
||
<li>You manage to reach your goal, e.g., take something they hold</li>
|
||
<li>You get them good, inflicting a status with tier=power</li>
|
||
<li>You block, dodge, or counter their best attempts. If you don’t choose this, they can inflict a status on you. If they are a PC, its tier=their power (based on their relevant tags and statuses, as usual).</li>
|
||
</ul>
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_gotoe_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">choose 1:
|
||
<ul>
|
||
<li>You manage to reach your goal, e.g., take something they hold</li>
|
||
<li>You get them good, inflicting a status with tier=power</li>
|
||
<li>You block, dodge, or counter their best attempts. If you don’t choose this, they can inflict a status on you. If they are a PC, its tier=their power (based on their relevant tags and statuses, as usual).</li>
|
||
</ul>
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_gotoe_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You fail to overcome your target, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="move_grid">
|
||
<label class="label label_small">Change<br> The Game</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Change The Game}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{changegame_success}}} {{partial=@{changegame_partial}}} {{miss=@{changegame_miss}}}' name='roll_changegame'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_changegame_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">You get Juice=power (min 2). Spend your Juice, 1 for 1, to gain the following effects, but they must be related to the tags you used:
|
||
<ul>
|
||
<li>Inflict a status with tier-1 (can be chosen multiple times, the tier increases by 1 each time)</li>
|
||
<li>Create/summon new objects or beings with 1 tag of your choice</li>
|
||
<li>Add a new temporary tag to one character, object, or location</li>
|
||
<li>Remove 1-tier from a status</li>
|
||
<li>Burn one player character’s tag</li>
|
||
<li>Scale up the effect (greater area or more targets)</li>
|
||
<li>Prolong the effect (make the statuses and tags you create ongoing)</li>
|
||
<li>Hide the effect</li>
|
||
<li>Any other improvement you and the MC agree on</li>
|
||
</ul>
|
||
By default, your effect is topical (affects one target), temporary (only affects the next relevant action), and discernible.
|
||
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_changegame_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">You get Juice=power. Spend your Juice, 1 for 1, to gain the following effects, but they must be related to the tags you used:
|
||
<ul>
|
||
<li>Inflict a status with tier-1 (can be chosen multiple times, the tier increases by 1 each time)</li>
|
||
<li>Create/summon new objects or beings with 1 tag of your choice</li>
|
||
<li>Add a new temporary tag to one character, object, or location</li>
|
||
<li>Remove 1-tier from a status</li>
|
||
<li>Burn one player character’s tag</li>
|
||
</ul>
|
||
By default, your effect is topical (affects one target), temporary (only affects the next relevant action), and discernible.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_changegame_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You fail to gain an advantage, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="move_grid">
|
||
<label class="label label_small">Sneak<br> Around</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Sneak Around}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{sneak_success}}} {{partial=@{sneak_partial}}} {{miss=@{sneak_miss}}}' name='roll_sneak'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_sneak_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">
|
||
Everyone that should fall for it falls for it.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_sneak_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">The MC chooses one:
|
||
<ul>
|
||
<li>Someone unimportant noticed you, but that just made them important, right?</li>
|
||
<li>You are perceived only by a secondary sense (someone picks up your scent while you’re sneaking; you’re seen whispering a message but the message is not heard).</li>
|
||
<li>You're stuck in an uneasy and stressful position in the middle of your action.</li>
|
||
<li>To finish it secretly or get out of there without being seen, you must Take the Risk or Face Danger, MC's call.</li>
|
||
</ul>
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_sneak_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You fail to remain undetected, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="move_grid">
|
||
<label class="label label_small">Take<br> A Risk</label>
|
||
<button type='roll' value='&{template:com} {{char=@{character_name}}} {{move=Take A Risk}} {{showroll=[[1]]}} {{total_power=@{power}}} {{check=[[2d6 + @{power}]]}} {{success=@{takearisk_success}}} {{partial=@{takearisk_partial}}} {{miss=@{takearisk_miss}}}' name='roll_takearisk'></button>
|
||
<div class="hidden">
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 10+ : </span>
|
||
<textarea name="attr_takearisk_success" class="sheet-actiondesc" placeholder="Great Success" title="Great Success">
|
||
You do it, somehow.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 7-9 : </span>
|
||
<textarea name="attr_takearisk_partial" class="sheet-actiondesc" placeholder="Mild Success" title="Mild Success">Things get messy. The MC will offer you a hard bargain or an ugly choice.
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-action">
|
||
<span class="sheet-action">Result 6- : </span>
|
||
<textarea name="attr_takearisk_miss" class="sheet-actiondesc" placeholder="Miss" title="Miss">You fail to perform the feat, and the MC can use a Hard Move against you!</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="full grid">
|
||
<div class="theme quarter_grid theme_1">
|
||
<div class="clr">
|
||
<label class="label">Theme Name:</label>
|
||
<input type="text" name="attr_theme_name_1"/>
|
||
</div>
|
||
<div class="adv">
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Attention</label>
|
||
<input type="checkbox" name="attr_att_1"/>
|
||
<input type="checkbox" name="attr_att_2"/>
|
||
<input type="checkbox" name="attr_att_3"/>
|
||
</div>
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Fade / Crack</label>
|
||
<input type="checkbox" name="attr_fade_1"/>
|
||
<input type="checkbox" name="attr_fade_2"/>
|
||
<input type="checkbox" name="attr_fade_3"/>
|
||
</div>
|
||
</div>
|
||
<div class="clr">
|
||
<label class="label">Mystery / Identity:</label>
|
||
<textarea name="attr_mystery_name_1"></textarea>
|
||
</div>
|
||
<div class="power_tag clr">
|
||
<label class="label">Power Tags:</label>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_1"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_1" name="attr_tag_1_burn"/>
|
||
<div class="sheet-burned_1">
|
||
<label class="label label_small label_1 quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_1" name="attr_roll_tag_1" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_2"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_2" name="attr_tag_2_burn"/>
|
||
<div class="sheet-burned_2">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_2" name="attr_roll_tag_2" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_3"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_3" name="attr_tag_3_burn"/>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_tag_3" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_powertag-extra-1">
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_extra_1"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_3" name="attr_tag_extra_burn_1"/>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_tag_extra_1" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="clr weakness">
|
||
<label class="label">Weakness Tags:</label>
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_1_name" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_1" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_weaknesstag-extra-1">
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_extra_name_1" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_extra_1" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="theme quarter_grid theme_2">
|
||
<div class="clr">
|
||
<label class="label">Theme Name:</label>
|
||
<input type="text" name="attr_theme_nam_2"/>
|
||
</div>
|
||
<div class="adv">
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Attention</label>
|
||
<input type="checkbox" name="attr_att_4"/>
|
||
<input type="checkbox" name="attr_att_5"/>
|
||
<input type="checkbox" name="attr_att_6"/>
|
||
</div>
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Fade / Crack</label>
|
||
<input type="checkbox" name="attr_fade_4"/>
|
||
<input type="checkbox" name="attr_fade_5"/>
|
||
<input type="checkbox" name="attr_fade_6"/>
|
||
</div>
|
||
</div>
|
||
<div class="clr">
|
||
<label class="label">Mystery / Identity:</label>
|
||
<textarea name="attr_mystery_name_2"></textarea>
|
||
</div>
|
||
<div class="power_tag clr">
|
||
<label class="label">Power Tags:</label>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_4"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_4" name="attr_tag_4_burn"/>
|
||
<div class="sheet-burned_4">
|
||
<label class="label label_small label_4 quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_4" name="attr_roll_tag_4" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_5"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_5" name="attr_tag_5_burn"/>
|
||
<div class="sheet-burned_5">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_5" name="attr_roll_tag_5" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_6"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_6" name="attr_tag_6_burn"/>
|
||
<div class="sheet-burned_6">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_6" name="attr_roll_tag_6" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_powertag-extra-2">
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_extra_2"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_3" name="attr_tag_extra_burn_2"/>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_tag_extra_2" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="clr weakness">
|
||
<label class="label">Weakness Tags:</label>
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_2_name" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_2" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_weaknesstag-extra-2">
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_extra_name_2" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_extra_2" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="theme quarter_grid theme_3">
|
||
<div class="clr">
|
||
<label class="label">Theme Name:</label>
|
||
<input type="text" name="attr_theme_name_3"/>
|
||
</div>
|
||
<div class="adv">
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Attention</label>
|
||
<input type="checkbox" name="attr_att_7"/>
|
||
<input type="checkbox" name="attr_att_8"/>
|
||
<input type="checkbox" name="attr_att_9"/>
|
||
</div>
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Fade / Crack</label>
|
||
<input type="checkbox" name="attr_fade_7"/>
|
||
<input type="checkbox" name="attr_fade_8"/>
|
||
<input type="checkbox" name="attr_fade_9"/>
|
||
</div>
|
||
</div>
|
||
<div class="clr">
|
||
<label class="label">Mystery / Identity:</label>
|
||
<textarea name="attr_mystery_name_3"></textarea>
|
||
</div>
|
||
<div class="power_tag clr">
|
||
<label class="label">Power Tags:</label>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_7"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_7" name="attr_tag_7_burn"/>
|
||
<div class="sheet-burned_7">
|
||
<label class="label label_small label_7 quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_7" name="attr_roll_tag_7" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_8"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_8" name="attr_tag_8_burn"/>
|
||
<div class="sheet-burned_8">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_8" name="attr_roll_tag_8" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_9"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_9" name="attr_tag_9_burn"/>
|
||
<div class="sheet-burned_9">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_9" name="attr_roll_tag_9" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_powertag-extra-3">
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_extra_3"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_3" name="attr_tag_extra_burn_3"/>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_tag_extra_3" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="clr weakness">
|
||
<label class="label">Weakness Tags:</label>
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_3_name" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_3" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_weaknesstag-extra-3">
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_extra_name_3" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_extra_3" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="theme quarter_grid theme_4">
|
||
<div class="clr">
|
||
<label class="label">Theme Name:</label>
|
||
<input type="text" name="attr_theme_name_4"/>
|
||
</div>
|
||
<div class="adv">
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Attention</label>
|
||
<input type="checkbox" name="attr_att_10"/>
|
||
<input type="checkbox" name="attr_att_11"/>
|
||
<input type="checkbox" name="attr_att_12"/>
|
||
</div>
|
||
<div class="half_grid">
|
||
<label class="label label_small ">Fade / Crack</label>
|
||
<input type="checkbox" name="attr_fade_10"/>
|
||
<input type="checkbox" name="attr_fade_11"/>
|
||
<input type="checkbox" name="attr_fade_12"/>
|
||
</div>
|
||
</div>
|
||
<div class="clr">
|
||
<label class="label">Mystery / Identity:</label>
|
||
<textarea name="attr_mystery_name_4"></textarea>
|
||
</div>
|
||
<div class="power_tag clr">
|
||
<label class="label">Power Tags:</label>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_10"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_10" name="attr_tag_10_burn"/>
|
||
<div class="sheet-burned_10">
|
||
<label class="label label_small label_10 quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_10" name="attr_roll_tag_10" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_11"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_11" name="attr_tag_11_burn"/>
|
||
<div class="sheet-burned_11">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_11" name="attr_roll_tag_11" value="1" />
|
||
</div>
|
||
</div>
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_12"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_12" name="attr_tag_12_burn"/>
|
||
<div class="sheet-burned_12">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_12" name="attr_roll_tag_12" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_powertag-extra-4">
|
||
<div class="power-tag">
|
||
<input type="text" name="attr_tag_name_extra_4"/>
|
||
<label class="label label_small quarter_grid">Burn</label>
|
||
<input type="checkbox" class="quarter_grid burn_3" name="attr_tag_extra_burn_4"/>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_tag_extra_4" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="clr weakness">
|
||
<label class="label">Weakness Tags:</label>
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_4_name" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_4" value="1" />
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_weaknesstag-extra-4">
|
||
<div class="weakness-tag">
|
||
<input type="text" name="attr_weak_extra_name_4" />
|
||
<span class="sheet-quarter_grid burn_spacer"> </span>
|
||
<div class="sheet-burned_3">
|
||
<label class="label label_small quarter_grid">Roll</label>
|
||
<input type="checkbox" class="quarter_grid tag_3" name="attr_roll_weakness_tag_extra_4" value="1" />
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="clr"></div>
|
||
</div>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-com">
|
||
<table>
|
||
<tr><th>{{char}}<br>rolls to "{{move}}"</th></tr>
|
||
<tr><td><span>+ Power</span> {{total_power}}</td></tr>
|
||
<tr>
|
||
<td><span>Result: </span>{{check}}</td>
|
||
</tr>
|
||
<tr></tr>
|
||
{{#check}}
|
||
{{#rollTotal() showroll 1}}
|
||
<tr>
|
||
<td>
|
||
{{#rollGreater() check 9}}
|
||
<span style="color: green;font-weight:bold;">Great Success</span>
|
||
{{/rollGreater() check 9}}
|
||
{{#rollBetween() check 7 9}}
|
||
<span style="color: black;font-weight:bold;">Mild Success</span>
|
||
{{/rollBetween() check 7 9}}
|
||
{{#rollLess() check 7}}
|
||
<span style="color: red;font-weight:bold;">Miss</span>
|
||
{{/rollLess() check 7}}
|
||
</td>
|
||
</tr>
|
||
{{#success}}
|
||
{{#rollGreater() check 9}}
|
||
<tr><td colspan="2"><div class="movedesc">{{success}}</div></td></tr>
|
||
{{/rollGreater() check 9}}
|
||
{{/success}}
|
||
{{#partial}}
|
||
{{#rollBetween() check 7 9}}
|
||
<tr><td colspan="2"><div class="movedesc">{{partial}}</div></td></tr>
|
||
{{/rollBetween() check 7 9}}
|
||
{{/partial}}
|
||
{{#miss}}
|
||
{{#rollLess() check 7}}
|
||
<tr><td colspan="2"><div class="movedesc">{{miss}}</div></td></tr>
|
||
{{/rollLess() check 7}}
|
||
{{/miss}}
|
||
{{/rollTotal() showroll 1}}
|
||
{{/check}}
|
||
</table>
|
||
</rolltemplate>
|
||
<script type="text/worker">
|
||
|
||
(function () {
|
||
|
||
var power_tag_names = [];
|
||
var weakness_tag_names = [];
|
||
var mod_names = [
|
||
"plusmod",
|
||
"minusmod"
|
||
];
|
||
|
||
/** @var array list of events to trigger the power calculations. **/
|
||
var change_tag_events = mod_names.map(function(name) {
|
||
return "change:" + name;
|
||
});
|
||
|
||
/** Calculate the lists of roll checkbox power_tag_names, roll checkbox weakness_tag_names, and related change events. */
|
||
['1', '2', '3', '4'].forEach(function(theme_id) {
|
||
// 3 power tags per theme
|
||
var theme_power_tag_names = [1,2,3].map(function(tag_number) {
|
||
return "roll_tag_" + ((theme_id-1)*3+tag_number);
|
||
});
|
||
power_tag_names = power_tag_names.concat(theme_power_tag_names);
|
||
change_tag_events = change_tag_events.concat(theme_power_tag_names.map(function(tag_name) {
|
||
return "change:" + tag_name;
|
||
}));
|
||
// 1 weakness tag per theme
|
||
var theme_weakness_tag_name = "roll_weakness_tag_" + theme_id;
|
||
change_tag_events.push("change:" + theme_weakness_tag_name);
|
||
weakness_tag_names.push(theme_weakness_tag_name);
|
||
// 1 each power and weakness tag extra repeating groups
|
||
change_tag_events.push("change:repeating_powertag-extra-" + theme_id);
|
||
change_tag_events.push("change:repeating_weaknesstag-extra-" + theme_id);
|
||
});
|
||
/** @var array list of all roll check tag attribute names, both power and weakness */
|
||
var all_attr_names = mod_names.concat(power_tag_names).concat(weakness_tag_names);
|
||
|
||
/** Points all of those events to the calculate_power function. */
|
||
on(change_tag_events.join(" "), calculate_power);
|
||
|
||
/** Calculate power when the sheet opens. */
|
||
on('sheet:opened', function (e) {
|
||
console.log('sheet:opened fired.');
|
||
calculate_power(e);
|
||
});
|
||
|
||
/**
|
||
* Calculates the power based on the checked roll checkboxes for tags on the sheet.
|
||
*
|
||
* @param e - the event for the change; ignored for this function as we calculate the power based on everything every time.
|
||
*/
|
||
function calculate_power(e) {
|
||
console.log('Calculating power.');
|
||
/** @var array the list of dynamic (repeating section) checkboxes for power tags to be used in the calculation. */
|
||
var extra_powertag_names = [];
|
||
|
||
/** @var array the list of dynamic (repeating section) checkboxes for weakness tags to be used in the calculation. */
|
||
var extra_weaknesstag_names = [];
|
||
|
||
/**
|
||
* There are 4 themes, each with a power tag repeating section, and a weakness tag repeating section.
|
||
* Because the getSectionIDs() function doesn't take multiple section labels, I need to nest the callback
|
||
* functions.
|
||
*
|
||
* I tried using Promises, but apparently the getAttrs() function only works during the context of the callback
|
||
* function, and was throwing an error about the _activeCharacterId variable not being set.
|
||
*
|
||
* So, this is horrible, but, it works. I expect major headaches in maintaining this.
|
||
*/
|
||
getSectionIDs('powertag-extra-1', function(extra_powertag_rowids_theme) {
|
||
extra_powertag_names = extra_powertag_names.concat(extra_powertag_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_powertag-extra-1', 'roll_tag_extra_1')));
|
||
getSectionIDs('powertag-extra-2', function(extra_powertag_rowids_theme) {
|
||
extra_powertag_names = extra_powertag_names.concat(extra_powertag_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_powertag-extra-2', 'roll_tag_extra_2')));
|
||
getSectionIDs('powertag-extra-3', function(extra_powertag_rowids_theme) {
|
||
extra_powertag_names = extra_powertag_names.concat(extra_powertag_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_powertag-extra-3', 'roll_tag_extra_3')));
|
||
getSectionIDs('powertag-extra-4', function(extra_powertag_rowids_theme) {
|
||
extra_powertag_names = extra_powertag_names.concat(extra_powertag_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_powertag-extra-4', 'roll_tag_extra_4')));
|
||
getSectionIDs('weaknesstag-extra-1', function(extra_weaknesstags_rowids_theme) {
|
||
extra_weaknesstag_names = extra_weaknesstag_names.concat(extra_weaknesstags_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_weaknesstag-extra-1', 'roll_weakness_tag_extra_1')));
|
||
getSectionIDs('weaknesstag-extra-2', function(extra_weaknesstags_rowids_theme) {
|
||
extra_weaknesstag_names = extra_weaknesstag_names.concat(extra_weaknesstags_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_weaknesstag-extra-2', 'roll_weakness_tag_extra_2')));
|
||
getSectionIDs('weaknesstag-extra-3', function(extra_weaknesstags_rowids_theme) {
|
||
extra_weaknesstag_names = extra_weaknesstag_names.concat(extra_weaknesstags_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_weaknesstag-extra-3', 'roll_weakness_tag_extra_3')));
|
||
getSectionIDs('weaknesstag-extra-4', function(extra_weaknesstags_rowids_theme) {
|
||
extra_weaknesstag_names = extra_weaknesstag_names.concat(extra_weaknesstags_rowids_theme.map(repeating_attr_name.bind(null, 'repeating_weaknesstag-extra-4', 'roll_weakness_tag_extra_4')));
|
||
/** OK, all 8 dynamic sections have been queried for the attributes in them, now in extra_powertag_names and extra_weaknesstag_names. Stick them all together for the call to getAttrs() */
|
||
var all_extra_attr_names = extra_powertag_names.concat(extra_weaknesstag_names);
|
||
var attr_names_to_get = all_attr_names.concat(all_extra_attr_names);
|
||
getAttrs(attr_names_to_get, function(values) {
|
||
/** values should have all the values of the attributes involved in the power calculation. */
|
||
var power = 0;
|
||
/** Count the checked static & dynamic power tags */
|
||
power_tag_names.forEach(function(powertag) {
|
||
if (values[powertag] === "1") {
|
||
power++;
|
||
}
|
||
});
|
||
extra_powertag_names.forEach(function(powertag) {
|
||
if (values[powertag] === "1") {
|
||
power++;
|
||
}
|
||
});
|
||
/** Count the checked static & dynamic weakness tags */
|
||
weakness_tag_names.forEach(function(weaknesstag) {
|
||
if (values[weaknesstag] === "1") {
|
||
power --;
|
||
}
|
||
});
|
||
extra_weaknesstag_names.forEach(function(weaknesstag) {
|
||
if (values[weaknesstag] === "1") {
|
||
power--;
|
||
}
|
||
});
|
||
/** Add / subtract the modifiers */
|
||
power += (values.plusmod - values.minusmod);
|
||
/** save power to the attribute */
|
||
setAttrs({ power: power });
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Gets the attribute name to be used in the call to getAttrs() for an attribute in a repeating section.
|
||
*
|
||
* @param repeating_section_name string
|
||
* @param attr_name string
|
||
* @param row_id string row_id is last because of the way I'm using this with the bind() function.
|
||
*
|
||
* @returns {string}
|
||
*/
|
||
function repeating_attr_name(repeating_section_name, attr_name, row_id) {
|
||
return [repeating_section_name, row_id, attr_name].join('_');
|
||
}
|
||
|
||
})();
|
||
|
||
</script>
|
||
|
||
|
||
|
||
|