Obsidian Portal
Menu
Sign In / Create Account
JavaScript is currently disabled. Obsidian Portal has a lot of really cool features that use JavaScript. You should check them out. We think you'll have a much more enjoyable experience.
Home
Campaigns
Games Nearby
Plans
Community
Help
Blog
Rogue Trader - (Only War Aptitudes)
Author:
Errant
Slug:
RT_OW
System:
Warhammer 40K: Rogue Trader
DST Source Code
HTML Template
<div class="content"> <div><img alt="" src="https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Border-top.png" width="742px" /></div> <div> <table style="width: 740px; background: transparent; margin-bottom: -10px;"> <tr style="background: transparent;"> <td class="dsf slimtable dsf_name"></td> <td style="width: 3px;"></td> <td class="dsf slimtable dsf_career"></td> <td style="width: 3px;"></td> <td class="dsf slimtable dsf_dynasty"></td> </tr> <tr style="background: transparent;"> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Character Name</td> <td style="width: 5px;"></td> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Career</td> <td style="width: 5px;"></td> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Dynasty</td> </tr> <tr style="background: transparent;"> <td class="dsf slimtable dsf_homeworld"></td> <td style="width: 3px;"></td> <td class="dsf slimtable dsf_birthright"></td> <td style="width: 3px;"></td> <td class="dsf slimtable dsf_lure"></td> </tr> <tr style="background: transparent;"> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Homeworld</td> <td style="width: 5px;"></td> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Birthright</td> <td style="width: 5px;"></td> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Lure of the Void</td> </tr> <tr style="background: transparent;"> <td class="dsf slimtable dsf_trials"></td> <td style="width: 3px;"></td> <td class="dsf slimtable dsf_motivation"></td> <td style="width: 3px;"></td> <td class="dsf slimtable dsf_lineage"></td> </tr> <tr style="background: transparent;"> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Trials and Travails</td> <td style="width: 5px;"></td> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Motivation</td> <td style="width: 5px;"></td> <td class="lable" style="position: initial; white-space: nowrap; width: 230px;">Lineage</td> </tr> </table> </div> <div style="width: 750px;"> <div class="section top" style="width: 240px; margin-left: 8px; float: left;"> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left;"> <span class="lable" style="float: left; width: 70px; position: initial;">Weapon Skill</span><span class="boxfield box70 dsf dsf_WS" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_WS_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_WS_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_WS_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_WS_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left; margin-left: 10.5px;"> <span class="lable" style="float: left; width: 70px; position: initial;">Ballistic Skill</span><span class="boxfield box70 dsf dsf_BS" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_BS_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_BS_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_BS_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_BS_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left; margin-left: 10.5px;"> <span class="lable" style="float: left; width: 70px; position: initial;">Strength</span><span class="boxfield box70 dsf dsf_Strength" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Strength_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Strength_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Strength_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_WS_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> </div> <div class="section top" style="width: 240px; margin-left: -1px; float: left;"> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left;"> <span class="lable" style="float: left; width: 70px; position: initial;">Toughness</span><span class="boxfield box70 dsf dsf_Toughness" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Toughness_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Toughness_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Toughness_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Toughness_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left; margin-left: 10px;"> <span class="lable" style="float: left; width: 70px; position: initial;">Agility</span><span class="boxfield box70 dsf dsf_Agility" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Agility_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Agility_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Agility_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Agility_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> <div style="width: 70px; margin-left: 10px; height: 50px; float: left;"> <span class="lable" style="float: left; width: 70px; position: initial;">Intelligence</span><span class="boxfield box70 dsf dsf_Intelligence" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Intelligence_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Intelligence_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Intelligence_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Intelligence_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> </div> <div class="section top" style="width: 240px; float: left; margin-left: 0px;"> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left;"> <span class="lable" style="float: left; width: 70px; position: initial;">Perception</span><span class="boxfield box70 dsf dsf_Perception" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Perception_20 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Perception_15 check readonly readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Perception_10 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Perception_5 check readonly readonly" style="position: initial; width: 10px; float: right;"></span> </div> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left; margin-left: 10.5px;"> <span class="lable" style="float: left; width: 70px; position: initial;">Willpower</span><span class="boxfield box70 dsf dsf_Willpower" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Willpower_20 check readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Willpower_15 check readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Willpower_10 check readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Willpower_5 check readonly" style="position: initial; width: 10px; float: right;"></span> </div> <div style="width: 70px; height: 40px; padding-bottom: 10px; float: left; margin-left: 10.5px;"> <span class="lable" style="float: left; width: 70px; position: initial;">Fellowship</span><span class="boxfield box70 dsf dsf_Fellowship" style="float: left; width: 70px; position: initial;"></span> <span class="lable" align="center" style="position: initial; float: left;">Adv</span><span class="lable dsf dsf_Fellowship_20 check readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Fellowship_15 check readonly" style="position: initial; width: 10px; float: right;"></span><span class="lable dsf dsf_Fellowship_10 check readonly" style="position: initial; width: 10px; float: right;"></span> <span class="lable dsf dsf_Fellowship_5 check readonly" style="position: initial; width: 10px; float: right;"></span> </div> </div> <div class="section top" style="width: 241px; margin-left: 8px; float: left; padding-top: 0px;"> <div style="float: left; margin-left: 81px; width: 70px;"> <span class="lable" align="center" style="position: initial; width: 70px; float: left;">Insanity Points</span><span class="boxfield box70 dsf dsf_IP" style="float: left; position: initial;"></span> </div> <div style="float: left; margin-left: 10px; width: 70px;"> <span class="lable" align="center" style="position: initial; width: 55px; float: left;">Corruption</span><span class="boxfield box70 dsf dsf_CP" style="float: left; position: initial;"></span> </div> </div> <div class="section top" style="width: 240px; float: left; padding-top: 0px;"> <div style="float: left; width: 70px;"> <span class="lable" align="center" style="position: initial; width: 55px; float: left;">Fate Points</span><span class="boxfield box70 dsf dsf_FP" style="float: left; position: initial;"></span> </div> <div style="float: left; width: 70px; margin-left: 10px;"> <span class="lable" align="center" style="position: initial; width: 65px; white-space: no-wrap; overflow: hidden; float: left;">Profit Factor</span> <span class="boxfield box70 dsf dsf_PF" style="float: left; position: initial;"></span> </div> <div style="float: left; width: 70px; margin-left: 10px;"> <span class="lable" align="center" style="position: initial; width: 65px; white-space: no-wrap; overflow: hidden; float: right;">Wounds</span> <span class="boxfield box70 dsf dsf_Wounds" style="float: left; position: initial;"></span> </div> </div> <div class="section top" style="width: 240px; float: left; margin-left: 0px; padding-top: 0px;"> <div style="float: left; width: 70px;"> <span class="lable" align="center" style="position: initial; width: 55px; float: left; margin-left: 1px;">Total XP</span><span class="boxfield box70 dsf dsf_XP_Total" style="float: left; position: initial;"></span> </div> <div style="float: left; width: 70px; margin-left: 11px;"> <span class="lable" align="center" style="position: initial; width: 55px; float: left;">Unspent XP</span><span class="boxfield box70 dsf dsf_XP_Free" style="float: left; position: initial;"></span> </div> </div> </div> <div class="main page_stats" style="display: block;"> <div class="column"> <div class="section" style="min-height: 530px; left: 0px;"> <div class="header">ACTIVE SKILLS</div> <span class="lable" style="left: 9px; top: 38px;">Bonus</span><span class="lable spin" style="left: 187px; top: 28px;">Known</span><span class="lable spin" style="left: 203px; top: 34px;">+10</span> <span class="lable spin" style="left: 213px; top: 34px;">+20</span><span class="lable spin" style="left: 223px; top: 34px;">+30</span> <div class="skillbar" style="top: 30px;"> Acrobatics<span class="boxfield box28 dsf dsf_acrobatics_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_Acrobatics check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Acrobatics_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Acrobatics_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Acrobatics_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 31px;"> Athletics<span class="boxfield box28 dsf dsf_acrobatics_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Str</span> <span class="lable dsf dsf_known_Athletics check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Athletics_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Athletics_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Athletics_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 32px;"> Awareness<span class="boxfield box28 dsf dsf_awareness_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Per</span> <span class="lable dsf dsf_known_awareness check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_awareness_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_awareness_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_awareness_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 33px;"> Charm<span class="boxfield box28 dsf dsf_Charm_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Fel</span> <span class="lable dsf dsf_known_Charm check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Charm_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Charm_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Charm_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 34px;"> Command<span class="boxfield box28 dsf dsf_Command_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Fel</span> <span class="lable dsf dsf_known_Command check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Command_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Command_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Command_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 35px;"> Commerce<span class="boxfield box28 dsf dsf_Commerce_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Commerce check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Commerce_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Commerce_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Commerce_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 35px;"> Deceive<span class="boxfield box28 dsf dsf_Deceive_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Fel</span> <span class="lable dsf dsf_known_Deceive check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Deceive_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Deceive_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Deceive_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 36px;"> Dodge<span class="boxfield box28 dsf dsf_Dodge_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_Dodge check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Dodge_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Dodge_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Dodge_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 37px;"> Inquiry<span class="boxfield box28 dsf dsf_Inquiry_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Fel</span> <span class="lable dsf dsf_known_Inquiry check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Inquiry_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Inquiry_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Inquiry_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 38px;"> Interrogation<span class="boxfield box28 dsf dsf_Interrogation_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">WP</span> <span class="lable dsf dsf_known_Interrogation check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Interrogation_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Interrogation_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Interrogation_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 39px;"> Intimidate<span class="boxfield box28 dsf dsf_Intimidate_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Str</span> <span class="lable dsf dsf_known_Intimidate check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Intimidate_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Intimidate_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Intimidate_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 40px;"> Logic<span class="boxfield box28 dsf dsf_Logic_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Logic check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Logic_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Logic_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Logic_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 41px;"> Medicae<span class="boxfield box28 dsf dsf_Medicae_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Medicae check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Medicae_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Medicae_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Medicae_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 42px;"> Navigate (Surface)<span class="boxfield box28 dsf dsf_Navigate_Surface__bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Navigate_Surface check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Navigate_Surface_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Navigate_Surface_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Navigate_Surface_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 43px;"> Navigate (Stellar)<span class="boxfield box28 dsf dsf_Navigate_Stellar_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Navigate (Stellar) check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Navigate (Stellar)_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Navigate (Stellar)_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Navigate (Stellar)_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 44px;"> Navigate (Warp)<span class="boxfield box28 dsf dsf_Navigate_Warp_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Navigate (Warp) check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Navigate (Warp)_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Navigate (Warp)_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Navigate (Warp)_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 45px;"> Operate (Aeronautica)<span class="boxfield box28 dsf dsf_Operate_Aeronautica_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_Operate_Aeronautica check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Operate_Aeronautica_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Operate_Aeronautica_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Operate_Aeronautica_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 46px;"> Operate (Surface)<span class="boxfield box28 dsf dsf_operate_surface_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_operate_surface check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_operate_surface_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_operate_surface_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_operate_surface_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 47px;"> Operate (Voidship)<span class="boxfield box28 dsf dsf_operate_Voidship_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_operate_Voidship check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_operate_Voidship_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_operate_Voidship_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_operate_Voidship_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 48px;"> Parry<span class="boxfield box28 dsf dsf_Parry_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">WS</span> <span class="lable dsf dsf_known_Parry check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Parry_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Parry_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Parry_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 49px;"> Psyniscience<span class="boxfield box28 dsf dsf_Psyniscience_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Per</span> <span class="lable dsf dsf_known_Psyniscience check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Psyniscience_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Psyniscience_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Psyniscience_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 50px;"> Scrutiny<span class="boxfield box28 dsf dsf_Scrutiny_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Per</span> <span class="lable dsf dsf_known_Scrutiny check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Scrutiny_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Scrutiny_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Scrutiny_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 51px;"> Security<span class="boxfield box28 dsf dsf_Security_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_Security check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Security_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Security_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Security_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 52px;"> Sleight of Hand<span class="boxfield box28 dsf dsf_sleight_of_hand_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_sleight_of_hand check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_sleight_of_hand_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_sleight_of_hand_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_sleight_of_hand_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 53px;"> Stealth<span class="boxfield box28 dsf dsf_Stealth_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Agi</span> <span class="lable dsf dsf_known_Stealth check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Stealth_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Stealth_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Stealth_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 54px;"> Survival<span class="boxfield box28 dsf dsf_Survival_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Per</span> <span class="lable dsf dsf_known_Survival check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Survival_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Survival_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Survival_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 55px;"> Tech-Use<span class="boxfield box28 dsf dsf_Tech-Use_bonus" style="left: -8px; top: 1px;"></span><span class="lable" style="left: 158px; top: 1px;">Int</span> <span class="lable dsf dsf_known_Tech-Use check readonly" style="width: 10px; left: 178px;"></span><span class="lable dsf dsf_trained_Tech-Use_10 check readonly" style="width: 10px; left: 188px;"></span> <span class="lable dsf dsf_trained_Tech-Use_20 check readonly" style="width: 10px; left: 198px;"></span><span class="lable dsf dsf_trained_Tech-Use_30 check readonly" style="width: 10px; left: 208px;"></span> </div> </div> <div class="section" style="min-height: 84px; left: 0px;"> <div class="header">NOTES</div> <span class="lable" style="left: 8px; top: 17px;">Note</span><a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Note" onclick="RT_OW_getElementsByClassName('list_notes')[0].addItem();">+</a> <div class="list list_notes listColumns_1" style="margin-top: 12px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_note_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> </div> <div class="column" style="left: -6px;"> <div class="section" style="min-height: 140px; left: 0px;"> <div class="header">COMMON LORES</div> <span class="lable" style="left: 9px; top: 38px;">Bonus</span><span class="lable spin" style="left: 187px; top: 28px;">Known</span><span class="lable spin" style="left: 203px; top: 34px;">+10</span> <span class="lable spin" style="left: 213px; top: 34px;">+20</span><span class="lable spin" style="left: 223px; top: 34px;">+30</span> <div class="skillbar" style="top: 30px;"> <span class="linefield skillfield dsf dsf_common_lore_0" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_common_lore_0_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_common_lore_0 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_common_lore_0_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_common_lore_0_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_common_lore_0_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 31px;"> <span class="linefield skillfield dsf dsf_common_lore_1" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_common_lore_1_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_common_lore_1 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_common_lore_1_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_common_lore_1_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_common_lore_1_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 32px;"> <span class="linefield skillfield dsf dsf_common_lore_2" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_common_lore_2_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_common_lore_2 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_common_lore_2_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_common_lore_2_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_common_lore_2_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 33px;"> <span class="linefield skillfield dsf dsf_common_lore_3" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_common_lore_3_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_common_lore_3 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_common_lore_3_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_common_lore_3_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_common_lore_3_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 34px;"> <span class="linefield skillfield dsf dsf_common_lore_4" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_common_lore_4_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_common_lore_4 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_common_lore_4_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_common_lore_4_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_common_lore_4_30 check readonly" style="width: 10px; left: 208px;"></span> </div> </div> <div class="section" style="min-height: 110px; left: 0px;"> <div class="header">SCHOLASTIC LORES</div> <div class="skillbar" style="top: 0px;"> <span class="linefield skillfield dsf dsf_scholastic_lore_0" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_trade_2_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_scholastic_lore_0 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_0_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_scholastic_lore_0_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_0_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 1px;"> <span class="linefield skillfield dsf dsf_scholastic_lore_1" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_scholastic_lore_1_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_scholastic_lore_1 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_1_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_scholastic_lore_1_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_1_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 2px;"> <span class="linefield skillfield dsf dsf_scholastic_lore_2" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_scholastic_lore_2_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_scholastic_lore_2 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_2_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_scholastic_lore_2_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_2_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 3px;"> <span class="linefield skillfield dsf dsf_scholastic_lore_3" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_scholastic_lore_3_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_scholastic_lore_3 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_3_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_scholastic_lore_3_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_3_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 4px;"> <span class="linefield skillfield dsf dsf_scholastic_lore_4" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_scholastic_lore_4_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_scholastic_lore_4 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_4_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_scholastic_lore_4_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_scholastic_lore_4_30 check readonly" style="width: 10px; left: 208px;"></span> </div> </div> <div class="section" style="min-height: 110px; left: 0px;"> <div class="header">FORBIDDEN LORES</div> <div class="skillbar" style="top: 0px;"> <span class="linefield skillfield dsf dsf_forbidden_lore_0" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_forbidden_lore_0_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_forbidden_lore_0 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_0_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_forbidden_lore_0_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_0_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 1px;"> <span class="linefield skillfield dsf dsf_forbidden_lore_1" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_forbidden_lore_1_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_forbidden_lore_1 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_1_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_forbidden_lore_1_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_1_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 2px;"> <span class="linefield skillfield dsf dsf_forbidden_lore_2" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_forbidden_lore_2_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_forbidden_lore_2 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_2_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_forbidden_lore_2_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_2_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 3px;"> <span class="linefield skillfield dsf dsf_forbidden_lore_3" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_forbidden_lore_3_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_forbidden_lore_3 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_3_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_forbidden_lore_3_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_3_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 4px;"> <span class="linefield skillfield dsf dsf_forbidden_lore_4" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_forbidden_lore_4_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_forbidden_lore_4 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_4_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_forbidden_lore_4_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_forbidden_lore_4_30 check readonly" style="width: 10px; left: 208px;"></span> </div> </div> <div class="section" style="min-height: 110px; left: 0px;"> <div class="header">LANGUAGES</div> <div class="skillbar" style="top: 0px;"> <span class="linefield skillfield dsf dsf_language_0" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_language_0_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_language_0 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_language_0_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_language_0_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_language_0_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 1px;"> <span class="linefield skillfield dsf dsf_language_1" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_language_1_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_language_1 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_language_1_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_language_1_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_language_1_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 2px;"> <span class="linefield skillfield dsf dsf_language_2" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_language_2_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_language_2 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_language_2_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_language_2_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_language_2_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 3px;"> <span class="linefield skillfield dsf dsf_language_3" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_language_3_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_language_3 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_language_3_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_language_3_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_language_3_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 4px;"> <span class="linefield skillfield dsf dsf_language_4" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_language_4_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_language_4 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_language_4_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_language_4_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_language_4_30 check readonly" style="width: 10px; left: 208px;"></span> </div> </div> <div class="section" style="min-height: 120px; left: 0px;"> <div class="header">TRADES</div> <div class="skillbar" style="top: 1px;"> <span class="linefield skillfield dsf dsf_trade_0" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_trade_0_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_trade_0 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_trade_0_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_trade_0_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_trade_0_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 2px;"> <span class="linefield skillfield dsf dsf_trade_1" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_trade_1_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_trade_1 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_trade_1_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_trade_1_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_trade_1_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 3px;"> <span class="linefield skillfield dsf dsf_trade_2" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_trade_2_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_trade_2 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_trade_2_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_trade_2_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_trade_2_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 4px;"> <span class="linefield skillfield dsf dsf_trade_3" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_trade_3_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_trade_3 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_trade_3_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_trade_3_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_trade_3_30 check readonly" style="width: 10px; left: 208px;"></span> </div> <div class="skillbar" style="top: 5px;"> <span class="linefield skillfield dsf dsf_trade_4" style="width: 130px; left: 25px;"></span><span class="boxfield box28 dsf dsf_trade_4_bonus" style="left: -8px; top: 1px;"></span> <span class="lable" style="left: 162px; top: 1px;">Int</span><span class="lable dsf dsf_known_trade_4 check readonly" style="width: 10px; left: 178px;"></span> <span class="lable dsf dsf_trained_trade_4_10 check readonly" style="width: 10px; left: 188px;"></span><span class="lable dsf dsf_trained_trade_0_20 check readonly" style="width: 10px; left: 198px;"></span> <span class="lable dsf dsf_trained_trade_0_30 check readonly" style="width: 10px; left: 208px;"></span> </div> </div> </div> <div class="column"> <div class="section" style="min-height: 14px; left: 0px;"> <div class="header">TALENTS & TRAITS</div> <span class="lable" style="left: 8px; top: 17px;">Talent/Trait</span> <a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Talent/Trait" onclick="RT_OW_getElementsByClassName('list_talents')[0].addItem();">+</a> <div class="list list_talents listColumns_1" style="margin-top: 12px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_talents_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> <div class="section" style="left: 0px; margin-bottom: 0px;"> <div class="header">CORRUPTION</div> <div style="height: 30px;"> <span class="boxfield box51 dsf dsf_CP" style="left: 8px; top: 20px;"></span> <span class="lable" style="left: 60px; top: 18px;"> Corruption<br /> Points </span> </div> <span class="lable" style="left: 8px; top: 40px;">Mutation</span><a class="listAdd interface" style="top: -8px; right: 2px;" title="Add Mutation" onclick="RT_OW_getElementsByClassName('list_mutation')[0].addItem();">+</a> <div class="list list_mutation listColumns_1" style="margin-top: 6px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_mutation_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> <div style="height: 1px;"></div> <div class="section" style="min-height: 14px; left: 0px; margin-top: 20px;"> <span class="lable" style="left: 8px; top: -8px;">Malignancies</span> <a class="listAdd interface" style="top: -10px; right: 2px;" title="Add Malignancy" onclick="RT_OW_getElementsByClassName('list_malignancy')[0].addItem();">+</a> <div class="list list_malignancy listColumns_1" style="margin-top: 12px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_malignancy_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> <div class="section" style="min-height: 14px; left: 0px;"> <div> <div class="header">INSANITY</div> <div style="height: 30px;"> <span class="boxfield box51 dsf dsf_IP" style="left: 8px; top: 20px;"></span> <span class="lable" style="left: 60px; top: 18px;"> Insanity<br /> Points </span> </div> <span class="lable" style="left: 8px; top: 40px;">Mental Disorders</span> <a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Disorder" onclick="RT_OW_getElementsByClassName('list_disorder')[0].addItem();">+</a> <div class="list list_disorder listColumns_1" style="margin-top: 12px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a> <a class="listDemote interface" title="Move this item down">↓</a><span class="slimfield dsf dsf_disorder_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> </div> <div class="section" style="min-height: 14px; left: 0px;"> <div class="header">APTITUDES</div> <span class="lable" style="left: 8px; top: 17px;">Aptitude</span><a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Aptitude" onclick="RT_OW_getElementsByClassName('list_aptitude')[0].addItem();">+</a> <div class="list list_aptitude listColumns_1" style="margin-top: 12px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_aptitude_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> <div class="section" style="min-height: 14px; left: 0px;"> <div> <div class="header">PSYCHIC POWERS</div> <div style="height: 30px;"> <span class="boxfield box51 dsf dsf_power" style="left: 8px; top: 20px;"></span> <span class="lable" style="left: 60px; top: 18px;"> Psy<br /> Rating </span> </div> <span class="lable" style="left: 8px; top: 40px;">Psychic Powers</span> <a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Power" onclick="RT_OW_getElementsByClassName('list_power')[0].addItem();">+</a> <div class="list list_power listColumns_1" style="margin-top: 12px;"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a> <a class="listDemote interface" title="Move this item down">↓</a><span class="slimfield dsf dsf_power_" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> </div> <div class="section" style="min-height: 65px; float: left;"> <div class="header">MOVEMENT</div> <div> <span class="boxfield box51 dsf dsf_move_full" style="right: 121px; top: 26px;"></span><span class="boxfield box51 dsf dsf_move_run" style="left: 121px; top: 26px;"></span> <span class="boxfield box51 dsf dsf_move_half" style="left: 16px; top: 26px;"></span><span class="boxfield box51 dsf dsf_move_charge" style="right: 16px; top: 26px;"></span> <span class="lable" style="width: 50px; left: 18px; top: 15px;">Half</span><span class="lable" style="width: 50px; left: 121px; top: 15px;">Run</span> <span class="lable" style="width: 50px; right: 16px; top: 15px;">Charge</span><span class="lable" style="width: 50px; right: 121px; top: 15px;">Full</span> </div> </div> </div> </div> <div class="main page_bio" style="display: none; max-height: 650px; overflow-y: auto; margin-top: 120px;"> <div style="margin: 5px 4px 4px 4px; position: relative; z-index: 3;"> <span class="portrait_holder"> <span class="portrait dsf dsf_avatar_image"></span><img alt="" src="https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Top-Left.png" class="portrait_corner_top_left" /> <img alt="" src="https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Top-Right.png" class="portrait_corner_top_right" /> <img alt="" src="https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Bottom-right.png" class="portrait_corner_bottom_right" /> <img alt="" src="https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Bottom-left.png" class="portrait_corner_bottom_left" /> </span> <span class="dsf dsf_bio" style="font-size: 9pt;"></span> </div> </div> <div class="main page_exp" style="display: none; max-height: 650px; overflow-y: auto; margin-top: 120px;"> <div class="section" style="min-height: 84px; width: 740px; left: 0px;"> <div class="header">NOTES</div> <span class="lable" style="left: 8px; top: 17px;">Note</span><a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Note" onclick="RT_OW_getElementsByClassName('list_notes')[0].addItem();">+</a> <div class="list list_notes listColumns_1" style="margin-top: 12px;" optscontainerid="dynamic_sheet_999" optsiseditable="true" optsdebugthreshold="-1"> <div class="template"> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_note_" style="margin-left: 20px; width: 200px;"></span> </div> </div> <div> <a class="listDelete interface" title="Delete this item">✘</a><a class="listPromote interface" title="Move this item up">↑</a><a class="listDemote interface" title="Move this item down">↓</a> <span class="slimfield dsf dsf_note_00" style="margin-left: 20px; width: 200px;"></span> </div> </div> </div> </div> <div class="main page_armory" style="display: none; min-height: 650px;"> <div class="column"> <div class="section" style="min-height: 14px; left: 0px;"> <div class="header">RANGED WEAPONS</div> <span class="lable" style="left: 8px; top: 17px;">Weapon</span> <a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Talent/Trait" onclick="RT_OW_getElementsByClassName('list_RANGED_WEAPON')[0].addItem();">+</a> <div class="list list_RANGED_WEAPON listColumns_1" style="margin-top: 12px;"> <div class="template"> <div class="Gear"> <a class="listDelete interface" title="Delete this item" style="position: initial; float: left;">✘</a> <a class="listPromote interface" title="Move this item up" style="position: initial; float: left;">↑</a> <a class="listDemote interface" title="Move this item down" style="position: initial; float: left;">↓</a> <div> <span class="slimfield dsf dsf_RANGED_WEAPON_name_" style="position: initial; width: 224px; float: left;"></span> <div class="lable" style="position: initial; margin-left: 18px; float: none;">Name</div> <span class="slimfield dsf dsf_RANGED_WEAPON_class_" style="margin-left: 4px;"></span><span class="slimfield dsf dsf_RANGED_WEAPON_damage_"></span><span class="slimfield dsf dsf_RANGED_WEAPON_type_"></span> <span class="slimfield dsf dsf_RANGED_WEAPON_pen_"></span> <div class="lable" style="margin-left: 4px;">Class</div> <div class="lable">Damage</div> <div class="lable">Type</div> <div class="lable">Pen</div> <span class="slimfield dsf dsf_RANGED_WEAPON_Range_" style="width: 50px;"></span><span class="slimfield dsf dsf_RANGED_WEAPON_ROF_" style="width: 50px;"></span> <span class="slimfield dsf dsf_RANGED_WEAPON_Mag_" style="width: 50px;"></span><span class="slimfield dsf dsf_RANGED_WEAPON_Rld" style="width: 50px;"></span> <div class="lable" style="position: initial;">Range</div> <div class="lable" style="position: initial;">ROF</div> <div class="lable" style="position: initial;">Magazine</div> <div class="lable" style="position: initial;">Reload</div> <span class="slimfield dsf dsf_RANGED_WEAPON_qualities_" style="width: 224px;"></span> <div class="lable" style="position: initial; width: 100px;">Special Qualities</div> </div> </div> </div> </div> </div> <div class="section" style="min-height: 84px; left: 0px;"> <div class="header">EQUIPPED ITEMS</div> <span class="lable" style="left: 8px; top: 17px;">Equipment</span><span class="lable" style="right: 12px; top: 17px;">Weight</span> <a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Equipment" onclick="RT_OW_getElementsByClassName('list_equipment')[0].addItem();">+</a> <div class="list list_equipment listColumns_1" style="margin-top: 12px;"> <div class="template"> <div class="Equipment" style="margin-top: 0px;"> <a class="listDelete interface" title="Delete this item" style="position: initial;">✘</a><a class="listPromote interface" title="Move this item up" style="position: initial;">↑</a> <a class="listDemote interface" title="Move this item down" style="position: initial;">↓</a> <div> <span class="slimfield dsf dsf_equipment_name_" style="width: 188px; left: 20px; top: 0px;"></span> <span class="slimfield dsf dsf_equipment_weight_" style="text-align: center; margin-left: 2px; width: 32px; right: 3px; top: 0px;"></span> </div> </div> </div> </div> </div> </div> <div class="column"> <div class="section" style="min-height: 14px; left: 0px;"> <div class="header">MELEE WEAPONS</div> <span class="lable" style="left: 8px; top: 17px;">Weapon</span><a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Weapon" onclick="RT_OW_getElementsByClassName('list_MELEE_WEAPON')[0].addItem();">+</a> <div class="list list_MELEE_WEAPON listColumns_1" style="margin-top: 12px;"> <div class="template"> <div class="Gear"> <a class="listDelete interface" title="Delete this item" style="position: initial; float: left;">✘</a> <a class="listPromote interface" title="Move this item up" style="position: initial; float: left;">↑</a> <a class="listDemote interface" title="Move this item down" style="position: initial; float: left;">↓</a> <div> <span class="slimfield dsf dsf_MELEE_WEAPON_name_" style="position: initial; width: 224px; float: left;"></span> <div class="lable" style="position: initial; margin-left: 18px; float: none;">Name</div> <span class="slimfield dsf dsf_MELEE_WEAPON_class_" style="margin-left: 4px;"></span><span class="slimfield dsf dsf_MELEE_WEAPON_damage_"></span><span class="slimfield dsf dsf_MELEE_WEAPON_type_"></span> <span class="slimfield dsf dsf_MELEE_WEAPON_pen_"></span> <div class="lable" style="margin-left: 4px;">Class</div> <div class="lable">Damage</div> <div class="lable">Type</div> <div class="lable">Pen</div> <span class="slimfield dsf dsf_MELEE_WEAPON_qualities_" style="width: 224px;"></span> <div class="lable" style="position: initial; width: 100px;">Special Qualities</div> </div> </div> </div> </div> </div> <div class="section" style="left: 0px;"> <div class="header">ACQUISITIONS</div> <span class="lable" style="left: 8px; top: 17px;">Equipment</span><span class="lable" style="right: 12px; top: 17px;">Weight</span> <a class="listAdd interface" style="top: -5px; right: 2px;" title="Add Equipment" onclick="RT_OW_getElementsByClassName('list_equipment_equipped')[0].addItem();">+</a> <div class="list list_equipment_equipped listColumns_1" style="margin-top: 12px;"> <div class="template"> <div class="Equipment" style="margin-top: 0px;"> <a class="listDelete interface" title="Delete this item" style="position: initial;">✘</a><a class="listPromote interface" title="Move this item up" style="position: initial;">↑</a> <a class="listDemote interface" title="Move this item down" style="position: initial;">↓</a> <div> <span class="slimfield dsf dsf_acquisition_name_" style="width: 188px; left: 20px; top: 0px;"></span> <span class="slimfield dsf dsf_acquisition_weight_" style="text-align: center; margin-left: 2px; width: 32px; right: 3px; top: 0px;"></span> </div> </div> </div> </div> </div> <div class="section" style="float: left; margin-top: 6px; margin-bottom: 32px;"> <div class="header">ENCUMBRANCE</div> <div style="width: 70px; float: left; margin-left: 10px;"><span class="lable" style="width: 70px; position: initial;">Lift</span><span class="boxfield box70 dsf dsf_lift" style="position: initial;"></span></div> <div style="width: 70px; float: left; margin-left: 10px;"><span class="lable" style="width: 70px; position: initial;">Carry</span><span class="boxfield box70 dsf dsf_carry" style="position: initial;"></span></div> <div style="width: 70px; float: left; margin-left: 10px;"><span class="lable" style="width: 70px; position: initial;">Push</span><span class="boxfield box70 dsf dsf_push" style="position: initial;"></span></div> </div> </div> <div class="column"> <div style="position: relative; width: 244px; height: 415px; float: right; background-image: url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Armour_Doll.png');"> <div class="Armour" style="left: 80px; top: 74px;"> <div style="text-align: center;"> Head<br /> (1-10) </div> <span class="dsf dsf_armour_head boxfield box28" style="left: 18px; font-size: 10pt;"></span> <div style="height: 18px; v-align: center; margin-left: 3px; margin-top: 4px;">AP:</div> </div> <div class="Armour" style="left: 80px; top: 130px;"> <div style="text-align: center;"> Body<br /> (31-70) </div> <span class="dsf dsf_armour_body boxfield box28" style="left: 18px; font-size: 10pt;"></span> <div style="height: 18px; v-align: center; margin-left: 3px; margin-top: 4px;">AP:</div> </div> <div class="Armour" style="left: 144px; top: 110px;"> <div style="text-align: center;"> Right Arm<br /> (11-20) </div> <span class="dsf dsf_armour_right_arm boxfield box28" style="left: 18px; font-size: 10pt;"></span> <div style="height: 18px; v-align: center; margin-left: 3px; margin-top: 4px;">AP:</div> </div> <div class="Armour" style="left: 20px; top: 110px;"> <div style="text-align: center;"> Left Arm<br /> (21-30) </div> <span class="dsf dsf_armour_left_arm boxfield box28" style="left: 18px; font-size: 10pt;"></span> <div style="height: 18px; v-align: center; margin-left: 3px; margin-top: 4px;">AP:</div> </div> <div class="Armour" style="left: 50px; top: 190px;"> <div style="text-align: center;"> Right Leg<br /> (71-85) </div> <span class="dsf dsf_armour_right_leg boxfield box28" style="left: 18px; font-size: 10pt;"></span> <div style="height: 18px; v-align: center; margin-left: 3px; margin-top: 4px;">AP:</div> </div> <div class="Armour" style="left: 114px; top: 190px;"> <div style="text-align: center;"> Left Leg<br /> (86-00) </div> <span class="dsf dsf_armour_left_leg boxfield box28" style="left: 18px; font-size: 10pt;"></span> <div style="height: 18px; v-align: center; margin-left: 3px; margin-top: 4px;">AP:</div> </div> </div> </div> </div> <div style="width: 742px; float: left; position: relative; margin-bottom: 50px;"> <div style="position: absolute; bottom: 0px; width: 742px; text-align: center; font-size: 8pt; z-index: 2;"> Character By <span class="dsf dsf_player"></span> • Sheet By <span class="dsf dsf_dst_author"></span> <img alt="" src="https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Border-bottom.png" style="width: 742px;" /> </div> <a class="armory tabs armory_tabs" style="left: 0px; top: 0px;" onclick="RT_OW_tabClick(this,'armory')"></a><a class="bio tabs bio_tabs" style="left: 185px; top: 0px;" onclick="RT_OW_tabClick(this,'bio');"></a> <a class="exp tabs exp_tabs" style="right: 185px; top: 0px;" onclick="RT_OW_tabClick(this,'exp');"></a><a class="stats tabs stats_tabs active" style="right: 0px; top: 0px;" onclick="RT_OW_tabClick(this,'stats')"></a> </div> </div>
CSS
/* Jedi Input Styles */ form { position:relative; } input { padding:0px 0px 0px 0px; margin:-1px 0px 0px -1px; font-family:arial; font-size:7pt; color:#776655; z-index:4; } .jeditable_submit { position:absolute; right:-20px; top:-2px; height:18px; width:10px; z-index:5; } .jeditable_submit_text { position:relative; top:-4px; left:-1px; font-size:9pt; color:#070; } div.ds_RT_OW .main{ padding-bottom: 30px; } div.ds_RT_OW .editable .dsf { cursor:pointer; } div.ds_RT_OW .editable .dsf_bio:hover { color:#776655; cursor:text; } div.ds_RT_OW .Armour { opacity:0.9; position:absolute; height:44px; width:50px; border-style:solid; border-color:black; background-color:white; font-size:7pt; font-variant:small-caps;} div.ds_RT_OW .Gear { border-style:solid; border-color:black; background-color:white; font-size:7pt; /*font-variant:small-caps;*/ width:232px; padding-bottom:12px; margin-bottom:6px; margin-left:-3px} div.ds_RT_OW .Equipment { font-size:7pt; position:relative; margin-top:12px;} div.ds_RT_OW .boxfield { position:absolute; display:inline-block; width:24px; height:16px; padding-bottom:1px; background-image:url('https://chainsawxiv.github.io/DST/sheets/chainsawxiv_dd4e/images/dd4e_box.png'); text-align:center; font-weight:normal; vertical-align:bottom; } div.ds_RT_OW .box28 { width:28px; background-image:url('https://chainsawxiv.github.io/DST/sheets/chainsawxiv_dd4e/images/dd4e_box_28.png'); } div.ds_RT_OW .box51 { width:51px; font-size:9pt; background-image:url('https://chainsawxiv.github.io/DST/sheets/chainsawxiv_dd4e/images/dd4e_box_51.png'); } div.ds_RT_OW .box70 { width:70px; font-size:9pt; background-image:url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/dd4e_box_70.png'); } div.ds_RT_OW .linefield { position:absolute; display:inline-block; height:16px; border-width:1px; border-color:#BBAA99; border-bottom-style:solid; text-align:center; font-size:9pt; } div.ds_RT_OW .skillfield { font-size:8pt; } div.ds_RT_OW .slimfield { display:inline-block; min-height:13px; width:222px; border-width:1px; border-color:#BBAA99; border-bottom-style:solid; } div.ds_RT_OW .slimtable { padding:0px; vertical-align:bottom; width:230px; text-align:left; font-size:9pt; height:16px; border-width:1px; border-color:#BBAA99; border-bottom-style:solid; margin-top:-14px; margin-bottom:-14px; } div.ds_RT_OW .Gear .slimfield { margin-left:4px; margin-right:4px; width:50px; } div.ds_RT_OW .Gear .lable { float:left; position:initial; margin-left:4px; margin-right:4px; width:50px; } div.ds_RT_OW .editable .slimfield { width:200px; margin-left:22px; } /* List Interface Styles */ div.ds_RT_OW .list { position:relative; width:232px; margin-left:auto; font-size:8pt; } div.ds_RT_OW .listAdd { position:relative; float:right; cursor:pointer; text-decoration:none; color:#776655; } div.ds_RT_OW .listAdd:hover { color:#AA9988; } div.ds_RT_OW .listDelete { color:#AA5544; cursor:pointer; letter-spacing:-1px; text-decoration:none; position:absolute; margin-top:1px; left:-1px; left: -2px\9 } div.ds_RT_OW .listDelete:hover { color:#CC7766; } div.ds_RT_OW .listPromote { cursor:pointer; letter-spacing:-1px; text-decoration:none; color:#776655; position:absolute; left:8px; left: 9px\9 } div.ds_RT_OW .listPromote:hover { color:#AA9988; } div.ds_RT_OW .listDemote { cursor:pointer; text-decoration:none; color:#776655; position:absolute; left:14px; } div.ds_RT_OW .listDemote:hover { color:#AA9988; } div.ds_RT_OW .template { display:none; } /* Optional Link Styles */ div.ds_RT_OW .link_address { display:none; } div.ds_RT_OW .link_active { color:#7766AA; } div.ds_RT_OW .link_active:hover { color:#AA88DD; } /* DD4E Sheet Styles */ div.ds_RT_OW .content { width:742px; font-family:arial; background-image:url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/white_parchment_paper_background_1800x1600.jpg'); color:#776655; position:relative; } div.ds_RT_OW .h1,h2,h3,h4 { color:#776655; } div.ds_RT_OW .section { position:relative; width:240px; margin-bottom:3px; z-index:2; } div.ds_RT_OW .top { margin:0px 0px 0px -2px; padding:10px 2px 0px 2px; } div.ds_RT_OW .column { display:inline-block; width:244px; vertical-align:top; position:relative; left:-1px; } div.ds_RT_OW .header { position:relative; padding-top:2px; padding-bottom:2px; background-image:url('https://chainsawxiv.github.io/DST/sheets/chainsawxiv_dd4e/images/dd4e_head.png'); text-align:center; vertical-align:middle; font-size:9pt; color:#776655; font-weight:bold; height:13px; } div.ds_RT_OW .valbar { position:relative; height:17px; width:200px; margin-left:auto; padding-bottom:2px; padding-left:22px; /*background-color:rgba(204,191,170,0.35);*/ background-image:url('https://chainsawxiv.github.io/DST/sheets/chainsawxiv_dd4e/images/dd4e_valbar.png'); font-size:9pt; color:#776655; font-weight:bold; vertical-align:top; } div.ds_RT_OW .skillbar { position:relative; height:15px; width:200px; padding-left:22px; padding-top:2px; margin-left:auto; font-size:8pt; } div.ds_RT_OW .lable { text-align:left; position:absolute; font-size:7pt; color:#998877; font-variant:small-caps; } div.ds_RT_OW .spin { -webkit-transform: rotate(-90deg); } div.ds_RT_OW .a { text-decoration:none; color:#776655; } div.ds_RT_OW .tabs { display:inline-block; width:185px; height:51px; position:absolute; cursor:pointer; z-index:3; /*background-color:rgba(255,255,255,0.01);*/ background-image:url('http://omnichron.net/external/op/src/transparent.png'); } div.ds_RT_OW .avatar_image { width:234px; } div.ds_RT_OW .portrait_holder { display:inline-block; position:relative; float:right; padding:0px 0px 0px 0px; margin:3px 3px 5px 10px; border-style:solid; border-width:1px; border-color:#554220; } div.ds_RT_OW .portrait_corner_top_left { position:absolute; left:-4px; top:-10px; width:40px; height:82.5px; z-index:4; } div.ds_RT_OW .portrait_corner_top_right { position:absolute; right:-4px; top:-10px; width:40px; height:82.5px; z-index:4; } div.ds_RT_OW .portrait_corner_bottom_left { position:absolute; left:-4px; bottom:-4px; width:27.5px; height:29.5px; z-index:4; } div.ds_RT_OW .portrait_corner_bottom_right { position:absolute; right:-4px; bottom:-4px; width:27.5px; height:29.5px; z-index:4; } div.ds_RT_OW .armory { height:51px; background:url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Left_Full.png'); background-position: 0px 51px; } div.ds_RT_OW .bio { height:51px; background:url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Left_Mid_Full.png'); background-position: 0px 51px; } div.ds_RT_OW .stats { height:51px; background:url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Right_Full.png'); background-position: 0px 51px; } div.ds_RT_OW .exp { height:51px; background:url('https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/Right_Mid_Full.png'); background-position: 0px 51px; } div.ds_RT_OW .stats:hover, div.ds_RT_OW .armory:hover, div.ds_RT_OW .exp:hover, div.ds_RT_OW .bio:hover { background-position: 0px 102px; } div.ds_RT_OW .stats.active, div.ds_RT_OW .armory.active, div.ds_RT_OW .exp.active, div.ds_RT_OW .bio.active { background-position: 0px 153px; } div.ds_RT_OW .stats.active:hover, div.ds_RT_OW .armory.active:hover, div.ds_RT_OW .exp.active:hover, div.ds_RT_OW .bio.active:hover { background-position: 0px 204px; }
Javascript
// Global Storage RT_OW_context = {}; /////////////////////////////////////////////////// // Event Hooks ///////////////////////////////////// /////////////////////////////////////////////////// // Called immediately before the script fills the Span fields with data function RT_OW_dataPreLoad(opts){ $.fn.editable.defaults['onblur'] = 'submit'; // Set the jeditable button aisleten.characters.jeditableSubmit = '<button class="jeditable_submit"><div class="jeditable_submit_text">✓</div></button>'; /* aisleten.characters.jeditablePlaceholder = function(){ if (this.className.match(/boxfield/)) return ''; else return 'Edit'; } */ aisleten.characters.jeditablePlaceholder = ''; } // Called immediately after the script fills the Span fields with data, before jeditable attachement function RT_OW_dataPostLoad(opts){ // Store global context for search by class name RT_OW_context = document.getElementById(opts['containerId']); // Set additional options //opts['imagePath'] = 'https://dl.dropboxusercontent.com/u/17469748/images/'; opts['imagePath'] = 'https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/'; opts['context'] = document.getElementById(opts['containerId']); opts['debugThreshold'] = -1; //Convert interface elements RT_OW_convertLists(opts); RT_OW_convertChecks(opts); RT_OW_convertAreas(opts); RT_OW_convertLinks(opts); } // Called immediately before the sheet's data is saved function RT_OW_dataPreSave(opts) { // Set additional options opts['context'] = document.getElementById(opts['containerId']); RT_OW_unconvertLinks(opts); RT_OW_unconvertChecks(opts); RT_OW_unconvertAreas(opts); } /////////////////////////////////////////////////// // List Interface Control ///////////////////////////// /////////////////////////////////////////////////// // Applies a bunch of list functionality to the specified element function RT_OW_list(oElement,opts){ // Store options oElement.setAttribute('optsContainerId',opts['containerId']); oElement.setAttribute('optsIsEditable',opts['isEditable']); oElement.setAttribute('optsDebugThreshold',opts['debugThreshold']); // Parses the number of columns the list has from its class name oElement.columns = function(){ // Get the column count from the element's class name var iColumns = this.className.match(/listColumns_[\d]+/)[0].substring(12); // Default if needed, and return if (isNaN(iColumns) || iColumns < 1){ this.error(1,"Invalid column count specification in List Element (Element Class: " + this.className + ")"); return 1; } else return iColumns; }; // Gets the list's list item template from the element based on class oElement.template = function(){ // The template is the first div in the list with the "template" class var aDivs = this.getElementsByTagName('div'); for (var i = 0; i < aDivs.length; i++){ if (aDivs[i].className.match(/template/)) return aDivs[i]; } // Create a semi-persistant default row template if needed if (!this.defaultTemplate){ this.defaultTemplate = document.createElement('div'); this.defaultTemplate.innerHTML = '<span class="dsf"></span>'; } // If we got here, there wasn't a template in the list, default and return this.error(1,"No template row found in List Element (Element Class: " + this.className + ")"); return this.defaultTemplate; }; // Gets an array of the fields in the template row oElement.fields = function(){ // This is easy assuming all the fields are span tags, and all the spans are fields //var TEST = this.template().getElementsByTagName('span'); //return this.template().getElementsByTagName('span'); var aFields = this.template().getElementsByTagName('span'); var aReduced = new Array(); var iCounter = 0; for (var i = 0; i < aFields.length; i++){ if (aFields[i].className.match(/dsf/)){ aReduced[iCounter] = aFields[i]; iCounter++; } } return aReduced; } // Gets an array of the rows in the list, excluding the template oElement.rows = function(){ // Initialize the list of rows var aRows = new Array(); // Getting the divs in the list the hard way to avoid nested divs making the cut var aElements = this.childNodes; var aDivs = new Array(); var iCounter = 0; for (var n = 0; n < aElements.length; n++){ if (aElements[n].tagName == 'DIV'){ aDivs[iCounter] = aElements[n]; iCounter++; } } // If we have multiple columns, then get the rows from inside each one if (this.columns() > 1){ var aTemp = new Array(); for (var x = 0; x < aDivs.length; x++){ if (!aDivs[x].className.match(/template/)){ aTemp = aDivs[x].getElementsByTagName('div'); for (var y = 0; y < aTemp.length; y++){ aRows[aRows.length] = aTemp[y]; } } } } // Otherwise just get them all from the main div else{ for (var i = 1; i < aDivs.length; i++){ aRows[aRows.length] = aDivs[i]; } } // Return the array of rows // This may have been dissacoiated by the splices, not sure yet return aRows; } // Generates a structure containing the list's data from the save object oElement.loadData = function(){ // Pattern match on the first field for simplicity's sake var iCounter = 0; var oData = {}; // Get the fields in order (doesn't allow missing fileds) var sClassPattern = this.fields()[0].className.match(/dsf_[\w\d]+/)[0].substring(4); while (dynamic_sheet_attrs[sClassPattern + this.padDigits(iCounter,2)] != undefined){ oData[iCounter] = new Array(); for (var i = 0; i < this.fields().length; i++){ oData[iCounter][i] = dynamic_sheet_attrs[this.fields()[i].className.match(/dsf_[\w\d]+/)[0].substring(4) + this.padDigits(iCounter,2)]; } iCounter++; } // Write the length oData.length = iCounter; // Write the completed data structure to the object this.data = oData; } // Generates a structure contianing the list's data form the list itself oElement.parseData = function(){ // Go through each row of each field and populate the structure var oData = {}; oData.length = 0; for (var i = 0; i < this.rows().length; i++){ oData[i] = new Array(); for (var n = 0; n < this.fields().length; n++){ oData[i][n] = this.rows()[i].getElementsByTagName('span')[n].innerHTML } oData.length = i + 1; } // Write the completed data structure to the object this.data = oData; } // Renders out the code for the list and puts it into the list element oElement.render = function(){ var sTemp = ''; var iCurrentColumn = 1; var iBreak = 0; var sClass = ''; // Add the first column opener if multiple columns, and calc first col break if (this.columns() > 1){ sTemp = '\n<div class="column column_spacing">'; iBreak += Math.floor(this.data.length / this.columns()) - 1; if (iCurrentColumn <= (this.data.length % this.columns())) iBreak++; } // Accumulate the list code for each row for (var i = 0; i < this.data.length; i++){ // Populate and class the fields for (var n = 0; n < this.fields().length; n++){ this.fields()[n].className = this.fields()[n].className.replace(/dsf_[\w\d]+/,this.fields()[n].className.match(/dsf_[\w\d]+/)[0] + this.padDigits(i,2)); this.fields()[n].innerHTML = this.data[i][n]; if (this.data[i][n] == undefined) this.fields()[n].innerHTML = ''; } // Add the list item to the code sTemp += this.template().innerHTML; // Reset the template if it was used for (var x = 0; x < this.fields().length; x++){ sClass = this.fields()[x].className.match(/dsf_[\w\d]+/)[0]; this.fields()[x].className = this.fields()[x].className.replace(/dsf_[\w\d]+/,sClass.substring(0,sClass.length - 2)); this.fields()[x].innerHTML = ''; } // Add column breaks where needed if (this.columns() > 1 && (i == iBreak)){ // Add the column opener for the last column if (iCurrentColumn == (this.columns() - 1)) sTemp += '</div>\n<div class="column">'; // Add the final column's column closer else if (i == (this.data.length - 1)) sTemp += '</div>'; // Add the column openers for other columns else sTemp += '</div>\n<div class="column column_spacing">'; // Update the column break and current column iCurrentColumn++; iBreak += Math.floor(this.data.length / this.columns()); if (iCurrentColumn <= (this.data.length % this.columns())) iBreak++; } } // Prepend the template to the list code sTemp = '<div class="template">' + this.template().innerHTML + '</div>' + sTemp; // Purge jquery expandos in explorer sTemp = sTemp.replace(/jQuery[\d]+="[\d]+"/g,''); // Put the code in the list this.innerHTML = sTemp; // Activate the interface if in edit mode if (this.getAttribute('optsIsEditable') == 'true'){ // Look through all the anchor elements in the list and activate by class name var aButtons = this.getElementsByTagName('a'); for (var y = 0; y < aButtons.length;y++){ if(aButtons[y].className.match(/listDelete/)) aButtons[y].onclick = this.deleteItem; else if(aButtons[y].className.match(/listPromote/)) aButtons[y].onclick = this.promoteItem; else if(aButtons[y].className.match(/listDemote/)) aButtons[y].onclick = this.demoteItem; } } // Hide them if not else{ // Look through all the anchor elements in the list and hide by class name var oContext = document.getElementById(this.getAttribute('optsContainerId')); if (oContext) var aButtons = oContext.getElementsByTagName('a'); else{ this.error(2,'No context specified in options for list element (Element Class: ' + this.className + ')'); var aButtons = document.getElementsByTagName('a'); } for (var y = 0; y < aButtons.length; y++){ if(aButtons[y].className.match(/interface/)) aButtons[y].style.display = 'none'; } } // Triger the list's onUpdate event this.onUpdate(); }; // Adds an blank element to the list oElement.addItem = function(){ // Get the latest data from the list this.parseData(); // Add a new row to the data, full of blank values var aRow = new Array(); for (var i = 0; i < this.fields().length; i++){ aRow[i] = ''; } this.data[this.data.length] = aRow; this.data.length++; // Re-render the list this.render(); }; // Deletes the specified element from the list oElement.deleteItem = function(){ // Activate the list the item belongs to /* var oItem = this.parentNode; if (oItem.parentNode.className.match(/list/)) var lList = oItem.parentNode; else var lList = oItem.parentNode.parentNode; */ var oItem = this; var lList; while(oItem.parentNode){ if (oItem.parentNode.className.match(/list/)){ lList = oItem.parentNode; break; } else oItem = oItem.parentNode;} // Stop here if we're editing things if (oItem.innerHTML.match(/input/)) return; // Delete the item from the DOM oItem.parentNode.removeChild(oItem); // Refresh the list to renew numbering lList.parseData(); lList.render(); }; // Moves the specified element up the list one place oElement.promoteItem = function(){ // Activate the list the item belongs to // var oItem = this.parentNode; // if (oItem.parentNode.className.match(/list/)) var lList = oItem.parentNode; // else var lList = oItem.parentNode.parentNode; var oItem = this; var lList; while(oItem.parentNode){ if (oItem.parentNode.className.match(/list/)){ lList = oItem.parentNode; break; } else oItem = oItem.parentNode;} // Stop here if we're editing things if (oItem.innerHTML.match(/input/)) return; // Get the latest data from the list lList.parseData(); // Figure out what row number was clicked var sFieldClass = oItem.getElementsByTagName('span')[0].className.match(/dsf_[\w\d]+/)[0]; var sIndexString = sFieldClass.substring(sFieldClass.length - 2).replace(/^[0]+/,''); var iIndex = parseInt(sIndexString); // Stop right here if the clicked item is already at the top if (iIndex == 0) return; // Swap the row data with the one above it var aRowA = lList.data[iIndex]; var aRowB = lList.data[iIndex - 1]; lList.data[iIndex] = aRowB; lList.data[iIndex - 1] = aRowA; // Re-render the data lList.render(); }; // Moves the specified element down the list one place oElement.demoteItem = function(){ // Activate the list the item belongs to // var oItem = this.parentNode; // if (oItem.parentNode.className.match(/list/)) var lList = oItem.parentNode; // else var lList = oItem.parentNode.parentNode; var oItem = this; var lList; while(oItem.parentNode){ if (oItem.parentNode.className.match(/list/)){ lList = oItem.parentNode; break; } else oItem = oItem.parentNode;} // Stop here if we're editing things if (oItem.innerHTML.match(/input/)) return; // Get the latest data from the list lList.parseData(); // Figure out what row number was clicked var sFieldClass = oItem.getElementsByTagName('span')[0].className.match(/dsf_[\w\d]+/)[0]; var sIndexString = sFieldClass.substring(sFieldClass.length - 2).replace(/^[0]+/,''); var iIndex = parseInt(sIndexString); // Stop right here if the clicked item is alreayd on the bottom if (iIndex == (lList.data.length - 1)) return; // Swap the row data with the one below it var aRowA = lList.data[iIndex]; var aRowB = lList.data[iIndex + 1]; lList.data[iIndex] = aRowB; lList.data[iIndex + 1] = aRowA; // Re-render the data lList.render(); }; // Error handling function - alerts on errors if bug reporting is on oElement.error = function(iImportance,sText){ if (this.getAttribute('optsDebugThreshold')) var iThreshold = this.getAttribute('optsDebugThreshold'); else iThreshold = 0; if (iImportance < iThreshold){ alert(sText); } } // Converts a number to a string with prepended zeros to the specified character length oElement.padDigits = function(iNumber,iDigits){ var sNumber = iNumber.toString(); var sTemp = ''; if (iDigits > sNumber.length){ for (var i = 0; i < (iDigits - sNumber.length); i++){ sTemp += '0'; } } return sTemp + sNumber; } // On Update event function, typicaly overriden oElement.onUpdate = function(){ } // Return the origenal element now that it's fully equipped return oElement; } // Converts all properly classed divs in the context to lists function RT_OW_convertLists(opts){ // Find all the divs on the page with "list" in their class name if (opts['context']) var aDivs = opts['context'].getElementsByTagName('div'); else var aDivs = document.getElementsByTagName('div'); var lTemp = {}; for (var i = 0; i < aDivs.length; i++){ if (aDivs[i].className.match(/list/)){ // Convert each element to a full featured list object lTemp = RT_OW_list(aDivs[i],opts); // Populate the list from the data variable lTemp.loadData(); lTemp.render(); // Assign the onUpdate function lTemp.onUpdate = function(){ RT_OW_convertLinks(opts); RT_OW_convertLinks(opts); aisleten.characters.bindAllFields(opts['slug'],opts['containerId']); //dst_devkit.bindDynamicAttributes(); } } } } /////////////////////////////////////////////////// // Text Area Edit Control //////////////////////////// /////////////////////////////////////////////////// // Core Textarea Class function RT_OW_area(oElement,opts){ // Store options oElement.setAttribute('optsIsEditable',opts['isEditable']); oElement.setAttribute('optsDebugThreshold',opts['debugThreshold']); // Attaches edit events to area text oElement.activate = function(){ // Don't activate the element if we're not in edit mode if (this.getAttribute('optsIsEditable') != 'true') return; // Activate the element oElement.onclick = this.edit; // Add default value if (this.innerHTML == '') this.innerHTML = 'Click to edit'; // Set the element's alt text this.title = 'Click to edit'; // Set the cursor for the item this.style.cursor = 'pointer'; }; // Converts the element to an editable area oElement.edit = function(){ // Abort click function if we just clicked submit if(this.getAttribute('eventLock') == 'locked'){ this.setAttribute('eventLock',null); return; } // Force submit any other area in the context var aAreas = RT_OW_getElementsByClassName('area','span'); for (var i = 0; i < aAreas.length; i++){ if (aAreas[i].getAttribute('status') == 'editing') aAreas[i].submit(); } // Set the editing flag this.setAttribute('status','editing'); // Disable click functionality this.onclick = null; // Set cursor this.style.cursor = 'text'; // Remove default if (this.innerHTML == aisleten.characters.jeditablePlaceholder) this.innerHTML = ''; // Convert <br /> tags to line breaks var sText = this.innerHTML.replace(/<br>/g,'\n'); // Select dimensions and classes var iWidth = this.offsetWidth + parseInt(this.getAttribute('widthMod')); var iHeight = this.offsetHeight + parseInt(this.getAttribute('heightMod')) + 60; var sClasses = this.getAttribute('areaClasses'); // Convert content into form with button this.innerHTML = '<textarea class=RT_OW_textarea "' + sClasses + '" style="width:' + iWidth + 'px;height:' + iHeight + 'px;">' + sText + '</textarea>'; //this.innerHTML += '<button class="submit_button area_submit" onClick="this.parentNode.submit();"><div class="area_submit_text">✓</div></button>'; // Set the user's focus to the textarea and set it to save on loss-of-focus //var focusRef = function(){oElement.getElementsByTagName('textarea')[0].focus();}; var focusRef = function(){$('.RT_OW_textarea').focus();}; var submitRef = function(){$('.RT_OW_textarea').parent().submit();}; var unfocusRef = function(){$('.RT_OW_textarea').blur(submitRef)}; this.focusTimeout = setTimeout(focusRef,50); this.unfocusTimeout = setTimeout(unfocusRef,60); }; // Converts the edit box back into regular text form oElement.submit = function(){ // Get the data from the edit box var sContent = this.getElementsByTagName('textarea')[0].value.replace(/\n/g,'<br>'); // Remove the form elements this.innerHTML = sContent; // Lock out the click event until we're done this.setAttribute('eventLock','locked'); // Set pointer this.style.cursor = 'pointer'; // Reattach the click functionality this.onclick = this.edit; }; // Error handling function - alerts on errors if bug reporting is on oElement.error = function(iImportance,sText){ if (this.getAttribute('optsDebugThreshold')) var iThreshold = this.getAttribute('debugThreshold'); else iThreshold = 0; if (iImportance < iThreshold){ alert(sText); } } // Return the element for ease of refference return oElement; } // Converts all properly classed divs in the context to lists function RT_OW_convertAreas(opts){ // Find all the spans on the page with "area" in their class name if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); var taTemp = {}; for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/area/)){ // Convert each element to a full featured list object taTemp = RT_OW_area(aSpans[i],opts); taTemp.activate(); } } } // Sets the necesary class name on areas for themt o be saved function RT_OW_unconvertAreas(opts){ // Find all the spans on the page with "area" in their class name if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); // Add the necesary save key to the class name // Also close out any active edit boxes for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/area/)){ if (aSpans[i].innerHTML.match(/textarea/)) aSpans[i].submit(); if (aSpans[i].innerHTML == 'Click to edit') aSpans[i].innerHTML = ''; } } } /////////////////////////////////////////////////// // Check Interface Control /////////////////////////// /////////////////////////////////////////////////// // Applies a bunch of pips functionality to the specified element function RT_OW_check(oElement,opts){ // Store options oElement.setAttribute('optsImagePath',opts['imagePath']); oElement.setAttribute('optsIsEditable',opts['isEditable']); oElement.setAttribute('optsDebugThreshold',opts['debugThreshold']); // Gets the field value from the embedded image or the text oElement.value = function(){ // Get the value from the image if there is one if (this.getElementsByTagName('img').length){ var sPath = this.getElementsByTagName('img')[0].src; var sValue = sPath.substring(sPath.length - 5,sPath.length - 4); } // If there's no image, get the value from the text else{ var sValue = this.innerHTML; if (this.innerHTML == '') sValue = '0'; } // Check the value for bad data, default if needed, and return if (sValue != '1' && sValue != '0'){ this.error(1,"Invalid value for Check Element (Element Class: " + this.className + ")"); return 0; } else return sValue; }; // Converts the associated span element's contents to a pips image oElement.showCheck = function(){ // Get the image path from options or default if (this.getAttribute('optsImagePath')) var sPath = this.getAttribute('optsImagePath'); else{ this.error(2,'No imagePath specified in options for Checks element (Element Class: ' + this.className + ')'); //sPath = 'dynamic_sheets/RT_OW/0.1/images/'; sPath = 'https://chainsawxiv.github.io/DST/sheets/Errant_Warhammer40k/images/'; } // Replace the contents with the appropriate check image this.innerHTML = '<img src="' + sPath + 'check-' + this.value() + '.png" />'; // Activate the check this.activate(); }; // Converts the associated span element's contents to a text value oElement.showValue = function(){ // Replace the contents with the appropriate value string this.innerHTML = this.value(); }; // Assigns clickability to a pips image element oElement.activate = function(){ // Don't actualy activate anything if we're not in edit mode if (this.getAttribute('optsIsEditable') != 'true') return; // Activate the element's pips interface this.onclick = this.click; // Set the element's alt text this.title = 'Click to set value'; // Set the cursor for the item this.style.cursor = 'pointer'; }; // Click event handler for the pips interface oElement.click = function(){ // Get the pips image that was clicked as a pips object var oImage = this.getElementsByTagName('img')[0]; // Determine which pip the click was on and change the image if (this.value() == "1") oImage.src = oImage.src.substring(0,oImage.src.length - 5) + "0.png"; else oImage.src = oImage.src.substring(0,oImage.src.length - 5) + "1.png"; // Call the onUpdate event this.onUpdate(); }; // Error handling function - alerts on errors if bug reporting is on oElement.error = function(iImportance,sText){ if (this.getAttribute('optsDebugThreshold')) var iThreshold = this.getAttribute('optsDebugThreshold'); else iThreshold = 0; if (iImportance < iThreshold){ alert(sText); } } // On Update event function, typicaly overriden oElement.onUpdate = function(){ } // Return the pips element for ease of refference return oElement; } // Converts all properly classed spans in the context to pips elements function RT_OW_convertChecks(opts){ // Get all the spans in the context, whatever it may be if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); // Convert all the potential values in the context to pips var pTemp = {}; for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/check/)){ pTemp = RT_OW_check(aSpans[i],opts); pTemp.showCheck(); } } } // Converts all the pips in the context back to thier basic values for saving function RT_OW_unconvertChecks(opts) { // Get the working context if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); // Flip all the pips in the context back to values for(var i = 0; i < aSpans.length; i++){ if(aSpans[i].className.match(/check/)){ aSpans[i].showValue(); } } } /////////////////////////////////////////////////// // Optional Links Converter ////////////////////////// /////////////////////////////////////////////////// // Converts properly classed fields to links if an address is supplied function RT_OW_convertLinks(opts){ // Early out if we're in editing mode (only show links in view) if(opts['isEditable']) return; // Get all the spans in the context, whatever it may be if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); // Convert all the potential values in the context to pips var aInnerSpans = {}; for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/is_link/)){ aInnerSpans = aSpans[i].parentNode.getElementsByTagName('span'); for (var n = 0; n < aInnerSpans.length; n++){ if (aInnerSpans[n].className.match(/link_address/) && aInnerSpans[n].innerHTML != ''){ aSpans[i].innerHTML = '<a class="link_active" href="' + aInnerSpans[n].innerHTML + '">' + aSpans[i].innerHTML + '</a>'; } } } } } // Returns link fields to simple data in preperation for saving function RT_OW_unconvertLinks(opts){ // Early out if we're in editing mode (only show links in view) if(opts['isEditable']) return; // Get all the spans in the context, whatever it may be if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); // Convert all the potential values in the context to pips var aInnerSpans = {}; for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/is_link/)){ aInnerSpans = aSpans[i].parentNode.getElementsByTagName('span'); for (var n = 0; n < aInnerSpans.length; n++){ if (aInnerSpans[n].className.match(/link_address/) && aInnerSpans[n].innerHTML != ''){ aSpans[i].innerHTML = aSpans[i].getElementsByTagName('a')[0].innerHTML; } } } } } /////////////////////////////////////////////////// // General Utility Functions ////////////////////////// /////////////////////////////////////////////////// // Gets an array of elements with a particular class from the context function RT_OW_getElementsByClassName(sClassName,sElementType){ // Provide default element type if (!sElementType) sElementType = 'div'; var aList = new Array(); var aDivs = RT_OW_context.getElementsByTagName(sElementType); for (var i = 0; i < aDivs.length; i++){ if (aDivs[i].className.match(sClassName)) aList[aList.length] = aDivs[i]; } return aList; } // Tab switching function function RT_OW_tabClick(oTab,sPageClass){ $('html, body').animate({scrollTop: 200}, "slow"); // Abort if already on the selected tab var oPage = RT_OW_getElementsByClassName('page_' + sPageClass)[0]; if (oPage.style.display != 'none') return; // Set the length of the shorter page to match the longer page var oPages = RT_OW_getElementsByClassName('main'); var iHeight = 0; for (var i = 0; i < oPages.length; i++){ if (oPages[i].offsetHeight > iHeight) iHeight = oPages[i].offsetHeight; } iHeight -= 30; for (var n = 0; n < oPages.length; n++){ oPages[n].style.minHeight = iHeight + 'px'; } // Reset tab image highlight document.getElementsByClassName('armory_tabs')[0].classList.remove("active"); document.getElementsByClassName('stats_tabs')[0].classList.remove("active"); document.getElementsByClassName('bio_tabs')[0].classList.remove("active"); document.getElementsByClassName('exp_tabs')[0].classList.remove("active"); // Switch page and highlight the new active tab for (var j = 0; j < oPages.length; j++) { if (oPages[j].classList.contains('page_' + sPageClass)) { oPages[j].style.display = 'block'; oTab.classList.add("active"); } else { oPages[j].style.display = 'none'; } } } function RT_OW_preload(arrayOfImages) { $(arrayOfImages).each(function(){ $('<img/>')[0].src = this; }); } RT_OW_preload([ 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Armory_Menu_Active_Glow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Armory_Menu_Active_noGlow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Armory_Menu_inActive_Glow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Armory_Menu_inActive_noGlow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Bio_Menu_Active_Glow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Bio_Menu_Active_noGlow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Bio_Menu_inActive_Glow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Bio_Menu_inActive_noGlow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Stats_Menu_Active_Glow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Stats_Menu_Active_noGlow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Stats_Menu_inActive_Glow.jpg', 'https://dl.dropboxusercontent.com/u/17469748/images/Menu/Stats_Menu_inActive_noGlow.jpg']);
Submit Notes
Back
I'm sorry, but we no longer support this web browser. Please
upgrade your browser
or install
Chrome
or
Firefox
to enjoy the full functionality of this site.