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

3823 lines
150 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div style="font-family:Tahoma">
<div style="font-family:Tahoma">
<input type="radio" name="attr_tab1" class="sheet-tab sheet-tab1" value="1" title="Background" checked="checked" /><span title="Front"></span>
<input type="radio" name="attr_tab1" class="sheet-tab sheet-tab2" value="2" title="Skills" /><span title="Back"></span>
<div class="sheet-tab-content sheet-tab1"><!--- Tab 1 start -->
<input type="text" style="display:none" name="attr_setupDone" value="0" />
<div class='sheet-2colrow'>
<div class="sheet-col" style="width:32%;margin-right:5px">
<div class="sheet-logo">
&nbsp;
</div>
</div>
<div class="sheet-col" style="width:66%">
<table class="sheet-info_table">
<tr>
<td class="sheet-info_labels"><b>Ryū</b></td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr__ryu" /></td>
</tr>
<tr>
<td class="sheet-info_labels">Family</td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr__family" /></td>
</tr>
<tr>
<td class="sheet-info_labels">Name</td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr_character_name" /></td>
</tr>
<tr>
<td class="sheet-info_labels">(ML) Title</td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr__title" /></td>
</tr>
<tr>
<td style="width:18%" class="sheet-info_labels">Primary Cover</td><td style="width:80%"><input class="sheet-text_input sheet-info_input" type="text" name="attr__name" /></td>
</tr>
</table>
</div>
</div>
<br />
<div>
<table class="sheet-table_center padded">
<tr class="first">
<th class="first"></th>
<th ><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=INT}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_int}[INT]]]}} {{crit=[[[[18]]+@{cur_int}]]}} {{fumble1=[[[[3]]+@{cur_int}]]}} {{fumble2=[[[[4]]+@{cur_int}]]}} {{fumble3=[[[[5]]+@{cur_int}]]}}">INT</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=Will}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_will}[Will]]]}} {{crit=[[[[18]]+@{cur_will}]]}} {{fumble1=[[[[3]]+@{cur_will}]]}} {{fumble2=[[[[4]]+@{cur_will}]]}} {{fumble3=[[[[5]]+@{cur_will}]]}}">WILL</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=PRE}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_pre}[PRE]]]}} {{crit=[[[[18]]+@{cur_pre}]]}} {{fumble1=[[[[3]]+@{cur_pre}]]}} {{fumble2=[[[[4]]+@{cur_pre}]]}} {{fumble3=[[[[5]]+@{cur_pre}]]}}">PRE</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=AES}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_aes}[AES]]]}} {{crit=[[[[18]]+@{cur_aes}]]}} {{fumble1=[[[[3]]+@{cur_aes}]]}} {{fumble2=[[[[4]]+@{cur_aes}]]}} {{fumble3=[[[[5]]+@{cur_aes}]]}}">AES</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=PIE}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_pie}[PIE]]]}} {{crit=[[[[18]]+@{cur_pie}]]}} {{fumble1=[[[[3]]+@{cur_pie}]]}} {{fumble2=[[[[4]]+@{cur_pie}]]}} {{fumble3=[[[[5]]+@{cur_pie}]]}}">PIE</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=KAO}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_kao}[KAO]]]}} {{crit=[[[[18]]+@{cur_kao}]]}} {{fumble1=[[[[3]]+@{cur_kao}]]}} {{fumble2=[[[[4]]+@{cur_kao}]]}} {{fumble3=[[[[5]]+@{cur_kao}]]}}">KAO</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=STR}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_str}[STR]]]}} {{crit=[[[[18]]+@{cur_str}]]}} {{fumble1=[[[[3]]+@{cur_str}]]}} {{fumble2=[[[[4]]+@{cur_str}]]}} {{fumble3=[[[[5]]+@{cur_str}]]}}">STR</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=CON}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_con}[CON]]]}} {{crit=[[[[18]]+@{cur_con}]]}} {{fumble1=[[[[3]]+@{cur_con}]]}} {{fumble2=[[[[4]]+@{cur_con}]]}} {{fumble3=[[[[5]]+@{cur_con}]]}}">CON</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=BODY}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_body}[BODY]]]}} {{crit=[[[[18]]+@{cur_body}]]}} {{fumble1=[[[[3]]+@{cur_body}]]}} {{fumble2=[[[[4]]+@{cur_body}]]}} {{fumble3=[[[[5]]+@{cur_body}]]}}">BODY</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=REF}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_ref}[REF]]]}} {{crit=[[[[18]]+@{cur_ref}]]}} {{fumble1=[[[[3]]+@{cur_ref}]]}} {{fumble2=[[[[4]]+@{cur_ref}]]}} {{fumble3=[[[[5]]+@{cur_ref}]]}}">REF</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=DEX}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_dex}[DEX]]]}} {{crit=[[[[18]]+@{cur_dex}]]}} {{fumble1=[[[[3]]+@{cur_dex}]]}} {{fumble2=[[[[4]]+@{cur_dex}]]}} {{fumble3=[[[[5]]+@{cur_dex}]]}}">DEX</button></th>
<th><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=TECH}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_tech}[TECH]]]}} {{crit=[[[[18]]+@{cur_tech}]]}} {{fumble1=[[[[3]]+@{cur_tech}]]}} {{fumble2=[[[[4]]+@{cur_tech}]]}} {{fumble3=[[[[5]]+@{cur_tech}]]}}">TECH</button></th>
<th class="last"><button class="sheet-new_roll" type="roll" value="&{template:StatRoll} {{name=@{character_name}}} {{stat=MOVE}} {{ActionTotal=[[[[3d6]][Roll]+@{cur_move}[MOVE]]]}} {{crit=[[[[18]]+@{cur_move}]]}} {{fumble1=[[[[3]]+@{cur_move}]]}} {{fumble2=[[[[4]]+@{cur_move}]]}} {{fumble3=[[[[5]]+@{cur_move}]]}}">MOVE</button></th>
</tr>
<tr>
<td class="first">Base</td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_int" /></td>
<td class="sheet-td_inputs"> <input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_will" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_pre" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_aes" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_pie" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_kao" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_str" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_con" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_body" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_ref" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_dex" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_tech" /></td>
<td class="sheet-td_inputs last"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_move" /></td>
</tr>
<tr class="last">
<td class="first">Modifier</td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_int_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_will_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_pre_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_aes_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_pie_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_kao_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_str_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_con_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_body_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_ref_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_dex_mod" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_tech_mod" /></td>
<td class="sheet-td_inputs last"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_move_mod" /></td>
</tr>
<tr class="last">
<td class="first">Current</td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_int" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_will" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_pre" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_aes" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_pie" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_kao" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_str" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_con" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_body" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_ref" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_dex" /></td>
<td class="sheet-td_inputs"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_tech" /></td>
<td class="sheet-td_inputs last"><input type="text" class="sheet-char_inputs sheet-text_input" readonly value="0" name="attr_cur_move" /></td>
</tr>
</table>
</div>
<br />
<div>
<table class="sheet-table_center padded">
<tr class="first">
<th class="first">SD</th><th>REC</th><th>END</th><th>STUN</th><th>HITS</th><th>RUN</th><th>SPRINT</th><th>LEAP</th><th>RES</th><th class="last">HONOR</th>
</tr>
<tr class="last">
<td class="sheet-td_inputs first"><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_sd" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_rec" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_end" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_stun" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_hits" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_run" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_sprint" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_leap" /></td>
<td class="sheet-td_inputs "><input type="text" readonly class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_res" /></td>
<td class="sheet-td_inputs last"><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_base_honor" /></td>
</tr>
</table>
</div>
<br />
<br />
<div class="sheet-cdiv">
<span class="sheet-cpto_header" style="inline-block">Packages</span><input class="sheet-HideConfig" type="checkbox" checked="checked" name="attr_is_config"><span class="sheet-is-config"><span style="font-family: &quot;pictos&quot;">y</span></span>
<div class="sheet-config" style="border-style: dotted ; border-color: gray ; padding: 5px ; background-color: white ; background-image: none">
<br />
<div class='sheet-3colrow'>
<div class='sheet-col' style="">
<span class="sheet-cpto_header">Caste Packages</span>
<input type="checkbox" style="display:none" class="sheet-showKuge" name="attr_addKuge" value="0" />
<div class="sheet-Kuge">
<input type="checkbox" class="sheet-showKuge" name="attr_addKuge" value="0" />Add Kuge
</div>
<input type="checkbox" style="display:none" class="sheet-showBuke" name="attr_addBuke" value="0" />
<div class="sheet-Buke">
<input type="checkbox" class="sheet-showBuke" name="attr_addBuke" value="0" />Add Buke
</div>
<input type="checkbox" style="display:none" class="sheet-showBonge" name="attr_addBonge" value="0" />
<div class="sheet-Bonge">
<input type="checkbox" class="sheet-showBonge" name="attr_addBonge" value="0" />Add Bonge
</div>
<input type="checkbox" style="display:none" class="sheet-showhinen" name="attr_addHinin" value="0" />
<div class="sheet-hinen">
<input type="checkbox" class="sheet-showhinen" name="attr_addHinin" value="0" />Add Hinen
</div>
</div>
<div class='sheet-col' style="">
<span class="sheet-cpto_header">Occupation Packages</span>
<input type="checkbox" style="display:none" class="sheet-showShokunin" name="attr_addShokunin" value="0" />
<div class="sheet-Shokunin">
<input type="checkbox" class="sheet-showShokunin" name="attr_addShokunin" value="0" />Add Shokunin
</div>
<input type="checkbox" style="display:none" class="sheet-showAshigaru" name="attr_addAshigaru" value="0" />
<div class="sheet-Ashigaru">
<input type="checkbox" class="sheet-showAshigaru" name="attr_addAshigaru" value="0" />Add Ashigaru
</div>
<input type="checkbox" style="display:none" class="sheet-showAkuto" name="attr_addAkuto" value="0" />
<div class="sheet-Akuto">
<input type="checkbox" class="sheet-showAkuto" name="attr_addAkuto" value="0" />Add Akutô
</div>
<input type="checkbox" style="display:none" class="sheet-showSo" name="attr_addSo" value="0" />
<div class="sheet-Akuto">
<input type="checkbox" class="sheet-showSo" name="attr_addSo" value="0" />Add Sô
</div>
<input type="checkbox" style="display:none" class="sheet-showKugeCourtier" name="attr_addKugeCourtier" value="0" />
<div class="sheet-KugeCourtier">
<input type="checkbox" class="sheet-showKugeCourtier" name="attr_addKugeCourtier" value="0" />Add Kuge Courtier
</div>
<input type="checkbox" style="display:none" class="sheet-showSamCourtier" name="attr_addSamCourtier" value="0" />
<div class="sheet-SamCourtier">
<input type="checkbox" class="sheet-showSamCourtier" name="attr_addSamCourtier" value="0" />Add Samurai Courtier
</div>
<input type="checkbox" style="display:none" class="sheet-showExecutioner" name="attr_addExecutioner" value="0" />
<div class="sheet-Executioner">
<input type="checkbox" class="sheet-showExecutioner" name="attr_addExecutioner" value="0" />Add Executioner
</div>
<input type="checkbox" style="display:none" class="sheet-showFarmer" name="attr_addFarmer" value="0" />
<div class="sheet-Farmer">
<input type="checkbox" class="sheet-showFarmer" name="attr_addFarmer" value="0" />Add Farmer
</div>
<input type="checkbox" style="display:none" class="sheet-showKensei" name="attr_addKensei" value="0" />
<div class="sheet-Kensei">
<input type="checkbox" class="sheet-showKensei" name="attr_addKensei" value="0" />Add Kensei
</div>
<input type="checkbox" style="display:none" class="sheet-showBudoka" name="attr_addBudoka" value="0" />
<div class="sheet-Budoka">
<input type="checkbox" class="sheet-showBudoka" name="attr_addBudoka" value="0" />Add Budôka
</div>
</div>
<div class='sheet-col' style="">
<span class="sheet-cpto_header">&nbsp;</span>
<input type="checkbox" style="display:none" class="sheet-showWako" name="attr_addWako" value="0" />
<div class="sheet-Wako">
<input type="checkbox" class="sheet-showWako" name="attr_addWako" value="0" />Add Wakô
</div>
<input type="checkbox" style="display:none" class="sheet-showDoshin" name="attr_addDoshin" value="0" />
<div class="sheet-Doshin">
<input type="checkbox" class="sheet-showDoshin" name="attr_addDoshin" value="0" />Add Dôshin/Yoriki
</div>
<input type="checkbox" style="display:none" class="sheet-showRonin" name="attr_addRonin" value="0" />
<div class="sheet-Ronin">
<input type="checkbox" class="sheet-showRonin" name="attr_addRonin" value="0" />Add Ronin
</div>
<input type="checkbox" style="display:none" class="sheet-showSamurai" name="attr_addSamurai" value="0" />
<div class="sheet-Samurai">
<input type="checkbox" class="sheet-showSamurai" name="attr_addSamurai" value="0" />Add Samurai
</div>
<input type="checkbox" style="display:none" class="sheet-showShinobi" name="attr_addShinobi" value="0" />
<div class="sheet-Shinobi">
<input type="checkbox" class="sheet-showShinobi" name="attr_addShinobi" value="0" />Add Shinobi
</div>
<input type="checkbox" style="display:none" class="sheet-showYamabushi" name="attr_addYamabushi" value="0" />
<div class="sheet-Yamabushi">
<input type="checkbox" class="sheet-showYamabushi" name="attr_addYamabushi" value="0" />Add Yamabushi
</div>
<input type="checkbox" style="display:none" class="sheet-showSohei" name="attr_addSohei" value="0" />
<div class="sheet-Sohei">
<input type="checkbox" class="sheet-showSohei" name="attr_addSohei" value="0" />Add Sohei
</div>
<input type="checkbox" style="display:none" class="sheet-showSumotori" name="attr_addSumotori" value="0" />
<div class="sheet-Sumotori">
<input type="checkbox" class="sheet-showSumotori" name="attr_addSumotori" value="0" />Add Sumotori
</div>
<input type="checkbox" style="display:none" class="sheet-showNusubito" name="attr_addNusubito" value="0" />
<div class="sheet-Nusubito">
<input type="checkbox" class="sheet-showNusubito" name="attr_addNusubito" value="0" />Add Nusubito
</div>
<input type="checkbox" style="display:none" class="sheet-showBushi" name="attr_addBushi" value="0" />
<div class="sheet-Bushi">
<input type="checkbox" class="sheet-showBushi" name="attr_addBushi" value="0" />Add Bushi
</div>
</div>
</div>
</div>
</div>
<br />
<!-- Start Complications / Perks Talents -->
<div class='sheet-2colrow' style="border: 1px solid black;padding: 5px;">
<div class='sheet-col' style="margin-right:5px">
<span class="sheet-cpto_header">Complications</span>
<fieldset class="repeating_complications">
<input type="text" value="0" class="sheet-compPerk_inputs sheet-text_input" name="attr_score" />
<input type="text" class="sheet-text_input sheet-comp-input" name="attr_complication" />
</fieldset>
<input type="text" value="0" class="sheet-compPerk_inputs sheet-text_input" name="attr_comp_total" /><span>Total</span>
</div>
<div class='sheet-col' style="margin-right:5px">
<div class="sheet-cpto_header">
<span>Cost</span><span class="sheet-pto">Perks</span>
</div>
<fieldset class="repeating_perks">
<input type="text" value="0" class="sheet-compPerk_inputs sheet-text_input" name="attr_cost" />
<input type="text" class="sheet-text_input sheet-comp-input" name="attr_perk"/>
</fieldset>
<input type="text" value="0" class="sheet-compPerk_inputs sheet-text_input" name="attr_perks_total" /><span>Total</span>
<br />
<br />
<div class="sheet-cpto_header">
<span>Cost</span><span class="sheet-pto">Talents / Okuden</span>
</div>
<fieldset class="repeating_talents">
<input type="text" value="0" class="sheet-compPerk_inputs sheet-text_input" name="attr_cost" />
<input type="text" class="sheet-text_input sheet-comp-input" name="attr_talent"/>
</fieldset>
<input type="text" value="0" class="sheet-compPerk_inputs sheet-text_input" name="attr_talents_total" /><span>Total</span>
</div>
</div>
<br />
<!-- End Complications / Perks Talents -->
<!---------------Skill Start -------->
<div class='sheet-2colrow' style="border:1px solid black;padding: 5px;margin-right:4px;min-height:400px">
<span class="sheet-cpto_header">Skills</span>
<div style="float:right;">Skill Mod<input type="text" value="0" class="sheet-char_inputs sheet-text_input" name="attr_skill_mods" /></div>
<br />
<br />
<div style="border-right:1px solid black;padding: 5px;margin-right:4px;min-height:400px" class='sheet-col'>
<!-- Forbidden Skills Start--------------->
<span class="sheet-cpto_header">Forbidden Skills</span>
<br />
<span>Skill</span>
<span style="margin-left:192px">Score</span>
<span style="margin-left:11px">Stat</span>
<span style="margin-left:21px">AV</span>
<fieldset class="repeating_ForbiddenSkills">
<div>
<div class="sheet-skill_values">
<div>
<input type="text" class="sheet-text_input sheet-skillName" name="attr_skill_name" />
</div>
<div>
<input type="text" value="0" class="sheet-char_inputs sheet-text_input" style="margin-right:5px" name="attr_skill_score" />
</div>
<div>
<select style="margin-bottom:0px;width:60px;font-size:x-small" name="attr_stat">
<option value="0" selected></option>
<option value="@{cur_int}">INT</option>
<option value="@{cur_will}">WILL</option>
<option value="@{cur_pre}">PRE</option>
<option value="@{cur_aes}">AES</option>
<option value="@{cur_pie}">PIE</option>
<option value="@{cur_kao}">KAO</option>
<option value="@{cur_str}">STR</option>
<option value="@{cur_con}">CON</option>
<option value="@{cur_body}">BODY</option>
<option value="@{cur_ref}">REF</option>
<option value="@{cur_dex}">DEX</option>
<option value="@{cur_tech}">TECH</option>
<option value="@{cur_move}">MOVE</option>
</select>
</div>
<div >
<input type="text" class="sheet-char_inputs sheet-text_input" disabled value="@{skill_score}+@{stat}" name="attr_av" />
</div>
<button type="roll" value="&{template:SkillRoll} {{name=@{character_name}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{skill_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{skill_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{skill_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{skill_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{skill_mods}]]}}" ></button>
</div>
</div>
</fieldset>
<!-- Forbidden Skills End--------------->
<!-- Classical Arts Start--------------->
<br />
<br />
<span class="sheet-cpto_header">Classical Arts</span>
<br />
<span>Skill</span>
<span style="margin-left:192px">Score</span>
<span style="margin-left:11px">Stat</span>
<span style="margin-left:21px">AV</span>
<fieldset class="repeating_ClassicalSkills">
<div>
<div class="sheet-skill_values">
<div>
<input type="text" class="sheet-text_input sheet-skillName" name="attr_skill_name" />
</div>
<div>
<input type="text" value="0" class="sheet-char_inputs sheet-text_input" style="margin-right:5px" name="attr_skill_score" />
</div>
<div>
<select style="margin-bottom:0px;width:60px;font-size:x-small" name="attr_stat">
<option value="0" selected></option>
<option value="@{cur_int}">INT</option>
<option value="@{cur_will}">WILL</option>
<option value="@{cur_pre}">PRE</option>
<option value="@{cur_aes}">AES</option>
<option value="@{cur_pie}">PIE</option>
<option value="@{cur_kao}">KAO</option>
<option value="@{cur_str}">STR</option>
<option value="@{cur_con}">CON</option>
<option value="@{cur_body}">BODY</option>
<option value="@{cur_ref}">REF</option>
<option value="@{cur_dex}">DEX</option>
<option value="@{cur_tech}">TECH</option>
<option value="@{cur_move}">MOVE</option>
</select>
</div>
<div >
<input type="text" class="sheet-char_inputs sheet-text_input" disabled value="@{skill_score}+@{stat}" name="attr_av" />
</div>
<button type="roll" value="&{template:SkillRoll} {{name=@{character_name}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{skill_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{skill_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{skill_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{skill_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{skill_mods}]]}}" ></button>
</div>
</div>
</fieldset>
<!-- Classical Arts Skills End--------------->
<!-- Martial Skills Start--------------->
<br />
<br />
<span class="sheet-cpto_header">Martial Arts</span>
<br />
<span>Skill</span>
<span style="margin-left:192px">Score</span>
<span style="margin-left:11px">Stat</span>
<span style="margin-left:21px">AV</span>
<fieldset class="repeating_MartialSkills">
<div>
<div class="sheet-skill_values">
<div>
<input type="text" class="sheet-text_input sheet-skillName" name="attr_skill_name" />
</div>
<div>
<input type="text" value="0" class="sheet-char_inputs sheet-text_input" style="margin-right:5px" name="attr_skill_score" />
</div>
<div>
<select style="margin-bottom:0px;width:60px;font-size:x-small" name="attr_stat">
<option value="0" selected></option>
<option value="@{cur_int}">INT</option>
<option value="@{cur_will}">WILL</option>
<option value="@{cur_pre}">PRE</option>
<option value="@{cur_aes}">AES</option>
<option value="@{cur_pie}">PIE</option>
<option value="@{cur_kao}">KAO</option>
<option value="@{cur_str}">STR</option>
<option value="@{cur_con}">CON</option>
<option value="@{cur_body}">BODY</option>
<option value="@{cur_ref}">REF</option>
<option value="@{cur_dex}">DEX</option>
<option value="@{cur_tech}">TECH</option>
<option value="@{cur_move}">MOVE</option>
</select>
</div>
<div >
<input type="text" class="sheet-char_inputs sheet-text_input" disabled value="@{skill_score}+@{stat}" name="attr_av" />
</div>
<button type="roll" value="&{template:SkillRoll} {{name=@{character_name}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{skill_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{skill_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{skill_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{skill_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{skill_mods}]]}}" ></button>
</div>
</div>
</fieldset>
<!-- Martial Skills End--------------->
<!-- Magical Arts Start--------------->
<br />
<br />
<span class="sheet-cpto_header">Magical Arts</span>
<br />
<span>Skill</span>
<span style="margin-left:192px">Score</span>
<span style="margin-left:11px">Stat</span>
<span style="margin-left:21px">AV</span>
<fieldset class="repeating_MagicalSkills">
<div>
<div class="sheet-skill_values">
<div>
<input type="text" class="sheet-text_input sheet-skillName" name="attr_skill_name" />
</div>
<div>
<input type="text" value="0" class="sheet-char_inputs sheet-text_input" style="margin-right:5px" name="attr_skill_score" />
</div>
<div>
<select style="margin-bottom:0px;width:60px;font-size:x-small" name="attr_stat">
<option value="0" selected></option>
<option value="@{cur_int}">INT</option>
<option value="@{cur_will}">WILL</option>
<option value="@{cur_pre}">PRE</option>
<option value="@{cur_aes}">AES</option>
<option value="@{cur_pie}">PIE</option>
<option value="@{cur_kao}">KAO</option>
<option value="@{cur_str}">STR</option>
<option value="@{cur_con}">CON</option>
<option value="@{cur_body}">BODY</option>
<option value="@{cur_ref}">REF</option>
<option value="@{cur_dex}">DEX</option>
<option value="@{cur_tech}">TECH</option>
<option value="@{cur_move}">MOVE</option>
</select>
</div>
<div >
<input type="text" class="sheet-char_inputs sheet-text_input" disabled value="@{skill_score}+@{stat}" name="attr_av" />
</div>
<button type="roll" value="&{template:SkillRoll} {{name=@{character_name}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{skill_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{skill_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{skill_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{skill_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{skill_mods}]]}}" ></button>
</div>
</div>
</fieldset>
<!-- Magical Arts Skills End--------------->
</div>
<!-- col end --->
<div style="border-left:1px solid black;padding: 5px;margin-right:4px;min-height:400px" class='sheet-col'>
<!-- Practical Arts Start--------------->
<span class="sheet-cpto_header">Practical Arts</span>
<br />
<span>Skill</span>
<span style="margin-left:192px">Score</span>
<span style="margin-left:11px">Stat</span>
<span style="margin-left:21px">AV</span>
<fieldset class="repeating_PracticalSkills">
<div>
<div class="sheet-skill_values">
<div>
<input type="text" class="sheet-text_input sheet-skillName" name="attr_skill_name" />
</div>
<div>
<input type="text" value="0" class="sheet-char_inputs sheet-text_input" style="margin-right:5px" name="attr_skill_score" />
</div>
<div>
<select style="margin-bottom:0px;width:60px;font-size:x-small" name="attr_stat">
<option value="0" selected></option>
<option value="@{cur_int}">INT</option>
<option value="@{cur_will}">WILL</option>
<option value="@{cur_pre}">PRE</option>
<option value="@{cur_aes}">AES</option>
<option value="@{cur_pie}">PIE</option>
<option value="@{cur_kao}">KAO</option>
<option value="@{cur_str}">STR</option>
<option value="@{cur_con}">CON</option>
<option value="@{cur_body}">BODY</option>
<option value="@{cur_ref}">REF</option>
<option value="@{cur_dex}">DEX</option>
<option value="@{cur_tech}">TECH</option>
<option value="@{cur_move}">MOVE</option>
</select>
</div>
<div >
<input type="text" class="sheet-char_inputs sheet-text_input" disabled value="@{skill_score}+@{stat}" name="attr_av" />
</div>
<button type="roll" value="&{template:SkillRoll} {{name=@{character_name}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{skill_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{skill_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{skill_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{skill_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{skill_mods}]]}}" ></button>
</div>
</div>
</fieldset>
<!-- Practical Skills End--------------->
</div>
</div>
<!---------------SKill End ---------->
<br />
<div>
<div class='sheet-2colrow'>
<div style="border:1px solid black;padding: 5px;margin-right:4px;min-height:400px;width:70%" class='sheet-col'>
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-block">Combat</span>
<br />
<br />
<div class='sheet-2colrow'>
<div class='sheet-col'style="width:37%">
<div class="sheet-skill_values">
<span>Roll</span>
<select style="margin-bottom:0px;width:100px;" name="attr_loc_dice">
<option selected value="3d6">3d6</option>
<option selected value="2d6+6">2d6+6</option>
<option selected value="2d6+1">2d6+1</option>
</select>
<button value="&{template:HitLocation} {{name=@{character_name}}} {{Location=[[@{loc_dice}]]}} {{side=[[1d2]]}}" type="roll"></button>
</div>
<table class="sheet-hit-location">
<tr><th>Location</th><th>Effect</th><th>DEF</th><th>Mod.</th></tr>
<tr style="background-color:#ba6f3f"><td>Head</td><td> x2 </td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_head_def" /></td><td><span>6</span></td></tr>
<tr><td>Neck</td><td>x1½ </td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_neck_def" /></td><td><span>6</span></td></tr>
<tr style="background-color:#ba6f3f"><td>Hands/forepaws*</td><td></td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_hands_def" /></td><td><span>4</span></td></tr>
<tr><td>Arms/forelimb*</td><td></td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_arms_def" /></td><td><span>3</span></td></tr>
<tr style="background-color:#ba6f3f"><td>Shoulders*x1</td><td>x1 </td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_shoulders_def" /></td><td><span>3</span></td></tr>
<tr><td>Chest</td><td>x1 </td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_chest_def" /></td><td><span>1</span></td></tr>
<tr style="background-color:#ba6f3f"><td>Stomach</td><td>x1½</td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_stomach_def" /></td><td><span>5</span></td></tr>
<tr><td>Vitals</td><td>x1½ </td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_vitals_armor" /></td><td><span>6</span></td></tr>
<tr style="background-color:#ba6f3f"><td>Thighs*</td><td>x1 </td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_thighs_def" /></td><td><span>3</span></td></tr>
<tr><td>Legs/hindlimb*</td><td></td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_legs_def" /></td><td><span>4</span></td></tr>
<tr style="background-color:#ba6f3f"><td>Feet/hindpaws*</td><td></td><td><input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_feet_def" /></td><td><span>4</span></td></tr>
</table>
<div>
<span title="If not using locations">Armor</span>
<input type="text" class="sheet-text_input" style="width: 100px" name="attr_armor_type">
<span>DEF.</span>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_basic_armor_def" />
</div>
<br />
<br />
</div>
<div class='sheet-col' style="width:56%">
<div>
<span>Basic Action Summary</span>
<div class="sheet-action-table">
<table>
<tr><th>Actions</th><th>Notes</th></tr>
<tr style="background-color:#ba6f3f"><td>Attack</td><td>Make Attack (optionally, add modifiers); autofire attacks count as one Action. Kicks do +1d6 at 1 to hit</td></tr>
<tr><td>Block</td><td>Stops any one attack with a successful Defensive Roll vs the Attackers Attack roll. You attack first next Phase </td></tr>
<tr style="background-color:#ba6f3f"><td>Dodge</td><td>this Phase — adds +3 DV, but you cannot attack</td></tr>
<tr><td>Get Up</td><td>Get up from being prone</td></tr>
<tr style="background-color:#ba6f3f"><td>Grab</td><td> 2 to perform; grab target or gadget; 3 Defense for both</td></tr>
<tr><td>Move </td><td>Move up to your full Move score and perform one other action, except Run or Sprint.</td></tr>
<tr style="background-color:#ba6f3f"><td>Run </td><td>Move up to your full Combat Move (a Run).</td></tr>
<tr><td>Sprint</td><td> Move up to your full Non Combat Move at _ DEX, 0 REF</td></tr>
<tr style="background-color:#ba6f3f"><td>Other Action</td><td>Any single action not otherwise specified, such as reloading a bow, mounting a horse, changing weapons, using a skill, etc.</td></tr>
<tr><td>Throw</td><td>Throw one object (4 if object not made for throwing).</td></tr>
</table>
</div>
</div>
</div>
</div>
<div style="background-color:#ba6f3f;padding:10px 5px 5px 5px;margin-bottom:5px">
<div style="text-align:center;margin-bottom:10px">
<span >
<span style="color:#3f2615">End.</span>
<input type="text" readonly="" class="sheet-combat_inputs sheet-text_input" name="attr_base_end">
-
<input type="text" value="0" class="sheet-combat_inputs sheet-text_input" name="attr_end_loss">
=
<input type="text" value="0" class="sheet-combat_inputs sheet-text_input" readonly name="attr_cur_end">
</span>
<span>
<span style="color:#3f2615;margin-left:10px">Stun</span>
<input type="text" readonly="" class="sheet-combat_inputs sheet-text_input" name="attr_base_stun">
-
<input type="text" value="0" class="sheet-combat_inputs sheet-text_input" name="attr_stun_damage">
=
<input type="text" value="0" class="sheet-combat_inputs sheet-text_input" readonly name="attr_cur_stun">
</span>
<span>
<span style="color:#3f2615;margin-left:10px">Hits</span>
<input type="text" readonly="" class="sheet-combat_inputs sheet-text_input" name="attr_base_hits">
-
<input type="text" value="0" class="sheet-combat_inputs sheet-text_input" name="attr_hits_damage">
=
<input type="text" value="0" class="sheet-combat_inputs sheet-text_input" readonly name="attr_cur_hits">
<input type="text" readonly="" class="sheet-combat_inputs sheet-text_input" style="border-bottom:none;width:100px;color:#3f2615" value="" readonly name="attr_impairment">
<input type="text" style="display:none" value="0" readonly name="attr_imp_value">
</span>
</div>
</div>
<div style="background-color:#ba6f3f;padding:10px 5px 5px 5px">
<div style="text-align:center;margin-bottom:10px">
<span>
<span>Initiative</span>
<button style="display:inline block" type="roll" value="/em @{character_name} Rolls Initiative [[3d6+@{cur_ref}+?{Skill Score|0} &{tracker}]]"></button>
</span>
<span style="margin-left:10px;color:#3f2615">Ref. Mod.</span><input type="text" class="sheet-combat_inputs sheet-text_input" value="0" name="attr_ref_mod" />
<span style="margin-left:10px;color:#3f2615">Dex. Mod.</span><input type="text" class="sheet-combat_inputs sheet-text_input" value="0" name="attr_dex_mod" />
<span style="margin-left:10px;color:#3f2615">Other Mods.</span><input type="text" class="sheet-combat_inputs sheet-text_input" value="0" name="attr_other_mods" />
</div>
</div>
<br />
<br />
<div >
<span class="sheet-cpto_header">Melee</span>
<br />
<span style="margin-left:0">Type</span>
<span style="margin-left:76px">Skill</span>
<span style="margin-left:35px">Score</span>
<span style="margin-left:-1px">STR</span>
<span style="margin-left:-2px">WA</span>
<span style="margin-left:4px">AV</span>
<span style="margin-left:39px">DC</span>
<span style="margin-left:8px">DC+</span>
<span style="margin-left:29px">DV</span>
<span style="margin-left:37px">End</span>
<span style="margin-left:5px">Rng.</span>
<fieldset class="repeating_melee" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:91px" class="sheet-text_input" name="attr_meleeName" />
<select style="margin-bottom:0px; width:86px; font-size:x-small" name="attr_skill_name">
<option value="Atemi-waza">Atemi-waza</option>
<option value="Axes">Axes</option>
<option value="Chains">Chains</option>
<option value="Fans">Fans</option>
<option value="Firearms">Firearms</option>
<option value="Flails">Flails</option>
<option value="Jitte">Jitte</option>
<option value="Kama">Kama</option>
<option value="Knives">Knives</option>
<option value="Nets">Nets</option>
<option value="Pipe">Pipe</option>
<option value="Polearms">Polearms</option>
<option value="Swords">Swords</option>
<option value="Two swords">Two swords</option>
<option value="Other">Other</option>
</select>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_skill" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_min_str" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_wa" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_av" />
<button type="roll" value="&{template:ActionRoll} {{name=@{character_name}}} {{action=Attacks}}{{Weapon=@{meleeName}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{mods=@{other_mods}}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{other_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{other_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{other_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{other_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{other_mods}]]}}" ></button>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_dc" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_dcMod" />
<button type="roll" value="&{template:Damage} {{name=@{character_name}}} {{Weapon=@{meleeName}}} {{Damage=[[[[@{dc}+@{dcMod}]]d6]]}} {{MaxDamage=[[[[@{dc}+@{dcMod}]]*6]]}} "></button>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_dv" />
<button type="roll" value="&{template:ActionRoll} {{Weapon=@{meleeName}}} {{name=@{character_name}}} {{Skill=@{skill_name}}} {{action=Defends}} {{DV=[[@{dv}]]}} {{mods=@{other_mods}}} {{ActionTotal=[[[[3d6]][Roll]+@{dv}[DV]+@{other_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{other_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{other_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{other_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{other_mods}]]}}" ></button>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_end" />
<select type="text" style="margin-bottom:0px;width:40px;font-size:x-small" name="attr_rng" >
<option value="S" selected>S</option>
<option value="M" >M</option>
<option value="L" >L</option>
</select>
</div>
</fieldset>
</div>
<br />
<span class="sheet-cpto_header">Bows</span>
<br />
<span style="margin-left:0">Type</span>
<span title="Archery" style="margin-left:59px">Score</span>
<!--<span style="margin-left:-1px">STR</span>-->
<span style="margin-left:11px">Arrow</span>
<span style="margin-left:19px">WA</span>
<span style="margin-left:6px">AV</span>
<span style="margin-left:39px">DC</span>
<!--<span style="margin-left:34px">DV</span>-->
<span style="margin-left:41px">Rof</span>
<span style="margin-left:3px">End</span>
<span style="margin-left:11px">Rng.</span>
<span style="margin-left:11px">Notes</span>
<fieldset class="repeating_bows" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<!--<input type="text" style="width:100px" class="sheet-text_input" name="attr_missleName" />-->
<select style="margin-bottom:0px; width:81px; font-size:x-small" value="Hankyû" name="attr_bow_type">
<option selected value="Hankyû">Hankyû</option>
<option value="YumiMR3">Yumi MR3</option>
<option value="YumiMR4">Yumi MR4</option>
<option value="YumiMR5">Yumi MR5</option>
<option value="YumiMR6">Yumi MR6</option>
<option value="YumiMR7">Yumi MR7</option>
</select>
<input style="display:none" value="Archery" name="attr_skill_name">
<input type="text" class="sheet-char_inputs sheet-text_input" title="Archery" value="0" name="attr_score" />
<!--<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_min_str" />-->
<select style="margin-bottom:0px; width:78px; font-size:x-small" name="attr_arrow_type">
<option value="Yanagi-ha" selected>Yanagi-ha</option>
<option value="Karimata">Karimata</option>
<option value="Hikime">Hikime</option>
<option value="Togari-ya">Togari-ya</option>
<option value="Watakushi">Watakushi</option>
<option value="Ki-hoko">Ki-hoko</option>
<option value="Kuri-ya">Kuri-ya</option>
<option value="Makagoya">Makagoya</option>
<option value="Matoya">Matoya</option>
</select>
<input type="text" class="sheet-char_inputs sheet-text_input" readonly value="-1" name="attr_wa" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_av" />
<button type="roll" value="&{template:ActionRoll} {{name=@{character_name}}} {{action=Attacks}} {{Weapon=@{bow_type}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{mods=@{other_mods}}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{other_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{other_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{other_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{other_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{other_mods}]]}} " ></button>
<!--<input type="text" style="display:none" value="3" name="attr_basedc" />-->
<input type="text" style="display:none" value="3" name="attr_arrow_dcmod" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="3" name="attr_dc" />
<button type="roll" value="&{template:Damage} {{name=@{character_name}}} {{Weapon=@{bow_type}}} {{Damage=[[@{dc}d6]]}} {{MaxDamage=[[@{dc}*6]]}}"></button>
<!-- <input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_dv" />
<button type="roll" ></button>-->
<input type="text" class="sheet-char_inputs sheet-text_input" value="1/2" readonly name="attr_rof" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_end" />
<input type="text" class="sheet-text_input" style="width:50px" value="60M" name="attr_range" />
<input type="text" class="sheet-text_input" style="width:98px" value="Willow-leaf" name="attr_notes" />
</div>
</fieldset>
<br />
<span class="sheet-cpto_header">Other Missle</span>
<br />
<span style="margin-left:0">Type</span>
<span style="margin-left:76px">Skill</span>
<span style="margin-left:43px">Score</span>
<span style="margin-left:-1px">STR</span>
<span style="margin-left:-1px">WA</span>
<span style="margin-left:9px">AV</span>
<span style="margin-left:39px">DC</span>
<span style="margin-left:2px">DC+</span>
<span style="margin-left:26px">End</span>
<span style="margin-left:4px">Rng. & Notes</span>
<fieldset class="repeating_missle" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:100px" class="sheet-text_input" name="attr_missleName" />
<select style="margin-bottom:0px; width:86px; font-size:x-small" name="attr_skill_name">
<option value="Throwing">Throwing</option>
<option value="Firearms">Firearms</option>
</select>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_skill" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_min_str" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_wa" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_av" />
<button type="roll" value="&{template:ActionRoll} {{name=@{character_name}}} {{action=Attacks}} {{Weapon=@{missleName}}} {{Skill=@{skill_name}}} {{AV=[[@{av}]]}} {{ActionTotal=[[[[3d6]][Roll]+@{av}[AV]+@{other_mods}[Mods]]]}} {{crit=[[[[18]]+@{av}+@{other_mods}]]}} {{fumble1=[[[[3]]+@{av}+@{other_mods}]]}} {{fumble2=[[[[4]]+@{av}+@{other_mods}]]}} {{fumble3=[[[[5]]+@{av}+@{other_mods}]]}}" ></button>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_dc" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" name="attr_dcMod" />
<button type="roll" value="&{template:Damage} {{name=@{character_name}}} {{Weapon=@{missleName}}} {{Damage=[[[[@{dc}+@{dcMod}]]d6]]}} {{MaxDamage=[[[[@{dc}+@{dcMod}]]*6]]}} "></button>
<input type="text" class="sheet-char_inputs sheet-text_input" value="0" readonly name="attr_end" />
<input type="text" class="sheet-char_inputs sheet-text_input" value="" style="width:100px;" name="attr_rngNotes" />
</div>
</fieldset>
<br />
</div>
<div style="border:1px solid black;padding: 5px;margin-right:4px;min-height:907px;width:25%" class='sheet-col'>
<div >
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">Equipment</span>
<br />
<br />
<p style="font-weight:bold; display:inline-block">*</p>
<p style="font-weight:bold; width:73%; display:inline-block;margin-left:13px">Item</p>
<p style="font-weight:bold;text-align:center;width: 10% ;display:inline-block">Wt.</p>
<fieldset class="repeating_equipment" style="margin-top:-20px;">
<input type="checkbox" value="1" name="attr_carried"/>
<input class="sheet-text_input sheet-eqpText" style="width: 75% ;" type="text" name="attr_equipment_type"/>
<input class="sheet-text_input sheet-char_inputs" type="text" name="attr_equipment_weight"/>
</fieldset>
<br />
<div>
<span>Max Carry</span>
<input class="sheet-text_input sheet-char_inputs" type="text" name="attr_carry_max"/>
<span style="margin-left:8px">Total</span>
<input class="sheet-text_input sheet-char_inputs" type="text" name="attr_carry_total"/>
</div>
<span>*Carried or Worn</span>
</div>
</div>
</div>
</div>
</div><!-- Tab 1 end -->
<div class="sheet-tab-content sheet-tab2"> <!--- Tab 2 start -->
<div class='sheet-2colrow'>
<div class="sheet-col" style="width:35%">
<div style="display:inline-block;width:100%;height:139px;border: 1px solid black">
&nbsp;
</div>
</div>
<div class="sheet-col" style="width:60%">
<table class="sheet-info_table">
<tr>
<td class="sheet-info_labels"><b>Ryū</b></td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr__ryu" /></td>
</tr>
<tr>
<td class="sheet-info_labels">Master</td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr__master" /></td>
</tr>
<tr>
<td class="sheet-info_labels">Home Province</td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr_character_home" /></td>
</tr>
<tr>
<td class="sheet-info_labels">(ML) Position</td><td><input class="sheet-text_input sheet-info_input" type="text" name="attr__position" /></td>
</tr>
<tr>
<td style="width:18%" class="sheet-info_labels">Duties</td><td style="width:80%"><input class="sheet-text_input sheet-info_input" type="text" name="attr__duties" /></td>
</tr>
</table>
</div>
</div>
<br />
<div class='sheet-2colrow'>
<div style="border:1px solid black;padding: 5px;margin-right:4px;min-height:400px;width:70%" class='sheet-col'>
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">CHARACTER BACKGROUND / HISTORY</span>
<textarea name="attr_background" style="min-height:200px;width:95%">
</textarea>
<br />
<br />
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">CHARACTER REPUTATION, RENOWN & HONOR</span>
<br />
<span style="margin-left:0">Event</span>
<span style="margin-left:62px">When Occurred</span>
<span style="margin-left:0px">Outcome/reputation gained</span>
<fieldset class="repeating_repRenownHonor" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:100px" class="sheet-text_input" name="attr_event" />
<input type="text" style="width:100px" class="sheet-text_input" name="attr_when" />
<input type="text" style="width:355px" class="sheet-text_input" name="attr_honor" />
</div>
</fieldset>
<br />
<br />
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">PRAYERS</span>
<br />
<span style="margin-left:0">Prayer</span>
<span style="margin-left:62px">LoS</span>
<span style="margin-left:0px">Notes</span>
<fieldset class="repeating_prayers" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:100px" class="sheet-text_input" name="attr_prayer" />
<input type="text" class="sheet-char_inputs sheet-text_input" name="attr_los" />
<input type="text" style="width:428px" class="sheet-text_input" name="attr_notes" />
</div>
</fieldset>
<br />
<br />
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">NOTABLE PERSONALITIES</span>
<br />
<span style="margin-left:0">Name</span>
<span style="margin-left:0px">Notes</span>
<fieldset class="repeating_personalites" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:100px" class="sheet-text_input" name="attr_name" />
<input type="text" style="width:456px" class="sheet-text_input" name="attr_notes" />
</div>
</fieldset>
<br />
<br />
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">GOOD / BAD KARMA</span>
<br />
<span style="margin-left:0">Pts.</span>
<span style="margin-left:3px">Good/Bad</span>
<span style="margin-left:0px">Event</span>
<fieldset class="repeating_karma" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" class="sheet-char_inputs sheet-text_input" name="attr_pts" />
<select style="margin-bottom:0px;width:65px" class="sheet-wpn-fontSz" name="attr_goodBad">
<option value="Good" selected>Good</option>
<option value="Good" >Bad</option>
</select>
<input type="text" style="width:464px" class="sheet-text_input" name="attr_event" />
</div>
</fieldset>
<br />
<br />
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">GOALS</span>
<br />
<span style="margin-left:0">Done?</span>
<span style="margin-left:10px">Goal</span>
<fieldset class="repeating_goals" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="checkbox" class="sheet-char_inputs sheet-text_input" style="margin-left:6px" name="attr_done" />
<input type="text" style="margin-left:22px;width:503px" class="sheet-text_input" name="attr_goal" />
</div>
</fieldset>
</div>
<div style="border:1px solid black;padding: 5px;margin-right:4px;min-height:907px;width:25%" class='sheet-col'>
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">Allies & Enemies</span>
<br />
<fieldset class="repeating_alliesEnemies" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:96%" class="sheet-text_input" name="attr_note" />
</div>
</fieldset>
<br />
<br />
<span class="sheet-cpto_header" style="text-align: center;width: 100%;display: inline-bloc">Contacts</span>
<br />
<fieldset class="repeating_alliesEnemies" >
<div class="sheet-skill_values sheet-wpn-fontSz">
<input type="text" style="width:96%" class="sheet-text_input" name="attr_contacts" />
</div>
</fieldset>
<br />
<br />
</div>
</div>
</div><!-- Tab 2 end -->
</div>
<script type="text/worker">
function getId(){
const sattrs = {};
const createdIDs = [];
var retId = 0;
if (createdIDs.length==0){
retId = generateRowID();
createdIDs.push(retId);
}
var checkit = true;
while (checkit==true) {
let newID = generateRowID();
console.log("Newid "+newID);
if (!createdIDs.includes(newID)) {
newrowid = newID;
console.log("newrowid "+newID);
createdIDs.push(newrowid);
checkit=false;
}
}
retId = newrowid;
return retId;
}
function incSkill(section,skill,value,stat){
getSectionIDs(section, function(idArray) {
console.log("wtf "+section+" !!!!!!!!!!!!!!!!!!!!!!!");
var found = false;
if (idArray.length > 0) {
var fields = [];
_.each(idArray, function(currentID) {
fields.push(section+"_" + currentID + "_skill_name");
fields.push(section+"_" + currentID + "_skill_score");
});
getAttrs(fields, function(values) {
var update = {};
_.each(idArray, function(currentID, i) {
var curSkill = values[section+"_" + idArray[i] + "_skill_name"];
var curScore = parseInt(values[section+"_" + idArray[i] + "_skill_score"]);
if (curSkill === skill){
update[section+"_"+idArray[i]+"_skill_score"] = curScore+parseInt(value);
found = true;
}
});
if (found) {
console.log(skill+" update !!!!!!!!!!!");
setAttrs(update);
} else {
console.log(skill+""+section+" add !!!!!!!!!!!");
addSkill(section,skill,value,stat);
}
});
}
else{
addSkill(section,skill,value,stat);
}
});
}
function addSkill(section,skillName,skillScore,stat){
var id=getId();
var setObj = {};
setObj[section+"_"+id+'_skill_name']=skillName;
setAttrs(setObj);
setObj[section+"_"+id+'_skill_score']=skillScore;
setAttrs(setObj);
setObj[section+"_"+id+'_stat']=stat;
setAttrs(setObj);
}
function addPerk(section,perk,cost){
var id=getId();
var setObj = {};
setObj[section+id+'_perk']=perk;
setAttrs(setObj);
setObj[section+id+'_cost']=cost;
setAttrs(setObj);
}
function addComp(section,complication,score){
var id=getId();
var setObj = {};
setObj[section+id+'_complication']=complication;
setAttrs(setObj);
setObj[section+id+'_score']=score;
setAttrs(setObj);
}
function addTalent(section,talent,cost){
var id=getId();
var setObj = {};
setObj[section+id+'_talent']=talent;
setAttrs(setObj);
setObj[section+id+'_cost']=cost;
setAttrs(setObj);
}
function addEqp(section,item,wt){
var id=getId();
var setObj = {};
setObj[section+id+'_equipment_type']=item;
setObj[section+id+'_equipment_weight']=wt;
setAttrs(setObj);
}
function setChar(stat,value){
var setObj = {};
setObj[stat]=value;
setAttrs(setObj,{quiet: false});
}
function addKuge(){
//skills
addSkill("repeating_PracticalSkills","Bureaucracy","3","@{cur_pre}");
addSkill("repeating_PracticalSkills","High Society","3","@{cur_pre}");
addSkill("repeating_PracticalSkills","Calligraphy","3","@{cur_aes}");
//perks
addPerk("repeating_perks_","Membership: ML 4 in Imperial Court.","16");
//Complications
addComp("repeating_complications_","Vow: Fealty to Imperial Court, risk bodily harm (Frequent,Extreme) ","-20");
//equipment
addEqp("repeating_Equipment_","Courtly robes (Abv Avg)","3");
addEqp("repeating_Equipment_","belt (obi) (Abv Avg)","0.5");
addEqp("repeating_Equipment_","loincloths (fundoshi) (Abv Avg)","0.2");
addEqp("repeating_Equipment_","loincloths (fundoshi) (Abv Avg)","0.2");
addEqp("repeating_Equipment_","kuge-style eboshi (lacquered cap) (Abv Avg)","0.5");
addEqp("repeating_Equipment_","folding fan (Abv Avg)","0.1");
addEqp("repeating_Equipment_","parasol (Abv Avg)","0");
addEqp("repeating_Equipment_","socks(Abv Avg)","0.1");
addEqp("repeating_Equipment_","socks(Abv Avg)","0.1");
addEqp("repeating_Equipment_","sandals(Abv Avg)","0.1");
addEqp("repeating_Equipment_","sandals(Abv Avg)","0.1");
addEqp("repeating_Equipment_","clogs (geta) (Abv Avg)","0.5");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
}
function addBuke(){
//skills
addSkill("repeating_PracticalSkills","Archery or Firearms (players choice)","2","@{cur_ref}");
addSkill("repeating_PracticalSkills","Armory or Bowyer (players choice)","1","@{cur_tech}");
addSkill("repeating_PracticalSkills","Calligraphy","2","@{cur_aes}");
addSkill("repeating_PracticalSkills","Heraldry","2","@{cur_int}");
addSkill("repeating_MartialSkills","Knives","2","@{cur_ref}");
addSkill("repeating_MartialSkills","Polearms (choose specialty)","2","@{cur_ref}");
addSkill("repeating_PracticalSkills","Riding","2","@{cur_dex}");
addSkill("repeating_MartialSkills","Swords","2","@{cur_ref}");
//perks
//None
//Complications
addComp("repeating_complications_","Code of Honor: Bushidô, risk life and limb (Frequent, Extreme). ","-25");
//equipment
addEqp("repeating_Equipment_","Kimono (Avg)","2");
addEqp("repeating_Equipment_","belt (obi) (Avg)","0.5");
addEqp("repeating_Equipment_","cloth trousers (hakama) (Avg)","1");
addEqp("repeating_Equipment_","jacket (haori) (Avg)","1");
addEqp("repeating_Equipment_","loincloth (fundoshi) (Avg)","0.2");
addEqp("repeating_Equipment_","umbrella (kesa) or raincoat (mino; made of straw) (Avg)","0");
addEqp("repeating_Equipment_","socks(Avg)","0.1");
addEqp("repeating_Equipment_","socks(Avg)","0.1");
addEqp("repeating_Equipment_","sandals (waraji)(Avg)","0.1");
addEqp("repeating_Equipment_","1 pair clogs (geta)(Avg)","0.5");
addEqp("repeating_Equipment_","Katana(Avg)","2");
addEqp("repeating_Equipment_","Wakizashi(Avg)","1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
}
function addBonge(){
//skills
addSkill("repeating_PracticalSkills","Choice of Farming or Fishing","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Dance: Popular Dance","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Shogi or Go","2","@{cur_int}");
//perks
//None
//Complications
addComp("repeating_complications_","Oppressed: Bonge caste (Constant, Minor)","-4");
addComp("repeating_complications_","Poverty: Poor, bonge (Frequent, Minor)","-2");
//equipment
addEqp("repeating_Equipment_","Kimono (Blw Avg)","2");
addEqp("repeating_Equipment_","belt (obi) (Blw Avg)","0.5");
addEqp("repeating_Equipment_","commoner trousers (kobakama) (Blw Avg)","1");
addEqp("repeating_Equipment_","loincloth (fundoshi) (Blw Avg)","0.2");
addEqp("repeating_Equipment_","socks(Blw Avg)","0.1");
addEqp("repeating_Equipment_","sandals (waraji)(Blw Avg)","0.1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
}
function addHinin(){
//skills
addSkill("repeating_PracticalSkills","One craft skill (choice)","3","@{cur_tech}");
addSkill("repeating_PracticalSkills","Dance (Popular Dance)","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Shogi or Go","2","@{cur_int}");
//perks
//None
//Complications
addComp("repeating_complications_","Oppressed: Hinin, outcast (Constant, Minor)","-6");
addComp("repeating_complications_","Poverty: Dirt broke, hinin (Frequent, Minor)","-4");
//equipment
addEqp("repeating_Equipment_","Kimono (Poor)","2");
addEqp("repeating_Equipment_","belt (obi) (Poor)","0.5");
addEqp("repeating_Equipment_","commoner trousers (kobakama) (Poor)","1");
addEqp("repeating_Equipment_","loincloth (fundoshi) (Poor)","0.2");
addEqp("repeating_Equipment_","socks(Poor)","0.1");
addEqp("repeating_Equipment_","sandals (waraji)(Poor)","0.1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
}
function addSojo(){
setChar("int","3");
setChar("will","4");
setChar("pre","3");
setChar("aes","4");
setChar("pie","4");
setChar("kao","3");
setChar("str","2");
setChar("con","2");
setChar("body","3");
setChar("Tech","3");
setChar("ref","3");
setChar("dex","3");
setChar("move","3");
setAttrs({base_honor:"30"});
incSkill("repeating_practicalskills","Buddhism",3,"@{cur_int}");
incSkill("repeating_practicalskills","Bureaucracy",2,"@{cur_pre}");
addSkill("repeating_ClassicalSkills","Classical Arts (choice)","2","@{cur_aes}");
addSkill("repeating_ClassicalSkills","Classical Arts (choice)","2","@{cur_aes}");
addSkill("repeating_practicalskills","Language (Chinese)","3","@{cur_int}");
incSkill("repeating_ClassicalSkills","Classical Literature (Chinese)","3","@{cur_aes}");
incSkill("repeating_practicalskills","Diplomacy","3","@{cur_pre}");
incSkill("repeating_practicalskills","Leadership","2","@{cur_pre}");
incSkill("repeating_practicalskills","Oratory","2","@{cur_pre}");
incSkill("repeating_practicalskills","Rhetoric","2","@{cur_pre}");
incSkill("repeating_practicalskills","Teaching","2","@{cur_pre}");
addComp("repeating_complications_","Honest: Risk bodily harm (Const, Maj) ","-5");
addComp("repeating_complications_","Poverty: poor (Const, Min)","-4");
addComp("repeating_complications_","Public Figure: Head of temple (Const,Maj)","-12");
addComp("repeating_complications_","Vow: Buddhist priestly vows, risk life & limb (Const, Maj)","-15");
addPerk("repeating_perks_","Membership: ML 5 in sect","15");
addPerk("repeating_perks_","Renown","3");
addTalent("repeating_talents_","Mystic (Bukkyô)","5");
addEqp("repeating_Equipment_","Buddhist robes and kesa (Above average)","1");
addEqp("repeating_Equipment_","Buddhist robes and kesa (Above average)","1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function addShokunin(){
setAttrs({int:"3",will:"3",pre:"2",aes:"3",pie:"3",kao:"2",str:"3",con:"3",body:"3",tech:"5",ref:"3",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"20"});
addSkill("repeating_ClassicalSkills","Classical Art","2","@{cur_aes}");
addSkill("repeating_practicalskills","Practical Skill","2","@{cur_int}");
addSkill("repeating_practicalskills","Practical Skill","2","@{cur_int}");
addSkill("repeating_practicalskills","Business","2","@{cur_int}");
addSkill("repeating_practicalskills","Streetwise","2","@{cur_pre}");
addSkill("repeating_practicalskills","Trading","2","@{cur_pre}");
addComp("repeating_complications_","Public Figure: Local artisan (Frequent, Minor)","-3");
addPerk("repeating_perks_","Contact: Local merchant","2");
addPerk("repeating_perks_","Renown (Local artisan)" ,"1");
addTalent("repeating_talents_","Craftsman","3");
addEqp("repeating_Equipment_","artisan/craftsmans kit","0");
addEqp("repeating_Equipment_","Cloth apron","0");
addEqp("repeating_Equipment_","Wrapping cloth","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function addAshigaru(){
setAttrs({int:"2",will:"3",pre:"3",aes:"2",pie:"3",kao:"3",str:"4",con:"3",body:"4",tech:"3",ref:"4",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
incSkill("repeating_practicalskills","Expert (Clan officers)","2","@{cur_int}");
incSkill("repeating_martialskills","Firearms","3","@{cur_ref}");
incSkill("repeating_MartialSkills","Forced march","3","@{cur_con}");
incSkill("repeating_practicalskills","Gambling","1","@{cur_tech}");
incSkill("repeating_practicalskills","Heraldry","1","@{cur_int}");
incSkill("repeating_MartialSkills","Polearm(Lances)","3","@{cur_ref}");
incSkill("repeating_practicalskills","Local Expert (Home Province)","2","@{cur_int}");
incSkill("repeating_MartialSkills","Strategy (Battles)","1","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","2","@{cur_ref}");
addComp("repeating_complications_","Coward (minor)","-1");
addComp("repeating_complications_","Vow: Fealty to a daimyô, risk bodily harm (Infrequent,Extreme)","-10");
addPerk("repeating_perks_","ML 1 in samurai clan ","3");
addEqp("repeating_Equipment_","Lance (yari)","1.5");
addEqp("repeating_Equipment_","katana or wakizashi","0");
addEqp("repeating_Equipment_","sword cleaning kit","1");
addEqp("repeating_Equipment_","Bamboo water bottle","1");
addEqp("repeating_Equipment_","Jingasa, steel, munition Def:12 Loc:3-4","12");
addEqp("repeating_Equipment_","Dô: folding DEF:6 Loc:10-12","2");
addEqp("repeating_Equipment_","Kote: Kote: full splint, no mail DEF:6 Loc:7-8","5");
addEqp("repeating_Equipment_","Haidate: Kote: full splint, no mail DEF:6 Loc:13-14 attacks at -1 Move","8");
addEqp("repeating_Equipment_","Suneate: Kote: full splint, no mail DEF:6 Loc:14-16 attacks at -1 Move ","12");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function addAkuto(){
setAttrs({int:"3",will:"3",pre:"4",aes:"2",pie:"2",kao:"2",str:"4",con:"3",body:"4",tech:"3",ref:"4",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"20"});
addPerk("repeating_perks_","ML 3 in criminal gang","6");
addComp("repeating_complications_","Enemy: Local authorities (more powerful, limited area, capture)","-10");
addComp("repeating_complications_","Lecherous: Risk bodily harm (frequent, major)","-8");
incSkill("repeating_practicalskills","Athletics","1","@{cur_dex}");
incSkill("repeating_practicalskills","Climbing","1","@{cur_dex}");
incSkill("repeating_ForbiddenSkills","Disguise","1","@{cur_tech}");
incSkill("repeating_practicalskills","Interrogation","1","@{cur_tech}");
incSkill("repeating_MartialSkills","Knives","2","@{cur_ref}");
incSkill("repeating_practicalskills","Local Expert (operating area)","3","@{cur_int}");
incSkill("repeating_practicalskills","Persuasion (intimidation)","3","@{cur_pre}");
incSkill("repeating_practicalskills","Streetwise","3","@{cur_pre}");
incSkill("repeating_MartialSkills","Polearm(Lances)","2","@{cur_ref}");
incSkill("repeating_practicalskills","Stealth","1","@{cur_dex}");
incSkill("repeating_practicalskills","Survival","2","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","2","@{cur_ref}");
addEqp("repeating_Equipment_","Lance (yari) or Katana","0");
addEqp("repeating_Equipment_","provision bag","0.1");
addEqp("repeating_Equipment_","travelers rations (3 days worth)","0");
addEqp("repeating_Equipment_","Bamboo water bottle","1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function addSo(){
setAttrs({int:"3",will:"4",pre:"3",aes:"3",pie:"5",kao:"3",str:"2",con:"3",body:"2",tech:"3",ref:"3",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 2 in Buddhist sect ","3");
addPerk("repeating_perks_","Renown: Local priest","1");
addTalent("repeating_talents_","Mystic (Bukkyô)","5");
addComp("repeating_complications_","Poverty: poor (Constant, Minor) ","-4");
addComp("repeating_complications_","Public Figure: Buddhist priest (frequent, major) ","-7");
addComp("repeating_complications_","Vow: Buddhist priestly vows, risk life & limb (constant, major)","-15");
incSkill("repeating_practicalskills","Buddhism","3","@{cur_int}");
incSkill("repeating_ClassicalSkills","Calligraphy","3","@{cur_aes}");
incSkill("repeating_ClassicalSkills","Classical Art (choice)","2","@{cur_aes}");
incSkill("repeating_ClassicalSkills","Classical Art (choice)","2","@{cur_aes}");
incSkill("repeating_ClassicalSkills","Classical Literature (Chinese)","3","@{cur_int}");
incSkill("repeating_practicalskills","Diplomacy","2","@{cur_pre}");
incSkill("repeating_practicalskills","Language: (Chinese inc kanji)","2","@{cur_int}");
incSkill("repeating_practicalskills","Meditation","2","@{cur_will}");
incSkill("repeating_practicalskills","Oratory","2","@{cur_pre}");
incSkill("repeating_practicalskills","Persuasion","2","@{cur_pre}");
incSkill("repeating_practicalskills","Rhetoric","2","@{cur_pre}");
incSkill("repeating_practicalskills","Teaching","2","@{cur_pre}");
addEqp("repeating_Equipment_","Buddhist robes and kesa (Average)","1");
addEqp("repeating_Equipment_","Buddhist robes and kesa (Average)","1");
addEqp("repeating_Equipment_"," 'seven-ring' staff","2");
addEqp("repeating_Equipment_","Buddhist rosary.","0.1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function KugeCourtier(){
console.log("adding Kuge Courtier !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"4",aes:"3",pie:"3",kao:"4",str:"3",con:"3",body:"3",tech:"2",ref:"3",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"40"});
addPerk("repeating_perks_","Contact (Major daimyô) ,","7");
addPerk("repeating_perks_","Debt Owed (by minor court official)","5");
addPerk("repeating_perks_","ML in Imperial Court ","8");
addComp("repeating_complications_","Public Figure: Kuge (frequent, extreme) ,","-20");
addComp("repeating_complications_","Sense of Duty: to Emperor (freq, maj)","-5");
incSkill("repeating_practicalskills","Bureaucracy","3","@{cur_pre}");
incSkill("repeating_ClassicalSkills","Bribery","2","@{cur_pre}");
incSkill("repeating_practicalskills","Diplomacy","2","@{cur_pre}");
incSkill("repeating_practicalskills","Flattery","2","@{cur_pre}");
incSkill("repeating_practicalskills","High Society","2","@{cur_pre}");
incSkill("repeating_ClassicalSkills","Classical Art (choice)","2","@{cur_aes}");
incSkill("repeating_ClassicalSkills","Classical Art (choice)","2","@{cur_aes}");
addEqp("repeating_Equipment_","Tachi (ceremonial sword)","2");
addEqp("repeating_Equipment_","Tanto","0.5");
addEqp("repeating_Equipment_","ceremonial court robe (Above Average)","1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function SamCourtier(){
console.log("adding Sam Courtier !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"4",aes:"3",pie:"3",kao:"4",str:"3",con:"3",body:"3",tech:"2",ref:"3",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"40"});
addPerk("repeating_perks_","Contact (Major daimyô)","7");
addPerk("repeating_perks_","Debt Owed (by minor court official)","5");
addPerk("repeating_perks_","ML 6 in samurai clan","18");
addPerk("repeating_perks_","Renown: Known far andwide","6");
addComp("repeating_complications_","Public Figure: High-ranking court official (Frequent, Major)","-10");
addComp("repeating_complications_","Public Figure: Buddhist priest (frequent, major) ","-7");
addComp("repeating_complications_","Vow: Fealty to daimyô, risk life & limb (Frequent, Extreme)","-25");
incSkill("repeating_practicalskills","Bureaucracy","2","@{cur_pre}");
incSkill("repeating_ClassicalSkills","Bribery","2","@{cur_pre}");
incSkill("repeating_practicalskills","Diplomacy","1","@{cur_pre}");
incSkill("repeating_practicalskills","Flattery","2","@{cur_pre}");
incSkill("repeating_practicalskills","High Society","2","@{cur_pre}");
addEqp("repeating_Equipment_","Tachi (ceremonial sword)","2");
addEqp("repeating_Equipment_","court vest (kataginu)","1");
addEqp("repeating_Equipment_","Kabuto: special shape (court cap) DEF:12 Locs:35","12");
addEqp("repeating_Equipment_","Dô: clamshell, shotproof DEF:16 Loc:10-12 -1 Move","48");
addEqp("repeating_Equipment_","Kote: plates and mail DEF:11 Loc:7-8","5");
addEqp("repeating_Equipment_","Sode: lames, sparse lacing DEF:11 Loc:9 attacks at -1 Move","3");
addEqp("repeating_Equipment_","Haidate: splint and mail DEF:12 Loc:13-14 attacks at -1 Move","8");
addEqp("repeating_Equipment_","Suneate: splint and mail DEF:12 Loc:14-16 attacks at -1 Move ","12");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Executioner(){
console.log("adding Executioner !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"3",pre:"3",aes:"3",pie:"3",kao:"2",str:"4",con:"3",body:"3",tech:"3",ref:"4",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 1 in samurai clan.","2");
addComp("repeating_complications_","Public Figure: High-ranking court official (Frequent, Major)","-10");
incSkill("repeating_MartialSkills","Binding","4","@{cur_tech}");
incSkill("repeating_practicalskills","Interogation","3","@{cur_tech}");
incSkill("repeating_MartialSkills","Jujutsu","2","@{cur_ref}");
incSkill("repeating_MartialSkills","Knives","2","@{cur_ref}");
incSkill("repeating_MartialSkills","Polearms (Lances)","3","@{cur_ref}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
addEqp("repeating_Equipment_","Lance (yari),","1.5");
addEqp("repeating_Equipment_","cloth headband","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Farmer(){
setAttrs({int:"2",will:"2",pre:"3",aes:"3",pie:"3",kao:"3",str:"3",con:"4",body:"3",tech:"4",ref:"3",dex:"4",move:"3"},{quiet: false});
//attr_base_honor
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 2 in farming village","2");
addComp("repeating_complications_","Coward: avoids danger whenever possible (frequent, minor)","-3");
addComp("repeating_complications_","Poverty: poor (constant, minor) ","-4");
incSkill("repeating_practicalskills","Farming","3","@{cur_int}");
incSkill("repeating_practicalskills","Folklore","2","@{cur_int}");
incSkill("repeating_practicalskills","Herbalism or Survival","2","@{cur_int}");
incSkill("repeating_practicalskills","Hunting","2","@{cur_tech}");
incSkill("repeating_MartialSkills","Polearms (Staves)","2","@{cur_ref}");
incSkill("repeating_practicalskills","Silkworm Raising or Sake Brewing","2","@{cur_int}");
addEqp("repeating_Equipment_","Bô or tantô","0");
addEqp("repeating_Equipment_","wrapping cloth","0");
addEqp("repeating_Equipment_","Bamboo water bottle","1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Kensei(){
console.log("adding Kensei !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"4",pre:"3",aes:"3",pie:"3",kao:"3",str:"3",con:"3",body:"3",tech:"3",ref:"4",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","Renown: Expert swordsman","4");
addTalent("repeating_talents_","Danger Sense ","20");
addComp("repeating_complications_","Code of Honor: The Way of the Sword, risk life and limb (frequent, extreme) ","-25");
addComp("repeating_complications_","Public Figure: expert swordsman (frequent, minor)","-3");
addComp("repeating_complications_","Vow: to perfect your skill, risk life and limb (frequent, major)","-12");
incSkill("repeating_practicalskills","Focus Ki","3","@{cur_will}");
incSkill("repeating_MartialSkills","Iai-jutsu","3","@{cur_ref}");
incSkill("repeating_practicalskills","Meditation","2","@{cur_will}");
incSkill("repeating_practicalskills","Sword Polishing","2","@{cur_tech}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
incSkill("repeating_MartialSkills","Two Swords or Arrow Cutting","3","@{cur_ref}");
addEqp("repeating_Equipment_","Sword bag,","0");
addEqp("repeating_Equipment_","Sword Cleaning kit","0");
addEqp("repeating_Equipment_","sleeve-tying cord","0");
addEqp("repeating_Equipment_","10 sheets of paper","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Budoka(){
console.log("adding Budoka !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"3",aes:"3",pie:"2",kao:"3",str:"3",con:"3",body:"3",tech:"2",ref:"4",dex:"4",move:"4"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 3 in a martial ryû","6");
addComp("repeating_complications_","Oppressed: Bonge (const,min)","-5");
addComp("repeating_complications_","Vow: loyalty to ryû soke, risk bodily harm (freq, maj) ","-7");
incSkill("repeating_MartialSkills","Atemi-waza or Ju-jutsu","4","@{cur_ref}");
incSkill("repeating_practicalskills","Acrobatics","3","@{cur_dex}");
incSkill("repeating_practicalskills","Focus Ki","3","@{cur_will}");
incSkill("repeating_practicalskills","Meditation","3","@{cur_will}");
incSkill("repeating_MartialSkills","one weapon bugei","3","@{cur_ref}");
addEqp("repeating_Equipment_","Atemi-waza id skill taken","0");
addEqp("repeating_Equipment_","weapon","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Wako(){
console.log("adding Wako !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"3",aes:"3",pie:"3",kao:"2",str:"4",con:"4",body:"3",tech:"2",ref:"3",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 3 in pirate gang","6");
addComp("repeating_complications_","Enemies: most samurai clans (more powerful, province, marked for death)","-25");
incSkill("repeating_MartialSkills","Atemi-waza or Ju-jutsu","2","@{cur_ref}");
incSkill("repeating_practicalskills","Boating","2","@{cur_dex}");
incSkill("repeating_practicalskills","Climbing","2","@{cur_dex}");
incSkill("repeating_practicalskills","Gambling","2","@{cur_tech}");
incSkill("repeating_MartialSkills","Knives","2","@{cur_ref}");
incSkill("repeating_practicalskills","Navigation","2","@{cur_int}");
incSkill("repeating_practicalskills","Persuasion","2","@{cur_pre}");
incSkill("repeating_MartialSkills","Polearms (choice)","2","@{cur_ref}");
incSkill("repeating_practicalskills","Sailing","3","@{cur_int}");
incSkill("repeating_practicalskills","Stealth","1","@{cur_dex}");
incSkill("repeating_practicalskills","Streetwise","3","@{cur_pre}");
incSkill("repeating_MartialSkills","Swords","2","@{cur_ref}");
incSkill("repeating_MartialSkills","Throwing","1","@{cur_ref}");
incSkill("repeating_practicalskills","Trading","2","@{cur_pre}");
addEqp("repeating_Equipment_","Yari (lance) or hoko","0");
addEqp("repeating_Equipment_","wakizashi or tantô,","0");
addEqp("repeating_Equipment_","provision bag","0");
addEqp("repeating_Equipment_","ashigaru-style kote DEF:6 Loc:7-8","1");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Doshin(){
console.log("adding Doshin !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"3",pre:"3",aes:"3",pie:"3",kao:"3",str:"3",con:"3",body:"3",tech:"3",ref:"4",dex:"4",move:"4"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","Contact: Shop owner ","2");
addPerk("repeating_perks_","ML 2 in samurai clan (6) Yoriki should have ML 3 (9)","6");
addComp("repeating_complications_","Vow: Fealty to magistrate or daimyô, risk life & limb (infreq, extr)","-20");
incSkill("repeating_MartialSkills","Binding","3","@{cur_tech}");
incSkill("repeating_practicalskills","Deduction","2","@{cur_int}");
incSkill("repeating_practicalskills","Interrogation","2","@{cur_tech}");
incSkill("repeating_MartialSkills","Jitte","3","@{cur_ref}");
incSkill("repeating_practicalskills","Local Expert (Town)","2","@{cur_int}");
incSkill("repeating_practicalskills","Perception","2","@{cur_int}");
incSkill("repeating_MartialSkills","Polearms (Mancatchers)","3","@{cur_ref}");
incSkill("repeating_practicalskills","Perception","1","@{cur_int}");
incSkill("repeating_practicalskills","Streetwise","1","@{cur_pre}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
incSkill("repeating_practicalskills","Tracking","2","@{cur_int}");
addEqp("repeating_Equipment_","sasumata or sodegarami;","2");
addEqp("repeating_Equipment_","Yoriki—mail tunic/sleeves (Loc: 612; KD 10) and jingasa (Loc: 35; KD 7)","0");
addEqp("repeating_Equipment_","Yoriki— Jitte","0.5");
addEqp("repeating_Equipment_","Yoriki— Riding Horse","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Ronin(){
console.log("adding Ronin !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"3",pre:"3",aes:"3",pie:"3",kao:"2",str:"3",con:"4",body:"3",tech:"3",ref:"4",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"20"});
addComp("repeating_complications_","Bad Reputation: rônin, always recognized (const, maj) ","-12");
addComp("repeating_complications_","Poverty: poor (freq, min) ","-5");
incSkill("repeating_martialskills","Polearms: (Glaives or Lances)","2","@{cur_ref}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
incSkill("repeating_MartialSkills","Archery or Firearms ","2","@{cur_ref}");
incSkill("repeating_practicalskills","Riding","2","@{cur_dex}");
addTalent("repeating_talents_","Any one 5-point okuden","5");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Samurai(){
console.log("adding SSamurai !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"3",pre:"3",aes:"3",pie:"3",kao:"3",str:"4",con:"3",body:"3",tech:"2",ref:"4",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","Contact: as appropriate","4");
addPerk("repeating_perks_","ML 2 in samurai clan","6");
addComp("repeating_complications_","Vow: Fealty to daimyô, risk life & limb (Frequent, Extreme)","-25");
incSkill("repeating_MartialSkills","Archery or Firearms ","2","@{cur_ref}");
incSkill("repeating_ClassicalSkills","Classical Art (choose)","2","@{cur_pre}");
incSkill("repeating_ClassicalSkills","Classical Art (choose)","2","@{cur_pre}");
incSkill("repeating_practicalskills","Climbing","1","@{cur_dex}");
incSkill("repeating_practicalskills","Expert (Clan history)","1","@{cur_int}");
incSkill("repeating_practicalskills","Focus Ki","1","@{cur_will}");
incSkill("repeating_MartialSkills","Ju-jutsu or Knives","2","@{cur_ref}");
incSkill("repeating_martialskills","Polearms: (Glaives or Lances)","2","@{cur_ref}");
incSkill("repeating_practicalskills","Riding","2","@{cur_dex}");
incSkill("repeating_practicalskills","Scouting or Strategy (choose)","2","@{cur_dex}");
incSkill("repeating_practicalskills","Scouting or Strategy (choose)","2","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","1","@{cur_ref}");
addTalent("repeating_talents_","Any one 5-point okuden","5");
addEqp("repeating_Equipment_","yari wt 1.5 or naginata wt 3","3");
addEqp("repeating_Equipment_","Yumi","2.5");
addEqp("repeating_Equipment_","calligraphy set","0");
addEqp("repeating_Equipment_","Riding horse (if ML5+)","0");
addEqp("repeating_Equipment_","8-plate kabuto DEF:12 Locs:35","12");
addEqp("repeating_Equipment_","Dô: clamshell DEF:12 Loc:10-12 -1 Move","24");
addEqp("repeating_Equipment_","Kote: plates and mail DEF:11 Loc:7-8","5");
addEqp("repeating_Equipment_","Sode: lames, sparse lacing DEF:11 Loc:9 attacks at -1 Move","3");
addEqp("repeating_Equipment_","Haidate: splint and mail DEF:12 Loc:13-14 attacks at -1 Move","8");
addEqp("repeating_Equipment_","Suneate: splint and mail DEF:12 Loc:14-16 attacks at -1 Move ","12");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Shinobi(){
console.log("adding Shinobi !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"3",aes:"2",pie:"2",kao:"2",str:"3",con:"3",body:"3",tech:"3",ref:"4",dex:"5",move:"4"},{quiet: false});
setAttrs({base_honor:"20"});
addPerk("repeating_perks_","Contact: Buddhist temple abbot ","4");
addPerk("repeating_perks_","ML 3 in shinobi clan","3");
addComp("repeating_complications_","Code of Honor: shinobi code, risk death (freq, extr)","-25");
addComp("repeating_complications_","Secret Identity: living a normal life (freq, extr)","-15");
incSkill("repeating_practicalskills","Acrobatics","3","@{cur_dex}");
incSkill("repeating_practicalskills","Language:shinobi clan dialect","3","@{cur_int}");
incSkill("repeating_practicalskills","Meditation","3","@{cur_will}");
incSkill("repeating_ForbiddenSkills","Ninjutsu","4","@{cur_dex}");
incSkill("repeating_MartialSkills","Ninpô Taijutsu","3","@{cur_ref}");
incSkill("repeating_practicalskills","Scouting","3","@{cur_int}");
incSkill("repeating_practicalskills","Stealth","3","@{cur_dex}");
incSkill("repeating_practicalskills","Survival","3","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
incSkill("repeating_practicalskills","Tracking","3","@{cur_int}");
incSkill("repeating_MartialSkills","bugei (martial skills)","3","@{cur_ref}");
incSkill("repeating_MartialSkills","bugei (martial skills)","3","@{cur_ref}");
addTalent("repeating_talents_","Night Vision","3");
addTalent("repeating_talents_","Ambidexterity","3");
addEqp("repeating_Equipment_","9 shuriken","0");
addEqp("repeating_Equipment_","hinobigatana (ninja sword)","2");
addEqp("repeating_Equipment_","nekode or any one weapon","0");
addEqp("repeating_Equipment_","Ninja garb","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Yamabushi(){
console.log("adding Yamabushi !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"3",aes:"3",pie:"4",kao:"3",str:"3",con:"4",body:"3",tech:"2",ref:"3",dex:"3",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","Contacts: as appropriate","4");
addPerk("repeating_perks_","ML 2 in Shugendô sect","4");
addPerk("repeating_perks_","Renown: Yamabushi priest","2");
addComp("repeating_complications_","Distinctive Features: yamabushi (conc, min)","-2");
addComp("repeating_complications_","Vow: yamabushi priestly vows, risk life & limb (const, maj)","-15");
incSkill("repeating_MartialSkills","Axes or Polearms: (choice)","3","@{cur_ref}");
incSkill("repeating_practicalskills","Meditation","3","@{cur_will}");
incSkill("repeating_practicalskills","Rhetoric","2","@{cur_pre}");
incSkill("repeating_MagicalSkills","Shugendô","4","@{cur_int}");
incSkill("repeating_practicalskills","Survival","2","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
addEqp("repeating_Equipment_","Bô (staff),","0");
addEqp("repeating_Equipment_","Katana","2");
addEqp("repeating_Equipment_","backpack","0");
addEqp("repeating_Equipment_","yamabushi robes","0");
addEqp("repeating_Equipment_","peaked cap","0");
addEqp("repeating_Equipment_","conch shell horn,","0");
addEqp("repeating_Equipment_","bamboo water bottle.","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Sohei(){
console.log("adding Sohei !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"3",aes:"2",pie:"3",kao:"3",str:"4",con:"3",body:"3",tech:"2",ref:"4",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 2 in Buddhist sect","6");
addComp("repeating_complications_","Religious Impurity: minor transgression, -1 PIE mod (frequent, minor)","-3");
addComp("repeating_complications_","Vow: Buddhist priestly vows, risk life & limb (frequent, minor)","-5");
incSkill("repeating_practicalskills","Buddhism","1","@{cur_int}");
incSkill("repeating_practicalskills","Meditation","2","@{cur_will}");
incSkill("repeating_MartialSkills","Polearms: (Glaives)","3","@{cur_ref}");
incSkill("repeating_practicalskills","Streetwise","2","@{cur_pre}");
incSkill("repeating_practicalskills","Survival","2","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","3","@{cur_ref}");
addEqp("repeating_Equipment_","Buddhist robes,","0");
addEqp("repeating_Equipment_","Katana or naginata","2");
addEqp("repeating_Equipment_","8-plate kabuto DEF:12 Locs:35","12");
addEqp("repeating_Equipment_","Dô: clamshell DEF:12 Loc:10-12 -1 Move","24");
addEqp("repeating_Equipment_","Kote: plates and mail DEF:11 Loc:7-8","5");
addEqp("repeating_Equipment_","Sode: lames, sparse lacing DEF:11 Loc:9 attacks at -1 Move","3");
addEqp("repeating_Equipment_","Haidate: splint and mail DEF:12 Loc:13-14 attacks at -1 Move","8");
addEqp("repeating_Equipment_","Suneate: splint and mail DEF:12 Loc:14-16 attacks at -1 Move ","12");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Sumotori(){
console.log("adding Sumotori !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"3",pre:"3",aes:"2",pie:"3",kao:"4",str:"3",con:"3",body:"4",tech:"2",ref:"4",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"20"});
addPerk("repeating_perks_","ML 3 in sumô stable","6");
addComp("repeating_complications_","Overweight: obese (freq,min)","-4");
addComp("repeating_complications_","Public Figure: local sumôtori (freq,maj) (-7),","-7");
incSkill("repeating_ClassicalSkills","Calligraphy","3","@{cur_aes}");
incSkill("repeating_practicalskills","Gambling","1","@{cur_tech}");
incSkill("repeating_practicalskills","High Society or Streetwise","3","@{cur_pre}");
incSkill("repeating_practicalskills","Meditation","2","@{cur_will}");
incSkill("repeating_practicalskills","Persuasion","2","@{cur_pre}");
incSkill("repeating_MartialSkills","Sumai","3","@{cur_ref}");
addEqp("repeating_Equipment_","Ceremonial rope belt,","0");
addEqp("repeating_Equipment_","decorative kimono (Above-average)","2");
addEqp("repeating_Equipment_","folding fan","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Nusubito(){
console.log("adding Nusubito !!!!!!!!!!!!!!!!!");
setAttrs({int:"3",will:"3",pre:"3",aes:"3",pie:"2",kao:"2",str:"3",con:"3",body:"3",tech:"4",ref:"3",dex:"4",move:"4"},{quiet: false});
setAttrs({base_honor:"20"});
addPerk("repeating_perks_","ML 2 in village/community","4");
addComp("repeating_complications_","Enemy: local authorities (more powerful, town, capture)","-7");
incSkill("repeating_practicalskills","Climbing","2","@{cur_dex}");
incSkill("repeating_practicalskills","Contortionist","2","@{cur_dex}");
incSkill("repeating_MartialSkills","Knives","2","@{cur_ref}");
incSkill("repeating_forbiddenskills","Lockpicking","2","@{cur_tech}");
incSkill("repeating_practicalskills","Stealth","2","@{cur_dex}");
incSkill("repeating_practicalskills","Streetwise","2","@{cur_pre}");
addEqp("repeating_Equipment_","Dark kimono","0");
addEqp("repeating_Equipment_","bonge-style trousers","0");
addEqp("repeating_Equipment_","tanto","0");
addEqp("repeating_Equipment_","Lockpick kit","0");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
function Bushi(){
console.log("adding Bushi !!!!!!!!!!!!!!!!!");
setAttrs({int:"2",will:"3",pre:"3",aes:"2",pie:"3",kao:"3",str:"4",con:"4",body:"3",tech:"2",ref:"4",dex:"4",move:"3"},{quiet: false});
setAttrs({base_honor:"30"});
addPerk("repeating_perks_","ML 2 in samurai clan","6");
addComp("repeating_complications_","Vow: Fealty to daimyô, risk life & limb (Frequent, Extreme)","-25");
incSkill("repeating_MartialSkills","Archery","2","@{cur_ref}");
incSkill("repeating_practicalskills","Armoring or Bowyer","2","@{cur_tech}");
incSkill("repeating_practicalskills","Expert: Samurai clan (or employer)","3","@{cur_int}");
incSkill("repeating_practicalskills","Focus Ki","2","@{cur_will}");
incSkill("repeating_MartialSkills","Forced March","3","@{cur_con}");
incSkill("repeating_practicalskills","Heraldry","1","@{cur_int}");
incSkill("repeating_MartialSkills","Ju-jutsu or Sumai","2","@{cur_ref}");
incSkill("repeating_martialskills","Polearms: (Glaives or Lances)","2","@{cur_ref}");
incSkill("repeating_practicalskills","Scouting or Riding","2","@{cur_int}");
incSkill("repeating_MartialSkills","Swords","2","@{cur_ref}");
incSkill("repeating_MartialSkills","Strategy (choose)","2","@{cur_int}");
incSkill("repeating_MartialSkills","Throwing","1","@{cur_ref}");
addTalent("repeating_talents_","Any one 5-point okuden","5");
addEqp("repeating_Equipment_","yari wt 1.5 or naginata wt 3","3");
addEqp("repeating_Equipment_","Yumi","2.5");
addEqp("repeating_Equipment_","Katana (nonbuke only)","2");
addEqp("repeating_Equipment_","Samurai armor below delete if not appropriate","2");
addEqp("repeating_Equipment_","if not appropriate not appropriate","0");
addEqp("repeating_Equipment_","8-plate kabuto DEF:12 Locs:35","12");
addEqp("repeating_Equipment_","Dô: clamshell DEF:12 Loc:10-12 -1 Move","24");
addEqp("repeating_Equipment_","Kote: plates and mail DEF:11 Loc:7-8","5");
addEqp("repeating_Equipment_","Sode: lames, sparse lacing DEF:11 Loc:9 attacks at -1 Move","3");
addEqp("repeating_Equipment_","Haidate: splint and mail DEF:12 Loc:13-14 attacks at -1 Move","8");
addEqp("repeating_Equipment_","Suneate: splint and mail DEF:12 Loc:14-16 attacks at -1 Move ","12");
addEqp("repeating_Equipment_","ashigaru armor below delete","0");
addEqp("repeating_Equipment_","if not appropriate not appropriate","0");
addEqp("repeating_Equipment_","Jingasa, steel, munition Def:12 Loc:3-4","12");
addEqp("repeating_Equipment_","Dô: folding DEF:6 Loc:10-12","2");
addEqp("repeating_Equipment_","Kote: Kote: full splint, no mail DEF:6 Loc:7-8","5");
addEqp("repeating_Equipment_","Haidate: Kote: full splint, no mail DEF:6 Loc:13-14 attacks at -1 Move","8");
addEqp("repeating_Equipment_","Suneate: Kote: full splint, no mail DEF:6 Loc:14-16 attacks at -1 Move ","12");
TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeatingSimpleSum('complications','score','comp_total');
TAS.repeatingSimpleSum('perks','cost','perks_total');
TAS.repeatingSimpleSum('talents','cost','talents_total');
}
on("change:addKuge", function(){
addKuge();
});
on("change:addBuke", function(){
addBuke();
});
on("change:addBonge", function(){
addBonge();
});
on("change:addHinin", function(){
addHinin();
});
on("change:addShokunin", function(){
addShokunin();
});
on("change:addAshigaru", function(){
addAshigaru();
});
on("change:addAkuto", function(){
addAkuto();
});
on("change:addSo", function(){
addSo();
});
on("change:addKugeCourtier", function(){
console.log("add Kuge Courtier !!!!!!!!!!!!!!!!!");
KugeCourtier();
});
on("change:addSamCourtier", function(){
console.log("add Kuge Courtier !!!!!!!!!!!!!!!!!");
SamCourtier();
});
//Executioner
on("change:addExecutioner", function(){
console.log("add Executioner !!!!!!!!!!!!!!!!!");
Executioner();
});
on("change:addFarmer", function(){
console.log("add Farmer !!!!!!!!!!!!!!!!!");
Farmer();
});
on("change:addKensei", function(){
console.log("add Kensei !!!!!!!!!!!!!!!!!");
Kensei();
});
on("change:addBudoka", function(){
console.log("add Budoka !!!!!!!!!!!!!!!!!");
Budoka();
});
on("change:addWako", function(){
console.log("add Wako !!!!!!!!!!!!!!!!!");
Wako();
});
on("change:addDoshin", function(){
console.log("add Doshin !!!!!!!!!!!!!!!!!");
Doshin();
});
on("change:addRonin", function(){
console.log("add Ronin !!!!!!!!!!!!!!!!!");
Ronin();
});
on("change:addSamurai", function(){
console.log("add Samurai !!!!!!!!!!!!!!!!!");
Samurai();
});
on("change:addShinobi", function(){
console.log("add Shinobi !!!!!!!!!!!!!!!!!");
Shinobi();
});
on("change:addYamabushi", function(){
console.log("add Yamabushi !!!!!!!!!!!!!!!!!");
Yamabushi();
});
on("change:addSohei", function(){
console.log("add Sohei !!!!!!!!!!!!!!!!!");
Sohei();
});
on("change:addSumotori", function(){
console.log("add Sumotori !!!!!!!!!!!!!!!!!");
Sumotori();
});
on("change:addNusubito", function(){
console.log("add Nusubito !!!!!!!!!!!!!!!!!");
Nusubito();
});
on("change:addBushi", function(){
console.log("add Bushi !!!!!!!!!!!!!!!!!");
Bushi();
});
on('sheet:opened',function(){
getAttrs(["setupDone"], function(pvalue) {
var SetupDone=parseInt(pvalue.setupDone);
if (SetupDone==0){
addSkill("repeating_PracticalSkills","Athletics","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Buddhism","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Climbing","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Concentration","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Confucianism","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Conversation","2","@{cur_pre}");
addSkill("repeating_PracticalSkills","Dance (...)","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Deduction","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Evade","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Folklore","2","@{cur_int}");
addSkill("repeating_PracticalSkills","General Knowledge","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Language (native language)","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Local Expert (home village/town)","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Perception","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Shintô","2","@{cur_int}");
addSkill("repeating_PracticalSkills","Stealth","2","@{cur_dex}");
addSkill("repeating_PracticalSkills","Teaching","2","@{cur_pre}");
setAttrs({setupDone:"1"});
}
});
});
on("change:repeating_bows:score change:repeating_bows:wa", function() {
getAttrs(["repeating_bows_score","repeating_bows_wa","cur_ref"], function(values) {
console.log(JSON.stringify(values));
var score = parseInt(values.repeating_bows_score);
var ref = parseInt(values.cur_ref);
console.log("score "+score);
var wa = parseInt(values.repeating_bows_wa);
console.log("wa "+wa);
setAttrs({repeating_bows_av:score+wa+ref});
});
});
function getArrow(arrow_type){
var dc =0;
var str = 0;
var wa = -1;
var rmod = "";
var notes = "Willow-leaf";
if (arrow_type=="Karimata"){
dc =1;
str = 0;
wa = -2;
notes = "Forked arrow";
}
else if (arrow_type=="Hikime"){
dc =0;
str = 0;
wa = 0;
notes = "Whistling/signal arrow";
}
else if (arrow_type=="Togari-ya"){
dc =-1;
str = 0;
wa = 0;
notes = "AP; Pointed head"
}
else if (arrow_type=="Watakushi"){
dc =1;
str = 0;
wa = 0; r
rmod = "-R";
notes = "flesh-tearer";
}
else if (arrow_type=="Ki-hoko"){
dc =0;
str =1;
wa = 0;
rmod = "-R";
notes = "flesh-tearer";
}
else if (arrow_type=="Kuri-ya"){
dc =-1;
str = 0;
wa = 1;
rmod = "+R";
notes = "Dog hunting";
}
else if (arrow_type=="Makagoya"){
dc =0;
str = 0;
wa = 0;
notes = "Hunting arrow";
}
else if (arrow_type=="Matoya"){
dc =0;
str = 0;
wa = -1;
rmod = "-R";
notes = "Stun; blunt arrow";
}
return {dc:dc,str:str,wa:wa,rmod:rmod,notes:notes};
}
on("change:repeating_bows:arrow_type change:repeating_bows:bow_type", function() {
getAttrs(["repeating_bows_arrow_type","repeating_bows_bow_type","repeating_bows_basedc","repeating_bows_wa","cur_str"], function(values) {
var arrowtype = values.repeating_bows_arrow_type;
var bowtype = values.repeating_bows_bow_type;
var dc = 0;
var arrowStats = getArrow(arrowtype);
//do range
if (bowtype=="Hankyû"){
range="60M"
if (arrowStats.rmod=="-R"){
range="30M";
}
else if (arrowStats.rmod=="+R" ){
range="90M";
}
dc = 3+arrowStats.dc;
}
else if (bowtype=="YumiMR3"){
range="90M"
dc = 3+arrowStats.dc;
if (arrowStats.rmod=="-R"){
range="60M";
}
else if (arrowStats.rmod=="+R" ){
range="120M";
}
}
else if (bowtype=="YumiMR4"){
range="120M"
dc = 4+arrowStats.dc;
if (arrowStats.rmod=="-R"){
range="80M";
}
else if (arrowStats.rmod=="+R" ){
range="160M";
}
}
else if (bowtype=="YumiMR5"){
range="150M"
dc = 5+arrowStats.dc;
if (arrowStats.rmod=="-R"){
range="100";
}
else if (arrowStats.rmod=="+R" ){
range="200M";
}
}
else if (bowtype=="YumiMR6"){
range="180M"
dc = 6+arrowStats.dc;
if (arrowStats.rmod=="-R"){
range="120M";
}
else if (arrowStats.rmod=="+R" ){
range="240M";
}
}
else if (bowtype=="YumiMR7"){
dc = 7+arrowStats.dc;
range="210M"
if (arrowStats.rmod=="-R"){
range="140M";
}
else if (arrowStats.rmod=="+R" ){
range="180M";
}
}
console.log("wa "+dc);
setAttrs({repeating_bows_dc:dc,repeating_bows_wa:arrowStats.wa,repeating_bows_range:range,repeating_bows_notes:arrowStats.notes})
});
});
function resetWpnAVDV(section,setDV){
getSectionIDs(section, function(idArray) {
if (idArray.length > 0) {
_.each(idArray, function(currentID, i) {
getAttrs([section+"_" + currentID + "_skill",section+"_" + currentID + "_wa",section+"_" + currentID + "_min_str","cur_str","cur_ref","cur_dex"], function(values) {
console.log("array "+idArray);
console.log("values "+values);
var cur_dex = parseInt(values.cur_dex);
console.log("cur dex "+cur_dex);
var cur_ref = parseInt(values.cur_ref);
console.log("cur ref "+cur_ref);
var cur_str = parseInt(values.cur_str);
console.log("cur str "+cur_str);
var wa = parseInt(values[section+"_" + idArray[i] + "_wa"]);
console.log("wa "+wa);
var skill = parseInt(values[section+"_" + idArray[i] + "_skill"]);
console.log("skill "+skill);
var min_str = parseInt(values[section+"_" + idArray[i] + "_min_str"]);
console.log("min_str "+min_str);
var mod= cur_str-min_str;
console.log("cur_Ref!!!!!!!!!!!!!!! "+cur_ref);
console.log("MOD!!!!!!!!!!!!!!! "+mod);
cur_ref += mod;
cur_dex += mod;
var av = skill+cur_ref+wa;
var dv = skill+cur_dex;
console.log("AV!!!!!!!!!!!!!!! "+av);
var endLoss = Math.floor(min_str/2,0);
console.log("endLoss "+endLoss);
if (cur_str > min_str ){
endLoss -= Math.floor((cur_str-min_str,0)/2);
}
if (endLoss < 1){
endLoss = 1;
}
//damage mod
if (setDV===true){
setAttrs({
[section+"_"+currentID+"_av"]:av,
[section+"_"+currentID+"_dv"]:dv,
[section+"_"+currentID+"_dcMod"]:mod,
[section+"_"+currentID+"_end"]:endLoss,
});
} else if (setDV===false){
setAttrs({
[section+"_"+currentID+"_av"]:av,
[section+"_"+currentID+"_dcMod"]:mod,
[section+"_"+currentID+"_end"]:endLoss,
});
}
});
});
}
});
}
on("change:stun_damage change:base_stun", function() {
getAttrs(["stun_damage","base_stun"], function(values) {
var stun_damage = parseInt(values.stun_damage);
var base_stun = parseInt(values.base_stun);
var cur_stun = base_stun-stun_damage;
setAttrs({cur_stun:cur_stun});
});
});
on("change:hits_damage change:base_hits", function() {
getAttrs(["hits_damage","base_hits"], function(values) {
var hits_damage = parseInt(values.hits_damage);
var base_hits = parseInt(values.base_hits);
var cur_hits = base_hits-hits_damage;
var impairment = "";
var imp_value = 0;
var val1 = Math.floor(base_hits/4);
var val2 = Math.floor(base_hits/2);
console.log("val1 "+val1);
console.log("val2"+val2);
if (cur_hits <= val1){
var impairment ="Impaired -4"
var imp_value = -4;
}
else if (cur_hits <= val2){
var impairment ="Impaired -2"
var imp_value = -2;
}
console.log("hits_damage "+hits_damage);
console.log("base_hits"+base_hits);
console.log("cur_hits "+cur_hits);
console.log("impairment "+impairment);
console.log("imp_value "+imp_value);
setAttrs({impairment:impairment,imp_value:imp_value,cur_hits:cur_hits});
});
});
on("change:cur_dex change:cur_ref change:cur_str ", function() {
getAttrs(["cur_con","cur_str"], function(values) {
console.log("RESET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
resetWpnAVDV("repeating_melee",true);
resetWpnAVDV("repeating_missle",false);
resetWpnAVDV("repeating_bows",false);
});
});
on("change:int", function() {
getAttrs([], function(values) {
console.log("INT CHANGED !!!!!!!!!!!!!!!!!!!!!!!!");
});
});
on("change:int change:int_mod change:imp_value", function() {
getAttrs(["int","int_mod","imp_value"], function(values) {
var base_int = parseInt(values.int);
var int_mod = parseInt(values.int_mod);
var imp_value = parseInt(values.int_mod);
console.log("INT CHANGED !!!!!!!!!!!!!!!!!!!!!!!!");
setAttrs({cur_int:base_int+int_mod+imp_value});
});
});
on("change:will change:will_mod change:imp_value", function() {
getAttrs(["will","will_mod","imp_value"], function(values) {
var base_will = parseInt(values.will);
var will_mod = parseInt(values.will_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_will:base_will+will_mod+imp_value});
});
});
on("change:pre change:pre_mod change:imp_value", function() {
getAttrs(["pre","pre_mod","imp_value"], function(values) {
var base_pre = parseInt(values.pre);
var pre_mod = parseInt(values.pre_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_pre:base_pre+pre_mod+imp_value});
});
});
on("change:aes change:aes_mod change:imp_value", function() {
getAttrs(["aes","aes_mod","imp_value"], function(values) {
var base_aes = parseInt(values.aes);
var aes_mod = parseInt(values.aes_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_aes:base_aes+aes_mod+imp_value});
});
});
on("change:pie change:pie_mod change:imp_value", function() {
getAttrs(["pie","pie_mod","imp_value"], function(values) {
var base_pie = parseInt(values.pie);
var pie_mod = parseInt(values.pie_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_pie:base_pie+pie_mod+imp_value});
});
});
on("change:kao change:kao_mod change:imp_value", function() {
getAttrs(["kao","kao_mod","imp_value"], function(values) {
var base_kao = parseInt(values.kao);
var kao_mod = parseInt(values.kao_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_kao:base_kao+kao_mod+imp_value});
});
});
on("change:str change:str_mod change:imp_value", function() {
getAttrs(["str","str_mod","imp_value"], function(values) {
var base_str = parseInt(values.str);
var str_mod = parseInt(values.str_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_str:base_str+str_mod+imp_value});
});
});
on("change:con change:con_mod change:imp_value", function() {
getAttrs(["con","con_mod","imp_value"], function(values) {
var base_con = parseInt(values.con);
var con_mod = parseInt(values.con_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_con:base_con+con_mod+imp_value});
});
});
on("change:body change:body_mod change:imp_value", function() {
getAttrs(["body","body_mod","imp_value"], function(values) {
var base_body = parseInt(values.body);
var body_mod = parseInt(values.body_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_body:base_body+body_mod+imp_value});
});
});
on("change:ref change:ref_mod change:imp_value", function() {
getAttrs(["ref","ref_mod","imp_value"], function(values) {
var base_ref = parseInt(values.ref);
var ref_mod = parseInt(values.ref_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_ref:base_ref+ref_mod+imp_value});
});
});
on("change:dex change:dex_mod change:imp_value", function() {
getAttrs(["dex","dex_mod","imp_value"], function(values) {
var base_dex = parseInt(values.dex);
var dex_mod = parseInt(values.dex_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_dex:base_dex+dex_mod+imp_value});
});
});
on("change:tech change:tech_mod change:imp_value", function() {
getAttrs(["tech","tech_mod","imp_value"], function(values) {
var base_tech = parseInt(values.tech);
var tech_mod = parseInt(values.tech_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_tech:base_tech+tech_mod+imp_value});
});
});
on("change:move change:move_mod change:imp_value", function() {
getAttrs(["move","move_mod","imp_value"], function(values) {
var base_move = parseInt(values.move);
var move_mod = parseInt(values.move_mod);
var imp_value = parseInt(values.imp_value);
setAttrs({cur_move:base_move+move_mod+imp_value});
});
});
on("change:repeating_melee:min_str change:repeating_melee:wa change:repeating_melee:skill change:repeating_melee:dc", function() {
getAttrs(["repeating_melee_dc","repeating_melee_min_str","cur_ref","cur_dex","cur_str","repeating_melee_skill","repeating_melee_wa"], function(values) {
var cur_dex = parseInt(values.cur_dex);
console.log("cur dex "+cur_dex);
var cur_ref = parseInt(values.cur_ref);
console.log("cur ref "+cur_ref);
var cur_str = parseInt(values.cur_str);
console.log("cur str "+cur_str);
var wa = parseInt(values.repeating_melee_wa);
console.log("wa "+wa);
var dc = parseInt(values.repeating_melee_dc);
var skill = parseInt(values.repeating_melee_skill);
console.log("skill "+skill);
var min_str = parseInt(values.repeating_melee_min_str);
console.log("min_str "+min_str);
var mod= cur_str-min_str;
cur_ref += mod;
cur_dex += mod;
var endLoss = Math.floor(min_str/2,0);
if (cur_str > min_str ){
endLoss -= Math.floor((cur_str-min_str,0)/2);
}
if (endLoss < 1){
endLoss = 1;
}
var av = skill+cur_ref+wa;
var dv = skill+cur_dex;
console.log("av "+av);
console.log("dv "+dv);
//damage mod
var damMod=mod;
if (damMod>dc*2){
damMod=dc;
}
setAttrs({repeating_melee_av:av,repeating_melee_dv:dv,repeating_melee_dcMod:damMod,repeating_melee_end:endLoss});
});
});
on("change:repeating_missle:min_str change:repeating_missle:wa change:repeating_missle:skill", function() {
getAttrs(["repeating_missle_dc","repeating_missle_min_str","cur_ref","cur_str","repeating_missle_skill","repeating_missle_wa","repeating_missle_skill_name"], function(values) {
var cur_ref = parseInt(values.cur_ref);
var cur_str = parseInt(values.cur_str);
var wa = parseInt(values.repeating_missle_wa);
var dc = parseInt(values.repeating_missle_dc);
var skill = parseInt(values.repeating_missle_skill);
var min_str = parseInt(values.repeating_missle_min_str);
var mod= cur_str-min_str;
cur_ref += mod;
var endLoss = Math.floor(min_str/2,0);
if (cur_str > min_str ){
endLoss -= Math.floor((cur_str-min_str,0)/2);
}
if (endLoss < 1){
endLoss = 1;
}
var av = skill+cur_ref+wa;
var damMod = 0;
if (values.repeating_missle_skill_name=="Throwing"){
damMod=mod;
if (damMod>dc*2){
damMod=dc;
}
}
setAttrs({repeating_missle_av:av,repeating_missle_dcMod:damMod,repeating_missle_end:endLoss});
});
});
on("change:cur_str", function() {
getAttrs(["cur_str"], function(values) {
var cur_str = parseFloat(values.cur_str);
var max =9;
if (cur_str==1.0){
max = 12;
}
else if (cur_str==2.0){
max = 18;
}
else if (cur_str==3.0){
max = 25;
}
else if (cur_str==4.0){
max = 36;
}
else if (cur_str==5.0){
max = 50;
}
else if (cur_str==6.0){
max = 72;
}
else if (cur_str==7.0){
max = 100;
}
else if (cur_str==8.0){
max = 144;
}
else if (cur_str==9.0){
max = 200;
}
else if (cur_str==10.0){
max = 288;
}
setAttrs({carry_max:max});
});
});
on("change:cur_con change:cur_str", function() {
getAttrs(["cur_con","cur_str"], function(values) {
var cur_con = parseInt(values.cur_con);
var cur_str = parseInt(values.cur_str);
setAttrs({base_sd:cur_con*2,base_end:cur_con*10,base_rec:cur_con+cur_str});
});
});
on("change:cur_body", function() {
getAttrs(["cur_body","imp_value"], function(values) {
var cur_body = parseInt(values.cur_body);
var imp_value = parseInt(values.imp_value);
if (imp_value!=0){
cur_body=cur_body+Math.abs(imp_value);
}
setAttrs({base_stun:cur_body*5,base_hits:cur_body*5});
});
});
on("change:cur_move ", function() {
getAttrs(["cur_move"], function(values) {
var cur_move = parseInt(values.cur_move);
setAttrs({base_run:cur_move*2,base_sprint:cur_move*3,base_leap:cur_move});
});
});
on("change:cur_will", function() {
getAttrs(["cur_will"], function(values) {
var cur_will = parseInt(values.cur_will);
setAttrs({base_res:cur_will*3});
});
});
/* ---- BEGIN: TheAaronSheet.js ---- */
// Github: https://github.com/shdwjk/TheAaronSheet/blob/master/TheAaronSheet.js
// By: The Aaron, Arcane Scriptomancer
// Contact: https://app.roll20.net/users/104025/the-aaron
var TAS = TAS || (function(){
'use strict';
var version = '0.2.4',
lastUpdate = 1457098091,
loggingSettings = {
debug: {
key: 'debug',
title: 'DEBUG',
color: {
bgLabel: '#7732A2',
label: '#F2EF40',
bgText: '#FFFEB7',
text: '#7732A2'
}
},
error: {
key: 'error',
title: 'Error',
color: {
bgLabel: '#C11713',
label: 'white',
bgText: '#C11713',
text: 'white'
}
},
warn: {
key: 'warn',
title: 'Warning',
color: {
bgLabel: '#F29140',
label: 'white',
bgText: '#FFD8B7',
text: 'black'
}
},
info: {
key: 'info',
title: 'Info',
color: {
bgLabel: '#413FA9',
label: 'white',
bgText: '#B3B2EB',
text: 'black'
}
},
notice: {
key: 'notice',
title: 'Notice',
color: {
bgLabel: '#33C133',
label: 'white',
bgText: '#ADF1AD',
text: 'black'
}
},
log: {
key: 'log',
title: 'Log',
color: {
bgLabel: '#f2f240',
label: 'black',
bgText: '#ffff90',
text: 'black'
}
},
callstack: {
key: 'TAS',
title: 'function',
color: {
bgLabel: '#413FA9',
label: 'white',
bgText: '#B3B2EB',
text: 'black'
}
},
callstack_async: {
key: 'TAS',
title: 'ASYNC CALL',
color: {
bgLabel: '#413FA9',
label: 'white',
bgText: '#413FA9',
text: 'white'
}
},
TAS: {
key: 'TAS',
title: 'TAS',
color: {
bgLabel: 'grey',
label: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)',
bgText: 'grey',
text: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)'
}
}
},
config = {
debugMode: false,
logging: {
log: true,
notice: true,
info: true,
warn: true,
error: true,
debug: false
}
},
callstackRegistry = [],
queuedUpdates = {}, //< Used for delaying saves till the last momment.
complexType = function(o){
switch(typeof o){
case 'string':
return 'string';
case 'boolean':
return 'boolean';
case 'number':
return (_.isNaN(o) ? 'NaN' : (o.toString().match(/\./) ? 'decimal' : 'integer'));
case 'function':
return 'function: '+(o.name ? o.name+'()' : '(anonymous)');
case 'object':
return (_.isArray(o) ? 'array' : (_.isArguments(o) ? 'arguments' : ( _.isNull(o) ? 'null' : 'object')));
default:
return typeof o;
}
},
dataLogger = function(primaryLogger,secondaryLogger,data){
_.each(data,function(m){
var type = complexType(m);
switch(type){
case 'string':
primaryLogger(m);
break;
case 'undefined':
case 'null':
case 'NaN':
primaryLogger('['+type+']');
break;
case 'number':
case 'not a number':
case 'integer':
case 'decimal':
case 'boolean':
primaryLogger('['+type+']: '+m);
break;
default:
primaryLogger('['+type+']:=========================================');
secondaryLogger(m);
primaryLogger('=========================================================');
break;
}
});
},
colorLog = function(options){
var coloredLoggerFunction,
key = options.key,
label = options.title || 'TAS',
lBGColor = (options.color && options.color.bgLabel) || 'blue',
lTxtColor = (options.color && options.color.label) || 'white',
mBGColor = (options.color && options.color.bgText) || 'blue',
mTxtColor = (options.color && options.color.text) || 'white';
coloredLoggerFunction = function(message){
console.log(
'%c '+label+': %c '+message + ' ',
'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;',
'background-color: '+mBGColor+';color: '+mTxtColor+';'
);
};
return function(){
if('TAS'===key || config.logging[key]){
dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments));
}
};
},
logDebug = colorLog(loggingSettings.debug),
logError = colorLog(loggingSettings.error),
logWarn = colorLog(loggingSettings.warn),
logInfo = colorLog(loggingSettings.info),
logNotice = colorLog(loggingSettings.notice),
logLog = colorLog(loggingSettings.log),
log = colorLog(loggingSettings.TAS),
logCS = colorLog(loggingSettings.callstack),
logCSA = colorLog(loggingSettings.callstack_async),
registerCallstack = function(callstack,label){
var idx=_.findIndex(callstackRegistry,function(o){
return (_.difference(o.stack,callstack).length === _.difference(callstack,o.stack).length) &&
_.difference(o.stack,callstack).length === 0 &&
o.label === label;
});
if(-1 === idx){
idx=callstackRegistry.length;
callstackRegistry.push({
stack: callstack,
label: label
});
}
return idx;
},
setConfigOption = function(options){
var newconf =_.defaults(options,config);
newconf.logging=_.defaults(
(options && options.logging)||{},
config.logging
);
config=newconf;
},
debugMode = function(){
config.logging.debug=true;
config.debugMode = true;
},
getCallstack = function(){
var e = new Error('dummy'),
stack = _.map(_.rest(e.stack.replace(/^[^\(]+?[\n$]/gm, '')
.replace(/^\s+at\s+/gm, '')
.replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@')
.split('\n')),function(l){
return l.replace(/\s+.*$/,'');
});
return stack;
},
logCallstackSub = function(cs){
var matches, csa;
_.find(cs,function(line){
matches = line.match(/TAS_CALLSTACK_(\d+)/);
if(matches){
csa=callstackRegistry[matches[1]];
logCSA( '===================='+(csa.label ? '> '+csa.label+' <' : '')+'====================');
logCallstackSub(csa.stack);
return true;
}
logCS(line);
return false;
});
},
logCallstack = function(){
var cs;
if(config.debugMode){
cs = getCallstack();
cs.shift();
log('==============================> CALLSTACK <==============================');
logCallstackSub(cs);
log('=========================================================================');
}
},
wrapCallback = function (label, callback, context){
var callstack;
if('function' === typeof label){
context=callback;
callback=label;
label=undefined;
}
if(!config.debugMode){
return (function(cb,ctx){
return function(){
cb.apply(ctx||{},arguments);
};
}(callback,context));
}
callstack = getCallstack();
callstack.shift();
return (function(cb,ctx,cs,lbl){
var ctxref=registerCallstack(cs,lbl);
/*jshint -W054 */
return new Function('cb','ctx','TASlog',
"return function TAS_CALLSTACK_"+ctxref+"(){"+
"TASlog('Entering: '+(cb.name||'(anonymous function)'));"+
"cb.apply(ctx||{},arguments);"+
"TASlog('Exiting: '+(cb.name||'(anonymous function)'));"+
"};")(cb,ctx,log);
/*jshint +W054 */
}(callback,context,callstack,label));
},
prepareUpdate = function( attribute, value ){
queuedUpdates[attribute]=value;
},
applyQueuedUpdates = function() {
setAttrs(queuedUpdates);
queuedUpdates = {};
},
namesFromArgs = function(args,base){
return _.chain(args)
.reduce(function(memo,attr){
if('string' === typeof attr) {
memo.push(attr);
} else if(_.isArray(args) || _.isArguments(args)){
memo = namesFromArgs(attr,memo);
}
return memo;
},(_.isArray(base) && base) || [])
.uniq()
.value();
},
addId = function(obj,value){
Object.defineProperty(obj,'id',{
value: value,
writeable: false,
enumerable: false
});
},
addProp = function(obj,prop,value,fullname){
(function(){
var pname=(_.contains(['S','F','I','D'],prop) ? '_'+prop : prop),
full_pname = fullname || prop,
pvalue=value;
_.each(['S','I','F'],function(p){
if( !_.has(obj,p)){
Object.defineProperty(obj, p, {
value: {},
enumerable: false,
readonly: true
});
}
});
if( !_.has(obj,'D')){
Object.defineProperty(obj, 'D', {
value: _.reduce(_.range(10),function(m,d){
Object.defineProperty(m, d, {
value: {},
enumerable: true,
readonly: true
});
return m;
},{}),
enumerable: false,
readonly: true
});
}
// Raw value
Object.defineProperty(obj, pname, {
enumerable: true,
set: function(v){
if(v!==pvalue) {
pvalue=v;
prepareUpdate(full_pname,v);
}
},
get: function(){
return pvalue;
}
});
// string value
Object.defineProperty(obj.S, pname, {
enumerable: true,
set: function(v){
var val=v.toString();
if(val !== pvalue) {
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return pvalue.toString();
}
});
// int value
Object.defineProperty(obj.I, pname, {
enumerable: true,
set: function(v){
var val=parseInt(v,10) || 0;
if(val !== pvalue){
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return parseInt(pvalue,10) || 0;
}
});
// float value
Object.defineProperty(obj.F, pname, {
enumerable: true,
set: function(v){
var val=parseFloat(v) || 0;
if(val !== pvalue) {
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return parseFloat(pvalue) || 0;
}
});
_.each(_.range(10),function(d){
Object.defineProperty(obj.D[d], pname, {
enumerable: true,
set: function(v){
var val=(parseFloat(v) || 0).toFixed(d);
if(val !== pvalue){
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return (parseFloat(pvalue) || 0).toFixed(d);
}
});
});
}());
},
repeating = function( section ) {
return (function(s){
var sectionName = s,
attrNames = [],
fieldNames = [],
operations = [],
after = [],
repAttrs = function TAS_Repeating_Attrs(){
attrNames = namesFromArgs(arguments,attrNames);
return this;
},
repFields = function TAS_Repeating_Fields(){
fieldNames = namesFromArgs(arguments,fieldNames);
return this;
},
repReduce = function TAS_Repeating_Reduce(func, initial, final, context) {
operations.push({
type: 'reduce',
func: (func && _.isFunction(func) && func) || _.noop,
memo: (_.isUndefined(initial) && 0) || initial,
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repMap = function TAS_Repeating_Map(func, final, context) {
operations.push({
type: 'map',
func: (func && _.isFunction(func) && func) || _.noop,
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repEach = function TAS_Repeating_Each(func, final, context) {
operations.push({
type: 'each',
func: (func && _.isFunction(func) && func) || _.noop,
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repTap = function TAS_Repeating_Tap(final, context) {
operations.push({
type: 'tap',
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repAfter = function TAS_Repeating_After(callback,context) {
after.push({
callback: (callback && _.isFunction(callback) && callback) || _.noop,
context: context || {}
});
return this;
},
repExecute = function TAS_Repeating_Execute(callback,context){
var rowSet = {},
attrSet = {},
fieldIds = [],
fullFieldNames = [];
repAfter(callback,context);
// call each operation per row.
// call each operation's final
getSectionIDs("repeating_"+sectionName,function(ids){
fieldIds = ids;
fullFieldNames = _.reduce(fieldIds,function(memo,id){
return memo.concat(_.map(fieldNames,function(name){
return 'repeating_'+sectionName+'_'+id+'_'+name;
}));
},[]);
getAttrs( _.uniq(attrNames.concat(fullFieldNames)), function(values){
_.each(attrNames,function(aname){
if(values.hasOwnProperty(aname)){
addProp(attrSet,aname,values[aname]);
}
});
rowSet = _.reduce(fieldIds,function(memo,id){
var r={};
addId(r,id);
_.each(fieldNames,function(name){
var fn = 'repeating_'+sectionName+'_'+id+'_'+name;
addProp(r,name,values[fn],fn);
});
memo[id]=r;
return memo;
},{});
_.each(operations,function(op){
var res;
switch(op.type){
case 'tap':
_.bind(op.final,op.context,rowSet,attrSet)();
break;
case 'each':
_.each(rowSet,function(r){
_.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
});
_.bind(op.final,op.context,rowSet,attrSet)();
break;
case 'map':
res = _.map(rowSet,function(r){
return _.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
});
_.bind(op.final,op.context,res,rowSet,attrSet)();
break;
case 'reduce':
res = op.memo;
_.each(rowSet,function(r){
res = _.bind(op.func,op.context,res,r,attrSet,r.id,rowSet)();
});
_.bind(op.final,op.context,res,rowSet,attrSet)();
break;
}
});
// finalize attrs
applyQueuedUpdates();
_.each(after,function(op){
_.bind(op.callback,op.context)();
});
});
});
};
return {
attrs: repAttrs,
attr: repAttrs,
column: repFields,
columns: repFields,
field: repFields,
fields: repFields,
reduce: repReduce,
inject: repReduce,
foldl: repReduce,
map: repMap,
collect: repMap,
each: repEach,
forEach: repEach,
tap: repTap,
'do': repTap,
after: repAfter,
last: repAfter,
done: repAfter,
execute: repExecute,
go: repExecute,
run: repExecute
};
}(section));
},
repeatingSimpleSum = function(section, field, destination){
repeating(section)
.attr(destination)
.field(field)
.reduce(function(m,r){
return m + (r.F[field]);
},0,function(t,r,a){
a.S[destination]=t;
})
.execute();
};
return {
/* Repeating Sections */
repeatingSimpleSum: repeatingSimpleSum,
repeating: repeating,
/* Configuration */
config: setConfigOption,
/* Debugging */
callback: wrapCallback,
callstack: logCallstack,
debugMode: debugMode,
_fn: wrapCallback,
/* Logging */
debug: logDebug,
error: logError,
warn: logWarn,
info: logInfo,
notice: logNotice,
log: logLog
};
}());
on('change:repeating_equipment remove:repeating_equipment',function(){
//TAS.repeatingSimpleSum('equipment','equipment_weight','carry_total');
TAS.repeating("equipment")
.attr("carry_total")
.field("equipment_weight","carried")
.reduce(function(m,r){
console.log("carried "+(r.F["carried"]));
if ( (r.F["carried"]) == 1){
return m + (r.F["equipment_weight"]);
} else{
return m;
}
},0,function(t,r,a){
a.S["carry_total"]=t;
})
.execute();
});
on('change:repeating_complications remove:repeating_complications',function(){
TAS.repeatingSimpleSum('complications','score','comp_total');
});
on('change:repeating_perks remove:repeating_perks',function(){
TAS.repeatingSimpleSum('perks','cost','perks_total');
});
on('change:repeating_talents remove:repeating_talents',function(){
TAS.repeatingSimpleSum('talents','cost','talents_total');
});
</script>
<rolltemplate class="sheet-rolltemplate-ActionRoll">
<br />
<br />
<div><b>{{name}}</b></div>
<div>{{action}} With</div>
<div>{{Weapon}} using {{Skill}}</div>
<div>Action Total: {{ActionTotal}}</div>
{{#rollTotal() ActionTotal crit}}
<div class="sheet-special">Critical Success</div>
{{/rollTotal() ActionTotal crit}}
{{#rollTotal() ActionTotal fumble1}}
<div class="sheet-special">Break Weapon</div>
{{/rollTotal() ActionTotal fumble1}}
{{#rollTotal() ActionTotal fumble2}}
<div class="sheet-special">Drop Weapon</div>
{{/rollTotal() ActionTotal fumble2}}
{{#rollTotal() ActionTotal fumble3}}
<div class="sheet-special">Loose Next Attack</div>
{{/rollTotal() ActionTotal fumble3}}
<br />
<br />
<br />
<br />
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-SkillRoll">
<br />
<br />
<div><b>{{name}}</b></div>
<div>rolls</div>
<div>{{Skill}}</div>
<div>Action Total: {{ActionTotal}}</div>
{{#rollTotal() ActionTotal crit}}
<div class="sheet-special">Critical Success</div>
{{/rollTotal() ActionTotal crit}}
{{#rollTotal() ActionTotal fumble1}}
<div class="sheet-special">Break Weapon</div>
{{/rollTotal() ActionTotal fumble1}}
{{#rollTotal() ActionTotal fumble2}}
<div class="sheet-special">Drop Weapon</div>
{{/rollTotal() ActionTotal fumble2}}
{{#rollTotal() ActionTotal fumble3}}
<div class="sheet-special">Loose Next Attack</div>
{{/rollTotal() ActionTotal fumble3}}
<br />
<br />
<br />
<br />
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-StatRoll">
<br />
<br />
<br />
<div><b>{{name}}</b></div>
<div>Rolls {{stat}}</div>
<div>Action Total: {{ActionTotal}}</div>
{{#rollTotal() ActionTotal crit}}
<div class="sheet-special">Critical Success</div>
{{/rollTotal() ActionTotal crit}}
{{#rollTotal() ActionTotal fumble1}}
<div class="sheet-special">Critical Failure (3)</div>
{{/rollTotal() ActionTotal fumble1}}
{{#rollTotal() ActionTotal fumble2}}
<div class="sheet-special">Critical Failure (4)</div>
{{/rollTotal() ActionTotal fumble2}}
{{#rollTotal() ActionTotal fumble3}}
<div class="sheet-special">Critical Failure (5)</div>
{{/rollTotal() ActionTotal fumble3}}
<br />
<br />
<br />
<br />
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-Damage">
<br />
<br />
<div><b>{{name}}</b></div>
<div>Rolls Damage for </div>
<div>{{Weapon}}</div>
<div>Damage: {{Damage}}</div>
<div>Max. Damage: {{MaxDamage}}</div>
<br />
<br />
<br />
<br />
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-HitLocation">
<br />
<br />
<br />
<div>{{name}} Rolls</div>
<div>Hit Location</div>
{{#rollBetween() Location 3 4}}
<div>Head ({{Location}})</div>
{{/rollBetween() Location 3 4}}
{{#rollTotal() Location 5}}
<div>Neck ({{Location}})</div>
{{/rollTotal() Location 5}}
{{#rollTotal() Location 6}}
<div>
{{#rollBetween() side 1 3}}
Left ({{side}})
{{/rollBetween() side 1 3}}
{{#rollBetween() side 4 6}}
Right ({{side}})
{{/rollBetween() side 4 6}}
Arm/Forepaw ({{Location}})
</div>
{{/rollTotal() Location 6}}
{{#rollBetween() Location 7 8}}
<div>
{{#rollBetween() side 1 3}}
Left ({{side}})
{{/rollBetween() side 1 3}}
{{#rollBetween() side 4 6}}
Right ({{side}})
{{/rollBetween() side 4 6}}
arm/Forelimb ({{Location}})
</div>
{{/rollBetween() Location 7 8}}
{{#rollTotal() Location 9}}
<div>
{{#rollBetween() side 1 3}}
Left ({{side}})
{{/rollBetween() side 1 3}}
{{#rollBetween() side 4 6}}
Right ({{side}})
{{/rollBetween() side 4 6}}
Shoulder ({{Location}})
</div>
{{/rollTotal() Location 9}}
{{#rollBetween() Location 10 11}}
<div>Chest ({{Location}})</div>
{{/rollBetween() Location 10 11}}
{{#rollTotal() Location 12}}
<div>Stomach ({{Location}})</div>
{{/rollTotal() Location 12}}
{{#rollTotal() Location 13}}
<div>Vitals ({{Location}})</div>
{{/rollTotal() Location 13}}
{{#rollTotal() Location 14}}
<div>
{{#rollBetween() side 1 3}}
Left ({{side}})
{{/rollBetween() side 1 3}}
{{#rollBetween() side 4 6}}
Right ({{side}})
{{/rollBetween() side 4 6}}
Thigh ({{Location}})
</div>
{{/rollTotal() Location 14}}
{{#rollBetween() Location 15 16}}
<div>
{{#rollBetween() side 1 3}}
Left ({{side}})
{{/rollBetween() side 1 3}}
{{#rollBetween() side 4 6}}
Right ({{side}})
{{/rollBetween() side 4 6}}
Leg/ hind limb ({{Location}})
</div>
{{/rollBetween() Location 15 16}}
{{#rollBetween() Location 17 18}}
<div>
{{#rollBetween() side 1 3}}
Left ({{side}})
{{/rollBetween() side 1 3}}
{{#rollBetween() side 4 6}}
Right ({{side}})
{{/rollBetween() side 4 6}}
Leg/ hind limb ({{Location}})
</div>
{{/rollBetween() Location 17 18}}
<br />
<br />
<br />
<br />
</rolltemplate>