2269 lines
87 KiB
HTML
2269 lines
87 KiB
HTML
<section class="tabs borderless">
|
|
<input type="hidden" class="tabstoggle" name="attr_sheetTab" value="charactersheet" />
|
|
<div class="hidden tabholder">
|
|
<button class="charsheetbtn" type="action" name="act_charactersheet" >Character</button>
|
|
<button class="basesheetbtn" type="action" name="act_basesheet" >Base</button>
|
|
<button class="campaignsheetbtn" type="action" name="act_campaignsheet" >Campaign</button>
|
|
</div>
|
|
<div class="character_sheet_type">
|
|
<label for="attr_sheet_type">What type of sheet is this?</label>
|
|
<select name="attr_sheet_type">
|
|
<option value="charactersheet">Character</option>
|
|
<option value="basesheet">Base</option>
|
|
<option value="campaignsheet">Campaign Tracker</option>
|
|
</select>
|
|
</div>
|
|
<span class="briny-setting">
|
|
<label class="inline setting">Briny Bastards?</label>
|
|
<input class="sheet-briny" name="attr_briny" type="checkbox">
|
|
</span>
|
|
<hr class="divide">
|
|
</section>
|
|
|
|
<input type="hidden" class="tabstoggle" name="attr_sheetTab" value="charactersheet" />
|
|
<div class="charactersheet">
|
|
<main>
|
|
<section class="header f-center flexheader borderless">
|
|
<div class="stack header-left empty">
|
|
<input class="hidden sheet-briny" name="attr_briny" type="checkbox">
|
|
<div class="brinyhide">
|
|
<div class="autoExpand eighty">
|
|
<input spellcheck="false" class="header-input" name="attr_character_tattoo" type="text">
|
|
<span name="attr_character_tattoo"></span>
|
|
</div>
|
|
<hr class="underline eighty">
|
|
<label>Tattoo/Brand</label>
|
|
</div>
|
|
</div>
|
|
<div class="stack header-left">
|
|
<div class="autoExpand long">
|
|
<input spellcheck="false" class="header-input" name="attr_character_name" type="text">
|
|
<span name="attr_character_name"></span>
|
|
</div>
|
|
<hr class="underline nintety">
|
|
<label>Name</label>
|
|
</div>
|
|
|
|
<div class="stack header-right">
|
|
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" name="attr_character_mutator" type="text">
|
|
<span name="attr_character_mutator"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Mutator</label>
|
|
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" list="megacorps" name="attr_character_megacorp" type="text">
|
|
<span name="attr_character_megacorp"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Megacorp</label>
|
|
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" name="attr_character_career" value="Intern" type="text">
|
|
<span name="attr_character_career"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Career</label>
|
|
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" name="attr_character_next_of_kin" type="text">
|
|
<span name="attr_character_next_of_kin"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Next of Kin</label>
|
|
|
|
|
|
</div>
|
|
</section>
|
|
|
|
<section class="powers">
|
|
<span class="spacer">
|
|
<h2 class="narrow">All Known Powers</h2>
|
|
<h3 class="right">Equipped <span class="powersused" value="0" name="attr_powersEquipped"></span>/5</h3>
|
|
</span>
|
|
<fieldset class="repeating_powers">
|
|
<label class="inline">Equipped?</label>
|
|
<input class="equippedpower" type="checkbox" name="attr_equipped">
|
|
<button type="roll" name="roll_power" value="&{template:powers} {{title=Power}} {{name=@{character_name}}} {{description=@{powertext}}} {{cost=@{powercost}}} {{powerName=@{powername}}}"></button>
|
|
<input class="powername" spellcheck="false" type="text" name="attr_powername" value="Name">
|
|
<span class="right">
|
|
<label class="inline">Biotech Cost</label>
|
|
<input class="cost" type="text" name="attr_powercost" value="">
|
|
</span>
|
|
<textarea class="maxwidth" spellcheck="false" name="attr_powertext"></textarea>
|
|
</fieldset>
|
|
</section>
|
|
|
|
<section class="portrait borderless">
|
|
<h4 class="caption">Portrait of Applicant</h4>
|
|
<img class="charPort" name="attr_character_avatar">
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section class="borderless settings">
|
|
<span>
|
|
<button type="action" title="Reset HP and Biotech to max, un-use all items and drones. Optionally unequip all powers." name="act_reset">Reset</button>
|
|
<label class="inline setting">Unequip powers on reset?</label>
|
|
<input class="" name="attr_resetpowers" type="checkbox" value="true">
|
|
</span>
|
|
</section>
|
|
|
|
<section class="background f-col">
|
|
<h3 class="sidebar">Background</h3>
|
|
<div class="sideholder">
|
|
<input type="number" class="sidebar-input" name="attr_debt">
|
|
<label>Debt</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" class="sidebar-input" name="attr_scrip">
|
|
<label>Scrip</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" class="sidebar-input" name="attr_downtime_dice">
|
|
<label>Downtime Dice</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" class="sidebar-input" name="attr_gear_parts">
|
|
<label>Gear Parts</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" class="sidebar-input" name="attr_construction_pieces">
|
|
<label class="narrow">Construction Pieces</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<h3 class="sidebar">Attributes</h3>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_smash" value="0">
|
|
<label>Smash</label>
|
|
<button type="roll" value="&{template:attributeroll} {{title=Smash}} {{name=@{character_name}}} {{roll=@{roll_formula_smash}}} {{results=@{roll_results_smash}}} {{details=Smash Smash SMASH!}} {{success_at_cost=@{smash_fail}}} {{smash=1}}"></button>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_sly" value="0">
|
|
<label>Sly</label>
|
|
<button type="roll" value="&{template:attributeroll} {{title=Sly}} {{name=@{character_name}}} {{roll=@{roll_formula_sly}}} {{results=@{roll_results_sly}}} {{details=Sneaky slyly secretly, gently as we go}} {{success_at_cost=@{sly_fail}}} {{sly=1}}"></button>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_cyber" value="0">
|
|
<label>Cyber</label>
|
|
<button type="roll" value="&{template:attributeroll} {{title=Cyber}} {{name=@{character_name}}} {{roll=@{roll_formula_cyber}}} {{results=@{roll_results_cyber}}} {{details=beeep booop 11010010 processing data}} {{success_at_cost=@{cyber_fail}}} {{cyber=1}}"></button>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_soak">
|
|
<span class="minmax short">/</span>
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_soak_max">
|
|
<label>Soak</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_shard">
|
|
<span class="minmax short">/</span>
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_shard_max">
|
|
<label>Shard</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<div class="sideholder">
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_barrier">
|
|
<span class="minmax short">/</span>
|
|
<input type="number" min="0" class="sidebar-input attr" name="attr_barrier_max">
|
|
<label>Barrier</label>
|
|
<hr class="overline">
|
|
</div>
|
|
|
|
<h4 class="sidebar">Health</h4>
|
|
<div class="minmax">
|
|
<input type="number" min="0" class="sidebar-input minmax" value="4" name="attr_hp">
|
|
<span class="minmax">/</span>
|
|
<input type="number" min="0" class="sidebar-input minmax" value="4" name="attr_hp_max">
|
|
</div>
|
|
|
|
<h4 class="sidebar">Biotech</h4>
|
|
<div class="minmax">
|
|
<input type="number" min="0" class="sidebar-input minmax" value="3" name="attr_biotech">
|
|
<span class="minmax">/</span>
|
|
<input type="number" min="0" class="sidebar-input minmax" value="3" name="attr_biotech_max">
|
|
</div>
|
|
|
|
<input class="hidden sheet-briny" name="attr_briny" type="checkbox">
|
|
<div class="briny">
|
|
<h4 class="briny">Relationships</h4>
|
|
<label>Grieving </label>
|
|
<div class="outergrief">
|
|
<button type="action" name="act_griefbtn" class="d6 btn grief"></button>
|
|
<div class="grief">
|
|
<input type="radio" id="step-6" value="6" name="attr_grief" class="progressbar__radio">
|
|
<label for="step-6" class="progressbar__label">6</label>
|
|
<input type="radio" id="step-5" value="5" name="attr_grief" class="progressbar__radio">
|
|
<label for="step-5" class="progressbar__label">5</label>
|
|
<input type="radio" id="step-4" value="4" name="attr_grief" class="progressbar__radio">
|
|
<label for="step-4" class="progressbar__label">4</label>
|
|
<input type="radio" id="step-3" value="3" name="attr_grief" class="progressbar__radio">
|
|
<label for="step-3" class="progressbar__label">3</label>
|
|
<input type="radio" id="step-2" value="2" name="attr_grief" class="progressbar__radio">
|
|
<label for="step-2" class="progressbar__label">2</label>
|
|
<input type="radio" id="step-1" value="1" name="attr_grief" class="progressbar__radio">
|
|
<label for="step-1" class="progressbar__label">1</label>
|
|
<input type="radio" id="step-0" value="0" name="attr_grief" class="progressbar__radio" checked>
|
|
<label for="step-0" class="progressbar__label">0</label>
|
|
</div>
|
|
</div>
|
|
|
|
<fieldset class="repeating_relationship">
|
|
|
|
<label class="inline rellabel">With</label>
|
|
<input class="inline relinput" type="text" name="attr_relationship_target" value="Operative Name">
|
|
|
|
<label class="inline rellabel">Type</label>
|
|
<input type="text" list="relationships" name="attr_relationship_type">
|
|
|
|
<textarea class="adjustable" spellcheck="false" name="attr_relationship_details">Details</textarea>
|
|
</fieldset>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="gear">
|
|
<h3>Gear</h3>
|
|
<h4>Armor</h4>
|
|
<fieldset class="repeating_armor">
|
|
<button type="roll" name="roll_armor" value="&{template:powers} {{title=Armor}} {{name=@{character_name}}} {{description=@{armortext}}} {{powerName=@{armorname}}}"></button>
|
|
|
|
<input class="item" spellcheck="false" type="text" name="attr_armorname" value="Name">
|
|
<textarea class="maxwidth" spellcheck="false" name="attr_armortext">Tags and upgrades</textarea>
|
|
</fieldset>
|
|
|
|
<h4 class="second">Weapons</h4>
|
|
<fieldset class="repeating_weapon">
|
|
<div class="weapon">
|
|
<button type="action" class="btn d6" name="act_rollweapon" value=""></button>
|
|
<input class="weapon" spellcheck="false" type="text" name="attr_weaponname" value="Name">
|
|
<label class="harmlabel">Harm</label>
|
|
<input class="harmcounter" type="number" name="attr_harm" value="1">
|
|
<span class="melee flexspan">
|
|
<label class="narrow">Ammo?</label>
|
|
<input type="checkbox" value="true" checked name="attr_hasammo"></input>
|
|
</span>
|
|
<input class="hasammo" type="hidden" value="true" name="attr_hasammo"></input>
|
|
<span class="ammo">
|
|
<label>Ammo:</label>
|
|
<input type="number" value="1" name="attr_ammo"></input>
|
|
<p class="slash">/</p>
|
|
<input type="number"value="1" name="attr_max_ammo"></input>
|
|
<button type="action" class="btn" name="act_reload">Reload</button>
|
|
</span>
|
|
<span class="hidden rangetext" name="attr_rangetext" value=""></span>
|
|
<span class="range flexspan">
|
|
<label class="narrow">Range:</label>
|
|
<label class="small narrow">Close:</label>
|
|
<input type="checkbox" value="true" name="attr_closerange"></input>
|
|
<label class="small narrow">Near:</label>
|
|
<input type="checkbox" value="true" name="attr_nearrange"></input>
|
|
<label class="small narrow">Far:</label>
|
|
<input type="checkbox" value="true" name="attr_farrange"></input>
|
|
</span>
|
|
|
|
<textarea class="maxwidth" spellcheck="false" name="attr_weapontext">Tags and upgrades</textarea>
|
|
</div>
|
|
</fieldset>
|
|
|
|
</section>
|
|
|
|
<section class="items">
|
|
<h3>Items</h3>
|
|
<fieldset class="repeating_item">
|
|
|
|
<!-- Hidden prop so it apepars first -->
|
|
<input class="hidden sheer-disabler" type="checkbox" name="attr_used">
|
|
|
|
<button disabled="true" class="disab inline" type="roll" name="roll_item" value=""></button>
|
|
|
|
<button type="roll" name="roll_item" value="&{template:powers} {{title=Item}} {{name=@{character_name}}} {{description=@{itemtext}}} {{powerName=@{itemname}}}"></button>
|
|
|
|
<input class="item" spellcheck="false" type="text" name="attr_itemname" value="Name">
|
|
<label class="inline">Used?</label>
|
|
<input type="checkbox" name="attr_used">
|
|
<textarea class="maxwidth" spellcheck="false" name="attr_itemtext">Description</textarea>
|
|
</fieldset>
|
|
|
|
<input class="hidden sheet-briny" name="attr_briny" type="checkbox">
|
|
<div class="briny">
|
|
<h4 class="briny">Drones</h4>
|
|
|
|
<h5>Equipped Protocols</h5>
|
|
<fieldset class="repeating_drone filtered_drones">
|
|
<input class="hidden equipped" type="checkbox" name="attr_equipped">
|
|
|
|
|
|
<!-- Hidden prop so it apepars first -->
|
|
<input class="hidden sheer-disabler" type="checkbox" name="attr_used">
|
|
|
|
<!-- Duplicate buttons for disable on used -->
|
|
<button disabled="true" class="disab inline sheet-d6-dice" type="roll" </button>
|
|
<button type="roll" class="enab inline sheet-d6-dice" name="roll_drone" value="&{template:powers} {{title=Protocol}} {{name=@{character_name}}} {{description=@{dronetext}}} {{powerName=@{dronename}}}"></button>
|
|
|
|
<input class="item" spellcheck="false" type="text" name="attr_dronename" value="Name">
|
|
<label class="inline">Used?</label>
|
|
<input class="sheer-disabler" type="checkbox" name="attr_used">
|
|
<textarea class="maxwidth" spellcheck="false" name="attr_dronetext">Description</textarea>
|
|
</fieldset>
|
|
|
|
<hr class="separator">
|
|
<h5>Known Protocols</h5>
|
|
<fieldset class="repeating_drone">
|
|
<input class="item knownname" spellcheck="false" type="text" name="attr_dronename" value="Name">
|
|
<label class="inline">Equipped?</label>
|
|
<input type="checkbox" name="attr_equipped">
|
|
<textarea class="maxwidth" spellcheck="false" name="attr_dronetext">Description</textarea>
|
|
</fieldset>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="loadout">
|
|
<h3>Loadout</h3>
|
|
<fieldset class="repeating_powers filtered_powers">
|
|
<input class="hidden equipped" type="checkbox" name="attr_equipped">
|
|
<button type="roll" name="roll_power" value="&{template:powers} {{title=Power}} {{name=@{character_name}}} {{description=@{powertext}}} {{cost=@{powercost}}} {{powerName=@{powername}}}"></button>
|
|
<input class="powername" spellcheck="false" type="text" name="attr_powername" value="Name">
|
|
<span class="right">
|
|
<label class="inline">Biotech Cost</label>
|
|
<input class="cost" type="text" name="attr_powercost" value="">
|
|
</span>
|
|
<textarea class="maxwidth" class="powertext" spellcheck="false" name="attr_powertext"></textarea>
|
|
</fieldset>
|
|
</section>
|
|
|
|
<section class="notes">
|
|
<h3>Notes</h3>
|
|
<textarea class="textnotes" name="attr_notes"></textarea>
|
|
</section>
|
|
|
|
</main>
|
|
</div>
|
|
|
|
<!-- End Character Sheet -->
|
|
|
|
<!-- Begin Base Sheet -->
|
|
<input class="hidden sheet-briny" name="attr_briny" type="checkbox">
|
|
<input type="hidden" class="tabstoggle" name="attr_sheetTab" value="charactersheet" />
|
|
<div class="basesheet">
|
|
|
|
<input type="hidden" class="basetabstoggle" name="attr_baseTab" value="mainbase" />
|
|
<div class="tabholder basetabholder">
|
|
<button class="mainbasebtn" type="action" name="act_mainbase" >Main HQ</button>
|
|
<button class="subbasebtn" type="action" name="act_subbase">Submarine</button>
|
|
<button class="hivebasebtn" type="action" name="act_hivebase">Hive</button>
|
|
</div>
|
|
|
|
<div class="mainbase">
|
|
<section class="basehead f-center flexheader borderless">
|
|
<h2 class="pull-left">HQ</h2>
|
|
<div class="stack header-left empty"></div>
|
|
<div class="stack header-left">
|
|
<div class="autoExpand long">
|
|
<input spellcheck="false" class="header-input" name="attr_base_name" type="text">
|
|
<span name="attr_base_name"></span>
|
|
</div>
|
|
<hr class="underline nintety">
|
|
<label>Name Of Base</label>
|
|
</div>
|
|
|
|
<div class="stack header-right">
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" name="attr_base_location" type="text">
|
|
<span name="attr_base_location"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Location</label>
|
|
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" name="attr_base_adj1" type="text">
|
|
<span name="attr_base_adj1"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Adjective</label>
|
|
|
|
<div class="autoExpand">
|
|
<input spellcheck="false" class="header-input" name="attr_base_adj2" type="text">
|
|
<span name="attr_base_adj2"></span>
|
|
</div>
|
|
<hr class="underline">
|
|
<label>Adjective</label>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="room room1">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom1"></input>
|
|
<label class="basecost"></label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom1"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom1"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext1"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom1"></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room2">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom2"></input>
|
|
<label class="basecost"></label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom2"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom2"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext2"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom2" ></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room3">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom3" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom3"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom3"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext3"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom3" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room4">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom4" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom4"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom4"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext4"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom4" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room5">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom5" checked></input>
|
|
<label class="basecost">2</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom5"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom5"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext5"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom5" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room6">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom6" checked></input>
|
|
<label class="basecost">2</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom6"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom6"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext6"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom6" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room7">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom7" checked></input>
|
|
<label class="basecost">2</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom7"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom7"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext7"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom7" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room8">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom8" checked></input>
|
|
<label class="basecost">2</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom8"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom8"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext8"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom8" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room9">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom9" checked></input>
|
|
<label class="basecost">3</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom9"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom9"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext9"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom9" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room10">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom10" checked></input>
|
|
<label class="basecost">3</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom10"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom10"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext10"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom10" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room11">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom11" checked></input>
|
|
<label class="basecost">3</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom11"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom11"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext11"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom11" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room12">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom12" checked></input>
|
|
<label class="basecost">3</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom12"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom12"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext12"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom12" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room13">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom13" checked></input>
|
|
<label class="basecost">4</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom13"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom13"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext13"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom13" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room14">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom14" checked></input>
|
|
<label class="basecost">4</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom14"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom14"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext14"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom14" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room15">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom15" checked></input>
|
|
<label class="basecost">4</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom15"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom15"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext15"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom15" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="room room16">
|
|
<input type="checkbox" class="hidden baselocked" name="attr_baselockedroom16" checked></input>
|
|
<label class="basecost">4</label>
|
|
<input type="text" list="corebuildings" class="buildinglist corebuildings" name="attr_buildingnameroom16"></input>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_buildingnameroom16"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_roomtext16"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_baselockedroom16" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
<section class="basenotes">
|
|
<h2>Notes</h2>
|
|
<textarea name="attr_basenotes"></textarea>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<div class="subbase">
|
|
|
|
<div class="submarine">
|
|
<div class="subhead header">
|
|
<h2>Submarine</h2>
|
|
|
|
<div class="stack header-left empty"></div>
|
|
<div class="submarine_heading_holder">
|
|
<div class="stack header-left subname">
|
|
<div class="autoExpand long">
|
|
<input spellcheck="false" class="header-input" name="attr_submarine_name" type="text">
|
|
<span name="attr_submarine_name"></span>
|
|
</div>
|
|
<hr class="underline nintety">
|
|
<label>Name Of Submarine</label>
|
|
</div>
|
|
<div class="rightsubmarine">
|
|
<label class="subsource">Acquired from</label>
|
|
<input class="subsource" type="text" list="subsource" name="attr_submarine_source"></input>
|
|
<textarea class="subsource" name="attr_subsourcedetails"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<section class="room subroom subroom1">
|
|
<span class="subinfo">
|
|
<label class="sublabel narrow">Room 1 </label>
|
|
<input type="text" list="subbuildings" class="buildinglist" name="attr_subroom1"></input>
|
|
<label class="narrow pullright">Damaged?</label>
|
|
<input type="checkbox" class="subdamaged" name="attr_subroom1damaged"></input>
|
|
</span>
|
|
<textarea class="roomtext maxwidth" spellcheck="false" name="attr_subroomtext1"></textarea>
|
|
<input type="hidden" class="subdamaged" name="attr_subroom1damaged"></input>
|
|
<label class="damagelabel">DAMAGED</label>
|
|
</section>
|
|
|
|
|
|
<section class="room subroom subroom2">
|
|
<span class="subinfo">
|
|
<label class="sublabel narrow">Room 2 </label>
|
|
<input type="text" list="subbuildings" class="buildinglist" name="attr_subroom2"></input>
|
|
<label class="narrow pullright">Damaged?</label>
|
|
<input type="checkbox" class="subdamaged" name="attr_subroom2damaged"></input>
|
|
</span>
|
|
<textarea class="roomtext maxwidth" spellcheck="false" name="attr_subroomtext2"></textarea>
|
|
<input type="hidden" class="subdamaged" name="attr_subroom2damaged"></input>
|
|
<label class="damagelabel">DAMAGED</label>
|
|
</section>
|
|
|
|
|
|
|
|
<section class="room subroom subroom3">
|
|
<span class="subinfo">
|
|
<label class="sublabel narrow">Room 3 </label>
|
|
<input type="text" list="subbuildings" class="buildinglist" name="attr_subroom3"></input>
|
|
<label class="narrow pullright">Damaged?</label>
|
|
<input type="checkbox" class="subdamaged" name="attr_subroom3damaged"></input>
|
|
</span>
|
|
<textarea class="roomtext maxwidth" spellcheck="false" name="attr_subroomtext3"></textarea>
|
|
<input type="hidden" class="subdamaged" name="attr_subroom3damaged"></input>
|
|
<label class="damagelabel">DAMAGED</label>
|
|
</section>
|
|
|
|
<section class="room subroom subroom4">
|
|
<span class="subinfo">
|
|
<label class="sublabel narrow">Room 4 </label>
|
|
<input type="text" list="subbuildings" class="buildinglist" name="attr_subroom4"></input>
|
|
<label class="narrow pullright">Damaged?</label>
|
|
<input type="checkbox" class="subdamaged" name="attr_subroom4damaged"></input>
|
|
</span>
|
|
<textarea class="roomtext maxwidth" spellcheck="false" name="attr_subroomtext4"></textarea>
|
|
<input type="hidden" class="subdamaged" name="attr_subroom4damaged"></input>
|
|
<label class="damagelabel">DAMAGED</label>
|
|
</section>
|
|
|
|
<section class="room subroom subroom5">
|
|
<span class="subinfo">
|
|
<label class="sublabel narrow">Room 5 </label>
|
|
<input type="text" list="subbuildings" class="buildinglist" name="attr_subroom5"></input>
|
|
<label class="narrow pullright">Damaged?</label>
|
|
<input type="checkbox" class="subdamaged" name="attr_subroom5damaged" ></input>
|
|
</span>
|
|
<textarea class="roomtext maxwidth" spellcheck="false" name="attr_subroomtext5"></textarea>
|
|
<input type="hidden" class="subdamaged" name="attr_subroom5damaged" ></input>
|
|
<label class="damagelabel">DAMAGED</label>
|
|
</section>
|
|
|
|
<section class="room subroom subroom6">
|
|
|
|
<input type="hidden" class="baselocked" checked name="attr_sublockedroom6"></input>
|
|
<span class="subinfo">
|
|
<input type="text" list="subbuildings" class="buildinglist" name="attr_subroom6"></input>
|
|
<label class="narrow pullright">Damaged?</label>
|
|
<input type="checkbox" class="subdamaged" name="attr_subroom6damaged" ></input>
|
|
</span>
|
|
|
|
<input type="hidden" class="baselocked" checked name="attr_sublockedroom6"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_subroomtext6"></textarea>
|
|
<span class="baselocker sub">
|
|
<input type="checkbox" class="baselocked" checked name="attr_sublockedroom6"></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
<input type="hidden" class="subdamaged" name="attr_subroom6damaged" ></input>
|
|
<label class="damagelabel">DAMAGED</label>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<div class="subnotes notes">
|
|
<h3>Notes</h3>
|
|
<textarea class="textnotes" name="attr_notes"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Beehive -->
|
|
<div class="hivebase">
|
|
<span><button class="btn" type="action" name="act_decay">Decay</button></span>
|
|
<ul id="grid" class="clear">
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom1">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="6" class="decay" name="attr_hivedecayroom1"></input>
|
|
<input type="hidden" value="6" class="decay" name="attr_max_hivedecayroom1"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">6</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_1"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom1" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename1"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext1"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom1" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom2">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="5" class="decay" name="attr_hivedecayroom2"></input>
|
|
<input type="hidden" value="5" class="decay" name="attr_max_hivedecayroom2"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">5</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_2"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom2" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename2"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext2"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom2" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom3">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="4" class="decay" name="attr_hivedecayroom3"></input>
|
|
<input type="hidden" value="4" class="decay" name="attr_max_hivedecayroom3"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">4</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_3"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom3" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename3"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext3"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom3" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom4">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="4" class="decay" name="attr_hivedecayroom4"></input>
|
|
<input type="hidden" value="4" class="decay" name="attr_max_hivedecayroom4"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">4</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_4"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom4" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename4"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext4"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom4" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom5">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="3" class="decay" name="attr_hivedecayroom5"></input>
|
|
<input type="hidden" value="3" class="decay" name="attr_max_hivedecayroom5"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">3</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_5"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom5" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename5"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext5"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom5" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom6">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="3" class="decay" name="attr_hivedecayroom6"></input>
|
|
<input type="hidden" value="3" class="decay" name="attr_max_hivedecayroom6"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">3</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_6"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom6" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename6"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext6"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom6" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom7">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="3" class="decay" name="attr_hivedecayroom7"></input>
|
|
<input type="hidden" value="3" class="decay" name="attr_max_hivedecayroom7"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">3</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_7"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom7" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename7"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext7"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom7" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom8">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="2" class="decay" name="attr_hivedecayroom8"></input>
|
|
<input type="hidden" value="2" class="decay" name="attr_max_hivedecayroom8"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">2</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_8"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom8" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename8"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext8"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom8" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom9">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="2" class="decay" name="attr_hivedecayroom9"></input>
|
|
<input type="hidden" value="2" class="decay" name="attr_max_hivedecayroom9"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">2</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_9"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom9" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename9"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext9"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom9" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="hexagon">
|
|
<section class="room hiveroom hiveroom10">
|
|
<span class="decay">
|
|
<label class="decay">Decay</label>
|
|
<input type="number" value="0" max="2" class="decay" name="attr_hivedecayroom10"></input>
|
|
<input type="hidden" value="2" class="decay" name="attr_max_hivedecayroom10"></input>
|
|
<p class="slash" >/</p>
|
|
<p class="maxdecay">2</p>
|
|
<input type="hidden" class="decayed" name="attr_hive_decayed_10"></input>
|
|
<label class="decayed">DECAYED</label>
|
|
</span>
|
|
<input type="checkbox" class="hidden baselocked" name="attr_hivelockedroom10" checked></input>
|
|
<label class="basecost">1</label>
|
|
<input type="text" list="brinybuildings" class="buildinglist brinybuildings" name="attr_hivename10"></input>
|
|
<textarea class="roomtext" spellcheck="false" name="attr_hivetext10"></textarea>
|
|
<span class="baselocker">
|
|
<input type="checkbox" class="baselocked" name="attr_hivelockedroom10" checked></input>
|
|
<label class="inline baselabel">locked</label>
|
|
</span>
|
|
</section>
|
|
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- End Base Sheet -->
|
|
|
|
<!-- Begin Campaign Sheet -->
|
|
<div class="campaignsheet"><input type="hidden" class="tabstoggle" name="attr_sheetTab" value="charactersheet" />
|
|
<div class="campaignzone">
|
|
<div class="header camphead">
|
|
<h2>Campaign Progress</h2>
|
|
</div>
|
|
<section class="friendbar">
|
|
<h2>Friends and Foes</h2>
|
|
<div class="friend">
|
|
<h3>Assistants</h3>
|
|
<fieldset class="repeating_allies">
|
|
<input class="allyname" list="assistants" spellcheck="false" type="text" name="attr_allyname">
|
|
<label class="inline">Dead?</label>
|
|
<input type="checkbox" name="attr_dead">
|
|
<textarea spellcheck="false" name="attr_allytext"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<hr class="separator">
|
|
<div class="foe">
|
|
<h3>Adversaries</h3>
|
|
<fieldset class="repeating_adversaries">
|
|
<input class="allyname" spellcheck="false" type="text" list="adversaries" name="attr_adversaryname" >
|
|
<label class="inline">Dead?</label>
|
|
<input type="checkbox" name="attr_dead">
|
|
<textarea spellcheck="false" name="attr_adversarytext"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class="cutbacks lieutenants">
|
|
<hr class="separate">
|
|
<h2>Corporate Requests</h2>
|
|
<h3>Corporate Mission</h3>
|
|
|
|
<textarea class="allyname corpmiss" spellcheck="false" type="text" name="attr_missionName" ></textarea>
|
|
<button class="btn fieldbutton" type="action" name="act_corpMiss">Complete</button>
|
|
|
|
<h3 class="spacebefore">Corporate Cutbacks</h3>
|
|
<fieldset class="repeating_cutback">
|
|
<span class="counter"></span>
|
|
<input class="allyname" spellcheck="false" type="text" name="attr_cutbackname" >
|
|
<textarea spellcheck="false" name="attr_cutbacktext"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
</section>
|
|
<section class="camprogress">
|
|
<h2 class="enemyheader">Military</h2>
|
|
<div class="prog military">
|
|
<div class="leftprog">
|
|
|
|
<div class="outerthreat">
|
|
<div class="threat">
|
|
<input type="radio" id="milthreat-1" value="Bad" name="attr_milthreat" class="threatbar threat1" checked>
|
|
<label for="milthreat-1" class="threatlabel threat1">1</label>
|
|
<input type="radio" id="milthreat-2" value="Dangerous" name="attr_milthreat" class="threatbar threat2">
|
|
<label for="milthreat-2" class="threatlabel threat2">2</label>
|
|
<input type="radio" id="milthreat-3" value="Deadly" name="attr_milthreat" class="threatbar threat3">
|
|
<label for="milthreat-3" class="threatlabel threat3">3</label>
|
|
<input type="radio" id="milthreat-4" value="We're Screwed" name="attr_milthreat" class="threatbar threat4">
|
|
<label for="milthreat-4" class="threatlabel threat4">4</label>
|
|
</div>
|
|
<h3 class="final">Threat Level</h3>
|
|
<span name="attr_milthreat"></span>
|
|
</div>
|
|
</div>
|
|
<div class="rightprog">
|
|
<div class="threat status">
|
|
<input type="radio" id="milfight-0" value="Defeat 3 more times" name="attr_milfight" class="threatbar" checked>
|
|
<label for="milfight-0" class="threatlabel"></label>
|
|
<input type="radio" id="milfight-1" value="Defeat 2 more times" name="attr_milfight" class="threatbar" checked>
|
|
<label for="milfight-1" class="threatlabel"></label>
|
|
<input type="radio" id="milfight-2" value="Defeat 1 more time" name="attr_milfight" class="threatbar">
|
|
<label for="milfight-2" class="threatlabel"></label>
|
|
<input type="radio" id="milfight-3" value="Unlocked" name="attr_milfight" class="threatbar">
|
|
<label for="milfight-3" class="threatlabel"></label>
|
|
<input type="radio" id="milfight-4" value="Complete" name="attr_milfight" class="threatbar">
|
|
<label for="milfight-4" class="threatlabel"></label>
|
|
</div>
|
|
<h3 class="final">Final Mission</h3>
|
|
<span name="attr_milfight"></span>
|
|
</div>
|
|
</div>
|
|
<hr class="separate">
|
|
|
|
|
|
<!-- Valdivian -->
|
|
<h2 class="enemyheader">Valdivian</h2>
|
|
<div class="prog valdivian">
|
|
<div class="leftprog">
|
|
|
|
<div class="outerthreat">
|
|
<div class="threat">
|
|
<input type="radio" id="valthreat-1" value="Bad" name="attr_valthreat" class="threatbar threat1" checked>
|
|
<label for="valthreat-1" class="threatlabel threat1">1</label>
|
|
<input type="radio" id="valthreat-2" value="Dangerous" name="attr_valthreat" class="threatbar threat2">
|
|
<label for="valthreat-2" class="threatlabel threat2">2</label>
|
|
<input type="radio" id="valthreat-3" value="Deadly" name="attr_valthreat" class="threatbar threat3">
|
|
<label for="valthreat-3" class="threatlabel threat3">3</label>
|
|
<input type="radio" id="valthreat-4" value="We're Screwed" name="attr_valthreat" class="threatbar threat4">
|
|
<label for="valthreat-4" class="threatlabel threat4">4</label>
|
|
</div>
|
|
<h3 class="final">Threat Level</h3>
|
|
<span name="attr_valthreat"></span>
|
|
</div>
|
|
</div>
|
|
<div class="rightprog">
|
|
<div class="threat status">
|
|
<input type="radio" id="valfight-0" value="Defeat 3 more times" name="attr_valfight" class="threatbar" checked>
|
|
<label for="valfight-0" class="threatlabel"></label>
|
|
<input type="radio" id="valfight-1" value="Defeat 2 more times" name="attr_valfight" class="threatbar">
|
|
<label for="valfight-1" class="threatlabel"></label>
|
|
<input type="radio" id="valfight-2" value="Defeat 1 more time" name="attr_valfight" class="threatbar">
|
|
<label for="valfight-2" class="threatlabel"></label>
|
|
<input type="radio" id="valfight-3" value="Unlocked" name="attr_valfight" class="threatbar">
|
|
<label for="valfight-3" class="threatlabel"></label>
|
|
<input type="radio" id="valfight-4" value="Complete" name="attr_valfight" class="threatbar">
|
|
<label for="valfight-4" class="threatlabel"></label>
|
|
</div>
|
|
<div class="notes">
|
|
<h3 class="final">Final Mission</h3>
|
|
<span name="attr_valfight"></span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="victoryholder">
|
|
<h3>Victory Meter</h3>
|
|
<div class="victory">
|
|
<div class="threat status victory">
|
|
<input type="radio" id="valvic-0" value="0" name="attr_valvic" class="threatbar" checked>
|
|
<label for="valvic-0" class="threatlabel threat1">0</label>
|
|
<input type="radio" id="valvic-1" value="1" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-1" class="threatlabel threat1">1</label>
|
|
<input type="radio" id="valvic-2" value="2" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-2" class="threatlabel threat1">2</label>
|
|
<input type="radio" id="valvic-3" value="3" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-3" class="threatlabel threat2">3</label>
|
|
<input type="radio" id="valvic-4" value="4" name="attr_valvic" checked class="threatbar">
|
|
<label for="valvic-4" class="threatlabel threat2">4</label>
|
|
<input type="radio" id="valvic-5" value="5" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-5" class="threatlabel threat3">5</label>
|
|
<input type="radio" id="valvic-6" value="6" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-6" class="threatlabel threat3">6</label>
|
|
<input type="radio" id="valvic-7" value="7" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-7" class="threatlabel threat3">7</label>
|
|
<input type="radio" id="valvic-8" value="8" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-8" class="threatlabel threat4">8</label>
|
|
<input type="radio" id="valvic-9" value="9" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-9" class="threatlabel threat4">9</label>
|
|
<input type="radio" id="valvic-10" value="X" name="attr_valvic" class="threatbar">
|
|
<label for="valvic-10" class="threatlabel threat4">X</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr class="separate">
|
|
|
|
<!-- Interloper -->
|
|
<h2 class="enemyheader">Interloper</h2>
|
|
<div class="prog Interloper">
|
|
<div class="leftprog">
|
|
|
|
<div class="outerthreat">
|
|
<div class="threat">
|
|
<input type="radio" id="intthreat-1" value="Bad" name="attr_intthreat" class="threatbar threat1" checked>
|
|
<label for="intthreat-1" class="threatlabel threat1">1</label>
|
|
<input type="radio" id="intthreat-2" value="Dangerous" name="attr_intthreat" class="threatbar threat2">
|
|
<label for="intthreat-2" class="threatlabel threat2">2</label>
|
|
<input type="radio" id="intthreat-3" value="Deadly" name="attr_intthreat" class="threatbar threat3">
|
|
<label for="intthreat-3" class="threatlabel threat3">3</label>
|
|
<input type="radio" id="intthreat-4" value="We're Screwed" name="attr_intthreat" class="threatbar threat4">
|
|
<label for="intthreat-4" class="threatlabel threat4">4</label>
|
|
</div>
|
|
<h3 class="final">Threat Level</h3>
|
|
<span name="attr_intthreat"></span>
|
|
</div>
|
|
</div>
|
|
<div class="rightprog">
|
|
<div class="threat status">
|
|
<input type="radio" id="intfight-0" value="Defeat 3 more times" name="attr_intfight" class="threatbar" checked>
|
|
<label for="intfight-0" class="threatlabel"></label>
|
|
<input type="radio" id="intfight-1" value="Defeat 2 more times" name="attr_intfight" class="threatbar">
|
|
<label for="intfight-1" class="threatlabel"></label>
|
|
<input type="radio" id="intfight-2" value="Defeat 1 more time" name="attr_intfight" class="threatbar">
|
|
<label for="intfight-2" class="threatlabel"></label>
|
|
<input type="radio" id="intfight-3" value="Unlocked" name="attr_intfight" class="threatbar">
|
|
<label for="intfight-3" class="threatlabel"></label>
|
|
<input type="radio" id="intfight-4" value="Complete" name="attr_intfight" class="threatbar">
|
|
<label for="intfight-4" class="threatlabel"></label>
|
|
</div>
|
|
<div class="notes">
|
|
<h3 class="final">Final Mission</h3>
|
|
<span name="attr_intfight"></span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="victoryholder">
|
|
<h3>Victory Meter</h3>
|
|
<div class="victory">
|
|
<div class="threat status victory">
|
|
<input type="radio" id="intvic-0" value="0" name="attr_intvic" class="threatbar" checked>
|
|
<label for="intvic-0" class="threatlabel threat1">0</label>
|
|
<input type="radio" id="intvic-1" value="1" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-1" class="threatlabel threat1">1</label>
|
|
<input type="radio" id="intvic-2" value="2" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-2" class="threatlabel threat1">2</label>
|
|
<input type="radio" id="intvic-3" value="3" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-3" class="threatlabel threat2">3</label>
|
|
<input type="radio" id="intvic-4" value="4" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-4" class="threatlabel threat2">4</label>
|
|
<input type="radio" id="intvic-5" value="5" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-5" class="threatlabel threat3">5</label>
|
|
<input type="radio" id="intvic-6" value="6" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-6" class="threatlabel threat3">6</label>
|
|
<input type="radio" id="intvic-7" value="7" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-7" class="threatlabel threat3">7</label>
|
|
<input type="radio" id="intvic-8" value="8" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-8" class="threatlabel threat4">8</label>
|
|
<input type="radio" id="intvic-9" value="9" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-9" class="threatlabel threat4">9</label>
|
|
<input type="radio" id="intvic-10" value="X" name="attr_intvic" class="threatbar">
|
|
<label for="intvic-10" class="threatlabel threat4">X</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="lieutenants">
|
|
<hr class="separate">
|
|
|
|
|
|
<!-- Liuetants -->
|
|
<h2 class="enemyheader">Briny Bastards</h2>
|
|
<div class="prog lieutenants lieustats">
|
|
<div class="lieuholder">
|
|
<h3 class="liename first">The Progenitor</h3>
|
|
<div class="centered">
|
|
<input type="checkbox" name="attr_prog_dead">
|
|
<label class="inline">Dead?</label>
|
|
</div>
|
|
<div class="centered">
|
|
<input type="checkbox" name="attr_prog_avail">
|
|
<label class="inline">Auxiliary Mission Available?</label>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="lieuholder">
|
|
<h3 class="liename">The Diver</h3>
|
|
<div class="centered">
|
|
<input type="checkbox" name="attr_dive_dead">
|
|
<label class="inline">Dead?</label>
|
|
</div>
|
|
<div class="centered">
|
|
<input type="checkbox" name="attr_dive_avail">
|
|
<label class="inline">Auxiliary Mission Available?</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="lieuholder">
|
|
<h3 class="liename">The Three</h3>
|
|
<div class="centered">
|
|
<input type="checkbox" name="attr_three_dead">
|
|
<label class="inline">Dead?</label>
|
|
</div>
|
|
<div class="centered">
|
|
<input type="checkbox" name="attr_three_avail">
|
|
<label class="inline">Auxiliary Mission Available?</label>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</section>
|
|
<section class="campnotes">
|
|
<h2>Notes</h2>
|
|
<textarea name="attr_campnotes"></textarea>
|
|
</section>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<!-- End Campaign Sheet -->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Datalists & thing that don't show directly on sheet -->
|
|
|
|
<input type="hidden" name="attr_smash_fail" value="lose 1 HP" />
|
|
<input type="hidden" name="attr_cyber_fail" value="lose 1 Biotech" />
|
|
<input type="hidden" name="attr_sly_fail" value="gain either Painted or Taunted" />
|
|
<input type="hidden" name="attr_roll_formula_smash" value="" />
|
|
<input type="hidden" name="attr_roll_results_cyber" value="" />
|
|
<input type="hidden" name="attr_roll_results_sly" value="" />
|
|
<input type="hidden" name="attr_roll_results_smash" value="" />
|
|
<input type="hidden" name="attr_roll_formula_sly" value="" />
|
|
<input type="hidden" name="attr_roll_formula_cyber" value="" />
|
|
|
|
<datalist id="relationships">
|
|
<option>Confidant</option>
|
|
<option>Crush</option>
|
|
<option>Enemy</option>
|
|
<option>Jeopordized</option>
|
|
<option>Rival</option>
|
|
<option>Strictly Professional</option>
|
|
</datalist>
|
|
|
|
<datalist id="megacorps">
|
|
<option>Goldencalf</option>
|
|
<option>Gargoyle</option>
|
|
<option>Dorsey</option>
|
|
</datalist>
|
|
|
|
<datalist id="subsource">
|
|
<option>Stolen</option>
|
|
<option>Found</option>
|
|
<option>Built</option>
|
|
</datalist>
|
|
|
|
<datalist id="corebuildings">
|
|
<option>Armory</option>
|
|
<option>Auguary</option>
|
|
<option>Clinic</option>
|
|
<option>Debt House</option>
|
|
<option>Detonatorium</option>
|
|
<option>Engineering Lab</option>
|
|
<option>Gambling Den</option>
|
|
<option>Gym</option>
|
|
<option>Intel Center</option>
|
|
<option>Interloper Ops</option>
|
|
<option>Intern Recycler</option>
|
|
<option>Plasma Lounge</option>
|
|
<option>Refinery</option>
|
|
<option>Smith</option>
|
|
<option>Training Grounds</option>
|
|
<option>Trauma Ward</option>
|
|
<option>Valdivian Ops</option>
|
|
</datalist>
|
|
|
|
<datalist id="brinybuildings">
|
|
<option>Artillery Lounge </option>
|
|
<option>Auguary</option>
|
|
<option>Biotech Refinery</option>
|
|
<option>Breakroom</option>
|
|
<option>Clinic</option>
|
|
<option>Debt House</option>
|
|
<option>Detonatorium</option>
|
|
<option>Eminent Domainery</option>
|
|
<option>Engineering Lab</option>
|
|
<option>Gambling Den</option>
|
|
<option>Gym</option>
|
|
<option>Intel Center</option>
|
|
<option>Interloper Ops</option>
|
|
<option>Intern Recycler</option>
|
|
<option>Library</option>
|
|
<option>Observatory</option>
|
|
<option>Pilot School</option>
|
|
<option>Plasma Lounge</option>
|
|
<option>Reeducation Chamber</option>
|
|
<option>Refinery</option>
|
|
<option>Repurposed Storage Facility</option>
|
|
<option>Research Cells</option>
|
|
<option>Sacrifice Booth</option>
|
|
<option>Sentinel System</option>
|
|
<option>Smith</option>
|
|
<option>Training Grounds</option>
|
|
<option>Trauma Ward</option>
|
|
<option>Trophy Room</option>
|
|
<option>Valdivian Ops</option>
|
|
<option>Workbench</option>
|
|
</datalist>
|
|
|
|
<datalist id="assistants">
|
|
<option>Trisha Young</option>
|
|
<option>Max Croissant</option>
|
|
<option>Tristan Rosario</option>
|
|
<option>Gaetan Hudson</option>
|
|
<option>Felipe Rosebaur</option>
|
|
<option>Moritz Baranova</option>
|
|
<option>Stella the Solicitous</option>
|
|
<option>Ella Mile</option>
|
|
<option>Kirby</option>
|
|
</datalist>
|
|
|
|
<datalist id="adversaries">
|
|
<option>Juliette Brochard</option>
|
|
<option>Montserrat Dean</option>
|
|
<option>Alfred The Corrupt</option>
|
|
<option>Mr. Hands</option>
|
|
<option>Handsome Milton Smith</option>
|
|
<option>Leonie Cervanes</option>
|
|
<option>Richard Trochowfski</option>
|
|
<option>Jeff St. Clair</option>
|
|
<option>Terrat Essej</option>
|
|
</datalist>
|
|
|
|
<!-- roll templates -->
|
|
|
|
<rolltemplate class="sheet-rolltemplate-rolls">
|
|
<div class="sheet-container">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#name}}<div class="sheet-name">{{name}}</div>{{/name}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title name subtitle desc}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title name subtitle desc}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
|
|
<rolltemplate class="sheet-rolltemplate-powers">
|
|
|
|
{{#title}}
|
|
<div class="sheet-title">
|
|
{{title}}
|
|
</div>
|
|
{{/title}}
|
|
|
|
{{#name}}
|
|
<div class="sheet-name">
|
|
{{name}}
|
|
</div>
|
|
{{/name}}
|
|
|
|
{{#powerName}}
|
|
<div class="sheet-powername">
|
|
{{powerName}}
|
|
</div>
|
|
{{/powerName}}
|
|
|
|
{{#description}}
|
|
<div class="sheet-description">
|
|
{{description}}
|
|
</div>
|
|
{{/description}}
|
|
|
|
{{#cost}}
|
|
<div class="sheet-cost">
|
|
Biotech Cost: {{cost}}
|
|
</div>
|
|
{{/cost}}
|
|
|
|
</rolltemplate>
|
|
|
|
|
|
<rolltemplate class="sheet-rolltemplate-weapon">
|
|
|
|
{{#title}}
|
|
<div class="sheet-title">
|
|
{{title}}
|
|
</div>
|
|
{{/title}}
|
|
|
|
{{#name}}
|
|
<div class="sheet-name">
|
|
{{name}}
|
|
</div>
|
|
{{/name}}
|
|
|
|
{{#weaponname}}
|
|
<div class="sheet-weaponname">
|
|
{{weaponname}}
|
|
</div>
|
|
{{/weaponname}}
|
|
|
|
{{#description}}
|
|
<div class="sheet-description">
|
|
{{description}}
|
|
</div>
|
|
{{/description}}
|
|
|
|
{{#harm}}
|
|
<div class="sheet-harm">
|
|
{{harm}} Harm
|
|
</div>
|
|
{{/harm}}
|
|
{{#ammo}}
|
|
<div class="sheet-ammo">
|
|
{{#lowAmmo}}
|
|
After making this attack, {{weaponname}} has <span class="red">{{ammo}}</span> ammo remaining.
|
|
{{/lowAmmo}}
|
|
|
|
{{^lowAmmo}}
|
|
After making this attack, {{weaponname}} has {{ammo}} ammo remaining.
|
|
{{/lowAmmo}}
|
|
|
|
</div>
|
|
{{/ammo}}
|
|
{{#range}}
|
|
<div class="sheet-range">
|
|
{{range}}
|
|
</div>
|
|
{{/range}}
|
|
|
|
</rolltemplate>
|
|
|
|
|
|
|
|
<rolltemplate class="sheet-rolltemplate-grief">
|
|
<div class="title">
|
|
<span>Grief</span>
|
|
</div>
|
|
<div class="name">{{name}}</div>
|
|
{{#roll}}<div class="roll">
|
|
<div class="main-roll">{{roll}}</div>
|
|
</div>{{/roll}}
|
|
<div class="result">
|
|
{{#rollLess() roll 2}}
|
|
<span class="grieflength">You will be grieving the loss of your relationship for the next {{roll}} mission.</span>
|
|
{{/rollLess() roll 2}}
|
|
{{#rollGreater() roll 1}}
|
|
<span class="grieflength">You will be grieving the loss of your relationship for the next {{roll}} missions.</span>
|
|
{{/rollGreater() roll 1}}
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
|
|
<rolltemplate class="sheet-rolltemplate-attributeroll">
|
|
<div class="title">
|
|
{{#smash}}
|
|
<span class="smashtitle">{{title}}</span>
|
|
{{/smash}}
|
|
{{#sly}}
|
|
<span class="slytitle">{{title}}</span>
|
|
{{/sly}}
|
|
{{#cyber}}
|
|
<span class="cybertitle">{{title}}</span>
|
|
{{/cyber}}
|
|
</div>
|
|
<div class="name">{{name}}</div>
|
|
{{#roll}}<div class="roll">
|
|
<div class="main-roll">{{roll}}</div>
|
|
<div class="results-roll">{{results}}</div>
|
|
</div>{{/roll}}
|
|
<div class="result">
|
|
{{#rollBetween() roll 1 2}}
|
|
<span class="reprecussion">{{success_at_cost}}</span>
|
|
{{/rollBetween() roll 1 2}}
|
|
{{#rollBetween() roll 3 4}}
|
|
<span class="reprecussion">You succeed, but {{success_at_cost}}</span>
|
|
{{/rollBetween() roll 3 4}}
|
|
{{#rollBetween() roll 5 6}}
|
|
<span class="success">Sucess!</span>
|
|
{{/rollBetween() roll 5 6}}
|
|
</div>
|
|
{{#details}}<div class="details">{{details}}</div>{{/details}}
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Scripts -->
|
|
|
|
<script type="text/worker">
|
|
|
|
const submarineOrigins = {
|
|
Found: `Subsystems can be used one additional time per mission and Operatives restore up to 1 HP, 1 Biotech, 1 Shard, and 1 Soak after each mission.`,
|
|
Stolen: `Start ALL missions with 5 Awareness, but can allocate one hit each mission to the submarine for free`,
|
|
Built: `Unlock the sixth room, but when it's damaged, roll again to damage a second room.`
|
|
}
|
|
|
|
|
|
const Rooms = {
|
|
Armory: "Armory",
|
|
Auguary: "Auguary",
|
|
Clinic: "Clinic",
|
|
Debt_House: "Debt House",
|
|
Detonatorium: "Detonatorium",
|
|
Engineering_Lab: "Engineering Lab",
|
|
Gambling_Den: "Gambling Den",
|
|
Gym: "Gym",
|
|
Intel_Center: "Intel Center",
|
|
Interloper_Ops: "Interloper Ops",
|
|
Intern_Recycler: "Intern Recycler",
|
|
Plasma_Lounge: "Plasma Lounge",
|
|
Refinery: "Refinery",
|
|
Smith: "Smith",
|
|
Training_Grounds: "Training Grounds",
|
|
Trauma_Ward: "Trauma Ward",
|
|
Valdivian_Ops: "Valdivian Ops",
|
|
Artillery_Lounge: 'Artillery Lounge',
|
|
Biotech_Refinery: 'Biotech Refinery',
|
|
Breakroom: 'Breakroom',
|
|
Eminent_Domainery: 'Eminent Domainery',
|
|
Library: 'Library',
|
|
Observatory: 'Observatory',
|
|
Pilot_School: 'Pilot School',
|
|
Reeducation_Chamber: 'Reeducation Chamber',
|
|
Repurposed_Storage_Facility: 'Repurposed Storage Facility',
|
|
Research_Cells: 'Research Cells',
|
|
Sacrifice_Booth: 'Sacrifice Booth',
|
|
Sentinel_System: 'Sentinel System',
|
|
Trophy_Room: 'Trophy Room',
|
|
Workbench: 'Workbench'
|
|
}
|
|
|
|
const Relationships = {
|
|
Confidant: 'Confidant',
|
|
Crush: 'Crush',
|
|
Enemy: 'Enemy',
|
|
Jeopordized: 'Jeopordized',
|
|
Rival: 'Rival',
|
|
Strictly_Professional: 'Strictly Professional',
|
|
Other: 'Other'
|
|
}
|
|
|
|
const Assistants = {
|
|
Trisha_Young: "Trisha Young",
|
|
Max_Croissant: "Max Croissant",
|
|
Tristan_Rosario: "Tristan Rosario",
|
|
Gaetan_Hudson: "Gaetan Hudson",
|
|
Felipe_Rosebaur: "Felipe Rosebaur",
|
|
Moritz_Baranova: "Moritz Baranova",
|
|
Stella_the_Solicitous: "Stella the Solicitous",
|
|
Ella_Mile: "Ella Mile",
|
|
Kirby: "Kirby"
|
|
}
|
|
|
|
|
|
const Adversaries = {
|
|
Juliette_Brochard: "Juliette Brochard",
|
|
Montserrat_Dean: "Montserrat Dean",
|
|
Alfred_The_Corrupt: "Alfred The Corrupt",
|
|
Mr_Hands: "Mr. Hands",
|
|
Handsome_Milton_Smith: "Handsome Milton Smith",
|
|
Leonie_Cervanes: "Leonie Cervanes",
|
|
Richard_Trochowfski: "Richard Trochowfski",
|
|
Jeff_St_Clair: "Jeff St. Clair",
|
|
Terrat_Essej: "Terrat Essej"
|
|
}
|
|
|
|
<!-- Functions -->
|
|
function getRelationshipDetails(relationship, name) {
|
|
switch(relationship) {
|
|
case Relationships.Confidant:
|
|
return `Once per mission, ${name} can choose to offer support by restoring your HP or Biotech at the expense of their own supply, spending one for one. If you die, ${name} can keep your stuff.`
|
|
|
|
case Relationships.Crush:
|
|
return `When ${name} is targeted with an attack, you can throw yourself in the way: move next to ${name} and take the attack for them, ignoring all Soak and Barrier.\r\n\r\nAfter a mission where you did this, you may choose to confess your feelings. If you do, on every mission where ${name} is present, you have the Perpetual Painted tag and ${name} has the Perpetual Favored tag.`
|
|
|
|
case Relationships.Enemy:
|
|
return `Every time you take an Enemy relationship, gain one stack of Perpetual Painted. If ${name} dies or you stop being enemies, you do not lose this stack of Perpetual Painted.\r\n\r\nOnce per mission (inlcuding secondary), when you would become Injured, you can declare that ${name} is Injured instead. You still drop to 0 HP.`
|
|
|
|
case Relationships.Jeopordized:
|
|
return `You messed up your professional relationship. This can only be removed by completing a mission together.\r\n\r\nWhen on a mission with ${name}, ALL Operatives subtract 1 from all dice (even drops). You cannot help or be helped by ${name}.`
|
|
|
|
case Relationships.Rival:
|
|
return `If ${name} fails an attack, you can move into range and make a free attack against the target. If you miss, you suffer the original consequences as well.`
|
|
|
|
case Relationships.Strictly_Professional:
|
|
return `Whenever you take the help action to give extra dice to ${name}, you grant three extra dice instead of just one.`
|
|
|
|
case Relationships.Other:
|
|
default:
|
|
return "";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function getRoomDetails(room, isBriny, isHoneycomb) {
|
|
// Defense should show up for the main room only and only in BB expansion. Better would be to refactor to isMainRoom but here we are.
|
|
return getRawRoomDetails(room) + (isBriny ? !isHoneycomb ? `\r\nCurrent Defense: 0` : "" : "");
|
|
}
|
|
|
|
function getRawRoomDetails(room) {
|
|
switch(room) {
|
|
case Rooms.Armory:
|
|
return `Unlocks all of the armor and armor tags for purchase.`;
|
|
case Rooms.Auguary:
|
|
return `Unlocks the Augury powers for purchase by any Operative`;
|
|
|
|
case Rooms.Clinic:
|
|
return `Injured Operatives can be healed by any Operative(s) spending 2 Scrip during downtime. Each time any Operative uses the Clinic, the cost increases by 1 Scrip.\r\nCurrent cost:`;
|
|
|
|
case Rooms.Debt_House:
|
|
return `All Operatives on the primary mission roll an extra d6 for Scrip.`;
|
|
|
|
case Rooms.Detonatorium:
|
|
return `Unlocks the Grenade Launcher Weapon and Grenade item.`;
|
|
|
|
case Rooms.Engineering_Lab:
|
|
return `Unlocks the Arcsword, Plasgun and all of the weapon tags for purchase.`;
|
|
|
|
case Rooms.Gambling_Den:
|
|
return `Operatives on the secondary mission roll 1d6 for Scrip instead of always gaining 2 Scrip.`;
|
|
|
|
case Rooms.Gym:
|
|
return `Operatives can obtain one cost 0 power from any other Career.`;
|
|
|
|
case Rooms.Intel_Center:
|
|
return `Succeeding at Military missions only raises the Interloper Victory Meter by 1.`;
|
|
|
|
case Rooms.Interloper_Ops:
|
|
return `Failing a mission where the Interlopers are the only target only raises their Victory Meter by 2.`;
|
|
|
|
case Rooms.Intern_Recycler:
|
|
return `Unwanted gear can be converted to Gear Parts equal to half the total cost (including tags and upgrades) rounded down.`;
|
|
|
|
case Rooms.Plasma_Lounge:
|
|
return `The Arc and Beam tags can be applied to grenades.`;
|
|
|
|
case Rooms.Refinery:
|
|
return `Requires Smith. Melee weapons can now have multiple instances of the Bleed tag. Each instance after the first costs 2 Scrip.`;
|
|
|
|
case Rooms.Smith:
|
|
return `Melee weapons deal +1 Harm.`;
|
|
|
|
case Rooms.Training_Grounds:
|
|
return `Unlocks the Training Grounds powers for purchase by any Operative.`;
|
|
|
|
case Rooms.Trauma_Ward:
|
|
return `Unlocks the Trauma Ward powers for purchase by any Operative.`;
|
|
|
|
case Rooms.Valdivian_Ops:
|
|
return `Failing a mission where Valdivian is the only target only raises their Victory Meter by 2`;
|
|
|
|
case Rooms.Artillery_Lounge:
|
|
return `Unlocks the Tainted Strike power for purcahse by any Operative`;
|
|
|
|
case Rooms.Biotech_Refinery:
|
|
return `Unlocks the Refine power for purchase by any Operative`;
|
|
|
|
case Rooms.Breakroom:
|
|
return `During the Loadout phase, choose a power granted by a room. An Assistant on a mission can hold that power, allowing all Operatives to use it without taking a spot in their own loadout. If the power has a Scrip cost, at least one Operative must have purchased this power.`;
|
|
|
|
case Rooms.Eminent_Domainery:
|
|
return `Operatives can collectively spend 5 Scrip to evict a retired Adversary or Assistant from their room and build something new in its place`;
|
|
|
|
case Rooms.Library:
|
|
return `When this is built, give all Operatives +1 to an Attribute of their choice. Also, as an action, an Operative may switch two of their attributes. `;
|
|
|
|
case Rooms.Observatory:
|
|
return `Unlocks the Sentry action for use by Operatives during missions`;
|
|
|
|
case Rooms.Pilot_School:
|
|
return `Unlocks new Drone protocols for pruchase and unlocks the Electrical Empathy power for purchase by any Operative.`;
|
|
|
|
case Rooms.Reeducation_Chamber:
|
|
return `Unlocks the Mindwiper item.`;
|
|
|
|
case Rooms.Repurposed_Storage_Facility:
|
|
return `Add two empty spaces to your HQ. You can construct one room in each of these spaces without paying an excavation fee.`;
|
|
|
|
case Rooms.Research_Cells:
|
|
return `Unlocks the Stun Baton. Special: multiple copies of this room can be constructed.`;
|
|
|
|
case Rooms.Sacrifice_Booth:
|
|
return `Unlocks the Sacrifice action for use by Operatives during missions.`;
|
|
|
|
case Rooms.Sentinel_System:
|
|
return `Whener an enemy ticks a pump to damage a room in the HQ, deal 3 Harm to that enemy If this was the final pump to disable a room, kill that enemy.`;
|
|
|
|
case Rooms.Trophy_Room:
|
|
return `When a character retires, they can add a piece of gear here. This can be recommissioned once for half of its initial cost.\r\n\r\nAdditionally, any Operative can spend their Downtime activity admiring a trophy and reminiscing about previous Operatives. Any Operative who does this gets +1 die when taking any action that reminds them of the Operative on their next mission.`;
|
|
|
|
case Rooms.Workbench:
|
|
return `All Items have their cost reduced by 1 Gear Part (min 1).`;
|
|
|
|
default:
|
|
return "";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function getAdversaryInfo(adversary) {
|
|
switch(adversary) {
|
|
case Adversaries.Juliette_Brochard:
|
|
return `Using a power costs 1 action`;
|
|
|
|
|
|
case Adversaries.Montserrat_Dean:
|
|
return `All Operatives are Painted. If Montserrat is killed, all Operatives are Screwed that mission.`;
|
|
|
|
|
|
case Adversaries.Alfred_The_Corrupt:
|
|
return `Operatives cannot reload`;
|
|
|
|
|
|
case Adversaries.Mr_Hands:
|
|
return `Enemies can attack from one range band further.`;
|
|
|
|
|
|
case Adversaries.Handsome_Milton_Smith:
|
|
return `Robots deal +1 Harm`;
|
|
|
|
|
|
case Adversaries.Leonie_Cervanes:
|
|
return `Biotech costs are increased by 1.`;
|
|
|
|
|
|
case Adversaries.Richard_Trochowfski:
|
|
return "Enemies don't drop loot";
|
|
|
|
case Adversaries.Jeff_St_Clair:
|
|
return `Enemies gain +1 Shard`;
|
|
|
|
|
|
case Adversaries.Terrat_Essej:
|
|
return `Enemy attacks ignore Soak`;
|
|
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function getAssistantInfo(assistant) {
|
|
switch(assistant) {
|
|
case Assistants.Trisha_Young:
|
|
return `All Operatives act with +1 Cyber`;
|
|
|
|
|
|
case Assistants.Max_Croissant:
|
|
return `Action: Gain a grenade.`;
|
|
|
|
|
|
case Assistants.Tristan_Rosario:
|
|
return `+1 to all loot rolls.`;
|
|
|
|
|
|
case Assistants.Gaetan_Hudson:
|
|
return `Action: Apply Screwed to one target.`;
|
|
|
|
|
|
case Assistants.Felipe_Rosebaur:
|
|
return `All Operatives gain +1 soak.`;
|
|
|
|
|
|
case Assistants.Moritz_Baranova:
|
|
return `All attacks gain the Boom tag.`;
|
|
|
|
|
|
case Assistants.Stella_the_Solicitous:
|
|
return `Whenever an Opeartive moves, they can move an additional range band.`;
|
|
|
|
|
|
case Assistants.Ella_Mile:
|
|
return `Action: Your next power costs 0 Biotech`;
|
|
|
|
case Assistants.Kirby:
|
|
return `Action: Move two range bands.`
|
|
|
|
default: return '';
|
|
}
|
|
}
|
|
|
|
|
|
function buildDicePool(numDice) {
|
|
if(numDice == 0) {
|
|
numDice = 2;
|
|
const rolls = [...Array(numDice)].map(() => "[[d6]]").join(", ");
|
|
return `[[{${rolls}}kl1]]`; // Keep LOWEST not highest
|
|
}
|
|
|
|
const rolls = [...Array(numDice)].map(() => "[[d6]]").join(", ");
|
|
return `[[{${rolls}}kh1]]`;
|
|
}
|
|
|
|
function getResults(numDice) {
|
|
if(numDice === 0) {
|
|
numDice = 2;
|
|
}
|
|
return numDice <= 1
|
|
? ""
|
|
: [...Array(numDice)].map((_, i) => `$[[${i}]]`).join(" ");
|
|
}
|
|
|
|
function getRangeText(close, near, far) {
|
|
// Not the cleanest but is the fastest.
|
|
const rangecount = 0 + (close ? 1 : 0) + (near ? 1 : 0) + (far ? 1 : 0);
|
|
|
|
let rangeText = "This weapon operates at ";
|
|
|
|
if(rangecount === 0) { return " "; }
|
|
if(rangecount === 3) { return rangeText + "Close, Near, and Far ranges."; }
|
|
|
|
if(close) {
|
|
rangeText += "Close";
|
|
|
|
if(rangecount === 2) {
|
|
rangeText += " and "
|
|
}
|
|
}
|
|
|
|
if(near) {
|
|
rangeText += "Near";
|
|
|
|
if(far) {
|
|
rangeText += " and "
|
|
}
|
|
}
|
|
|
|
if(far) {
|
|
rangeText += " Far"
|
|
}
|
|
|
|
return rangeText + (rangecount > 1 ? " ranges." : " range.");
|
|
}
|
|
|
|
|
|
/* * * * * * * * * * * * * * *
|
|
* Listeners *
|
|
* * * * * * * * * * * * * * */
|
|
on("change:smash", function(eventInfo) {
|
|
const newVal = parseInt(eventInfo.newValue); // this is the source of like 99% of my problems.
|
|
const roll_formula_smash = buildDicePool(newVal);
|
|
const roll_results_smash = getResults(newVal);
|
|
|
|
setAttrs({
|
|
roll_formula_smash,
|
|
roll_results_smash,
|
|
});
|
|
});
|
|
|
|
on("change:sly", function(eventInfo) {
|
|
const newVal = parseInt(eventInfo.newValue);
|
|
const roll_formula_sly = buildDicePool(newVal);
|
|
const roll_results_sly = getResults(newVal);
|
|
|
|
setAttrs({
|
|
roll_formula_sly,
|
|
roll_results_sly,
|
|
});
|
|
});
|
|
|
|
on("change:cyber", function(eventInfo) {
|
|
const newVal = parseInt(eventInfo.newValue);
|
|
const roll_formula_cyber = buildDicePool(newVal);
|
|
const roll_results_cyber = getResults(newVal);
|
|
|
|
setAttrs({
|
|
roll_formula_cyber,
|
|
roll_results_cyber,
|
|
});
|
|
});
|
|
|
|
|
|
on("clicked:corpMiss", function(eventInfo) {
|
|
getSectionIDs("repeating_cutback", function(idarray) {
|
|
for(var i=0; i < idarray.length; i++) {
|
|
removeRepeatingRow("repeating_cutback_" + idarray[i]);
|
|
}
|
|
});
|
|
});
|
|
|
|
on("clicked:repeating_weapon:reload", function(eventInfo) {
|
|
getAttrs([
|
|
"repeating_weapon_max_ammo"
|
|
], function(values) {
|
|
maxAmmo = parseInt(values.repeating_weapon_max_ammo);
|
|
|
|
setAttrs({
|
|
repeating_weapon_ammo: maxAmmo
|
|
});
|
|
});
|
|
});
|
|
|
|
on("clicked:repeating_weapon:rollweapon", function(eventInfo) {
|
|
|
|
getAttrs([
|
|
"repeating_weapon_weaponname",
|
|
"repeating_weapon_rangetext",
|
|
"repeating_weapon_weapontext",
|
|
"repeating_weapon_ammo",
|
|
"repeating_weapon_harm",
|
|
"repeating_weapon_hasammo"
|
|
], function(values) {
|
|
if(!values.repeating_weapon_rangetext) {
|
|
values.repeating_weapon_rangetext = "";
|
|
}
|
|
|
|
const hasAmmo = values.repeating_weapon_hasammo === "true";
|
|
|
|
const lowAmmostr = (hasAmmo && `${values.repeating_weapon_ammo}` < 2) ? "{{lowAmmo=true}}" : "";
|
|
const ammoStr = hasAmmo ? `{{ammo=${values.repeating_weapon_ammo -1}}}` + lowAmmostr : "";
|
|
|
|
|
|
startRoll(`&{template:weapon} {{title=Weapon}} {{name=@{character_name}}} {{description=${values.repeating_weapon_weapontext}}} {{weaponname=${values.repeating_weapon_weaponname}}} {{harm=${values.repeating_weapon_harm}}} {{range=${values.repeating_weapon_rangetext}}} ` + ammoStr, (results) => {
|
|
finishRoll(
|
|
results.rollId,
|
|
{
|
|
}
|
|
);
|
|
});
|
|
|
|
if(hasAmmo)
|
|
{
|
|
setAttrs( {
|
|
repeating_weapon_ammo: values.repeating_weapon_ammo -1
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
on("change:repeating_weapon:closerange change:repeating_weapon:nearrange change:repeating_weapon:farrange", function(eventInfo) {
|
|
getAttrs([
|
|
"repeating_weapon_closerange",
|
|
"repeating_weapon_nearrange",
|
|
"repeating_weapon_farrange"
|
|
], function(values) {
|
|
const close = values.repeating_weapon_closerange === "true";
|
|
const near = values.repeating_weapon_nearrange === "true";
|
|
const far = values.repeating_weapon_farrange === "true";
|
|
const rangeText = getRangeText(close, near, far);
|
|
setAttrs({
|
|
repeating_weapon_rangetext : rangeText,
|
|
});
|
|
});
|
|
});
|
|
|
|
on("clicked:decay", function(eventInfo) {
|
|
getAttrs(["hivedecayroom1", "hivelockedroom1", "max_hivedecayroom1", "hivedecayroom2", "hivelockedroom2", "max_hivedecayroom2", "hivedecayroom3", "hivelockedroom3", "max_hivedecayroom3", "hivedecayroom4", "hivelockedroom4", "max_hivedecayroom4", "hivedecayroom5", "hivelockedroom5", "max_hivedecayroom5", "hivedecayroom6", "hivelockedroom6", "max_hivedecayroom6", "hivedecayroom7", "hivelockedroom7", "max_hivedecayroom7", "hivedecayroom8", "hivelockedroom8", "max_hivedecayroom8", "hivedecayroom9", "hivelockedroom9", "max_hivedecayroom9", "hivedecayroom10", "hivelockedroom10", "max_hivedecayroom10"], (values) => {
|
|
let rows = {};
|
|
const maxrooms = 10;
|
|
for(let i = 1; i <= maxrooms; i++) {
|
|
//If not locked, AND not at max, increase decay by 1
|
|
if(values[`hivelockedroom${i}`] != "on" && parseInt(values[`hivedecayroom${i}`]) < parseInt(values[`max_hivedecayroom${i}`])) {
|
|
rows['hivedecayroom' + i] = parseInt(values[`hivedecayroom${i}`]) + 1;
|
|
}
|
|
}
|
|
if(rows) setAttrs(rows);
|
|
});
|
|
});
|
|
|
|
on("change:submarine_source", function(eventInfo) {
|
|
getAttrs([
|
|
"rsmash"
|
|
], function(values) {
|
|
const details = submarineOrigins[eventInfo.newValue] ? submarineOrigins[eventInfo.newValue] : "";
|
|
setAttrs({
|
|
subsourcedetails: details
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
on("change:repeating_relationship:relationship_type change:repeating_relationship:relationship_target", function(eventInfo) {
|
|
|
|
getAttrs([
|
|
"repeating_relationship_relationship_target",
|
|
"repeating_relationship_relationship_type"
|
|
], function(values) {
|
|
relationship_target = values.repeating_relationship_relationship_target
|
|
relationship_type = values.repeating_relationship_relationship_type
|
|
|
|
const relationship_details = getRelationshipDetails(relationship_type, relationship_target);
|
|
setAttrs({
|
|
repeating_relationship_relationship_details : relationship_details,
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_allies:allyname", function(eventInfo) {
|
|
getAttrs(["repeating_allies_allyname"], function(values) {
|
|
const assistanttext = getAssistantInfo(values.repeating_allies_allyname);
|
|
setAttrs({
|
|
repeating_allies_allytext : assistanttext
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_adversaries:adversaryname", function(eventInfo) {
|
|
getAttrs(["repeating_adversaries_adversaryname"], function(values) {
|
|
const adversaryText = getAdversaryInfo(values.repeating_adversaries_adversaryname);
|
|
setAttrs({
|
|
repeating_adversaries_adversarytext : adversaryText
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_powers:equipped", function(eventInfo) {
|
|
console.log(eventInfo);
|
|
const changeval = eventInfo.newValue === "on" ? 1 : -1;
|
|
|
|
|
|
getAttrs(["powersEquipped"], (values) => {
|
|
setAttrs(
|
|
{
|
|
powersEquipped: values.powersEquipped + changeval
|
|
}
|
|
);
|
|
});
|
|
|
|
|
|
});
|
|
|
|
on("change:buildingnameroom1 change:buildingnameroom2 change:buildingnameroom3 change:buildingnameroom4 change:buildingnameroom5 change:buildingnameroom6 change:buildingnameroom7 change:buildingnameroom8 change:buildingnameroom9 change:buildingnameroom10 change:buildingnameroom11 change:buildingnameroom12 change:buildingnameroom13 change:buildingnameroom14 change:buildingnameroom15 change:buildingnameroom16 ", function(eventInfo){
|
|
const roomNumber = eventInfo.sourceAttribute.match(/\d+/).shift(); // regex to grab the number from a string. Relies on naming scheme.
|
|
const room = eventInfo.newValue;
|
|
const roomKey = "roomtext" + roomNumber; // Relying on attribute naming scheme.
|
|
|
|
getAttrs(["briny"], (values) => {
|
|
const isBriny = values.briny == "on";
|
|
const details = getRoomDetails(room, isBriny);
|
|
setAttrs(
|
|
{
|
|
[`${roomKey}`]: details
|
|
}
|
|
);
|
|
});
|
|
});
|
|
|
|
<!-- Hive room change -->
|
|
on("change:hivename1 change:hivename2 change:hivename3 change:hivename4 change:hivename5 change:hivename6 change:hivename7 change:hivename8 change:hivename9 change:hivename10", function(eventInfo){
|
|
const roomNumber = eventInfo.sourceAttribute.match(/\d+/).shift(); // regex to grab the number from a string. Relies on naming scheme.
|
|
const room = eventInfo.newValue;
|
|
const roomKey = "hivetext" + roomNumber; // Relying on attribute naming scheme.
|
|
const details = getRoomDetails(room, true, true);
|
|
|
|
setAttrs(
|
|
{
|
|
[`${roomKey}`]: details
|
|
}
|
|
);
|
|
});
|
|
|
|
|
|
|
|
on("change:hivedecayroom1 change:hivedecayroom2 change:hivedecayroom3 change:hivedecayroom4 change:hivedecayroom5 change:hivedecayroom6 change:hivedecayroom7 change:hivedecayroom8 change:hivedecayroom9 change:hivedecayroom10", function(eventInfo) {
|
|
getAttrs(["hivedecayroom1", "max_hivedecayroom1", "hivedecayroom2", "max_hivedecayroom2", "hivedecayroom3", "max_hivedecayroom3", "hivedecayroom4", "max_hivedecayroom4", "hivedecayroom5", "max_hivedecayroom5", "hivedecayroom6", "max_hivedecayroom6", "hivedecayroom7", "max_hivedecayroom7", "hivedecayroom8", "max_hivedecayroom8", "hivedecayroom9", "max_hivedecayroom9", "hivedecayroom10", "max_hivedecayroom10"], (values) => {
|
|
let rows = {};
|
|
const maxrooms = 10;
|
|
for(let i = 1; i <= maxrooms; i++) {
|
|
// We're at max decay! Set our max variable to true!
|
|
rows['hive_decayed_' + i] = (values[`hivedecayroom${i}`] == values[`max_hivedecayroom${i}`]) ? "on" : "off";
|
|
}
|
|
if(rows) setAttrs(rows);
|
|
|
|
});
|
|
});
|
|
|
|
on("sheet:opened", () => {
|
|
// Initialize our default values. Not necessary if we used translation.
|
|
getAttrs(["smash_fail", "cyber_fail", "sly_fail", "smash", "sly", "cyber", "sublockedroom6"], (values) => {
|
|
const sm = values.smash_fail;
|
|
const cy = values.cyber_fail;
|
|
const sl = values.sly_fail
|
|
const sublockedroom6 = values.sublockedroom6; // I deeply resent that this is necessary. CSS doesn't initialize correctly without explicitly "changing" it here.
|
|
|
|
const roll_formula_smash = buildDicePool(parseInt(values.smash));
|
|
const roll_results_smash = getResults(parseInt(values.smash));
|
|
|
|
const roll_formula_cyber = buildDicePool(parseInt(values.cyber));
|
|
const roll_results_cyber = getResults(parseInt(values.cyber));
|
|
|
|
const roll_formula_sly = buildDicePool(parseInt(values.sly));
|
|
const roll_results_sly = getResults(parseInt(values.sly));
|
|
|
|
setAttrs({
|
|
"smash_fail" : sm,
|
|
"cyber_fail" : cy,
|
|
"sly_fail" : sl,
|
|
roll_formula_smash,
|
|
roll_formula_cyber,
|
|
roll_formula_sly,
|
|
roll_results_sly,
|
|
roll_results_cyber,
|
|
roll_results_smash,
|
|
sublockedroom6
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Reset after each mission
|
|
on("clicked:reset", function() {
|
|
getAttrs(["hp_max", "resetpowers", "biotech_max", "barrier_max", "soak_max", "shard_max"], (values) => {
|
|
// Set HP to max HP
|
|
// Set Biotech to max Biotech
|
|
const hp = values.hp_max;
|
|
const bt = values.biotech_max;
|
|
const sk = values.soak_max;
|
|
const sd = values.shard_max;
|
|
const bm = values.barrier_max;
|
|
setAttrs({
|
|
"hp" : hp,
|
|
"biotech" : bt,
|
|
"barrier" : bm,
|
|
"soak": sk,
|
|
"shard": sd
|
|
});
|
|
|
|
|
|
|
|
// Unuse all drones
|
|
getSectionIDs("repeating_drone", idarray => {
|
|
let rows = {};
|
|
for (let i = 0; i < idarray.length; i++) {
|
|
rows['repeating_drone_' + idarray[i] + '_used'] = 0;
|
|
}
|
|
if(rows) setAttrs(rows);
|
|
});
|
|
|
|
// Unuse all items
|
|
getSectionIDs("repeating_item", idarray => {
|
|
let rows = {};
|
|
for (let i = 0; i < idarray.length; i++) {
|
|
rows['repeating_item_' + idarray[i] + '_used'] = 0;
|
|
}
|
|
if(rows) setAttrs(rows);
|
|
});
|
|
|
|
const shouldResetPowers = values.resetpowers == 'true';
|
|
if(shouldResetPowers) {
|
|
|
|
getSectionIDs("repeating_powers", idarray => {
|
|
let rows = {};
|
|
for (let i = 0; i < idarray.length; i++) {
|
|
rows['repeating_powers_' + idarray[i] + '_equipped'] = 0;
|
|
}
|
|
if(rows) setAttrs(rows);
|
|
});
|
|
}
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
on("clicked:griefbtn", function() {
|
|
startRoll("&{template:grief} {{name=@{character_name}}} {{roll=[[1d6cf>6cs<1]]}}", (results) => {
|
|
const total = results.results.roll.result
|
|
|
|
finishRoll(
|
|
results.rollId,
|
|
{
|
|
roll1: total
|
|
}
|
|
);
|
|
setAttrs( {
|
|
"grief": total
|
|
});
|
|
});
|
|
});
|
|
|
|
<!-- Tab Switching -->
|
|
on("change:sheet_type", function(eventInfo) {
|
|
setAttrs({
|
|
sheetTab: eventInfo.newValue
|
|
});
|
|
});
|
|
|
|
|
|
const buttonlist = ["charactersheet","basesheet","campaignsheet"];
|
|
buttonlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
sheetTab: button
|
|
});
|
|
});
|
|
})
|
|
|
|
const basebuttonlist = ["mainbase", "subbase", "hivebase"];
|
|
basebuttonlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
baseTab: button
|
|
});
|
|
});
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
|