mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
1830 lines
132 KiB
HTML
1830 lines
132 KiB
HTML
<div class="barb">
|
||
<div class="main" name="darktrailsmain">
|
||
<img class="center title" alt="Weird Frontiers Title with tentacle" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/WeirdFrontiersTitle.png">
|
||
<br/>
|
||
<input type="radio" name="attr_tab" class="tab tab1 invis" value="1" title="Main" checked="checked" />
|
||
<button type="action" name="act_tabby">Main</button>
|
||
<input type="radio" name="attr_tab" class="tab tab2 invis" value="2" title="Equipment & Notes" />
|
||
<button type="action" name="act_tabbytwo">Equipment & Notes</button>
|
||
<input type="radio" name="attr_tab" class="tab tab3 invis" value="3" title="Instructions" />
|
||
<button type="action" name="act_tabbythree">Instructions</button>
|
||
<br/>
|
||
<br/>
|
||
<div class="tab1">
|
||
<div class="basicinfo">
|
||
<input type="text" name="attr_character_name" title=@{attr_character_name} class="width100 biglabel" spellcheck=false> <br/>
|
||
<span class="width100 label"> Name</span><br/>
|
||
<div>
|
||
<select name="attr_class" title="@{attr_class}" value="calavera" class="width47 class">
|
||
<option value="zero-level">0 Level</option>
|
||
<option value="bedlamite">Bedlamite</option>
|
||
<option value="calavera" checked="checked">Calavera</option>
|
||
<option value="gambler">Gambler</option>
|
||
<option value="gunslinger">Gunslinger</option>
|
||
<option value="hellbilly">Hellbilly</option>
|
||
<option value="luchador">Luchador</option>
|
||
<option value="mountebank">Mountebank</option>
|
||
<option value="mystic-monk">Mystic Monk</option>
|
||
<option value="occultist">Occultist</option>
|
||
<option value="revelator">Revelator</option>
|
||
<option value="sin-eater">Sin-Eater</option>
|
||
<option value="tommyknocker">Tommyknocker</option>
|
||
</select>
|
||
<input type="radio" name="attr_class" class="zero invis" value="zero-level"/>
|
||
<input type="radio" name="attr_class" class="bedlamite invis" value="bedlamite" />
|
||
<input type="radio" name="attr_class" class="gambler invis" value="gambler" />
|
||
<input type="radio" name="attr_class" class="gunslinger invis" value="gunslinger" />
|
||
<input type="radio" name="attr_class" class="hellbilly invis" value="hellbilly" />
|
||
<input type="radio" name="attr_class" class="luchador invis" value="luchador" />
|
||
<input type="radio" name="attr_class" class="mountebank invis" value="mountebank" />
|
||
<input type="radio" name="attr_class" class="mystic-monk invis" value="mystic-monk" />
|
||
<input type="radio" name="attr_class" class="occultist invis" value="occultist" />
|
||
<input type="radio" name="attr_class" class="revelator invis" value="revelator" />
|
||
<input type="radio" name="attr_class" class="sin-eater invis" value="sin-eater" />
|
||
<input type="radio" name="attr_class" class="tommyknocker invis" value="tommyknocker" />
|
||
<input type="radio" name="attr_class" class="calavera invis" value="calavera" />
|
||
|
||
<img class="zero-image" alt="Zero Level" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/WeirdFrontiersLogo.png">
|
||
<img class="bedlamite-image" alt="Bedlamite" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Bedlamite_Art.png">
|
||
<img class="calavera-image" alt="Calavera" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Calavera_Art.png">
|
||
<img class="gambler-image" alt="Gambler" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Gambler_Art.png">
|
||
<img class="gunslinger-image" alt="Gunslinger" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Gunslinger_Art.png">
|
||
<img class="hellbilly-image" alt="Hellbilly" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Hellbilly_Art.png">
|
||
<img class="luchador-image" alt="Luchador" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Luchador_Art.png">
|
||
<img class="mountebank-image" alt="Mountebank" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Mountebank_Art.png">
|
||
<img class="mystic-monk-image" alt="Mystic Monk" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/MysticMonk_Art.png">
|
||
<img class="occultist-image" alt="Occultist" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Occultist_Art.png">
|
||
<img class="revelator-image" alt="Revelator" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Revelator_Art.png">
|
||
<img class="sin-eater-image" alt="Sin-eater" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Sin-eater_Art.png">
|
||
<img class="tommyknocker-image" alt="Tommyknocker" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/Tommyknocker_Art.png">
|
||
<input class="center derived width15 disabled" name="attr_hit_die" title=@{attr_hit_die} readonly/> <input type="number" name="attr_xp" title=@{attr_xp} class="width20"> <select name="attr_level" title=@{attr_level} value=1 class="width15 center">
|
||
<option value=0> 0</option>
|
||
<option value=1> 1</option>
|
||
<option value=2> 2</option>
|
||
<option value=3> 3</option>
|
||
<option value=4> 4</option>
|
||
<option value=5> 5</option>
|
||
<option value=6> 6</option>
|
||
<option value=7> 7</option>
|
||
<option value=8> 8</option>
|
||
<option value=9> 9</option>
|
||
<option value=10> 10</option>
|
||
</select>
|
||
</div>
|
||
<div class="up10">
|
||
<span class="width48 label inline"> Class</span> <span class="label width15 inline">HD</span> <span class="width20 label inline"> XP</span> <span class="label inline">Level</span>
|
||
</div>
|
||
<!--<div><span class="tinybreak">.</span></div> -->
|
||
<div>
|
||
<input type="text" name="attr_occupation" title=@{attr_occupation} class="width75" spellcheck=false>
|
||
<input type="number" name="attr_speed" title=@{attr_speed} class="width25"><br/>
|
||
</div>
|
||
<div>
|
||
<span class="width75 label inline"> Occupation</span> <span class="width25 label inline"> Speed</span>
|
||
</div>
|
||
<div>
|
||
<input type="text" name="attr_title" title=@{attr_title} class="width100 derived disabled" readonly>
|
||
</div>
|
||
<div>
|
||
<span class="width100 label inline">Title</span>
|
||
</div>
|
||
<div>
|
||
<select name="attr_birthsign" title=@{attr_birthsign} class="width100 left">
|
||
<option value="bad-moon-baby">Bad Moon Baby (attacks)</option>
|
||
<option value="hummingbird">Hummingbird Waltz (initiative)</option>
|
||
<option value="magpie">Magpie's Whisper (mimic sounds)</option>
|
||
<option value="armadillo">Armadillo's Hide (AC)</option>
|
||
<option value="fox">Fox's Guile (traps)</option>
|
||
<option value="hare">Luck 'o the Hare (crits/fumbles)</option>
|
||
<option value="harvest">Bountiful Harvest (HP)</option>
|
||
<option value="whitetail">Whitetail Grace (reflex saves)</option>
|
||
<option value="widow">Widow's Kiss (poison saves)</option>
|
||
<option value="badger">Badger Cunnin' (melee attacks)</option>
|
||
<option value="crow">Crow's Tongue (languages)</option>
|
||
<option value="shadow">Shadow-kin (corruption)</option>
|
||
<option value="rat">Desert Rat (fort saves)</option>
|
||
<option value="angel">Guardian Angel/Meddling Devil (reroll saves)</option>
|
||
<option value="ley">Ley Line Tuning Fork (magic use)</option>
|
||
<option value="unholy">Unholy Allergy (turn back night)</option>
|
||
<option value="rabbit">Lucky Rabbit's Foot (all saves)</option>
|
||
<option value="flying">Flying Rat's Radar (avoid surprise)</option>
|
||
<option value="grizzly">Grizzly's Swipe (melee damage)</option>
|
||
<option value="hawkeye">Hawkeye (ranged attacks)</option>
|
||
<option value="equine">Equine Charmer (horsemanship)</option>
|
||
<option value="jackalope">Jacklope Mojo (1 save type/day)</option>
|
||
<option value="lightnin">Lightnin' Rod (magic damage)</option>
|
||
<option value="sidewinder">Sidewinder Strike (ranged damage)</option>
|
||
<option value="roadrunner">Roadrunner's Pace (+/- 5' move)</option>
|
||
<option value="liver">Liver of Iron (alcohol)</option>
|
||
<option value="sixth">Sixth Sense (finding hidden)</option>
|
||
<option value="mountain">Mountain Tuff' (healing rec'd)</option>
|
||
<option value="roller">Holy Roller (healing given)</option>
|
||
<option value="cat">Stray Cat Strut (stealth/hide)</option>
|
||
</select>
|
||
</div>
|
||
<div class="up10">
|
||
<span class="width100 label inline"> Birth Augur / Lucky Sign</span>
|
||
</div>
|
||
<br/>
|
||
<label class="label center inverted width100">PATH</label>
|
||
<div class="path width100">
|
||
<div>
|
||
<span class="label width30 inline">Damned</span>
|
||
<span class="label width40 inline"></span>
|
||
<span class="label width30 inline">Righteous</span>
|
||
</div>
|
||
<input type="radio" name="attr_path" class="radio theline" value="Damned +1d" title="D+1d" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="Damned +3" title="D+3" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="Damned +2" title="D+2" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="Damned +1" title="D+1" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="The Line" title="The Line" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="Righteous +1" title="R+1" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="Righteous +2" title="R+2" />
|
||
<input type="radio" name="attr_path" class="radio theline" value="Righteous +3" title="R+3" />
|
||
<input type="radio" name="attr_path" class="radio" value="Righteous +1d" title="R+1d" />
|
||
<br/>
|
||
<div class="left">
|
||
<span class="label">+1d</span> <span class="label">+3 </span> <span class="label"> +2 </span> <span class="label"> +1 </span> <span class="label"> Line </span> <span class="label">+1 </span> <span class="label"> +2 </span> <span class="label"> +3 </span> <span class="label"> +1d</span>
|
||
</div>
|
||
</div>
|
||
<div class="hexboons left">
|
||
<div>
|
||
<span class="width25">
|
||
<input type="checkbox" name="attr_booned" class=" booned invis" />
|
||
<input title="Boons" type="number" min=0 max=20 value=0 name="attr_boons" class="width50 center boons"/>
|
||
</span>
|
||
<span class="width25">
|
||
<input type="checkbox" name="attr_hexed" class=" hexed invis" />
|
||
<input title="Hexes" type="number" min=0 max=20 value=0 name="attr_hexes" class="width50 center hexes"/>
|
||
</span>
|
||
<span class="width45 init">
|
||
<input type="number" name="attr_agility_mod" class="width20 derived disabled" value=0 readonly />
|
||
<button type="roll" name="roll_init" class="small" value="&{template:initiative} {{character=@{character_name}}} {{?{Situational Modifier|0} }} {{modifier=@{agility_mod} }} {{roll=[[1d20 + @{agility_mod} + ?{Situational Modifier} &{tracker}]] }}">20</button><button type="roll" name="roll_init" class="small" value="&{template:initiative} {{character=@{character_name}}} {{modifier=@{agility_mod} }} {{roll=[[1d16 + @{agility_mod} + ?{Situational Modifier} &{tracker}]] }}">16</button>
|
||
</span>
|
||
</div>
|
||
<div class="">
|
||
<span class="width20 label inline">Boons</span> <span class="width25 label inline">Hexes</span> <span class="label center width50 inline">Initiative</span>
|
||
</div>
|
||
</div>
|
||
<div class="left attrib">
|
||
<span class="biglabel inverted width55">STRENGTH</span><input type="number" min=3 max=19 value=10 name="attr_strength" class="bignumber width20" /><button type="roll" class="small" name="roll_strength" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Strength}} {{score=@{strength} }} {{modifier=@{strength_mod} }} {{roll=[[1d20 + @{strength_mod}]]}}">T</button><button type="roll" class="small" name="roll_strength_u" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Strength}} {{score=@{strength} }} {{modifier=@{strength_mod} }} {{roll=[[1d10cs0cf0 + @{strength_mod}]]}}">U</button>
|
||
<div class="up4 indent">
|
||
<span class="label">mod</span> <input type="number" name="attr_strength_mod" class="width10 smallnumber derived disabled" readonly /> <span class="label">max</span> <input type="number" class="width12 smallnumber" value=10 name="attr_strength_maxx" />
|
||
<button type="roll" name="roll_melee" class="invis" value="@{strength_mod}"></button>
|
||
</div>
|
||
</div>
|
||
<div class="left attrib">
|
||
<span class="biglabel inverted width55">AGILITY</span><input type="number" min=3 max=19 value=10 name="attr_agility" class="bignumber width20" /><button type="roll" class="small" name="roll_agility" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Agility}} {{score=@{agility} }} {{modifier=@{agility_mod} }} {{roll=[[1d20 + @{agility_mod}]]}}">T</button><button type="roll" class="small" name="roll_agility_u" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Agility}} {{score=@{agility} }} {{modifier=@{agility_mod} }} {{roll=[[1d10cs0cf0 + @{agility_mod}]]}}">U</button>
|
||
<div class="up4 indent">
|
||
<span class="label">mod</span> <input type="number" name="attr_agility_mod" class="width10 smallnumber derived disabled" readonly /> <span class="label">max</span> <input type="number" class="width12 smallnumber" value=10 name="attr_agility_maxx" />
|
||
<button type="roll" name="roll_ranged" class="invis" value="@{agility_mod}"></button>
|
||
</div>
|
||
</div>
|
||
<div class="left">
|
||
<span class="biglabel inverted width55">STAMINA</span><input type="number" min=3 max=19 value=10 name="attr_stamina" class="bignumber width20" /><button type="roll" class="small" name="roll_stamina" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Stamina}} {{score=@{stamina} }} {{modifier=@{stamina_mod} }} {{roll=[[1d20 + @{stamina_mod}]]}}">T</button><button type="roll" class="small" name="roll_stamina_u" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Stamina}} {{score=@{stamina} }} {{modifier=@{stamina_mod} }} {{roll=[[1d10cs0cf0 + @{stamina_mod}]]}}">U</button>
|
||
<div class="up4 indent">
|
||
<span class="label">mod</span> <input type="number" name="attr_stamina_mod" class="width10 smallnumber derived disabled" readonly /> <span class="label">max</span> <input type="number" class="width12 smallnumber" value=10 name="attr_stamina_maxx" />
|
||
</div>
|
||
</div>
|
||
<div class="left">
|
||
<span class="biglabel inverted width55">PERSONALITY</span><input type="number" min=3 max=19 value=10 name="attr_personality" class="bignumber width20" /><button type="roll" class="small" name="roll_personality" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Personality}} {{score=@{personality} }} {{modifier=@{personality_mod} }} {{roll=[[1d20 + @{personality_mod}]]}} {{extra=Path: @{path}}}">T</button><button type="roll" class="small" name="roll_personality_u" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Personality}} {{score=@{personality} }} {{modifier=@{personality_mod} }} {{roll=[[1d10cs0cf0 + @{personality_mod}]]}} {{extra=Path: @{path}}}">U</button>
|
||
<div class="up4 indent">
|
||
<span class="label">mod</span> <input type="number" name="attr_personality_mod" class="width10 smallnumber derived disabled" readonly /> <span class="label">max</span> <input type="number" class="width12 smallnumber" value=10 name="attr_personality_maxx" />
|
||
</div>
|
||
</div>
|
||
<div class="left">
|
||
<span class="biglabel inverted width55">LUCK</span><input type="number" min=3 max=19 value=10 name="attr_luck" class="bignumber width20" /><button type="roll" class="small" name="roll_luck" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Luck}} {{score=@{luck} }} {{modifier=0 }} {{roll=[[1d20cs1cf20]] }}">T</button><button type="roll" class="small" name="roll_luck_u" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Luck}} {{score=@{luck} }} {{modifier=0 }} {{roll=[[1d10cs0cf0]]}}">U</button>
|
||
<div class="up4 indent">
|
||
<span class="label">mod</span> <input type="number" name="attr_luck_mod" class="width10 smallnumber derived disabled" readonly /> <span class="label">max</span> <input type="number" class="width12 smallnumber" value=10 name="attr_luck_maxx" />
|
||
</div>
|
||
</div>
|
||
<div class="left">
|
||
<span class="biglabel inverted width55">INTELLIGENCE</span><input type="number" min=3 max=19 value=10 name="attr_intelligence" class="bignumber width20" /><button type="roll" class="small" name="roll_intelligence" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Intelligence}} {{score=@{intelligence} }} {{modifier=@{intelligence_mod} }} {{roll=[[1d20 + @{intelligence_mod}]]}}">T</button><button type="roll" class="small" name="roll_intelligence_u" value="&{template:ability-check} {{character=@{character_name}}} {{ability=Intelligence}} {{score=@{intelligence} }} {{modifier=@{intelligence_mod} }} {{roll=[[1d10cs0cf0 + @{intelligence_mod}]]}}">U</button>
|
||
<div class="up4 indent">
|
||
<span class="label">mod</span> <input type="number" name="attr_intelligence_mod" class="width10 smallnumber derived disabled" readonly /> <span class="label">max</span> <input type="number" class="width12 smallnumber" value=10 name="attr_intelligence_maxx" />
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<div class="class-specific down10">
|
||
<input type="text" name="attr_primary_action_die" class="width25 derived disabled center"/><span class="width25 inline"></span><input type="text" name="attr_secondary_action_die" class="width25 derived disabled center"/>
|
||
<br/>
|
||
<span class="label width50 center inline">Primary Action</span><span class="label width50 center inline">Secondary Action</span>
|
||
<br/><br/>
|
||
<input type="checkbox" name="attr_class" class="bedlamite2 invis" value="bedlamite"/>
|
||
<input type="checkbox" name="attr_class" class="calavera2 invis" value="calavera" />
|
||
<input type="checkbox" name="attr_class" class="gambler2 invis" value="gambler" />
|
||
<input type="checkbox" name="attr_class" class="gunslinger2 invis" value="gunslinger" />
|
||
<input type="checkbox" name="attr_class" class="hellbilly2 invis" value="hellbilly" />
|
||
<input type="checkbox" name="attr_class" class="luchador2 invis" value="luchador"/>
|
||
<input type="checkbox" name="attr_class" class="mountebank2 invis" value="mountebank"/>
|
||
<input type="checkbox" name="attr_class" class="mystic-monk2 invis" value="mystic-monk"/>
|
||
<input type="checkbox" name="attr_class" class="occultist2 invis" value="occultist"/>
|
||
<input type="checkbox" name="attr_class" class="revelator2 invis" value="revelator"/>
|
||
<input type="checkbox" name="attr_class" class="sin-eater2 invis" value="sin-eater"/>
|
||
<input type="checkbox" name="attr_class" class="tommyknocker2 invis" value="tommyknocker"/>
|
||
|
||
<!-- CLASS DIE COMMON TO MANY CLASSES -->
|
||
<input class="center derived width35 invis disabled gambler2 gunslinger2 hellbilly2 mystic-monk2 luchador2" name="attr_class_die" readonly/>
|
||
|
||
<!-- BEDLAMITE SPECIFIC -->
|
||
<input class="bedlamite2 center derived width25 invis disabled" name="attr_wondrous_contraptions" readonly/>
|
||
<span class="bedlamite2 invis width25 label center"></span>
|
||
<input class="bedlamite2 center derived width25 invis disabled" name="attr_mundane_contraptions" readonly/>
|
||
<span class="bedlamite2 invis width50 label center">Wondrous Cntrps</span>
|
||
<span class="bedlamite2 invis width50 label center">Mundane Cntrps</span>
|
||
<input class="center derived width30 invis disabled bedlamite2 down10" name="attr_power_mod" readonly/>
|
||
<input class="center derived width30 invis disabled bedlamite2 down10" name="attr_max_contraption_level" readonly/>
|
||
<input class="center derived width30 invis disabled bedlamite2 down10" name="attr_derangement" readonly/>
|
||
<span class="bedlamite2 invis width35">Gear Check</span>
|
||
<span class="bedlamite2 invis width30">Max Lvl</span>
|
||
<span class="bedlamite2 invis width35">Derangement</span>
|
||
|
||
<!-- CALAVERA SPECIFIC -->
|
||
<input class="center derived width80 invis disabled calavera2" value="+1d ranged/melee damage" readonly/>
|
||
<span class="calavera2 width90 invis label center">Magical Gloom</span>
|
||
|
||
<!-- GAMBLER SPECIFIC -->
|
||
<button type="roll" name="roll_mojo_die" class="small invis gambler2" value="&{template:class-die} {{character=@{character_name}}} {{label=Mojo Die}} {{?{Situational Modifier|0} }} {{roll=[[@{class_die}cs0cf0 + ?{Situational Modifier}]] }}"></button>
|
||
<span class="gambler2 width10 invis"></span>
|
||
<input class="center derived width25 invis disabled gambler2" name="attr_tolerance" value="+1d" readonly/>
|
||
<span class="gambler2 width13 invis"></span>
|
||
<span class="gambler2 width25 invis">Mojo Die</span>
|
||
<span class="gambler2 width15 invis"></span>
|
||
<span class="gambler2 width45 invis">Alcohol Toler.</span>
|
||
<input class="center derived width45 invis disabled down10 gambler2" name="attr_crime" value="+1d" readonly/>
|
||
<span class="gambler2 width75 invis">Non-violent Crime</span>
|
||
|
||
|
||
<!-- GUNSLINGER SPECIFIC -->
|
||
<span class="gunslinger2 width10 invis"></span>
|
||
<input class="center derived width35 invis disabled gunslinger2" name="attr_crit_range" value="20" readonly/>
|
||
<span class="gunslinger2 width35 invis">Deadeye Die</span>
|
||
<span class="gunslinger2 width10 invis"></span>
|
||
<span class="gunslinger2 width35 invis">Crit Range</span>
|
||
|
||
<!-- HELLBILLY SPECIFIC -->
|
||
<button type="roll" name="roll_ballad_die" class="small invis hellbilly2" value="&{template:class-die} {{character=@{character_name}}} {{label=Ballad Die}} {{?{Situational Modifier|0} }} {{roll=[[@{class_die}cs0cf0 + ?{Situational Modifier}]] }}"></button>
|
||
<span class="hellbilly2 width75 invis">Ballad Die</span>
|
||
|
||
<!-- LUCHADOR SPECIFIC -->
|
||
<span class="luchador2 width10 invis"></span>
|
||
<input class="center derived width35 invis disabled luchador2" name="attr_fame" readonly/>
|
||
<span class="luchador2 width35 invis">Lucha Die</span>
|
||
<span class="luchador2 width10 invis"></span>
|
||
<span class="luchador2 width35 invis">Fame</span>
|
||
<input class="center derived width30 invis disabled luchador2 down10" name="attr_battle_hardened" readonly/>
|
||
<span class="luchador2 center width90 invis">Battle Hardened (Unarmed Dmg)</span>
|
||
|
||
<!-- MOUNTEBANK SPECIFIC -->
|
||
<input class="center derived width25 invis disabled mountebank2" name="attr_known_formulae" readonly/>
|
||
<span class="mountebank2 width30 invis"></span>
|
||
<input class="center derived width25 invis disabled mountebank2" name="attr_max_formula_level" readonly/>
|
||
<span class="mountebank2 width45 invis">Known Formulae</span>
|
||
<span class="mountebank2 width5 invis"></span>
|
||
<span class="mountebank2 width45 invis">Max Form. Level</span>
|
||
<input class="center derived width25 invis disabled mountebank2" name="attr_max_active_formulae" readonly/>
|
||
<span class="mountebank2 width30 invis"></span>
|
||
<input class="center derived width25 invis disabled mountebank2" name="attr_power_mod" readonly/>
|
||
<span class="mountebank2 width45 invis">Max Active Form.</span>
|
||
<span class="mountebank2 width12 invis"></span>
|
||
<span class="mountebank2 width35 invis">Brew Check</span>
|
||
<span class="mountebank2 width5 invis"></span>
|
||
<input class="center derived width25 invis disabled down10 mountebank2" name="attr_fire_bomb_damage" readonly/>
|
||
<span class="mountebank2 width30 invis"></span>
|
||
<input class="center derived width25 invis disabled down10 mountebank2" name="attr_acid_bomb_damage" readonly/>
|
||
<span class="mountebank2 width45 invis">Fire Bomb Dmg</span>
|
||
<span class="mountebank2 width5 invis"></span>
|
||
<span class="mountebank2 width45 invis">Acid Bomb Dmg</span>
|
||
<input class="center derived width45 invis disabled mountebank2" name="attr_adhesive" readonly/>
|
||
<span class="mountebank2 width20 invis"></span>
|
||
<input class="center derived width25 invis disabled mountebank2" name="attr_poultice_healing" readonly/>
|
||
<span class="mountebank2 width8 invis"></span>
|
||
<span class="mountebank2 width45 invis">Adhesive</span>
|
||
<span class="mountebank2 width5 invis"></span>
|
||
<span class="mountebank2 width45 invis">Poultice Healing</span>
|
||
|
||
<!-- MYSTIC MONK SPECIFIC -->
|
||
<button type="roll" name="roll_chi_die" class="small invis mystic-monk2" value="&{template:class-die} {{character=@{character_name}}} {{label=Chi Die}} {{?{Situational Modifier|0} }} {{roll=[[@{class_die}cs0cf0 + ?{Situational Modifier}]] }}"></button>
|
||
<span class="mystic-monk2 width10 invis"></span>
|
||
<input class="center derived width35 invis disabled mystic-monk2" name="attr_living_weapon" readonly/>
|
||
<span class="mystic-monk2 width38 invis"> Chi Die</span>
|
||
<span class="mystic-monk2 width20 invis"></span>
|
||
<span class="mystic-monk2 width38 invis">Living Weapon</span>
|
||
|
||
<!-- OCCULTIST SPECIFIC -->
|
||
<input class="center derived width25 invis disabled occultist2" name="attr_power_mod" readonly/>
|
||
<span class="occultist2 width5 invis"></span>
|
||
<input class="center derived width25 invis disabled occultist2" name="attr_known_spells" readonly/>
|
||
<span class="occultist2 width5 invis"></span>
|
||
<input class="center derived width25 invis disabled occultist2" name="attr_max_spell_level" readonly/>
|
||
<span class="occultist2 width33 invis">Spell Check</span>
|
||
<span class="occultist2 width30 invis"># Known</span>
|
||
<span class="occultist2 width30 invis">Max Level</span>
|
||
<input class="center width90 invis down10 occultist2" type="text" name="attr_familiar" spellcheck=false />
|
||
<span class="occultist2 width90 invis">Familiar</span>
|
||
|
||
<!-- REVELATOR SPECIFIC -->
|
||
<input class="center width45 invis revelator2" type="number" name="attr_fall_from_grace" value="1"/>
|
||
<span class="revelator2 width100 invis">Fall From Grace</span>
|
||
<br class="revelator2 invis"/>
|
||
<br class="revelator2 invis"/>
|
||
<input class="center width19 invis derived disabled revelator2" type="number" name="attr_spells_first" value="0"/>
|
||
<input class="center width19 invis derived disabled revelator2" type="number" name="attr_spells_second" value="0"/>
|
||
<input class="center width19 invis derived disabled revelator2" type="number" name="attr_spells_third" value="0"/>
|
||
<input class="center width19 invis derived disabled revelator2" type="number" name="attr_spells_fourth" value="0"/>
|
||
<input class="center width19 invis derived disabled revelator2" type="number" name="attr_spells_fifth" value="0"/>
|
||
<span class="revelator2 width19 invis">1st</span>
|
||
<span class="revelator2 width19 invis">2nd</span>
|
||
<span class="revelator2 width19 invis">3rd</span>
|
||
<span class="revelator2 width19 invis">4th</span>
|
||
<span class="revelator2 width19 invis">5th</span>
|
||
<span class="revelator2 width100 invis">--------Miracles--------</span>
|
||
|
||
<!--SIN-EATER SPECIFIC -->
|
||
<input class="center width30 invis sin-eater2" type="number" min=0 value=0 name="attr_coin_charges"/>
|
||
<span class="sin-eater2 width100 invis">Ferryman's Coin Charges (Max=level)</span>
|
||
|
||
<!-- TOMMYKNOCKER SPECIFIC -->
|
||
<input class="center width90 invis derived disabled tommyknocker2" type="text" value="+1d melee damage & str checks" readonly/>
|
||
<span class="tommyknocker2 width100 invis">Strength of the Grave</span>
|
||
<input class="center width90 invis derived disabled down10 tommyknocker2" type="text" value="receive -1d damage & no crits" readonly/>
|
||
<span class="tommyknocker2 width100 invis">Tough as Nails</span>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="middlegap">
|
||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/guns.png" alt="Crossed Guns Silhouette" class="center" />
|
||
<div class="hp">
|
||
|
||
<input type="number" name="attr_hit_points" class="width35 center opaque"/> / <input type="number" name="attr_hit_points_max" class="width35 center opaque"/>
|
||
</div>
|
||
<br/>
|
||
<div class="ac">
|
||
<input type="text" name="attr_armor_class" class="width30 center opaque"/><br/>
|
||
</div>
|
||
<br/>
|
||
<div class="grit">
|
||
<input title="@{grit}" type="text" name="attr_grit" value="0" class="width30 center opaque"/> / <input title="@{grit_max}" type="number" name="attr_grit_max" class="width30 center opaque"/><br/>
|
||
<button type="roll" name="roll_grit" value="&{template:saving-throw} {{character=@{character_name}}} {{save=Grit Check / Will}} {{modifier=@{will} }} {{roll=[[1d20 + @{will}]]}} {{extra=Current Hexes: @{hexes}\nPoints Lost on Fail: varies}}"></button>
|
||
</div>
|
||
|
||
<div class="left left20 saves">
|
||
<div class="">
|
||
<span class="width35 label reflex inline">Ref </span><input type="number" min=-5 max=12 value=0 name="attr_reflex_mod" class="width20"/> <input type="number" min=-5 max=10 value=0 name="attr_reflex" class="width24 derived disabled"/><button type="roll" name="roll_reflex" value="&{template:saving-throw} {{character=@{character_name}}} {{save=Reflex}} {{modifier=@{reflex} }} {{roll=[[1d20 + @{reflex}]]}}"></button>
|
||
</div>
|
||
<br/>
|
||
<br/>
|
||
<div class="fort">
|
||
<span class="width35 label fortitude inline">Fort</span><input type="number" min=-5 max=12 value=0 name="attr_fort_mod" class="width20"/> <input type="number" min=-5 max=10 value=0 name="attr_fort" class="width24 derived disabled"/><button type="roll" name="roll_fort" value="&{template:saving-throw} {{character=@{character_name}}} {{save=Fort}} {{modifier=@{fort} }} {{roll=[[1d20 + @{fort}]]}}"></button>
|
||
</div>
|
||
<br/>
|
||
<br/>
|
||
<div class="will">
|
||
<span class="width35 label will inline">Will</span><input type="number" min=-5 max=12 value=0 name="attr_will_mod" class="width20"/> <input type="number" min=-5 max=10 value=0 name="attr_will" class="width24 derived disabled"/><button type="roll" name="roll_will" value="&{template:saving-throw} {{character=@{character_name}}} {{save=Will}} {{modifier=@{will} }} {{roll=[[1d20 + @{will}]]}}"></button>
|
||
</div>
|
||
</div>
|
||
<div class="luckyroll">
|
||
<div class=""><input class="width90 center disabled derived" type="text" value="" name="attr_lucky_roll" /></div>
|
||
<div><span class="label">Lucky Roll</span></div>
|
||
</div>
|
||
<br/>
|
||
<div class="extraattack">
|
||
<div>
|
||
<input title="Attack" type="number" min=0 max=20 value=0 name="attr_melee_bonus" class="width50 center derived disabled"/>
|
||
</div>
|
||
<div>
|
||
<span class="width100 center label">Melee Bonus</span>
|
||
</div>
|
||
<div>
|
||
<input title="Ranged" type="number" min=0 max=20 value=0 name="attr_ranged_bonus" class="width50 center derived disabled down10"/>
|
||
</div>
|
||
<div>
|
||
<span class="width100 center label">Ranged Bonus</span>
|
||
</div>
|
||
<div>
|
||
<select title="Crit" name="attr_crit_die" class="width45 center crit-die derived disabled down10">
|
||
<option class="label" value="d3">d3</option>
|
||
<option class="label" value="d4">d4</option>
|
||
<option class="label" value="d5">d5</option>
|
||
<option class="label" value="d6" selected>d6</option>
|
||
<option class="label" value="d7">d7</option>
|
||
<option class="label" value="d8">d8</option>
|
||
<option class="label" value="d10">d10</option>
|
||
<option class="label" value="d12">d12</option>
|
||
<option class="label" value="d14">d14</option>
|
||
<option class="label" value="d16">d16</option>
|
||
<option class="label" value="d20">d20</option>
|
||
<option class="label" value="d24">d24</option>
|
||
<option class="label" value="d30">d30</option>
|
||
</select>
|
||
</div>
|
||
<div class="up10">
|
||
<span class="width100 center label">Crit Die</span>
|
||
</div>
|
||
<div>
|
||
<select title="Base Fumble Die" name="attr_fumble_die_base" class="width45 center fumble-die derived disabled down10">
|
||
<option class="label" value="d2">d2</option>
|
||
<option class="label" value="d3">d3</option>
|
||
<option class="label" value="d4">d4</option>
|
||
<option class="label" value="d5">d5</option>
|
||
<option class="label" value="d6" selected>d6</option>
|
||
<option class="label" value="d7">d7</option>
|
||
<option class="label" value="d8">d8</option>
|
||
<option class="label" value="d10">d10</option>
|
||
<option class="label" value="d12">d12</option>
|
||
<option class="label" value="d14">d14</option>
|
||
<option class="label" value="d16">d16</option>
|
||
<option class="label" value="d20">d20</option>
|
||
<option class="label" value="d24">d24</option>
|
||
<option class="label" value="d30">d30</option>
|
||
</select>
|
||
<input type="checkbox" name="attr_hexed" class=" hexed invis" />
|
||
<select title="Fumble Die Modified" name="attr_fumble_die" class="width45 center derived fumble-die disabled down10" >
|
||
<option class="label" value="d2">d2</option>
|
||
<option class="label" value="d3">d3</option>
|
||
<option class="label" value="d4">d4</option>
|
||
<option class="label" value="d5">d5</option>
|
||
<option class="label" value="d6" selected>d6</option>
|
||
<option class="label" value="d7">d7</option>
|
||
<option class="label" value="d8">d8</option>
|
||
<option class="label" value="d10">d10</option>
|
||
<option class="label" value="d12">d12</option>
|
||
<option class="label" value="d14">d14</option>
|
||
<option class="label" value="d16">d16</option>
|
||
<option class="label" value="d20">d20</option>
|
||
<option class="label" value="d24">d24</option>
|
||
<option class="label" value="d30">d30</option>
|
||
</select>
|
||
|
||
</div>
|
||
<div class="up10">
|
||
<span class="width100 center label">Fumble Die</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="rightcol">
|
||
<span class="label width100 inverted center list-header inline">
|
||
<span>WEAPONS</span>
|
||
</span>
|
||
<div class="table-header">
|
||
<span class="width45 label inline">Name</span> <span class="width14 label inline">Type</span> <span class="width18 label inline">Range</span> <span class="width20 label inline">Damage</span>
|
||
</div>
|
||
<div name="attr_signature_weapons" class="list width100 weapons">
|
||
<fieldset class="repeating_weapons">
|
||
<div class="list-item">
|
||
<input type="text" class="width45 item-name item-field" name="attr_weaponname" placeholder="Weapon Name..." spellcheck=false />
|
||
<select name="attr_weapontype" class="width14 item-field" value="">
|
||
<option value="Melee">Melee</option>
|
||
<option value="Ranged">Ranged</option>
|
||
</select>
|
||
<input type="text" class="width18" name="attr_weaponrange" placeholder="S/M/L" />
|
||
<select name="attr_weapondamagenumdice" class="width5">
|
||
<option value="0">0</option>
|
||
<option value="1" selected="selected">1</option>
|
||
<option value="2">2</option>
|
||
<option value="3">3</option>
|
||
<option value="4">4</option>
|
||
<option value="5">5</option>
|
||
<option value="6">6</option>
|
||
<option value="7">7</option>
|
||
<option value="8">8</option>
|
||
<option value="9">9</option>
|
||
</select>
|
||
<select name="attr_weapondamagedie" class="width9">
|
||
<option value="d3">d3</option>
|
||
<option value="d4">d4</option>
|
||
<option value="d5">d5</option>
|
||
<option value="d6" selected="selected">d6</option>
|
||
<option value="d7">d7</option>
|
||
<option value="d8">d8</option>
|
||
<option value="d10">d10</option>
|
||
<option value="d12">d12</option>
|
||
<option value="d14">d14</option>
|
||
<option value="d16">d16</option>
|
||
</select>
|
||
<select name="attr_weapondamagebonus" class="width7">
|
||
<option value="-4">-4</option>
|
||
<option value="-3">-3</option>
|
||
<option value="-2">-2</option>
|
||
<option value="-1">-1</option>
|
||
<option value="0" selected="selected">+0</option>
|
||
<option value="1">+1</option>
|
||
<option value="2">+2</option>
|
||
<option value="3">+3</option>
|
||
<option value="4">+4</option>
|
||
</select>
|
||
<br/>
|
||
<input type="number" name="attr_weaponstathitbonus" class="invis" />
|
||
<input type="number" name="attr_weaponstatdamagebonus" class="invis" />
|
||
<input type="text" name="attr_weaponhitbonusdie" class="invis" />
|
||
<input type="text" name="attr_weapondamagebonusdie" class="invis" />
|
||
<input type="number" name="attr_signature_mod" class="invis" />
|
||
<button type="roll" name="roll_weapon_primary" class="small" value="&{template:attack} {{character=@{character_name}}} {{weapon=@{weaponname}}} {{weapontype=@{weapontype}}} {{modifier=[[@{weaponstathitbonus} + @{signature_mod} + ?{Situational Modifier|0}]] }} {{roll=[[@{primary_action_die}@{primary_crit_threshold} + @{weaponstathitbonus} + @{signature_mod} + ?{Situational Modifier} ]] }} {{damage=[[{ @{weapondamagenumdice}@{weapondamagedie}cs0cf0+@{weapondamagebonus}+@{weaponstatdamagebonus}, 0d0+1}kh1]]}} {{critdie=@{crit_die} }} {{critroll=[[@{crit_die} + @{luck_mod}]] }} {{fumbledie=@{fumble_die} }} {{fumbleroll=[[@{fumble_die}cs0cf0 -(@{luck_mod})]]}} {{hasextra=[[@{weaponhitbonusdie}]] }} {{extra=@{class_die_label}(@{weaponhitbonusdie}): [[@{weaponhitbonusdie}cf<2cs>3]]}}">P</button><button type="roll" name="roll_weapon_secondary" class="small" value="&{template:attack} {{character=@{character_name}}} {{weapon=@{weaponname}}} {{weapontype=@{weapontype}}} {{modifier=[[@{weaponstathitbonus} + @{signature_mod} + ?{Situational Modifier|0}]] }} {{roll=[[@{secondary_action_die}@{secondary_crit_threshold} + @{weaponstathitbonus} + @{signature_mod} + ?{Situational Modifier|0}]] }} {{damage=[[{ @{weapondamagenumdice}@{weapondamagedie}cs0cf0+@{weapondamagebonus}+@{weaponstatdamagebonus}, 0d0+1}kh1 ]]}} {{critdie=@{crit_die} }} {{critroll=[[@{crit_die} + @{luck_mod}]] }} {{fumbledie=@{fumble_die} }} {{fumbleroll=[[@{fumble_die}cs0cf0 -(@{luck_mod})]]}} {{hasextra=[[@{weaponhitbonusdie}]] }} {{extra=@{class_die_label}(@{weaponhitbonusdie}): [[@{weaponhitbonusdie}cf<2cs>3]]}}">S</button>
|
||
<input type="text" name="attr_weaponnotes" class="width80 up4" placeholder="Notes, Ammunition, Special..." spellcheck=false />
|
||
<span class="label small">Sig </span><input type="checkbox" name="attr_signature" checked>
|
||
</div>
|
||
</fieldset>
|
||
</div> <!-- close signature weapons -->
|
||
<label class="label width100 inverted center">
|
||
<span>SPECIAL ABILITIES AND SPELLS</span>
|
||
</label>
|
||
<div class="table-header">
|
||
<span class="width38 label inline">Name</span><span class="width13 label inline">Area</span> <span class="width12 label inline">Range</span> <span class="width14 label inline">Duration </span> <span class="width20 label inline"> Damage</span>
|
||
</div>
|
||
<div class="special-abilities list">
|
||
<fieldset class="repeating_powers">
|
||
<div class="list-item">
|
||
<input type="text" class="width38 item-name item-field" name="attr_powername" placeholder="Ability Name..." spellcheck=false />
|
||
<input type="text" class="width14 item-field" name="attr_powerarea" placeholder="10' rad..."/>
|
||
<input type="text" class="width11 item-field" name="attr_powerrange" placeholder="10'..." />
|
||
<input type="text" class="width14 item-field" name="attr_powerduration" placeholder="1 rnd/lvl..." />
|
||
<select name="attr_powerdamagenumdice" class="width5 item-field">
|
||
<option value="0" selected="selected">0</option>
|
||
<option value="1">1</option>
|
||
<option value="2">2</option>
|
||
<option value="3">3</option>
|
||
<option value="4">4</option>
|
||
<option value="5">5</option>
|
||
<option value="6">6</option>
|
||
<option value="7">7</option>
|
||
<option value="8">8</option>
|
||
<option value="9">9</option>
|
||
</select>
|
||
<select name="attr_powerdamagedie" class="width9 item-field">
|
||
<option value="d3">d3</option>
|
||
<option value="d4">d4</option>
|
||
<option value="d5">d5</option>
|
||
<option value="d6" selected="selected">d6</option>
|
||
<option value="d7">d7</option>
|
||
<option value="d8">d8</option>
|
||
<option value="d10">d10</option>
|
||
<option value="d12">d12</option>
|
||
<option value="d14">d14</option>
|
||
<option value="d16">d16</option>
|
||
</select>
|
||
<select name="attr_powerdamagebonus" class="width7 item-field">
|
||
<option value="-4">-4</option>
|
||
<option value="-3">-3</option>
|
||
<option value="-2">-2</option>
|
||
<option value="-1">-1</option>
|
||
<option value="0" selected="selected">+0</option>
|
||
<option value="1">+1</option>
|
||
<option value="2">+2</option>
|
||
<option value="3">+3</option>
|
||
<option value="4">+4</option>
|
||
</select>
|
||
<br/>
|
||
<button type="roll" class="small" name="roll_power_primary" value="&{template:power} {{character=@{character_name}}} {{power=@{powername}}} {{?{Situational Modifier|0} }}{{modifier=@{power_mod} }} {{roll=[[@{primary_action_die}@{primary_crit_threshold} + @{power_mod} + ?{Situational Modifier|0} ]] }} {{damage=[[@{powerdamagenumdice}@{powerdamagedie}cs0cf0+@{powerdamagebonus}]] }} {{critdie=@{crit_die} }} {{critroll=[[@{crit_die}cs0cf0 + @{luck_mod}]] }} {{fumbledie=@{fumble_die} }} {{fumbleroll=[[@{fumble_die}cs0cf0 -(@{luck_mod})]]}} {{notes=@{powernotes} }}">P</button><button type="roll" class="small" name="roll_power_secondary" value="&{template:power} {{character=@{character_name}}} {{power=@{powername}}} {{?{Situational Modifier|0} }} {{modifier=@{power_mod} }} {{roll=[[@{secondary_action_die}@{secondary_crit_threshold} + @{power_mod} + ?{Situational Modifier|0}]] }} {{damage=[[@{powerdamagenumdice}@{powerdamagedie}cs0cf0+@{powerdamagebonus}]] }} {{critdie=@{crit_die} }} {{critroll=[[@{crit_die}cs0cf0 + @{luck_mod}]] }} {{fumbledie=@{fumble_die} }} {{fumbleroll=[[@{fumble_die}cs0cf0 -(@{luck_mod})]]}} {{notes=@{powernotes} }}">S</button>
|
||
<input type="text" name="attr_powernotes" class="width85 up4" placeholder="Notes..." spellcheck=false />
|
||
</div>
|
||
</fieldset>
|
||
</div> <!-- close special abilities -->
|
||
</div> <!-- close rightcol -->
|
||
</div> <!-- close tab1 -->
|
||
<div class="tab2">
|
||
<img class="tab2" alt="Weird Frontiers Logo" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/WeirdFrontiers/WeirdFrontiersLogo.png">
|
||
<div class="width52">
|
||
<label class="label inverted center">
|
||
<span>GOODS & SUNDRIES</span>
|
||
</label>
|
||
<div class="width100">
|
||
<textarea name="attr_sundries" class="sundries"></textarea>
|
||
</div>
|
||
<label class="label width100 inverted center">
|
||
<span>DINERO & VALUABLES</span>
|
||
</label>
|
||
<div class="width100">
|
||
<textarea name="attr_valuables" class="valuables"></textarea>
|
||
</div>
|
||
<label class="label width100 inverted center">
|
||
<span>ARCANE VAULT</span>
|
||
</label>
|
||
<div class="width100">
|
||
<textarea name="attr_arcane" class="arcane"></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="width52 rightcol2">
|
||
<label class="label width100 inverted center">
|
||
<span>TRAIL NOTES</span>
|
||
</label>
|
||
<div class="width100">
|
||
<textarea name="attr_trail_notes" class="trail-notes"></textarea>
|
||
</div>
|
||
<label class="label width100 inverted center">
|
||
<span>STABLE</span>
|
||
</label>
|
||
<div class="width100">
|
||
<textarea name="attr_stable" class="stable"></textarea>
|
||
</div>
|
||
</div>
|
||
</div> <!-- end tab2 -->
|
||
<div class="tab3">
|
||
<div class="instructions">
|
||
<div class="width100 center biglabel inverted">SHEET INSTRUCTIONS</div>
|
||
<br/>
|
||
<div><input type="text" class="width12" disabled> – Blue fields are for you to enter information</div>
|
||
<div><input type="text" class="width12 disabled" disabled> – Grey fields are auto-calculated information; you cannot edit them</div>
|
||
<div><span class="width12 label"> <button class="btn" disabled />Modify</button> </span> – Clicking this button allows you to reorder or delete Weapons or Spells</div>
|
||
<div><span class="label width12 inline">Actions</span> – All characters have a Primary Action Die. At higher levels you get a Secondary Action Die.</div>
|
||
<div class="bigindent"> – The "P" button next to a weapon or spell means using your primary action die</div>
|
||
<div class="bigindent"> – The "S" button next to a weapon or spell means using your secondary action die (if any)</div>
|
||
<div><span class="label width12 inline">Attributes</span> – Six main attributes (Strength, Agility, etc.) define your character</div>
|
||
<div class="bigindent"> – Each attribute has a "max" field representing the normal value (when not modified by situational factors)</div>
|
||
<div class="bigindent"> – The large field is the current value; it may have been raised by magic or lowered by spellburn</div>
|
||
<div class="bigindent"> – The "mod" field represents a modifier (automatically applied to related rolls done from this sheet)</div>
|
||
<div class="bigindent"> – The "T" button uses a d20 for trained skills; the "U" button uses a d10 for untrained</div>
|
||
<div><span class="label width12 inline">Birth Augur</span> – You apply your luck modifier (positive or negative) to this type of roll</div>
|
||
<div class="bigindent"> – This is not automatically added to sheet rolls and should be put into the Situational Modifier box</div>
|
||
<div><span class="label width12 inline">Boons</span> – You begin a session with 0 boons and gain a boon whenever you roll a natural 20 on a d20 "attempt" roll.</div>
|
||
<div class="bigindent"> – This includes attack rolls, saving throws, spell checks, rolling a 1 on a Luck check, etc</div>
|
||
<div class="bigindent"> – Normal DCC rules for critical hits using other size dice apply (e.g. 20 or 24 on a d24 = boon)</div>
|
||
<div class="bigindent"> – Spend a boon 1) for a reroll (except natural 1's/fumbles), 2) to gain +1d / -1d on one roll for you or ally, 3) gain +1d / -1d on both attack and damage for yourself, or 4) to negate a hex</div>
|
||
<div><span class="label width12 inline">Class</span> – Each combination of class and level has associated attack and saving throw bonuses</div>
|
||
<div class="bigindent"> – Selecting "0 Level" will set level to 0; changing from "0 Level" to anything else will set level to 1</div>
|
||
<div class="bigindent"> – A class specific set of fields is located in the the lower left corner of the sheet</div>
|
||
<div><span class="label width12 inline">Grit</span> – Representing your character's ability to withstand fear, this is expressed as "current / maximum"</div>
|
||
<div class="bigindent"> – The maximum is the average of Stamina & Personality</div>
|
||
<div class="bigindent"> – The button rolls a grit check (will save); failure means losing points from current total </div>
|
||
<div class="bigindent"> – Reaching 0 grit means going mad and rolling on the Madness Table and losing a point off max grit </div>
|
||
<div class="bigindent"> – If you modify Personality or Stamina, max grit will auto calculate; be sure to track permanent losses</div>
|
||
<div><span class="label width12 inline">Hexes</span> – You begin a session with 0 hexes and gain a hex whenever you roll a natural 1 on an "attempt" roll.</div>
|
||
<div class="bigindent"> – Each hex gives you a +1d on fumble rolls (automatically calculated) </div>
|
||
<div class="bigindent"> – Each hex add 1 to the DC of Grit checks (tell the Judge when rolling) </div>
|
||
<div class="bigindent"> – Each hex gives you a -1d on interaction rolls with NPCs </div>
|
||
<div class="bigindent"> – Each hex gives you +10% on Madness Chart rolls </div>
|
||
<div><span class="label width12 inline">Hit Points</span> – Representing your character's health, these are expressed as "current / maximum".</div>
|
||
<div><span class="label width12 inline">Initiative</span> – Use the "20" button for 1 handed attacks and the "16" button for 2 handed</div>
|
||
<div class="bigindent"> – Certain classes (Luchador, Tommyknocker) have additional rules about initiative dice </div>
|
||
<div class="bigindent"> – Results are sent to Roll20's initiative tracker </div>
|
||
<div><span class="label width12 inline">Modifier</span> – When making rolls from this sheet, you will be asked for a "Situational Modifier"</div>
|
||
<div class="bigindent"> – Do NOT enter things like normal attribute/class/level bonuses; they are already included </div>
|
||
<div class="bigindent"> – DO enter things like spellburn, luck burned before a roll, or anything the GM indicates </div>
|
||
<div class="bigindent"> – DO enter very specific class benefits (e.g. lucky roll, Calaveras' double save mod vs undead)</div>
|
||
<div class="bigindent"> – Enter a minus sign for negative values but NOT a plus sign for positive values</div>
|
||
<div><span class="label width12 inline">Powers & Weapons</span> – Add an entry for each power/spell/weapon/etc. you may use</div>
|
||
<div class="bigindent"> – The "P" button uses your primary action die </div>
|
||
<div class="bigindent"> – The "S" button uses your secondary action die </div>
|
||
<div class="bigindent"> – Class magic/attack bonuses and attribute bonuses (e.g. Spell Check) are included automatically </div>
|
||
<div class="bigindent"> – Classes' special die (e.g. Lucha Die, Chi Die) will be rolled but must be added to attack roll </div>
|
||
</div>
|
||
</div> <!-- end tab3 -->
|
||
</div> <!-- end main -->
|
||
</div> <!-- end barb -->
|
||
|
||
|
||
<rolltemplate class="sheet-rolltemplate-ability-check">
|
||
<div>
|
||
<div class="sheet-rolltemplate-header">
|
||
<div class="sheet-rolltemplate-heading">{{character}}</div>
|
||
<div class="sheet-rolltemplate-subheading">{{ability}} Check</div>
|
||
</div>
|
||
<div class="sheet-rolltemplate-results">
|
||
<span class="sheet-rolltemplate-result">{{roll}}</span>
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-rolltemplate-extra-results">
|
||
<span class="sheet-rolltemplate-extra-result">Ability Score: {{score}}</span><br/>
|
||
<span class="sheet-rolltemplate-extra-result">Modifier: {{modifier}}</span>
|
||
{{#extra}}
|
||
<br/>
|
||
<span class="sheet-rolltemplate-extra-result">{{extra}}</span>
|
||
{{/extra}}
|
||
{{#rollWasCrit() roll}}
|
||
<br/>
|
||
<span>Critical: </span><span class="sheet-rolltemplate-green">Boon!</span>
|
||
{{/rollWasCrit() roll}}
|
||
{{#rollWasFumble() roll}}
|
||
<br/>
|
||
<span>Fumble: </span><span class="sheet-rolltemplate-red">Hex!</span>
|
||
{{/rollWasFumble() roll}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-saving-throw">
|
||
<div>
|
||
<div class="sheet-rolltemplate-header">
|
||
<div class="sheet-rolltemplate-heading">{{character}}</div>
|
||
<div class="sheet-rolltemplate-subheading">{{save}} Save</div>
|
||
</div>
|
||
<div class="sheet-rolltemplate-results">
|
||
<span class="sheet-rolltemplate-result">{{roll}}</span>
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-rolltemplate-extra-results">
|
||
<span class="sheet-rolltemplate-extra-result">Modifier: {{modifier}}</span>
|
||
{{#extra}}
|
||
<br/>
|
||
<span class="sheet-rolltemplate-extra-result">{{extra}}</span>
|
||
{{/extra}}
|
||
{{#rollWasCrit() roll}}
|
||
<br/>
|
||
<span>Critical: </span><span class="sheet-rolltemplate-green">Boon!</span>
|
||
{{/rollWasCrit() roll}}
|
||
{{#rollWasFumble() roll}}
|
||
<br/>
|
||
<span>Fumble: </span><span class="sheet-rolltemplate-red">Hex!</span>
|
||
{{/rollWasFumble() roll}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-attack">
|
||
<div>
|
||
<div class="sheet-rolltemplate-header">
|
||
<div class="sheet-rolltemplate-heading">{{character}}</div>
|
||
<div class="sheet-rolltemplate-subheading">{{weapon}} ({{weapontype}})</div>
|
||
</div>
|
||
<div class="sheet-rolltemplate-results">
|
||
<span class="sheet-rolltemplate-result">{{roll}}</span>
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-rolltemplate-extra-results">
|
||
<span class="sheet-rolltemplate-extra-result">Modifier (included): {{modifier}}</span>
|
||
<br/>
|
||
<span class="sheet-rolltemplate-extra-result">Damage: {{damage}}</span>
|
||
{{#rollGreater() hasextra 0}}
|
||
<br/>
|
||
<span class="sheet-rolltemplate-extra-result">{{extra}}</span>
|
||
{{/rollGreater() hasextra 0}}
|
||
{{#rollWasCrit() roll}}
|
||
<br/>
|
||
<span>Critical ({{critdie}}): </span>{{critroll}} & <span class="sheet-rolltemplate-green">Boon!</span>
|
||
{{/rollWasCrit() roll}}
|
||
{{#rollWasFumble() roll}}
|
||
<br/>
|
||
<span>Fumble ({{fumbledie}}): </span>{{fumbleroll}} & <span class="sheet-rolltemplate-red">Hex!</span>
|
||
{{/rollWasFumble() roll}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-power">
|
||
<div>
|
||
<div class="sheet-rolltemplate-header">
|
||
<div class="sheet-rolltemplate-heading">{{character}}</div>
|
||
<div class="sheet-rolltemplate-subheading">{{power}}</div>
|
||
</div>
|
||
<div class="sheet-rolltemplate-results">
|
||
<span class="sheet-rolltemplate-result">{{roll}}</span>
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-rolltemplate-extra-results">
|
||
<span class="sheet-rolltemplate-extra-result">Modifier: {{modifier}}</span>
|
||
<br/>
|
||
<span class="sheet-rolltemplate-extra-result">Damage: {{damage}}</span>
|
||
{{#rollWasCrit() roll}}
|
||
<br/>
|
||
<span>Critical: </span><span class="sheet-rolltemplate-green">Boon!</span>
|
||
{{/rollWasCrit() roll}}
|
||
{{#rollWasFumble() roll}}
|
||
<br/>
|
||
<span>Fumble: </span><span class="sheet-rolltemplate-red">Hex!</span>
|
||
{{/rollWasFumble() roll}}
|
||
<br/>
|
||
<span class="sheet-rolltemplate-extra-result">Notes: <span class="sheet-rolltemplate-italic">{{notes}}</span></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-initiative">
|
||
<div>
|
||
<div class="sheet-rolltemplate-header">
|
||
<div class="sheet-rolltemplate-heading">{{character}}</div>
|
||
<div class="sheet-rolltemplate-subheading">Initiative</div>
|
||
</div>
|
||
<div class="sheet-rolltemplate-results">
|
||
<span class="sheet-rolltemplate-result">{{roll}}</span>
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-rolltemplate-extra-results">
|
||
<span class="sheet-rolltemplate-extra-result">Modifier: {{modifier}}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-class-die">
|
||
<div>
|
||
<div class="sheet-rolltemplate-header">
|
||
<div class="sheet-rolltemplate-heading">{{character}}</div>
|
||
<div class="sheet-rolltemplate-subheading">{{label}}</div>
|
||
</div>
|
||
<div class="sheet-rolltemplate-results">
|
||
<span class="sheet-rolltemplate-result">{{roll}}</span>
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-rolltemplate-extra-results">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
|
||
<script type="text/worker">
|
||
|
||
var classList = ["Bedlamite", "Calavera", "Gunslinger", "Luchador", "Mountebank", "Occultist", "Revelator", "Sin-Eater", "Tommyknocker", "Other"];
|
||
|
||
var abilityScores = ["strength", "agility", "stamina", "personality", "luck", "intelligence"];
|
||
|
||
var abilityMods = [-3, -3, -3, -3, -2, -2, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3];
|
||
|
||
var diceChain = ["d2", "d3", "d4", "d5", "d6", "d7", "d8", "d10", "d12", "d14", "d16", "d20", "d24", "d30"];
|
||
|
||
classes = {};
|
||
var zero = {attackBonus:0, damageBonus:0, ref:0, fort:0, will:0, crit:"d4", fumble:"d12", title:"Pardner", primaryActionDie:"d20", secondaryActionDie:"0", classDieLabel:"", critRange:"1", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["zero-level"] = {name:"0 Level", hitDie:"d4", luckyRoll:"–"};
|
||
classes["zero-level"].levels = [];
|
||
classes["zero-level"].levels[0] = zero;
|
||
|
||
classes["bedlamite"] = {name:"Bedlamite", hitDie:"d8", powerAttribute:"intelligence", luckyRoll:"repair"};
|
||
classes["bedlamite"].levels = [];
|
||
classes["bedlamite"].levels[0] = zero;
|
||
classes["bedlamite"].levels[1] = {attackBonus:0, ref:1, fort:0, will:1, crit:"d6", fumble:"d12", title:"Grease Monkey", primaryActionDie:"d20", secondaryActionDie:"0", derangement:40, knownWondrousContraptions:3, knownMundaneContraptions:2, maxContraptions:5, maxContraptionLevel:1, meleeAttackBonusDie:"d0", meleeDamageBonusDie:"d0", rangedAttackBonusDie:"d0", rangedDamageBonusDie:"d0"};
|
||
classes["bedlamite"].levels[2] = {attackBonus:1, ref:1, fort:1, will:2, crit:"d7", fumble:"d10", title:"Wrench Savant", primaryActionDie:"d20", secondaryActionDie:"0", derangement:45, knownWondrousContraptions:4, knownMundaneContraptions:3, maxContraptions:6, maxContraptionLevel:1, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[3] = {attackBonus:1, ref:2, fort:1, will:3, crit:"d7", fumble:"d10", title:"Machinist", primaryActionDie:"d20", secondaryActionDie:"0", derangement:50, knownWondrousContraptions:5, knownMundaneContraptions:4, maxContraptions:7, maxContraptionLevel:2, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[4] = {attackBonus:2, ref:2, fort:2, will:4, crit:"d8", fumble:"d8", title:"Artificer", primaryActionDie:"d20", secondaryActionDie:"0", derangement:55, knownWondrousContraptions:6, knownMundaneContraptions:5, maxContraptions:8, maxContraptionLevel:2, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[5] = {attackBonus:2, ref:3, fort:2, will:5, crit:"d8", fumble:"d8", title:"Bedlamite", primaryActionDie:"d20", secondaryActionDie:"d14", derangement:60, knownWondrousContraptions:7, knownMundaneContraptions:6, maxContraptions:9, maxContraptionLevel:3, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[6] = {attackBonus:3, ref:3, fort:3, will:6, crit:"d10", fumble:"d7", title:"Bedlamite VI", primaryActionDie:"d20", secondaryActionDie:"d14", derangement:65, knownWondrousContraptions:8, knownMundaneContraptions:7, maxContraptions:10, maxContraptionLevel:3, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[7] = {attackBonus:3, ref:4, fort:3, will:7, crit:"d10", fumble:"d7", title:"Bedlamite VII", primaryActionDie:"d20", secondaryActionDie:"d16", derangement:70, knownWondrousContraptions:9, knownMundaneContraptions:8, maxContraptions:11, maxContraptionLevel:4, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[8] = {attackBonus:4, ref:4, fort:4, will:8, crit:"d12", fumble:"d6", title:"Bedlamite VIII", primaryActionDie:"d20", secondaryActionDie:"d16", derangement:75, knownWondrousContraptions:10, knownMundaneContraptions:9, maxContraptions:12, maxContraptionLevel:4, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[9] = {attackBonus:4, ref:5, fort:4, will:9, crit:"d12", fumble:"d6", title:"Bedlamite IX", primaryActionDie:"d20", secondaryActionDie:"d20", derangement:80, knownWondrousContraptions:11, knownMundaneContraptions:10, maxContraptions:13, maxContraptionLevel:5, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["bedlamite"].levels[10] = {attackBonus:5, ref:5, fort:5, will:10, crit:"d14", fumble:"d5", title:"Bedlamite X", primaryActionDie:"d20", secondaryActionDie:"d20", derangement:85, knownWondrousContraptions:12, knownMundaneContraptions:11, maxContraptions:14, maxContraptionLevel:5, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["calavera"] = {name:"Calavera", hitDie:"d8", powerAttribute:"personality", luckyRoll:"dead speak"};
|
||
classes["calavera"].levels = [];
|
||
classes["calavera"].levels[0] = zero;
|
||
classes["calavera"].levels[1] = {attackBonus:1, ref:1, fort:0, will:1, crit:"d7", fumble:"d12", title:"Gloom-kin", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[2] = {attackBonus:1, ref:1, fort:1, will:2, crit:"d7", fumble:"d10", title:"Harbinger", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[3] = {attackBonus:2, ref:2, fort:1, will:2, crit:"d8", fumble:"d10", title:"Banshee", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[4] = {attackBonus:3, ref:3, fort:2, will:3, crit:"d8", fumble:"d8", title:"Ill-boder", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[5] = {attackBonus:3, ref:3, fort:2, will:4, crit:"d10", fumble:"d8", title:"Calavera", primaryActionDie:"d20", secondaryActionDie:"d14", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[6] = {attackBonus:4, ref:4, fort:3, will:4, crit:"d10", fumble:"d7", title:"Calavera VI", primaryActionDie:"d20", secondaryActionDie:"d14", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[7] = {attackBonus:5, ref:5, fort:3, will:5, crit:"d12", fumble:"d7", title:"Calavera VII", primaryActionDie:"d20", secondaryActionDie:"d16", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[8] = {attackBonus:5, ref:5, fort:4, will:6, crit:"d12", fumble:"d6", title:"Calavera VIII", primaryActionDie:"d20", secondaryActionDie:"d16", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[9] = {attackBonus:6, ref:6, fort:5, will:6, crit:"d14", fumble:"d6", title:"Calavera IX", primaryActionDie:"d20", secondaryActionDie:"d20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["calavera"].levels[10] = {attackBonus:7, ref:6, fort:5, will:7, crit:"d16", fumble:"d4", title:"Calavera X", primaryActionDie:"d20", secondaryActionDie:"d20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["gambler"] = {name:"Gambler", hitDie:"d8", classDieLabel: "Mojo Die (bushw only)", luckyRoll:"all saves"};
|
||
classes["gambler"].levels = [];
|
||
classes["gambler"].levels[0] = zero;
|
||
classes["gambler"].levels[1] = {attackBonus:1, ref:1, fort:0, will:1, crit:"d8", fumble:"d12", title:"Gamester", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d3", meleeAttackBonusDie:"d3", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d3", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[2] = {attackBonus:2, ref:2, fort:0, will:1, crit:"d8", fumble:"d12", title:"Cardsharp", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d4", meleeAttackBonusDie:"d4", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d4", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[3] = {attackBonus:2, ref:2, fort:1, will:2, crit:"d10", fumble:"d12", title:"Tinhorn", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d5", meleeAttackBonusDie:"d5", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d5", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[4] = {attackBonus:3, ref:3, fort:1, will:2, crit:"d10", fumble:"d10", title:"Black-leg", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d6", meleeAttackBonusDie:"d6", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d6", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[5] = {attackBonus:4, ref:3, fort:2, will:3, crit:"d12", fumble:"d10", title:"Gambler", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"d7", meleeAttackBonusDie:"d7", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d7", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[6] = {attackBonus:4, ref:4, fort:2, will:3, crit:"d12", fumble:"d8", title:"Gambler VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"d8", meleeAttackBonusDie:"d8", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d8", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[7] = {attackBonus:5, ref:4, fort:3, will:4, crit:"d14", fumble:"d8", title:"Gambler VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"d10", meleeAttackBonusDie:"d10", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d10", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[8] = {attackBonus:6, ref:5, fort:3, will:4, crit:"d14", fumble:"d7", title:"Gambler VII", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d12", meleeAttackBonusDie:"d12", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d12", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[9] = {attackBonus:6, ref:5, fort:4, will:5, crit:"d16", fumble:"d7", title:"Gambler IX", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d14", meleeAttackBonusDie:"d14", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d14", rangedDamageBonusDie:"0"};
|
||
classes["gambler"].levels[10] = {attackBonus:7, ref:6, fort:4, will:5, crit:"d16", fumble:"d6", title:"Gambler X", primaryActionDie:"d24", secondaryActionDie:"d24", classDie:"d16", meleeAttackBonusDie:"d16", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d16", rangedDamageBonusDie:"0"};
|
||
|
||
classes["gunslinger"] = {name:"Gunslinger", hitDie:"d10", classDieLabel:"Deadeye Die (gh. iron)", luckyRoll:"gun initiative"};
|
||
classes["gunslinger"].levels = [];
|
||
classes["gunslinger"].levels[0] = zero;
|
||
classes["gunslinger"].levels[1] = {attackBonus:0, ref:1, fort:1, will:0, crit:"d10", fumble:"d12", title: "Drifter", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d3", critRange:"2", critRangeDisplay:"19-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d3", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[2] = {attackBonus:0, ref:2, fort:1, will:1, crit:"d10", fumble:"d10", title:"Persuader", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d4", critRange:"2", critRangeDisplay:"19-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d4", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[3] = {attackBonus:0, ref:3, fort:2, will:1, crit:"d12", fumble:"d10", title:"Maverick", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d5", critRange:"2", critRangeDisplay:"19-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d5", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[4] = {attackBonus:0, ref:4, fort:2, will:2, crit:"d12", fumble:"d8", title:"Renegade", primaryActionDie:"d20", secondaryActionDie:"", classDie:"d6", critRange:"2", critRangeDisplay:"19-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d6", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[5] = {attackBonus:0, ref:5, fort:3, will:2, crit:"d14", fumble:"d7", title:"Shootist", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"d7", critRange:"3", critRangeDisplay:"18-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d7", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[6] = {attackBonus:0, ref:6, fort:3, will:3, crit:"d16", fumble:"d6", title:"Shootist VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"d8", critRange:"3", critRangeDisplay:"18-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d8", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[7] = {attackBonus:0, ref:7, fort:4, will:3, crit:"d20", fumble:"d6", title:"Shootist VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"d10", critRange:"3", critRangeDisplay:"18-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d10", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[8] = {attackBonus:0, ref:8, fort:4, will:4, crit:"d20+1", fumble:"d5", title:"Shootist VIII", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d12", critRange:"3", critRangeDisplay:"18-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d12", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[9] = {attackBonus:0, ref:9, fort:5, will:4, crit:"d24", fumble:"d4", title:"Shootist IX", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d14", critRange:"4", critRangeDisplay:"17-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d14", rangedDamageBonusDie:"0"};
|
||
classes["gunslinger"].levels[10] = {attackBonus:0, ref:10, fort:5, will:5, crit:"d24+1", fumble:"d3", title:"Shootist X", primaryActionDie:"d24", secondaryActionDie:"d24", classDie:"d16", critRange:"4", critRangeDisplay:"17-20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d16", rangedDamageBonusDie:"0"};
|
||
|
||
classes["hellbilly"] = {name:"Hellbilly", hitDie:"d12", classDieLabel:"Ballad Die", luckyRoll: "mntn. lore"};
|
||
classes["hellbilly"].levels = [];
|
||
classes["hellbilly"].levels[0] = zero;
|
||
classes["hellbilly"].levels[1] = {attackBonus:1, damageBonus:0, ref:0, fort:1, will:1, crit:"d10", fumble:"d12", title:"Hellion", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d3", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d0", rangedDamageBonusDie:"d0"};
|
||
classes["hellbilly"].levels[2] = {attackBonus:1, damageBonus:0, ref:1, fort:2, will:1, crit:"d10", fumble:"d10", title:"Hayseed", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d4", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[3] = {attackBonus:2, damageBonus:0, ref:2, fort:2, will:2, crit:"d12", fumble:"d10", title:"Wood Booger", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d5", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[4] = {attackBonus:2, damageBonus:0, ref:2, fort:3, will:2, crit:"d12", fumble:"d8", title:"Mountain Devil", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d6", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[5] = {attackBonus:3, damageBonus:0, ref:3, fort:3, will:3, crit:"d14", fumble:"d8", title:"Hellbilly", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"d7", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[6] = {attackBonus:3, damageBonus:0, ref:3, fort:4, will:3, crit:"d14", fumble:"d7", title:"Hellbilly VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"d8", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[7] = {attackBonus:4, damageBonus:0, ref:4, fort:4, will:4, crit:"d16", fumble:"d7", title:"Hellbilly VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"d10", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[8] = {attackBonus:4, damageBonus:0, ref:4, fort:5, will:4, crit:"d16", fumble:"d6", title:"Hellbilly VIII", primaryActionDie:"d20+1", secondaryActionDie:"d20", classDie:"d12", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[9] = {attackBonus:5, damageBonus:0, ref:5, fort:5, will:5, crit:"d20", fumble:"d6", title:"Hellbilly IX", primaryActionDie:"d20+2", secondaryActionDie:"d20", classDie:"d14", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["hellbilly"].levels[10] = {attackBonus:5, damageBonus:0, ref:5, fort:6, will:5, crit:"d20", fumble:"d5", title:"Hellbilly X", primaryActionDie:"d20+3", secondaryActionDie:"d20", classDie:"d16", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["luchador"] = {name:"Luchador", hitDie:"d12", classDieLabel:"Lucha Die (Unarm.)", luckyRoll:"reflex"};
|
||
classes["luchador"].levels = [];
|
||
classes["luchador"].levels[0] = zero;
|
||
classes["luchador"].levels[1] = {attackBonus:0, damageBonus:0, ref:1, fort:1, will:0, crit:"d10", fumble:"d12", title:"Pluma", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d3", meleeAttackBonusDie:"d3", meleeDamageBonusDie:"d3", rangedAttackBonusDie:"d0", rangedDamageBonusDie:"d0", fame:35, battleHardenedDie:"d8"};
|
||
classes["luchador"].levels[2] = {attackBonus:0, damageBonus:0, ref:1, fort:2, will:1, crit:"d12", fumble:"d10", title:"Gallo", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d4", meleeAttackBonusDie:"d4", meleeDamageBonusDie:"d4", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:45, battleHardenedDie:"d8"};
|
||
classes["luchador"].levels[3] = {attackBonus:0, damageBonus:0, ref:2, fort:3, will:1, crit:"d14", fumble:"d8", title:"La máscara", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d5", meleeAttackBonusDie:"d5", meleeDamageBonusDie:"d5", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:50, battleHardenedDie:"d10"};
|
||
classes["luchador"].levels[4] = {attackBonus:0, damageBonus:0, ref:2, fort:3, will:2, crit:"d16", fumble:"d7", title:"Técnico", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d6", meleeAttackBonusDie:"d6", meleeDamageBonusDie:"d6", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:55, battleHardenedDie:"d10"};
|
||
classes["luchador"].levels[5] = {attackBonus:0, damageBonus:0, ref:3, fort:4, will:2, crit:"d16+1", fumble:"d6", title:"Luchador", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"d7", meleeAttackBonusDie:"d7", meleeDamageBonusDie:"d7", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:60, battleHardenedDie:"d12"};
|
||
classes["luchador"].levels[6] = {attackBonus:0, damageBonus:0, ref:3, fort:4, will:3, crit:"d20", fumble:"d5", title:"Luchador VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"d8", meleeAttackBonusDie:"d8", meleeDamageBonusDie:"d8", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:65, battleHardenedDie:"d12"};
|
||
classes["luchador"].levels[7] = {attackBonus:0, damageBonus:0, ref:4, fort:5, will:3, crit:"d20+1", fumble:"d4", title:"Luchador VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"d10", meleeAttackBonusDie:"d10", meleeDamageBonusDie:"d10", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:70, battleHardenedDie:"d14"};
|
||
classes["luchador"].levels[8] = {attackBonus:0, damageBonus:0, ref:4, fort:5, will:4, crit:"d24", fumble:"d3", title:"Luchador VIII", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d12", meleeAttackBonusDie:"d12", meleeDamageBonusDie:"d12", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:80, battleHardenedDie:"d14"};
|
||
classes["luchador"].levels[9] = {attackBonus:0, damageBonus:0, ref:5, fort:6, will:4, crit:"d24+1", fumble:"d3", title:"Luchador IX", primaryActionDie:"d24", secondaryActionDie:"d24", classDie:"d12+1", meleeAttackBonusDie:"d12+1", meleeDamageBonusDie:"d12+1", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:90, battleHardenedDie:"d16"};
|
||
classes["luchador"].levels[10] = {attackBonus:0, damageBonus:0, ref:6, fort:6, will:5, crit:"d30", fumble:"d2", title:"Luchador X", primaryActionDie:"d30", secondaryActionDie:"d24", classDie:"d12+2", meleeAttackBonusDie:"d12+2", meleeDamageBonusDie:"d12+2", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0", fame:100, battleHardenedDie:"d16"};
|
||
|
||
classes["mountebank"] = {name:"Mountebank", hitDie:"d6", powerAttribute:"intelligence", luckyRoll:"showmanship"}
|
||
classes["mountebank"].levels = [];
|
||
classes["mountebank"].levels[0] = zero;
|
||
classes["mountebank"].levels[1] = {attackBonus:0, damageBonus:0, ref:1, fort:0, will:1, crit:"d6", fumble:"d12", title:"Quacksalver", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownFormulae:4, maxFormulaLevel:1, maxActiveFormulae:2, fireBombDamage:"1d6", acidBombDamage:"1d5", adhesive:"12\" / 10 lbs", poulticeHealing:"1d4", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[2] = {attackBonus:1, damageBonus:0, ref:1, fort:1, will:1, crit:"d6", fumble:"d12", title:"Cook", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownFormulae:5, maxFormulaLevel:1, maxActiveFormulae:2, fireBombDamage:"1d6", acidBombDamage:"1d5", adhesive:"24\" / 25 lbs", poulticeHealing:"1d4", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[3] = {attackBonus:1, damageBonus:0, ref:2, fort:1, will:2, crit:"d8", fumble:"d10", title:"Craftsman", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownFormulae:6, maxFormulaLevel:2, maxActiveFormulae:3, fireBombDamage:"1d8", acidBombDamage:"1d6", adhesive:"36\" / 35 lbs", poulticeHealing:"1d5", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[4] = {attackBonus:2, damageBonus:0, ref:2, fort:2, will:2, crit:"d8", fumble:"d10", title:"Chemist", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownFormulae:7, maxFormulaLevel:2, maxActiveFormulae:3, fireBombDamage:"1d8", acidBombDamage:"1d6", adhesive:"48\" / 45 lbs", poulticeHealing:"1d5", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[5] = {attackBonus:2, damageBonus:0, ref:3, fort:2, will:3, crit:"d10", fumble:"d8", title:"Mountebank", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"0", knownFormulae:8, maxFormulaLevel:3, maxActiveFormulae:4, fireBombDamage:"1d10", acidBombDamage:"1d8", adhesive:"60\" / 55 lbs", poulticeHealing:"1d6", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[6] = {attackBonus:3, damageBonus:0, ref:3, fort:3, will:3, crit:"d10", fumble:"d8", title:"Mountebank VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"0", knownFormulae:9, maxFormulaLevel:3, maxActiveFormulae:4, fireBombDamage:"1d10", acidBombDamage:"1d8", adhesive:"72\" / 65 lbs", poulticeHealing:"1d6", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[7] = {attackBonus:3, damageBonus:0, ref:4, fort:3, will:4, crit:"d12", fumble:"d7", title:"Mountebank VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"0", knownFormulae:10, maxFormulaLevel:4, maxActiveFormulae:5, fireBombDamage:"1d12", acidBombDamage:"1d10", adhesive:"84\" / 75 lbs", poulticeHealing:"1d8", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[8] = {attackBonus:4, damageBonus:0, ref:4, fort:4, will:4, crit:"d14", fumble:"d7", title:"Mountebank VIII", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"0", knownFormulae:11, maxFormulaLevel:4, maxActiveFormulae:5, fireBombDamage:"1d12", acidBombDamage:"1d10", adhesive:"96\" / 85 lbs", poulticeHealing:"1d8", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[9] = {attackBonus:4, damageBonus:0, ref:5, fort:4, will:5, crit:"d14", fumble:"d6", title:"Mountebank IX", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"0", knownFormulae:12, maxFormulaLevel:5, maxActiveFormulae:6, fireBombDamage:"1d14", acidBombDamage:"1d12", adhesive:"108\" / 95 lbs", poulticeHealing:"1d10", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mountebank"].levels[10] = {attackBonus:5, damageBonus:0, ref:6, fort:5, will:5, crit:"d16", fumble:"d6", title:"Mountebank X", primaryActionDie:"d24", secondaryActionDie:"d24", classDie:"0", knownFormulae:13, maxFormulaLevel:5, maxActiveFormulae:6, fireBombDamage:"1d14", acidBombDamage:"1d12", adhesive:"120\" / 105 lbs", poulticeHealing:"1d10", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["mystic-monk"] = {name:"Mystic Monk", hitDie:"d10", classDieLabel:"Chi Die", luckyRoll:"initiative"};
|
||
classes["mystic-monk"].levels = [];
|
||
classes["mystic-monk"].levels[0] = zero;
|
||
classes["mystic-monk"].levels[1] = {attackBonus:0, damageBonus:0, ref:1, fort:0, will:1, crit:"d10", fumble:"d12", title:"Wandering Son", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d3", livingWeapon:"d6", meleeAttackBonusDie:"d3", meleeDamageBonusDie:"d3", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[2] = {attackBonus:0, damageBonus:0, ref:2, fort:1, will:1, crit:"d12", fumble:"d10", title:"Seeker of the Way", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d4", livingWeapon:"d6", meleeAttackBonusDie:"d4", meleeDamageBonusDie:"d4", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[3] = {attackBonus:0, damageBonus:0, ref:3, fort:1, will:2, crit:"d14", fumble:"d8", title:"Follower of the Dragon Path", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d5", livingWeapon:"d7", meleeAttackBonusDie:"d5", meleeDamageBonusDie:"d5", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[4] = {attackBonus:0, damageBonus:0, ref:4, fort:2, will:3, crit:"d16", fumble:"d6", title:"Initiate of Mysteries", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"d6", livingWeapon:"d7", meleeAttackBonusDie:"d6", meleeDamageBonusDie:"d6", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[5] = {attackBonus:0, damageBonus:0, ref:5, fort:2, will:3, crit:"d16+1", fumble:"d5", title:"Mystic Monk", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"d7", livingWeapon:"d8", meleeAttackBonusDie:"d7", meleeDamageBonusDie:"d7", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[6] = {attackBonus:0, damageBonus:0, ref:6, fort:3, will:4, crit:"d16+2", fumble:"d4", title:"Mystic Monk VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"d8", livingWeapon:"d8", meleeAttackBonusDie:"d8", meleeDamageBonusDie:"d8", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[7] = {attackBonus:0, damageBonus:0, ref:7, fort:3, will:4, crit:"d20", fumble:"d4", title:"Mystic Monk VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"d10", livingWeapon:"d10", meleeAttackBonusDie:"d10", meleeDamageBonusDie:"d10", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[8] = {attackBonus:0, damageBonus:0, ref:8, fort:4, will:5, crit:"d20+1", fumble:"d3", title:"Mystic Monk VIII", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d12+1", livingWeapon:"d10", meleeAttackBonusDie:"d12+1", meleeDamageBonusDie:"d12+1", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[9] = {attackBonus:0, damageBonus:0, ref:9, fort:4, will:6, crit:"d24", fumble:"d3", title:"Mystic Monk IX", primaryActionDie:"d24", secondaryActionDie:"d20", classDie:"d12+2", livingWeapon:"d12", meleeAttackBonusDie:"d12+2", meleeDamageBonusDie:"d12+2", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["mystic-monk"].levels[10] = {attackBonus:0, damageBonus:0, ref:10, fort:5, will:6, crit:"d30", fumble:"d3-1", title:"Mystic Monk X", primaryActionDie:"d24", secondaryActionDie:"d24", classDie:"d14", livingWeapon:"d12", meleeAttackBonusDie:"d14", meleeDamageBonusDie:"d14", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["occultist"] = {name:"Occultist", hitDie:"d6", powerAttribute:"intelligence", luckyRoll:"investigation"};
|
||
classes["occultist"].levels = [];
|
||
classes["occultist"].levels[0] = zero;
|
||
classes["occultist"].levels[1] = {attackBonus:0, damageBonus:0, ref:1, fort:0, will:1, crit:"d6", fumble:"d12", title:"Conjurer", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownSpells:4, maxSpellLevel:1, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[2] = {attackBonus:1, damageBonus:0, ref:1, fort:1, will:2, crit:"d6", fumble:"d12", title:"Warlock", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownSpells:5, maxSpellLevel:1, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[3] = {attackBonus:1, damageBonus:0, ref:2, fort:1, will:3, crit:"d7", fumble:"d12", title:"Enchanter", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownSpells:6, maxSpellLevel:2, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[4] = {attackBonus:2, damageBonus:0, ref:2, fort:1, will:4, crit:"d7", fumble:"d10", title:"Soothsayer", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", knownSpells:7, maxSpellLevel:2, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[5] = {attackBonus:2, damageBonus:0, ref:3, fort:2, will:5, crit:"d8", fumble:"d10", title:"Occultist", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"0", knownSpells:8, maxSpellLevel:3, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[6] = {attackBonus:3, damageBonus:0, ref:3, fort:2, will:6, crit:"d8", fumble:"d10", title:"Occultist VI", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"0", knownSpells:9, maxSpellLevel:3, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[7] = {attackBonus:3, damageBonus:0, ref:4, fort:2, will:7, crit:"d8", fumble:"d8", title:"Occultist VII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"0", knownSpells:10, maxSpellLevel:4, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[8] = {attackBonus:4, damageBonus:0, ref:4, fort:3, will:8, crit:"d8", fumble:"d8", title:"Occultist VIII", primaryActionDie:"d20+1", secondaryActionDie:"d20", classDie:"0", knownSpells:12, maxSpellLevel:4, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[9] = {attackBonus:4, damageBonus:0, ref:5, fort:3, will:9, crit:"d10", fumble:"d7", title:"Occultist IX", primaryActionDie:"d20+2", secondaryActionDie:"d20", classDie:"0", knownSpells:14, maxSpellLevel:5, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["occultist"].levels[10] = {attackBonus:5, damageBonus:0, ref:5, fort:4, will:10, crit:"d10", fumble:"d7", title:"Occultist X", primaryActionDie:"d20+3", secondaryActionDie:"d20", classDie:"0", knownSpells:16, maxSpellLevel:5, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["revelator"] = {name:"Revelator", hitDie:"d8", powerAttribute:"personality", luckyRoll:"will save"};
|
||
classes["revelator"].levels = [];
|
||
classes["revelator"].levels[0] = zero;
|
||
classes["revelator"].levels[1] = {attackBonus:0, ref:0, fort:1, will:1, crit:"d8", fumble:"d12", title:"Bible Beater", primaryActionDie:"d20", secondaryActionDie:"0", spellsFirst:4, spellsSecond:0, spellsThird:0, spellsFourth:0, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[2] = {attackBonus:1, ref:0, fort:1, will:2, crit:"d8", fumble:"d10", title:"Evangelist", primaryActionDie:"d20", secondaryActionDie:"0", spellsFirst:5, spellsSecond:0, spellsThird:0, spellsFourth:0, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[3] = {attackBonus:2, ref:1, fort:1, will:3, crit:"d10", fumble:"d10", title:"Preacher", primaryActionDie:"d20", secondaryActionDie:"0", spellsFirst:5, spellsSecond:3, spellsThird:0, spellsFourth:0, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[4] = {attackBonus:2, ref:1, fort:2, will:4, crit:"d10", fumble:"d8", title:"Revivalist", primaryActionDie:"d20", secondaryActionDie:"0", spellsFirst:6, spellsSecond:4, spellsThird:0, spellsFourth:0, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[5] = {attackBonus:3, ref:1, fort:2, will:5, crit:"d12", fumble:"d8", title:"Revelator", primaryActionDie:"d20", secondaryActionDie:"0", spellsFirst:6, spellsSecond:5, spellsThird:2, spellsFourth:0, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[6] = {attackBonus:4, ref:2, fort:2, will:6, crit:"d12", fumble:"d7", title:"Revelator VI", primaryActionDie:"d20", secondaryActionDie:"d16", spellsFirst:7, spellsSecond:5, spellsThird:3, spellsFourth:0, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[7] = {attackBonus:5, ref:2, fort:3, will:7, crit:"d14", fumble:"d7", title:"Revelator VII", primaryActionDie:"d20", secondaryActionDie:"d20", spellsFirst:7, spellsSecond:6, spellsThird:4, spellsFourth:1, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[8] = {attackBonus:5, ref:2, fort:3, will:8, crit:"d14", fumble:"d6", title:"Revelator VIII", primaryActionDie:"d24", secondaryActionDie:"d20", spellsFirst:8, spellsSecond:6, spellsThird:5, spellsFourth:2, spellsFifth:0, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[9] = {attackBonus:6, ref:3, fort:3, will:9, crit:"d16", fumble:"d6", title:"Revelator IX", primaryActionDie:"d24", secondaryActionDie:"d20", spellsFirst:8, spellsSecond:7, spellsThird:5, spellsFourth:3, spellsFifth:1, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["revelator"].levels[10] = {attackBonus:7, ref:3, fort:5, will:10, crit:"d16", fumble:"d5", title:"Revelator X", primaryActionDie:"d24", secondaryActionDie:"d20", spellsFirst:9, spellsSecond:7, spellsThird:6, spellsFourth:4, spellsFifth:2, meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["sin-eater"] = {name:"Sin Eater", hitDie:"d10", powerAttribute:"personality", luckyRoll:"navigation"};
|
||
classes["sin-eater"].levels = [];
|
||
classes["sin-eater"].levels[0] = zero;
|
||
classes["sin-eater"].levels[1] = {attackBonus:1, ref:0, fort:1, will:2, crit:"d10", fumble:"d12", title:"Soul Shepherd", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[2] = {attackBonus:2, ref:1, fort:2, will:2, crit:"d10", fumble:"d12", title:"Raven-kin", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[3] = {attackBonus:3, ref:1, fort:3, will:2, crit:"d12", fumble:"d10", title:"Nomad", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[4] = {attackBonus:3, ref:2, fort:4, will:3, crit:"d12", fumble:"d10", title:"Spirit-warden", primaryActionDie:"d20", secondaryActionDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[5] = {attackBonus:4, ref:2, fort:4, will:3, crit:"d14", fumble:"d8", title:"Sin-eater", primaryActionDie:"d20", secondaryActionDie:"d14", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[6] = {attackBonus:5, ref:3, fort:5, will:4, crit:"d14", fumble:"d8", title:"Sin-eater VI", primaryActionDie:"d20", secondaryActionDie:"d16", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[7] = {attackBonus:6, ref:3, fort:5, will:4, crit:"d14", fumble:"d7", title:"Sin-eater VII", primaryActionDie:"d20", secondaryActionDie:"d20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[8] = {attackBonus:6, ref:4, fort:6, will:5, crit:"d16", fumble:"d7", title:"Sin-eater VIII", primaryActionDie:"d24", secondaryActionDie:"d20", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[9] = {attackBonus:7, ref:4, fort:6, will:5, crit:"d16", fumble:"d6", title:"Sin-eater IX", primaryActionDie:"d24", secondaryActionDie:"d24", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["sin-eater"].levels[10] = {attackBonus:8, ref:5, fort:7, will:6, crit:"d20", fumble:"d6", title:"Sin-eater X", primaryActionDie:"d24", secondaryActionDie:"d24", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
classes["tommyknocker"] = {name:"Tommyknocker", hitDie:"d14", luckyRoll:"fort save"};
|
||
classes["tommyknocker"].levels = [];
|
||
classes["tommyknocker"].levels[0] = zero;
|
||
classes["tommyknocker"].levels[1] = {attackBonus:1, damageBonus:0, ref:0, fort:1, will:1, crit:"d8", fumble:"d12", title:"Rotter", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"d0", rangedDamageBonusDie:"d0"};
|
||
classes["tommyknocker"].levels[2] = {attackBonus:2, damageBonus:0, ref:0, fort:2, will:1, crit:"d8", fumble:"d12", title:"Deadhead", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[3] = {attackBonus:2, damageBonus:0, ref:1, fort:3, will:2, crit:"d10", fumble:"d10", title:"Revenant", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[4] = {attackBonus:3, damageBonus:0, ref:1, fort:4, will:2, crit:"d10", fumble:"d10", title:"Pariah", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[5] = {attackBonus:3, damageBonus:0, ref:1, fort:5, will:3, crit:"d12", fumble:"d8", title:"Tommyknocker", primaryActionDie:"d20", secondaryActionDie:"0", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[6] = {attackBonus:4, damageBonus:0, ref:2, fort:5, will:3, crit:"d12", fumble:"d8", title:"Tommyknocker VI", primaryActionDie:"d20", secondaryActionDie:"d14", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[7] = {attackBonus:5, damageBonus:0, ref:2, fort:6, will:4, crit:"d14", fumble:"d7", title:"Tommyknocker VII", primaryActionDie:"d20", secondaryActionDie:"d16", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[8] = {attackBonus:5, damageBonus:0, ref:3, fort:6, will:4, crit:"d14", fumble:"d7", title:"Tommyknocker VIII", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[9] = {attackBonus:6, damageBonus:0, ref:3, fort:7, will:5, crit:"d16", fumble:"d6", title:"Tommyknocker IX", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
classes["tommyknocker"].levels[10] = {attackBonus:6, damageBonus:0, ref:4, fort:7, will:5, crit:"d16", fumble:"d6", title:"Tommyknocker X", primaryActionDie:"d20", secondaryActionDie:"d20", classDie:"0", meleeAttackBonusDie:"0", meleeDamageBonusDie:"0", rangedAttackBonusDie:"0", rangedDamageBonusDie:"0"};
|
||
|
||
|
||
var DT_MAX_LEVEL = 10;
|
||
var DT_MIN_STAT = 3;
|
||
var DT_MAX_STAT = 19;
|
||
var DT_MAX_HP = 999;
|
||
|
||
|
||
function updatePowers()
|
||
{
|
||
var attrs = [];
|
||
attrs.push("level");
|
||
attrs.push("class");
|
||
attrs.push("strength_mod");
|
||
attrs.push("agility_mod");
|
||
attrs.push("stamina_mod");
|
||
attrs.push("personality_mod");
|
||
attrs.push("intelligence_mod");
|
||
attrs.push("luck_mod");
|
||
getAttrs(attrs, function(vals)
|
||
{
|
||
var powerSetter = {};
|
||
var cls = vals["class"];
|
||
var level = parseInt(vals["level"]);
|
||
console.log("updatePowers: powerAttribute = " + classes[cls].powerAttribute);
|
||
if(classes[cls].powerAttribute)
|
||
{
|
||
powerSetter["power_mod"] = level + vals[classes[cls].powerAttribute + "_mod"];
|
||
}
|
||
else
|
||
{
|
||
powerSetter["power_mod"] = 0;
|
||
}
|
||
setAttrs(powerSetter);
|
||
});
|
||
}
|
||
|
||
function updateWeapons()
|
||
{
|
||
getSectionIDs("weapons", function(idarray) {
|
||
var weaponTypes = [];
|
||
for(var i = 0; i < idarray.length; i++)
|
||
{
|
||
weaponTypes.push("repeating_weapons_" + idarray[i] + "_weapontype");
|
||
}
|
||
weaponTypes.push("class");
|
||
weaponTypes.push("level");
|
||
weaponTypes.push("strength_mod");
|
||
weaponTypes.push("agility_mod");
|
||
getAttrs(weaponTypes, function(vals)
|
||
{
|
||
var cls = vals["class"];
|
||
var level = parseInt(vals["level"]);
|
||
var str_mod = parseInt(vals["strength_mod"]);
|
||
var agi_mod = parseInt(vals["agility_mod"]);
|
||
console.log("updateWeapons: str_mod = " + str_mod + " agi_mod = " + agi_mod);
|
||
var weaponAttsSetter = {};
|
||
for(i=0; i < idarray.length; i++) {
|
||
//update each weapon's hit bonus and bonus dice with new class/level mods
|
||
console.log("trying to update weapon with id " + idarray[i]);
|
||
if(vals["repeating_weapons_" + idarray[i] + "_weapontype"] == "Melee")
|
||
{
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponstathitbonus"] = classes[cls].levels[level].attackBonus + str_mod;
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponstatdamagebonus"] = str_mod;
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponhitbonusdie"] = classes[cls].levels[level].meleeAttackBonusDie;
|
||
}
|
||
else
|
||
{
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponstathitbonus"] = classes[cls].levels[level].attackBonus + agi_mod;
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponstatdamagebonus"] = 0;
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponhitbonusdie"] = classes[cls].levels[level].rangedAttackBonusDie;
|
||
}
|
||
}
|
||
setAttrs(weaponAttsSetter);
|
||
});
|
||
|
||
});
|
||
}
|
||
|
||
function abilityScoreMaxChanged(argEvent)
|
||
{
|
||
var abname = argEvent.sourceAttribute;
|
||
var ab = parseInt(argEvent.newValue);
|
||
console.log("abilityScoreMaxChanged: abname = " + abname + " currVal = " + ab + " prevVal = " + argEvent.previousValue);
|
||
console.log(argEvent);
|
||
var update = false;
|
||
var setter = {};
|
||
if(isNaN(ab))
|
||
{
|
||
ab = parseInt(argEvent.previousValue);
|
||
update = true;
|
||
}
|
||
else if(ab < DT_MIN_STAT)
|
||
{
|
||
ab = DT_MIN_STAT;
|
||
update = true;
|
||
}
|
||
else if(ab > DT_MAX_STAT)
|
||
{
|
||
ab = DT_MAX_STAT;
|
||
update = true;
|
||
}
|
||
if(update == true)
|
||
{
|
||
setter[abname] = ab;
|
||
setAttrs(setter);
|
||
}
|
||
}
|
||
|
||
function abilityScoreChanged(argEvent)
|
||
{
|
||
var ab = argEvent.sourceAttribute;
|
||
console.log("abilityScoreChanged: abname = " + ab);
|
||
if(ab.includes("max"))
|
||
{
|
||
return; //this is a change of a stat_max, so no need to do any mod calculations
|
||
}
|
||
updateAbilityScoreMod(ab);
|
||
if(ab == "personality" || ab == "stamina")
|
||
{
|
||
updateGrit();
|
||
}
|
||
}
|
||
|
||
function updateGrit()
|
||
{
|
||
getAttrs(["personality", "stamina", "grit"], function(values){
|
||
var per = parseInt(values["personality"]);
|
||
var sta = parseInt(values["stamina"]);
|
||
var grit = parseInt(values["grit"]);
|
||
var gritmax = parseInt((per + sta)/2);
|
||
var setter = {};
|
||
setter["grit_max"] = gritmax;
|
||
if(grit > gritmax)
|
||
{
|
||
grit = gritmax;
|
||
setter["grit"] = grit;
|
||
}
|
||
setAttrs(setter);
|
||
});
|
||
}
|
||
|
||
function updateAbilityScoreMod(argAbility)
|
||
{
|
||
getAttrs([argAbility, "class", "level", "reflex_mod", "fort_mod", "will_mod", "agility_mod", "stamina_mod", "personality_mod"], function(values){
|
||
var ab = values[argAbility];
|
||
var agi_mod = parseInt(values["agility_mod"]);
|
||
var sta_mod = parseInt(values["stamina_mod"]);
|
||
var per_mod = parseInt(values["personality_mod"]);
|
||
var fort_mod = parseInt(values["fort_mod"]);
|
||
var will_mod = parseInt(values["will_mod"]);
|
||
var cls = values["class"];
|
||
var level = parseInt(values["level"]);
|
||
var setter = {};
|
||
if(ab < DT_MIN_STAT || ab > DT_MAX_STAT)
|
||
{
|
||
if(ab < DT_MIN_STAT)
|
||
{
|
||
ab = DT_MIN_STAT;
|
||
}
|
||
else if(ab > DT_MAX_STAT)
|
||
{
|
||
ab = DT_MAX_STAT;
|
||
}
|
||
setter[argAbility] = ab;
|
||
}
|
||
console.log("updateAbilityScoreMod: " + argAbility + " = " + ab);
|
||
setter[argAbility+"_mod"] = abilityMods[ab];
|
||
|
||
if(argAbility == "agility")
|
||
{
|
||
var ref_mod = parseInt(values["reflex_mod"]);
|
||
if(isNaN(ref_mod))
|
||
{
|
||
ref_mod = 0;
|
||
setter["reflex_mod"] = ref_mod;
|
||
}
|
||
var ref = ref_mod + abilityMods[ab];
|
||
ref += classes[cls].levels[level].ref;
|
||
setter["reflex"] = ref;
|
||
setter["ranged_bonus"] = classes[cls].levels[level].attackBonus + abilityMods[ab];
|
||
}
|
||
if(argAbility == "strength")
|
||
{
|
||
setter["melee_bonus"] = classes[cls].levels[level].attackBonus + abilityMods[ab];
|
||
}
|
||
else if(argAbility == "stamina")
|
||
{
|
||
var fort_mod = parseInt(values["fort_mod"]);
|
||
if(isNaN(fort_mod))
|
||
{
|
||
fort_mod = 0;
|
||
setter["fort_mod"] = fort_mod;
|
||
}
|
||
var fort = fort_mod + abilityMods[ab];
|
||
fort += classes[cls].levels[level].fort;
|
||
setter["fort"] = fort;
|
||
}
|
||
else if(argAbility == "personality")
|
||
{
|
||
var will_mod = parseInt(values["will_mod"]);
|
||
if(isNaN(will_mod))
|
||
{
|
||
will_mod = 0;
|
||
setter["will_mod"] = will_mod;
|
||
}
|
||
var will = will_mod + abilityMods[ab];
|
||
will += classes[cls].levels[level].will;
|
||
setter["will"] = will;
|
||
|
||
}
|
||
console.log(setter);
|
||
setAttrs(setter, function(){
|
||
updateWeapons();
|
||
updatePowers();
|
||
});
|
||
});
|
||
}
|
||
|
||
function hitPointsChanged(argEvent)
|
||
{
|
||
updateHitPoints(argEvent.previousValue);
|
||
}
|
||
|
||
function updateHitPoints(argPrevValue)
|
||
{
|
||
console.log("updateHitPoints: argPrevValue = " + argPrevValue);
|
||
getAttrs(["hit_points"], function(values){
|
||
var hp = values["hit_points"];
|
||
var setter = {};
|
||
if(isNaN(hp))
|
||
{
|
||
hp = argPrevValue
|
||
}
|
||
else if(hp < 0)
|
||
{
|
||
hp = 0;
|
||
}
|
||
else if(hp > DT_MAX_HP)
|
||
{
|
||
hp = DT_MAX_HP;
|
||
}
|
||
setter["hit_points"] = hp;
|
||
setAttrs(setter);
|
||
});
|
||
}
|
||
|
||
function classOrLevelChanged(argEvent)
|
||
{
|
||
console.log("classChanged()");
|
||
updateClassSpecificInfo(argEvent.sourceAttribute, argEvent.previousValue);
|
||
}
|
||
|
||
function updateClassSpecificInfo(argAttrib, argPrevValue)
|
||
{
|
||
console.log("updateClassSpecificInfo: argAttrib = " + argAttrib + "and argPrevValue = " + argPrevValue);
|
||
getAttrs(["class", "level", "hexes", "path","reflex_mod", "fort_mod", "will_mod", "agility_mod", "stamina_mod", "personality_mod", "strength_mod", "intelligence_mod", "luck_mod"], function(values){
|
||
var cls = values["class"];
|
||
var setter = {};
|
||
var level = parseInt(values["level"]);
|
||
var title = "";
|
||
var ref_mod = parseInt(values["reflex_mod"]);
|
||
var agi_mod = parseInt(values["agility_mod"]);
|
||
var fort_mod = parseInt(values["fort_mod"]);
|
||
var sta_mod = parseInt(values["stamina_mod"]);
|
||
var will_mod = parseInt(values["will_mod"]);
|
||
var per_mod = parseInt(values["personality_mod"]);
|
||
var str_mod = parseInt(values["strength_mod"]);
|
||
var int_mod = parseInt(values["intelligence_mod"]);
|
||
var hexCount = parseInt(values["hexes"]);
|
||
var powerAttr = "";
|
||
var power_mod = 0;
|
||
var lucky_roll = "";
|
||
var critRange = 1;
|
||
var critRangeDisplay = "20";
|
||
var primaryCritThreshold = "cs0";
|
||
var secondaryCritThreshold = "cs0";
|
||
var primaryActionNumber = 20;
|
||
var secondaryActionNumber = 0;
|
||
console.log("updateClassSpecificInfo: cls = " + cls + " level = " + level);
|
||
if(cls == "" || cls == "0")
|
||
{
|
||
cls = "zero-level";
|
||
level = 0;
|
||
}
|
||
else if(cls == "zero-level")
|
||
{
|
||
level = 0;
|
||
}
|
||
else
|
||
{
|
||
if(level == 0)
|
||
{
|
||
level = 1;
|
||
}
|
||
}
|
||
if(isNaN(level))
|
||
{
|
||
if(isNaN(argPrevValue))
|
||
{
|
||
level = 1;
|
||
}
|
||
else
|
||
{
|
||
level = parseInt(argPrevValue);
|
||
}
|
||
}
|
||
else if(level < 0 | level > DT_MAX_LEVEL)
|
||
{
|
||
if(level < 0)
|
||
{
|
||
cls = "zero-level";
|
||
level = 0;
|
||
}
|
||
if(level > DT_MAX_LEVEL)
|
||
{
|
||
level = DT_MAX_LEVEL;
|
||
}
|
||
}
|
||
console.log("updateClassSpecific: path = " + values["path"]);
|
||
if(!values["path"])
|
||
{
|
||
setter["path"] = "The Line";
|
||
}
|
||
|
||
if(isNaN(ref_mod))
|
||
{
|
||
ref_mod = 0;
|
||
setter["reflex_mod"] = ref_mod;
|
||
}
|
||
if(isNaN(agi_mod))
|
||
{
|
||
agi_mod = 0;
|
||
setter["agility_mod"] = agi_mod;
|
||
}
|
||
if(isNaN(fort_mod))
|
||
{
|
||
fort_mod = 0;
|
||
setter["fort_mod"] = fort_mod;
|
||
}
|
||
if(isNaN(sta_mod))
|
||
{
|
||
sta_mod = 0;
|
||
setter["stamina_mod"] = sta_mod;
|
||
}
|
||
if(isNaN(will_mod))
|
||
{
|
||
will_mod = 0;
|
||
setter["will_mod"] = will_mod;
|
||
}
|
||
if(isNaN(per_mod))
|
||
{
|
||
per_mod = 0;
|
||
setter["personality_mod"] = per_mod;
|
||
}
|
||
if(isNaN(str_mod))
|
||
{
|
||
str_mod = 0;
|
||
setter["strength_mod"] = str_mod;
|
||
}
|
||
|
||
var ref = ref_mod + agi_mod;
|
||
ref += classes[cls].levels[level].ref;
|
||
setter["reflex"] = ref;
|
||
|
||
var fort = fort_mod + sta_mod;
|
||
fort += classes[cls].levels[level].fort;
|
||
setter["fort"] = fort;
|
||
|
||
var will = will_mod + per_mod;
|
||
will += classes[cls].levels[level].will;
|
||
setter["will"] = will;
|
||
|
||
if(classes[cls].powerAttribute)
|
||
{
|
||
powerAttr = classes[cls].powerAttribute;
|
||
power_mod = values[powerAttr + "_mod"] + level;
|
||
setter["power_mod"] = power_mod;
|
||
}
|
||
if(classes[cls].luckyRoll)
|
||
{
|
||
setter["lucky_roll"] = classes[cls].luckyRoll;
|
||
}
|
||
if(classes[cls].levels[level].critRange)
|
||
{
|
||
critRange = classes[cls].levels[level].critRange;
|
||
}
|
||
primaryActionNumber = parseInt(classes[cls].levels[level].primaryActionDie.slice(1)); // extract "24" from "d24" for example
|
||
if(classes[cls].levels[level].secondaryActionDie != "0")
|
||
{
|
||
secondaryActionNumber = parseInt(classes[cls].levels[level].secondaryActionDie.slice(1)); // extract "20" from "d20" for example
|
||
}
|
||
if(isNaN(primaryActionNumber))
|
||
{
|
||
primaryActionNumber = 20;
|
||
}
|
||
if(isNaN(secondaryActionNumber))
|
||
{
|
||
secondaryActionNumber = 0;
|
||
}
|
||
for(var j = 0; j < critRange;j++)
|
||
{
|
||
primaryCritThreshold += ("cs" + primaryActionNumber--);
|
||
if(secondaryActionNumber > 16)
|
||
{
|
||
secondaryCritThreshold += ("cs" + secondaryActionNumber--);
|
||
}
|
||
}
|
||
if(classes[cls].levels[level].critRangeDisplay)
|
||
{
|
||
critRangeDisplay = classes[cls].levels[level].critRangeDisplay;
|
||
}
|
||
setter["primary_crit_threshold"] = primaryCritThreshold;
|
||
setter["secondary_crit_threshold"] = secondaryCritThreshold;
|
||
setter["crit_range"] = critRangeDisplay;
|
||
|
||
setter["melee_bonus"] = classes[cls].levels[level].attackBonus + str_mod;
|
||
setter["ranged_bonus"] = classes[cls].levels[level].attackBonus + agi_mod;
|
||
setter["crit_die"] = classes[cls].levels[level].crit;
|
||
var fumble = classes[cls].levels[level].fumble;
|
||
setter["fumble_die_base"] = fumble;
|
||
var newFumbleIndex = 0;
|
||
for(var i = 0; i < diceChain.length; i++)
|
||
{
|
||
if(fumble == diceChain[i])
|
||
{
|
||
newFumbleIndex = i + hexCount;
|
||
if(newFumbleIndex >= diceChain.length)
|
||
{
|
||
newFumbleIndex = diceChain.length - 1;
|
||
}
|
||
}
|
||
}
|
||
|
||
console.log("updateClassSpecificInfo: class = " + cls + " and level = " + level);
|
||
if(true)// if(level != 0)
|
||
{
|
||
title = classes[cls].levels[level].title;
|
||
if(classes[cls].levels[level].classDie)
|
||
{
|
||
setter["class_die"] = classes[cls].levels[level].classDie;
|
||
}
|
||
else
|
||
{
|
||
setter["class_die"] = "";
|
||
}
|
||
if(classes[cls].classDieLabel)
|
||
{
|
||
setter["class_die_label"] = classes[cls].classDieLabel;
|
||
}
|
||
else
|
||
{
|
||
setter["class_die_label"] = "";
|
||
}
|
||
if(classes[cls].levels[level].meleeAttackBonusDie)
|
||
{
|
||
setter["melee_attack_bonus_die"] = classes[cls].levels[level].meleeAttackBonusDie;
|
||
}
|
||
else
|
||
{
|
||
setter["melee_attack_bonus_die"] = "";
|
||
}
|
||
if(classes[cls].levels[level].rangedAttackBonusDie)
|
||
{
|
||
setter["ranged_attack_bonus_die"] = classes[cls].levels[level].rangedAttackBonusDie;
|
||
}
|
||
else
|
||
{
|
||
setter["ranged_attack_bonus_die"] = "";
|
||
}
|
||
if(classes[cls].levels[level].meleeDamageBonusDie)
|
||
{
|
||
setter["melee_damage_bonus_die"] = classes[cls].levels[level].meleeDamageBonusDie;
|
||
}
|
||
else
|
||
{
|
||
setter["melee_damage_bonus_die"] = "";
|
||
}
|
||
if(classes[cls].levels[level].rangedDamageBonusDie)
|
||
{
|
||
setter["ranged_damage_bonus_die"] = classes[cls].levels[level].rangedDamageBonusDie;
|
||
}
|
||
else
|
||
{
|
||
setter["ranged_damage_bonus_die"] = "";
|
||
}
|
||
}
|
||
if(classes[cls].levels[level].primaryActionDie)
|
||
{
|
||
setter["primary_action_die"] = classes[cls].levels[level].primaryActionDie;
|
||
}
|
||
else
|
||
{
|
||
setter["primary_action_die"] = "d20";
|
||
}
|
||
if(classes[cls].levels[level].secondaryActionDie)
|
||
{
|
||
setter["secondary_action_die"] = classes[cls].levels[level].secondaryActionDie;
|
||
}
|
||
else
|
||
{
|
||
setter["secondary_action_die"] = "0";
|
||
}
|
||
setter["fumble_die"] = diceChain[newFumbleIndex];
|
||
setter["class"] = cls;
|
||
setter["level"] = level;
|
||
setter["title"] = title;
|
||
setter["hit_die"] = classes[cls].hitDie;
|
||
if(cls == "bedlamite")
|
||
{
|
||
setter["wondrous_contraptions"] = classes[cls].levels[level].knownWondrousContraptions;
|
||
setter["mundane_contraptions"] = classes[cls].levels[level].knownMundaneContraptions;
|
||
setter["max_contraption_level"] = classes[cls].levels[level].maxContraptionLevel;
|
||
setter["max_contraptions"] = classes[cls].levels[level].maxContraptions;
|
||
setter["derangement"] = classes[cls].levels[level].derangement + "%";
|
||
}
|
||
if(cls == "revelator")
|
||
{
|
||
setter["spells_first"] = classes[cls].levels[level].spellsFirst;
|
||
setter["spells_second"] = classes[cls].levels[level].spellsSecond;
|
||
setter["spells_third"] = classes[cls].levels[level].spellsThird;
|
||
setter["spells_fourth"] = classes[cls].levels[level].spellsFourth;
|
||
setter["spells_fifth"] = classes[cls].levels[level].spellsFifth;
|
||
}
|
||
if(cls == "luchador")
|
||
{
|
||
setter["fame"] = classes[cls].levels[level].fame + "%";
|
||
setter["battle_hardened"] = classes[cls].levels[level].battleHardenedDie;
|
||
}
|
||
if(cls == "mountebank")
|
||
{
|
||
setter["known_formulae"] = classes[cls].levels[level].knownFormulae;
|
||
setter["max_formula_level"] = classes[cls].levels[level].maxFormulaLevel;
|
||
setter["max_active_formulae"] = classes[cls].levels[level].maxActiveFormulae;
|
||
setter["fire_bomb_damage"] = classes[cls].levels[level].fireBombDamage;
|
||
setter["acid_bomb_damage"] = classes[cls].levels[level].acidBombDamage;
|
||
setter["adhesive"] = classes[cls].levels[level].adhesive;
|
||
setter["poultice_healing"] = classes[cls].levels[level].poulticeHealing;
|
||
setter["brew_check"] = level + int_mod;
|
||
}
|
||
if(cls == "mystic-monk")
|
||
{
|
||
setter["living_weapon"] = classes[cls].levels[level].livingWeapon;
|
||
}
|
||
if(cls == "occultist")
|
||
{
|
||
setter["known_spells"] = classes[cls].levels[level].knownSpells;
|
||
setter["max_spell_level"] = classes[cls].levels[level].maxSpellLevel;
|
||
}
|
||
console.log(setter);
|
||
setAttrs(setter, function()
|
||
{
|
||
getSectionIDs("weapons", function(idarray) {
|
||
var weaponTypes = [];
|
||
for(var i = 0; i < idarray.length; i++)
|
||
{
|
||
weaponTypes.push("repeating_weapons_" + idarray[i] + "_weapontype");
|
||
}
|
||
getAttrs(weaponTypes, function(vals)
|
||
{
|
||
var weaponAttsSetter = {};
|
||
for(i=0; i < idarray.length; i++) {
|
||
//update each weapon's hit bonus and bonus dice with new class/level mods
|
||
console.log("trying to update weapon with id " + idarray[i]);
|
||
if(vals["repeating_weapons_" + idarray[i] + "_weapontype"] == "Melee")
|
||
{
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponstathitbonus"] = classes[cls].levels[level].attackBonus + str_mod;
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponhitbonusdie"] = classes[cls].levels[level].meleeAttackBonusDie;
|
||
}
|
||
else
|
||
{
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponstathitbonus"] = classes[cls].levels[level].attackBonus + agi_mod;
|
||
weaponAttsSetter["repeating_weapons_" + idarray[i] + "_weaponhitbonusdie"] = classes[cls].levels[level].rangedAttackBonusDie;
|
||
}
|
||
}
|
||
setAttrs(weaponAttsSetter);
|
||
});
|
||
|
||
});
|
||
getSectionIDs("powers", function(idarray) {
|
||
for(var i=0; i < idarray.length; i++) {
|
||
console.log("trying to update power with id " + idarray[i]);
|
||
}
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
function selectTabby()
|
||
{
|
||
console.log("selectTab1");
|
||
setAttrs({"tab": 1});
|
||
}
|
||
|
||
function selectTabbyTwo()
|
||
{
|
||
console.log("selectTab2");
|
||
setAttrs({"tab": 2});
|
||
}
|
||
|
||
function selectTabbyThree()
|
||
{
|
||
console.log("selectTab3");
|
||
setAttrs({"tab":3});
|
||
}
|
||
|
||
on("sheet:opened", function(eventInfo)
|
||
{
|
||
console.log("Dark trails sheet opened");
|
||
//log("Dark trails class changed");
|
||
//setAttrs({"level": 37});
|
||
for(var i = 0; i < abilityScores.length; i++)
|
||
{
|
||
updateAbilityScoreMod(abilityScores[i]);
|
||
on("change:"+abilityScores[i], abilityScoreChanged);
|
||
on("change:"+abilityScores[i]+"_maxx", abilityScoreMaxChanged);
|
||
}
|
||
updateGrit();
|
||
updateClassSpecificInfo("class", "");
|
||
on("change:class change:level", classOrLevelChanged);
|
||
});
|
||
|
||
on("change:hit_points", hitPointsChanged);
|
||
|
||
on("clicked:tabby", selectTabby);
|
||
on("clicked:tabbytwo", selectTabbyTwo);
|
||
on("clicked:tabbythree", selectTabbyThree);
|
||
|
||
on("change:boons", function(eventInfo)
|
||
{
|
||
getAttrs(["boons"], function(values)
|
||
{
|
||
var boonCount = parseInt(values["boons"]);
|
||
if(boonCount > 0)
|
||
{
|
||
setAttrs({"booned":"on"});
|
||
}
|
||
else
|
||
{
|
||
setAttrs({"booned":0});
|
||
}
|
||
});
|
||
});
|
||
|
||
on("change:hexes change:fumble_die_base", function(eventInfo)
|
||
{
|
||
console.log("hexes changed");
|
||
getAttrs(["hexes", "fumble_die_base"], function(values){
|
||
var hexCount = parseInt(values["hexes"]);
|
||
var fumble = values["fumble_die_base"];
|
||
var newFumbleIndex = 0;
|
||
console.log("hexesChanged: hexCount = " + hexCount + " and base fumble die = " + fumble);
|
||
if(hexCount > 0)
|
||
{
|
||
for(var i = 0; i < diceChain.length; i++)
|
||
{
|
||
if(fumble == diceChain[i])
|
||
{
|
||
newFumbleIndex = i + hexCount;
|
||
console.log("hexesChanged: newFumbleIndex = " + newFumbleIndex + " and diceChain.length = " + diceChain.length);
|
||
if(newFumbleIndex >= diceChain.length)
|
||
{
|
||
newFumbleIndex = diceChain.length - 1;
|
||
}
|
||
console.log("hexesChanged: newFumbleIndex = " + newFumbleIndex);
|
||
}
|
||
}
|
||
setAttrs({"hexed":"on", "fumble_die":diceChain[newFumbleIndex]});
|
||
}
|
||
else
|
||
{
|
||
setAttrs({"hexed":0, "fumble_die":fumble});
|
||
}
|
||
});
|
||
});
|
||
|
||
on("change:reflex_mod change:fort_mod change:will_mod", function(eventInfo)
|
||
{
|
||
getAttrs(["class", "level", "agility_mod", "stamina_mod", "personality_mod"], function(values){
|
||
var cls = values["class"];
|
||
var level = parseInt(values["level"]);
|
||
var agimod = parseInt(values["agility_mod"]);
|
||
var stamod = parseInt(values["stamina_mod"]);
|
||
var permod = parseInt(values["personality_mod"]);
|
||
|
||
var mod = parseInt(eventInfo.newValue);
|
||
var save = 0;
|
||
var stat = eventInfo.sourceAttribute;
|
||
var setter = {};
|
||
if(isNaN(mod))
|
||
{
|
||
mod = 0;
|
||
setter[stat] = mod;
|
||
}
|
||
if(mod < -5)
|
||
{
|
||
mod = -5;
|
||
setter[stat] = mod;
|
||
}
|
||
else if(mod > 10)
|
||
{
|
||
mod = 10;
|
||
setter[stat] = mod;
|
||
}
|
||
if(isNaN(agimod))
|
||
{
|
||
agimod = 0;
|
||
setter["agility_mod"] = agimod;
|
||
}
|
||
if(isNaN(stamod))
|
||
{
|
||
stamod = 0;
|
||
setter["stamina_mod"] = stamod;
|
||
}
|
||
if(isNaN(permod))
|
||
{
|
||
permod = 0;
|
||
setter["personality_mod"] = permod;
|
||
}
|
||
console.log("save mod changed: stat = " + stat + " agimod = " + agimod + " stamod = " + stamod + " permod = " + permod);
|
||
save = mod;
|
||
if(stat == "reflex_mod")
|
||
{
|
||
save += classes[cls].levels[level].ref;
|
||
save += agimod;
|
||
}
|
||
else if(stat == "fort_mod")
|
||
{
|
||
save += classes[cls].levels[level].fort;
|
||
save += stamod;
|
||
}
|
||
else if(stat == "will_mod")
|
||
{
|
||
save += classes[cls].levels[level].will;
|
||
save += permod;
|
||
}
|
||
setter[stat.slice(0, stat.length-4)] = save;
|
||
setAttrs(setter);
|
||
});
|
||
});
|
||
|
||
|
||
on("change:grit", function(eventInfo)
|
||
{
|
||
getAttrs(["grit_max"], function(values){
|
||
var max = parseInt(values["grit_max"]);
|
||
var newVal = parseInt(eventInfo.newValue);
|
||
var setter = {};
|
||
if(isNaN(newVal))
|
||
{
|
||
setter["grit"] = eventInfo.previousValue;
|
||
setAttrs(setter);
|
||
}
|
||
else if(newVal > max)
|
||
{
|
||
setter["grit"] = eventInfo.previousValue;
|
||
setAttrs(setter);
|
||
}
|
||
else if(newVal < 0)
|
||
{
|
||
setter["grit"] = eventInfo.previousValue;
|
||
setAttrs(setter);
|
||
}
|
||
});
|
||
});
|
||
|
||
|
||
on("change:repeating_weapons:weapontype change:repeating_weapons:weaponname change:repeating_weapons:weaponrange change:repeating_weapons:weapondamagenumdice change:repeating_weapons:weapondamagedie change:repeating_weapons:weapondamagebonus change:repeating_weapons:weaponnotes change:repeating_weapons:signature", function(eventInfo){
|
||
console.log("repeating_weapons changed");
|
||
getAttrs(["repeating_weapons_weapontype", "melee_bonus", "strength_mod", "agility_mod", "ranged_bonus", "melee_attack_bonus_die", "melee_damage_bonus_die", "ranged_attack_bonus_die", "ranged_damage_bonus_die", "repeating_weapons_signature"], function(values){
|
||
var type = values["repeating_weapons_weapontype"];
|
||
var strmod = parseInt(values["strength_mod"]);
|
||
var agimod = parseInt(values["agility_mod"]);
|
||
var melee = parseInt(values["melee_bonus"]);
|
||
var ranged = parseInt(values["ranged_bonus"]);
|
||
var sig = values["repeating_weapons_signature"];
|
||
var setter = {};
|
||
if(sig == "on")
|
||
{
|
||
setter["repeating_weapons_signature_mod"] = 0;
|
||
}
|
||
else
|
||
{
|
||
setter["repeating_weapons_signature_mod"] = -2;
|
||
}
|
||
var meleeattackbonusdie = values["melee_attack_bonus_die"];
|
||
var meleedamagebonusdie = values["melee_damage_bonus_die"];
|
||
var rangedattackbonusdie = values["ranged_attack_bonus_die"];
|
||
var rangeddamagebonusdie = values["ranged_damage_bonus_die"];
|
||
console.log("weapontype changed to " + type);
|
||
console.log("melee_attack_bonus_die = " + meleeattackbonusdie);
|
||
console.log("ranged_attack_bonus_die = " + rangedattackbonusdie);
|
||
if(type == "Melee")
|
||
{
|
||
setter["repeating_weapons_weaponstathitbonus"] = melee;
|
||
setter["repeating_weapons_weaponstatdamagebonus"] = strmod;
|
||
setter["repeating_weapons_weaponhitbonusdie"] = meleeattackbonusdie;
|
||
setter["repeating_weapons_weapondamagebonusdie"] = meleedamagebonusdie;
|
||
}
|
||
else if(type == "Ranged")
|
||
{
|
||
setter["repeating_weapons_weaponstathitbonus"] = ranged;
|
||
setter["repeating_weapons_weaponstatdamagebonus"] = 0;
|
||
setter["repeating_weapons_weaponhitbonusdie"] = rangedattackbonusdie;
|
||
setter["repeating_weapons_weapondamagebonusdie"] = rangeddamagebonusdie;
|
||
}
|
||
|
||
console.log(setter);
|
||
setAttrs(setter);
|
||
});
|
||
|
||
});
|
||
|
||
</script>
|
||
|
||
|
||
|
||
|