mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-04 14:12:28 +00:00
Changed Layout Fixed Module Bugs Fixed Labels/Spelling Made Adjustable and trackable TTT/Vitality changes Added Turn to Turn Guard Guage button
4256 lines
181 KiB
HTML
4256 lines
181 KiB
HTML
<div>
|
|
<button type="action" name="act_character" >Character</button>
|
|
<button type="action" name="act_equipment" >Equipment</button>
|
|
<button type="action" name="act_styles" >Styles</button>
|
|
<button type="action" name="act_spells" >Spells</button>
|
|
<button type="action" name="act_passives" >Passives</button>
|
|
<button type="action" name="act_energytechniques" >Energy tech</button>
|
|
<button type="action" name="act_meleetechniques" >Melee tech</button>
|
|
<button type="action" name="act_inventory" >Inventory</button>
|
|
<button type="action" name="act_training" >Training</button>
|
|
<!-- <button type="action" name="act_memories" >Mind</button>-->
|
|
<!-- <button type="action" name="act_minions" >Minions</button>-->
|
|
</div>
|
|
|
|
<input type='hidden' class='sheet-tabstoggle' name='attr_sheetTab' value='character' />
|
|
|
|
<div class='sheet-character'>
|
|
<br>
|
|
<b>Level: </b>
|
|
<input name="attr_Char_Level" value="@{attr_Char_Level}" max=100 min=0 />
|
|
<button type="action" name="act_AddLevel" >Add</button> <!-- disabled = "true"-->
|
|
<button type="action" name="act_Add10Level" >Add 10</button>
|
|
<button type="action" name="act_ResetLevel" >Reset</button>
|
|
<b>Race: </b>
|
|
<div class="races">
|
|
<input type="hidden" class="race" name="attr_Char_Race" value="" />
|
|
<span name="attr_Char_Race"></span><br>
|
|
<button type="action" name="act_Race_Ciaha" class="race race-1">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Race_Magian" class="race race-2">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Race_Adept" class="race race-3">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Race_Arbiter" class="race race-4">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Race_Necrian" class="race race-5">
|
|
<span class="checked"></span>
|
|
</button>
|
|
</div>
|
|
<div class='2colrow'>
|
|
<div class='col'>
|
|
<b>Skill Points: </b>
|
|
<input name="attr_skill_points" value="@{attr_skill_points}" title="Remaining Spendable Skill Points" readonly="readonly" />
|
|
<button type='action' name='act_add_skill_points' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_skill_points' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
<br>
|
|
<b>Spell Points: </b>
|
|
<input name="attr_spell_points" value="@{attr_spell_points}" title="Remaining Spendable Spell Points" readonly="readonly" />
|
|
<button type='action' name='act_add_spell_points' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_spell_points' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<div class='col'>
|
|
<b>Extra Skill Points: </b>
|
|
<input name="attr_Exskill_points" value="@{attr_Exskill_points}" title="Total Accumlated Extra Skill Points" readonly="readonly" />
|
|
<button type='action' name='act_add_Exskill_points' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_Exskill_points' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
<br>
|
|
<b>Extra Spell Points: </b>
|
|
<input name="attr_Exspell_points" value="@{attr_Exspell_points}" title="Total Accumlated Extra Spell Points" readonly="readonly" />
|
|
<button type='action' name='act_add_Exspell_points' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_Exspell_points' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<b>Age</b>
|
|
<input type="number" name="attr_Age" value="@{attr_Age}" title="Character Age" style='width: 50px;' max=500 min=0 />
|
|
<b>Manna Training</b>
|
|
<input type="number" name="attr_Char_Manna_Training" value=0 style='width: 50px;' max=100 min=0/>
|
|
<b>Difficulty</b>
|
|
<input name="attr_Difficulty" value="@{attr_Difficulty}" title="Character Difficulty" readonly="readonly" />
|
|
</div>
|
|
<br>
|
|
<div class='2colrow'>
|
|
<div class='col'>
|
|
<label>Stats</label>
|
|
<b>Constitution:</b><input name="attr_char_constitution" value="@{attr_char_constitution}" title="constitution" readonly="readonly" max="10" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_constitution' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_constitution' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Discipline:</b><input name="attr_char_discipline" value="@{attr_char_discipline}" title="discipline" readonly="readonly" max="10" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_discipline' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_discipline' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Resistance:</b><input name="attr_char_resistance" value="@{attr_char_resistance}" title="resistance" readonly="readonly" max="10" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_resistance' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_resistance' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Intelligence:</b><input name="attr_char_intelligence" value="@{attr_char_intelligence}" title="intelligence" readonly="readonly" max="10" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_intelligence' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_intelligence' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<br>
|
|
<label>Skills</label>
|
|
<b>Combat Arts:</b><input name="attr_char_combat_arts" value="@{attr_char_combat_arts}" title="Combat Arts" readonly="readonly" max="100" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_combat_arts' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_combat_arts' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Weapon Arts:</b><input name="attr_char_weapon_arts" value="@{attr_char_weapon_arts}" title="Weapon Arts" readonly="readonly" max="100" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_weapon_arts' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_weapon_arts' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Magi-Tech:</b><input name="attr_char_magitech" value="@{attr_char_magitech}" title="Mage tech" readonly="readonly" max="100" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_magitech' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_magitech' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Tech:</b><input name="attr_char_tech" value="@{attr_char_tech}" title="tech" readonly="readonly" max="100" min="0" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_tech' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_tech' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
</div>
|
|
<div class='col'>
|
|
<input class='sheet-halfbreed' type='hidden' name='attr_halfbreed' value='0' >
|
|
<input class='sheet-deathcovenant' type='hidden' name='attr_deathcovenant' value='0' >
|
|
<label>Catalyst Proficiency</label>
|
|
<b>Mental Energy:</b><input name="attr_catalyst_mental" value="@{catalyst_mental}*@{powerstate}" title="Mental Energy" readonly="readonly" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_catalyst_mental' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_catalyst_mental' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Body Energy:</b><input name="attr_catalyst_body" value="@{catalyst_body}*@{powerstate}" title="Body Energy" readonly="readonly" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_catalyst_body' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_catalyst_body' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Spirit Energy:</b><input name="attr_catalyst_spirit" value="@{catalyst_spirit}*@{powerstate}" title="Spirit Energy" readonly="readonly" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_catalyst_spirit' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_catalyst_spirit' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<b>Memory Energy:</b><input name="attr_catalyst_memory" value="@{catalyst_memory}*@{powerstate})" title="Memory Energy" readonly="readonly" />
|
|
<div style='display: inline'>
|
|
<button type='action' name='act_add_catalyst_memory' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_catalyst_memory' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<div class='sheet-demon' >
|
|
<b>Demon Energy:</b><input name="attr_catalyst_demon" value="@{catalyst_demon}*@{powerstate}" title="Demon Energy" readonly="readonly" />
|
|
<button type='action' name='act_add_catalyst_demon' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_catalyst_demon' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<div class='sheet-necro' >
|
|
<b>Necro-Force:</b><input name="attr_catalyst_necro" value="@{catalyst_necro}*@{powerstate}" title="necro Force" readonly="readonly" />
|
|
<button type='action' name='act_add_catalyst_necro' style="padding: 0; font-family: 'Pictos'">{</button>
|
|
<button type='action' name='act_minus_catalyst_necro' style="padding: 0; font-family: 'Pictos'">}</button>
|
|
</div>
|
|
<br>
|
|
<br>
|
|
<label>Covenants</label>
|
|
<b>Restrictive:</b>
|
|
<select name='attr_restrict' value='None' style='display: inline-block; padding: 5'>
|
|
<option value=''>None</option>
|
|
<option value='Elemental'>Elemental</option>
|
|
<option value='Order'>Order</option>
|
|
<option value='Chaos'>Chaos</option>
|
|
<option value='Judgement'>Judgement</option>
|
|
</select>
|
|
<br>
|
|
<b>Non-Restrictive:</b>
|
|
<input type='checkbox' name='attr_deathcovenant' ><span>Death</span>
|
|
<input type='checkbox' name='' value='Hell'><span>Hell</span>
|
|
<input type='checkbox' name='' value='Void'><span>Void</span>
|
|
<input type='checkbox' name='' value='Primordial'><span>Primordial</span>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<label style='text-align: center'>VITALITY & STATUS</label>
|
|
<span>Life-Force:</span><input type="number" name="attr_Char_Life_Force" value="@{attr_Char_Life_Force}" title="Life-Force" />
|
|
<span>Spirit:</span><input type="number" name="attr_Char_Spirit_Force" value="200" title="Spirit" style='width: 50px;' max=500 min=0 />
|
|
<span>Soul:</span><input type="number" name="attr_Char_Soul_Force" value="300" title="Soul" style='width: 50px;' max=1000 min=0 />
|
|
<span>Manna:</span><input type="number" name="attr_Char_Manna" value="@{attr_Char_Manna}" title="Manna" />
|
|
<div class='sheet-demon' style='display: inline-block'>
|
|
<span>Demonic Essence:</span><input type="number" name="attr_Char_Demon" value="@{attr_Char_Demon}" title="Demonic Essence" />
|
|
</div>
|
|
<span>Disruption:</span><input type="number" name="attr_Disruption" value="@{attr_Disruption}" title="Disruption Meter" />
|
|
<span>Pain:</span><input type="number" name="attr_Pain" value="@{attr_Pain}" title="Pain Meter" />
|
|
<input type='hidden' name="attr_Capacity" value="@{attr_Capacity}" title="Mental Capacity" readonly="readonly" />
|
|
<br>
|
|
<span>TTT:</span><input name="attr_Char_TTT" value="@{attr_Char_TTT}" title="Turn-to-Turn Cost (TTT)" readonly="readonly" />
|
|
<br>
|
|
<label>Conditions:
|
|
<input type='radio' name='attr_airborn' value='1'><span>Airborn</span>
|
|
<input type='radio' name='attr_airborn' value='0'><span>Grounded</span>
|
|
<input type='checkbox' name='attr_halfbreed'><span>Half-Demon</span>
|
|
<input type='checkbox' name='attr_defense'><span>Defensive</span>
|
|
<select name='attr_dismembered'>
|
|
<option>None</option>
|
|
<option>Arm</option>
|
|
<option>Leg</option>
|
|
<option>Arm & Leg</option>
|
|
<option>Decapitation</option>
|
|
</select>
|
|
<span>(Dismemberment)</span>
|
|
</label>
|
|
<label style='text-align: center'>C O M B A T</label>
|
|
<div class='sheet-center'>
|
|
<b>Turn Economy:</b><input type=number name='attr_economy' value=100 style='width: 50px;' max=100 min=0>
|
|
</div>
|
|
<div class='sheet-center'>
|
|
<button type=action name='act_gather' style='height: 25px; width: 100px; font-size: 10px'>GATHER</button>
|
|
<button type=action name='act_endTurn' style='height: 35px; width: 200px; font-size: 20px'>END TURN</button>
|
|
<button type=action name='act_vitalize' style='height: 25px; width: 100px; font-size: 10px'>VITALIZE</button>
|
|
</div>
|
|
<br>
|
|
|
|
|
|
<!--*************************************************************************************-->
|
|
<div class='3colrow'>
|
|
<!--************************************** HIDDEN ATTRIBUTES ******************************<span>Mental Cap:</span>-->
|
|
<input type="hidden" name="attr_equipped-weapon" />
|
|
<input type="hidden" name="attr_equipped-weapon-style" />
|
|
<input type="hidden" name="attr_weapon-warning" />
|
|
<input type="hidden" name="attr_armor-warning" />
|
|
|
|
<input type="hidden" value="@{attr_Capacity}//@{attr_catalyst_memory+attr_catalyst_mental}" title="Mental Capacity" readonly="readonly" />
|
|
<!--************************************** HIDDEN ATTRIBUTES ******************************-->
|
|
<div class='col'>
|
|
<label>Weapon Arts</label>
|
|
<br>
|
|
<b>Acc:</b><input name="attr_weapon_acc" value="@{attr_weapon_acc}" title="Total Accuracy" readonly="readonly"/>
|
|
<br>
|
|
<b>Eva:</b><input name="attr_weapon_eva" value="@{attr_weapon_eva}" title="Total Evasion" readonly="readonly"/>
|
|
<br>
|
|
<b>GG:</b><input name="attr_weapon_gg" value="@{attr_weapon_gg}" title="Total Guard Gauge" readonly="readonly"/>
|
|
<br>
|
|
<b>Style:</b><input name="attr_weapon_style" value="@{attr_weapon_style}" title="Current Style" readonly="readonly"/>
|
|
<br>
|
|
<b>Comp:</b><input name="attr_style-types" value="@{attr_style-types}" title="Style Compatibility" readonly="readonly" />
|
|
<br>
|
|
<br>
|
|
<label>Weapon</label>
|
|
<b>Name:</b><input name="attr_weapon" value="@{attr_weapon}" title="Equiped Weapon" readonly="readonly"/>
|
|
<br>
|
|
<b>Type:</b><input name="attr_weapon-type" value="@{attr_weapon-type}" title="Weapon Type" readonly="readonly"/>
|
|
<br>
|
|
<b>Base:</b><input name="attr_weapon_base" value="@{attr_weapon_base}" title="Base Damage" readonly="readonly"/>
|
|
<br>
|
|
<b>Scale:</b><input name="attr_weapon-scaling" value="@{attr_weapon-scaling}" title= "Scaling (P/N)" readonly="readonly"/>
|
|
<br>
|
|
<b>Stress:</b><input name="attr_weapon-stress" value="@{attr_weapon-stress}" title= "Scaling (P/N)" readonly="readonly"/>
|
|
<br>
|
|
<b>Dur:</b><input name="attr_weapon-rem-dur" value="@{attr_weapon-rem-dur}" title="Remaining Durability" readonly="readonly"/>
|
|
<br>
|
|
<b>Max:</b><input name="attr_weapon-max-dur" value="@{attr_weapon-max-dur}" title="Maximum Durability" readonly="readonly"/>
|
|
<br>
|
|
<span name="attr_weapon-warning"></span>
|
|
<br>
|
|
<span name="attr_armor-warning"></span>
|
|
<label>Combat Arts</label>
|
|
<b>Base:</b><input name="attr_combat_base" value="@{attr_combat_base}" title="Base Damage" readonly="readonly"/>
|
|
<b>Acc:</b><input name="attr_combat_acc" value="@{attr_combat_acc}" title="Total Accuracy" readonly="readonly"/>
|
|
<b>Eva:</b><input name="attr_combat_eva" value="@{attr_combat_eva}" title="Total Evasion" readonly="readonly"/>
|
|
<b>GG:</b><input name="attr_combat_gg" value="@{attr_combat_gg}" title="Total Guard Gauge" readonly="readonly"/>
|
|
<b>Name:</b><input name="attr_combat_style" value="@{attr_combat_style}" title="Current Style" readonly="readonly"/>
|
|
<b>Scale:</b><input name="attr_combat_scaling" value="@{attr_combat_scaling}" title= "Scaling (P/N)" readonly="readonly"/>
|
|
</div>
|
|
<div class='col'>
|
|
<label>Catalysts</label>
|
|
<div class="energies">
|
|
<input type="hidden" class="energy" name="attr_Energy_type" value="" />
|
|
<input class='sheet-halfbreed' type='hidden' name='attr_halfbreed' value='0' >
|
|
<input class='sheet-deathcovenant' type='hidden' name='attr_deathcovenant' value='0' >
|
|
<b><span name="attr_Energy_type"></span></b><br>
|
|
<button type="action" name="act_Energy_type_Mental" class="energy energy-1">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Energy_type_Body" class="energy energy-2">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Energy_type_Spirit" class="energy energy-3">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Energy_type_Memory" class="energy energy-4">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Energy_type_Demon" class="sheet-demon">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_Energy_type_necroforce" class="sheet-necro">
|
|
<span class="checked"></span>
|
|
</button>
|
|
</div>
|
|
<br>
|
|
<label>Power State</label>
|
|
<input type='radio' name='attr_powerstate' value=1 checked='checked'><span>Normal</span>
|
|
<input type='radio' name='attr_powerstate' value=.5 ><span>Suppressed</span>
|
|
<input type='radio' name='attr_powerstate' value=1.25 ><span>Full</span>
|
|
<br>
|
|
<br>
|
|
<b>Power</b><br><input name="attr_Power" value="Power: @{attr_Power}" title="Power" readonly="readonly" />
|
|
<br>
|
|
<b>Endurance</b><br><input name="attr_Endurance" value="Endurance: @{attr_Endurance}" title="Endurance" readonly="readonly" />
|
|
<br>
|
|
<b>Speed</b><br><input name="attr_Speed" value="Speed: @{attr_Speed}" title="Speed" readonly="readonly" />
|
|
<br>
|
|
<b>Flight</b><br><input name="attr_Flight" value="Flight: @{attr_Flight}" title="Flight" readonly="readonly" />
|
|
<br>
|
|
</div>
|
|
<div class='col'>
|
|
<label>Defenses</label>
|
|
<b>Equipped Armor Durability: </b><span name="attr_armor-current-dur"></span>
|
|
<br>
|
|
<b>Defensive Action Limit: </b><span name="attr_defensiveMeasures"></span>
|
|
<br>
|
|
<b>Number of hits blocked: </b><span name="attr_blockedHits"></span>
|
|
<br>
|
|
<b>Guard Gauge (Combat)</b>
|
|
<input type="number" name="attr_curCGG" value="@{attr_curCGG}" style="width: 50px" >
|
|
<button type="action" name="act_combatBlock">Block</button>
|
|
<br>
|
|
<span name="attr_guardWarningC"></span>
|
|
<br>
|
|
<b>Guard Gauge (Weapon)</b>
|
|
<input type="number" name="attr_curWGG" value="@{attr_curWGG}" style="width: 50px" >
|
|
<button type="action" name="act_weaponBlock">Block</button>
|
|
<br>
|
|
<span name="attr_guardWarningW"></span>
|
|
|
|
<input type="hidden" name="attr_defensiveMeasures">
|
|
<input type="hidden" name="attr_blockedHits">
|
|
<input type="hidden" name="attr_guardWarningW">
|
|
<input type="hidden" name="attr_guardWarningC">
|
|
<input type="hidden" class="defensive-technique-defend" name="attr_defend" value="">
|
|
<input type="hidden" class="defensive-technique-phasestep" name="attr_phasestep" value="">
|
|
<input type="hidden" class="defensive-technique-phasejump" name="attr_phasejump" value="">
|
|
<input type="hidden" class="defensive-technique-absorb" name="attr_absorb" value="">
|
|
<input type="hidden" class="defensive-technique-reflect" name="attr_reflect" value="">
|
|
<input type="hidden" class="defensive-technique-barrier" name="attr_barrier" value="">
|
|
<input type="hidden" class="defensive-technique-cutter" name="attr_cutter" value="">
|
|
<input type="hidden" class="defensive-module1" name="attr_mod1" value="">
|
|
<input type="hidden" class="defensive-module2" name="attr_mod2" value="">
|
|
<input type="hidden" class="defensive-module3" name="attr_mod3" value="">
|
|
<input type="hidden" class="defensive-module4" name="attr_mod4" value="">
|
|
<input type="hidden" class="defensive-module5" name="attr_mod5" value="">
|
|
|
|
<div>
|
|
<br>
|
|
<label>A C T I O N S</label>
|
|
<br>
|
|
<span>Reduce Damage by 30%.</span>
|
|
<br>
|
|
<button type="action" name="act_Defend" >Defend</button>
|
|
</div>
|
|
<div class="sheet-phasestep">
|
|
<br>
|
|
<span>Evades one while grounded.</span>
|
|
<br>
|
|
<button type="action" name="act_PhaseStep" >Phase Step</button>
|
|
</div>
|
|
<div class="sheet-phasejump">
|
|
<br>
|
|
<span>Evades one Attack while airborne.</span>
|
|
<br>
|
|
<button type="action" name="act_PhaseJump" >Phase Jump</button>
|
|
</div>
|
|
<div class="sheet-reflect">
|
|
<br>
|
|
<span>Deflects one Projectile.</span>
|
|
<br>
|
|
<button type="action" name="act_Reflect" >Reflect</button>
|
|
</div>
|
|
<div class="sheet-absorb">
|
|
<br>
|
|
<span>Absorb one Manna-based Projectile.</span>
|
|
<br>
|
|
<button type="action" name="act_Absorb" >Absorb</button>
|
|
</div>
|
|
<div class="sheet-barrier">
|
|
<br>
|
|
<span>Blocks 30% Damage within SMALL AoE.</span>
|
|
<br>
|
|
<button type="action" name="act_Barrier" >Barrier</button>
|
|
</div>
|
|
<div class="sheet-cutter">
|
|
<br>
|
|
<span>Destroys one Manna-based Projectile or Barrier.</span>
|
|
<br>
|
|
<button type="action" name="act_Cutter" >Manna Cutter</button>
|
|
</div>
|
|
<div class="sheet-armor1">
|
|
<pre><span name="attr_mod1"></span></pre>
|
|
<br>
|
|
<button type="action" name="act_activate-1" >Activate</button>
|
|
<input type="hidden" name="attr_modmax1" value="">
|
|
<input type="hidden" name="attr_mod-cd1" value="" class="cooldown">
|
|
<br>
|
|
<div class="cooldown"></div>
|
|
</div>
|
|
<div class="sheet-armor2">
|
|
<pre><span name="attr_mod2"></span></pre>
|
|
<br>
|
|
<button type="action" name="act_activate-2" >Activate</button>
|
|
<input type="hidden" name="attr_modmax2" value="">
|
|
<input type="hidden" name="attr_mod-cd2" value="" class="cooldown">
|
|
<br>
|
|
<div class="cooldown"></div>
|
|
</div>
|
|
<div class="sheet-armor3">
|
|
<pre><span name="attr_mod3"></span></pre>
|
|
<br>
|
|
<button type="action" name="act_activate-3" >Activate</button>
|
|
<input type="hidden" name="attr_modmax3" value="">
|
|
<input type="hidden" name="attr_mod-cd3" value="" class="cooldown">
|
|
<br>
|
|
<div class="cooldown"></div>
|
|
</div>
|
|
<div class="sheet-armor4">
|
|
<pre><span name="attr_mod4"></span></pre>
|
|
<br>
|
|
<button type="action" name="act_activate-4" >Activate</button>
|
|
<input type="hidden" name="attr_modmax4" value="">
|
|
<input type="hidden" name="attr_mod-cd4" value="" class="cooldown">
|
|
<br>
|
|
<div class="cooldown"></div>
|
|
</div>
|
|
<div class="sheet-armor5">
|
|
<pre><span name="attr_mod5"></span></pre>
|
|
<br>
|
|
<button type="action" name="act_activate-5" >Activate</button>
|
|
<input type="hidden" name="attr_modmax5" value="">
|
|
<input type="hidden" name="attr_mod-cd5" value="" class="cooldown">
|
|
<br>
|
|
<div class="cooldown"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='sheet-passives'>
|
|
<fieldset class="repeating_passives">
|
|
<input type='text' name='attr_passive-name' title='Name' placeholder="Name"/>
|
|
<select name='attr_passive-energytype' />
|
|
<option>Other</option>
|
|
<option>Mental</option>
|
|
<option>Body</option>
|
|
<option>Spirit</option>
|
|
<option>Memory</option>
|
|
<option>Demonic</option>
|
|
</select>
|
|
<input type='text' name='attr_passive-requirement' title='Requirement' placeholder="Requirement"/>
|
|
<textarea name="attr_passive-text" placeholder="description"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class='sheet-inventory'>
|
|
<fieldset class="repeating_inventory">
|
|
<input type='text' name='attr_inventory-name' title='Name' placeholder="Name"/>
|
|
<input type='text' name='attr_inventory-quantity' title='Quantity of Item' placeholder="Quantity"/>
|
|
<input type='text' name='attr_inventory-mental-mass' title='Mental Weight' placeholder="Mental Mass"/>
|
|
<textarea name="attr_inventory-text" placeholder="description"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class='sheet-equipment'>
|
|
<div class='2colrow'>
|
|
<div class='col'>
|
|
<br>
|
|
<label style='text-align: center'>W E A P O N S</label>
|
|
<fieldset class="repeating_weapons">
|
|
<button type="action" name="act_equip-weapon">Equip</button>
|
|
<br>
|
|
<input type='hidden' name='attr_weapon-equipwarning' value='' />
|
|
<span name='attr_weapon-equipwarning'></span>
|
|
<br>
|
|
<b>Name:</b><input type='text' name='attr_weapon-name' value='' title="Weapon Name" placeholder="Name" />
|
|
<br>
|
|
<b>Req:</b><input type='text' name='attr_weapon-req' value='' title="constitution Requirement" placeholder="Req" />
|
|
<br>
|
|
<b>Stress:</b><input type='text' name='attr_weapon-stress' value='' title="Stress Tolerance" placeholder="Stress Rating" />
|
|
<br>
|
|
<b>(Max) Dur:</b><input type='text' name='attr_weapon-maximum-dur' value='' title="Max Durability" placeholder="Durability MAX" />
|
|
<br>
|
|
<b>Dur:</b><input type='text' name='attr_weapon-current-dur' value='' title="Remaining Durability" placeholder="Current Durability" />
|
|
<br>
|
|
<b>Base:</b><input type='text' name='attr_weapon-base' value='' title="Base Damage" placeholder="Base" />
|
|
<br>
|
|
<b>+ Scale:</b><input type='text' name='attr_weapon-pscaling' value='' title="+ Scaling" placeholder="Positive Scaling" />
|
|
<br>
|
|
<b>- Scale:</b><input type='text' name='attr_weapon-nscaling' value='' title="- Scaling" placeholder="Negative Scaling" />
|
|
<br>
|
|
<b>Acc:</b><input type='text' name='attr_weapon-acc' value='' title="Accuracy" placeholder="Accuracy Rating" />
|
|
<br>
|
|
<b>Demonic:</b><select name='attr_armor-weapon'>
|
|
<option value="true">YES</option>
|
|
<option value="false">NO</option>
|
|
</select>
|
|
<br>
|
|
<b>Type:</b><select name = "attr_weapon-type" value='' title="Weapon Type" placeholder="Type" >
|
|
<option value='S'>Small (S)</option>
|
|
<option value='H'>1-handed (H)</option>
|
|
<option value='SS'>Shield & Small (SS)</option>
|
|
<option value='P'>Polearm (P)</option>
|
|
<option value='PS'>Shield & Polearm (PS)</option>
|
|
<option value='HH'>2-Handed (HH)</option>
|
|
<option value='U'>Unorthedox (U)</option>
|
|
<option value='SH'>Shield (SH)</option>
|
|
</select>
|
|
|
|
<textarea name="attr_weapon-effects" placeholder="description"></textarea>
|
|
|
|
</fieldset>
|
|
</div>
|
|
<div class='col'>
|
|
<br>
|
|
<label style='text-align: center'>A R M O R</label>
|
|
<br>
|
|
<button type="action" name="act_equip-armor">Equip</button>
|
|
<br>
|
|
<input type='hidden' name='attr_armor-equipwarning' value='' />
|
|
<span name='attr_armor-equipwarning'></span>
|
|
<br>
|
|
<b>Name:</b><input type='text' name='attr_armor-name' value='' title="Weapon Name" placeholder="Name"/>
|
|
<br>
|
|
<b>Dur:</b><input type='text' name='attr_armor-max-dur' value='' title="Max Durability" placeholder="Durability"/>
|
|
<br>
|
|
<input type='hidden' name='attr_armor-current-dur' value='' />
|
|
<b>Base TTT:</b><input type='text' name='attr_armor-basettt' value='' title="Turn to Turn (TTT) Cost" placeholder="TTT"/>
|
|
<br>
|
|
<b>Total TTT:</b><input type='text' name='attr_armor-totalttt' value='' title="Total (TTT) Cost" placeholder="Combined Turn to Turn (TTT) Cost" readonly="readonly"/>
|
|
<br>
|
|
<b>Disrutpion:</b><input type='text' name='attr_armor-disruption' value='' title="Disruption Resistance" placeholder="Disruption"/>
|
|
<br>
|
|
<b>Stress:</b><input type='text' name='attr_armor-stress' value='' title="Stress Tolerance" placeholder="Stress"/>
|
|
<br>
|
|
<b>Demonic:</b><select name='attr_armor-demon'>
|
|
<option value="true">YES</option>
|
|
<option value="false">NO</option>
|
|
</select>
|
|
<br>
|
|
<!--***** CRESTS; STILL UNIMPLEMENTED <input type='text' name='attr_armor-crests' value='' title="Weapon Type" placeholder="Type"/> -->
|
|
<b>Armor Type:</b><select name="attr_armor-type">
|
|
<option value='A'>Assault</option>
|
|
<option value='V'>Vigilant</option>
|
|
<option value='C'>Caster</option>
|
|
<option value='U'>Unique</option>
|
|
</select>
|
|
<label>M O D U L E S</label>
|
|
<fieldset class="repeating_armor">
|
|
<!--************ R A D I O S ******************-->
|
|
<div class="module">
|
|
<div class="mods">
|
|
<input type="hidden" class="sheet-moduletype-toggle" name="attr_module-type" value="assault" />
|
|
<span name="attr_module-type"></span>
|
|
<button type="action" name="act_module-assault" class="mod mod-1">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_module-vigilant" class="mod mod-2">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_module-caster" class="mod mod-3">
|
|
<span class="checked"></span>
|
|
</button>
|
|
<button type="action" name="act_module-universal" class="mod mod-4">
|
|
<span class="checked"></span>
|
|
</button>
|
|
|
|
<br>
|
|
<select name="attr_module-level">
|
|
<option value='1'>1</option>
|
|
<option value='2'>2</option>
|
|
<option value='3'>3</option>
|
|
<option value='4'>4</option>
|
|
<option value='5'>5</option>
|
|
<option value='6'>6</option>
|
|
</select>
|
|
<br>
|
|
<div class="sheet-assault" >
|
|
<select name='attr_module-form' />
|
|
<option value='N'>None</option>
|
|
<option value='XSB'>Speed Boost (Assault. EXCLUSIVE)</option>
|
|
<option value='C'>Counterattack (Assault)</option>
|
|
<option value='GR'>GG Regeneration (Assault)</option>
|
|
<option value='GB'>GG Boost (Assault)</option>
|
|
<option value='RA'>Repair Armor (Universal)</option>
|
|
<option value='RH'>Restore Health (Universal)</option>
|
|
<option value='DP'>Disruption Purge (Universal)</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-vigilant">
|
|
<select name='attr_module-form' />
|
|
<option value='N'>None</option>
|
|
<option value='XB'>Barrier (Vigilant. EXCLUSIVE)</option>
|
|
<option value='XER'>Emergency Reconstitution (Vigilant. EXCLUSIVE)</option>
|
|
<option value='EB'>Evasion Boost (Vigilant)</option>
|
|
<option value='RS'>Recover Spirit (Vigilant)</option>
|
|
<option value='NS'>Neutral Stress Relief (Vigilant)</option>
|
|
<option value='RA'>Repair Armor (Universal)</option>
|
|
<option value='RH'>Restore Health (Universal)</option>
|
|
<option value='DP'>Disruption Purge (Universal)</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-caster" >
|
|
<select name='attr_module-form' />
|
|
<option value='N'>None</option>
|
|
<option value='XJC'>Junction Cast (Caster. EXCLUSIVE)</option>
|
|
<option value='XSC'>Spell Charge (Caster. EXCLUSIVE)</option>
|
|
<option value='EG'>Enhanced Gather (Caster)</option>
|
|
<option value='SR'>Saturation Replenish (Caster)</option>
|
|
<option value='RA'>Repair Armor (Universal)</option>
|
|
<option value='RH'>Restore Health (Universal)</option>
|
|
<option value='DP'>Disruption Purge (Universal)</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-universal">
|
|
<select name='attr_module-form' />
|
|
<option value='N'>None</option>
|
|
<option value='C'>Counterattack (Assault)</option>
|
|
<option value='GR'>GG Regeneration (Assault)</option>
|
|
<option value='GB'>GG Boost (Assault)</option>
|
|
<option value='EB'>Evasion Boost (Vigilant)</option>
|
|
<option value='RS'>Recover Spirit (Vigilant)</option>
|
|
<option value='NS'>Neutral Stress Relief (Vigilant)</option>
|
|
<option value='EG'>Enhanced Gather (Caster)</option>
|
|
<option value='SR'>Saturation Replenish (Caster)</option>
|
|
<option value='RA'>Repair Armor (Universal)</option>
|
|
<option value='RH'>Restore Health (Universal)</option>
|
|
<option value='DP'>Disruption Purge (Universal)</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<b>Cost:</b><input type='text' name='attr_module-cost' value='' readonly="readonly"/>
|
|
<br>
|
|
<b>Cooldown:</b><input type='text' name='attr_module-cooldown' value='' readonly="readonly"/>
|
|
<br>
|
|
<b>TTT:</b><input type='text' name='attr_module-turn-to-turn' value='' readonly="readonly"/>
|
|
<br>
|
|
<b>Effect:</b><input type='text' name="attr_module-effect" value='' readonly="readonly"/>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='sheet-styles'>
|
|
<div class='2colrow'>
|
|
<div class='col'>
|
|
<br>
|
|
<label style='text-align: center'>WEAPON STYLES</label>
|
|
<fieldset class="repeating_weapon-styles">
|
|
<button type="action" name="act_equip-weapon-style">Equip</button>
|
|
<br>
|
|
<input type="hidden" name="attr_weapon-style-warning" value='' />
|
|
<span name="attr_weapon-style-warning"></span>
|
|
<br>
|
|
<b>Style:</b><input type="text" name="attr_style-name" value='' title="Style" placeholder="Name" />
|
|
<br>
|
|
<b>Acc:</b><input type="text" name="attr_style-acc" value='' title="Accuracy" placeholder="Accuracy" />
|
|
<br>
|
|
<b>Eva:</b><input type="text" name="attr_style-eva" value='' title="Evasion" placeholder="Evasion" />
|
|
<br>
|
|
<b>GG:</b><input type="text" name="attr_style-gg" value='' title="Guard Gauge" placeholder="Guard Guage" />
|
|
<br>
|
|
<b>Req:</b><input type="text" name="attr_style-req" value='' title="Weapon Arts Requirement" placeholder="W.A. Requirement" />
|
|
<br>
|
|
<b>Rank:</b><select type="text" placeholder="Rank" />
|
|
<option>D</option>
|
|
<option>C</option>
|
|
<option>B</option>
|
|
<option>A</option>
|
|
<option>S</option>
|
|
</select>
|
|
<br>
|
|
<br>
|
|
<label>Type Compatibiilty</label>
|
|
<input type='checkbox' name='attr_style-S' value='S' title="Small (S)" />
|
|
<lable for="Small">Small (S)</lable>
|
|
<input type='checkbox' name='attr_style-H' value='H' title="1-Handed (H)" />
|
|
<lable for="1-Handed">1-Handed (H)</lable>
|
|
<input type='checkbox' name='attr_style-SS' value='SS' title="Shield & Small (SS)" />
|
|
<lable for="Shield & Small">Shield & Small (SS)</lable>
|
|
<input type='checkbox' name='attr_style-D' value='D' title="Dual Wield (D)" />
|
|
<lable for="Dual Wield">Dual Wield (D)</lable>
|
|
<input type='checkbox' name='attr_style-P' value='P' title="Polearm (P)" />
|
|
<lable for="Polearm">Polearm (P)</lable>
|
|
<input type='checkbox' name='attr_style-PS' value='PS' title="Shield & Polearm (PS)" />
|
|
<lable for="Shield & Polearm">Shield & Polearm (PS)</lable>
|
|
<input type='checkbox' name='attr_style-HH' value='HH' title="2-Handed (HH)" />
|
|
<lable for="2-Handed">2-Handed (HH)</lable>
|
|
<input type='checkbox' name='attr_style-U' value='U' title="Unorthedox (U)" />
|
|
<lable for="Unorthedox">Unorthedox (U)</lable>
|
|
<input type='checkbox' name='attr_style-SH' value='SH' title="Shield (SH)" />
|
|
<lable for="Shield">Shield (SH)</lable>
|
|
</fieldset>
|
|
</div>
|
|
<div class='col'>
|
|
<br>
|
|
<label style='text-align: center'>COMBAT STYLES</label>
|
|
<fieldset class="repeating_combat-styles">
|
|
<button type="action" name="act_equip-combat-style">Equip</button>
|
|
<br>
|
|
<input type='hidden' name='attr_combat-style-warning' value='' />
|
|
<span name='attr_combat-style-warning'></span>
|
|
<br>
|
|
<b>Style:</b><input type='text' name='attr_style-name' value='' title="Style" placeholder="Name" />
|
|
<br>
|
|
<b>Acc:</b><input type='text' name='attr_style-acc' value='' title="Accuracy" placeholder="Accuracy" />
|
|
<br>
|
|
<b>Eva:</b><input type='text' name='attr_style-eva' value='' title="Evasion" placeholder="Evasion" />
|
|
<br>
|
|
<b>GG:</b><input type='text' name='attr_style-gg' value='' title="Guard Gauge" placeholder="Guard Guage" />
|
|
<br>
|
|
<b>Req:</b><input type="text" name="attr_style-req" value='' title="Combat Arts Requirement" placeholder="C.A. Requirement" />
|
|
<br>
|
|
<b>Rank:</b><select type="text" placeholder="Rank" />
|
|
<option>D</option>
|
|
<option>C</option>
|
|
<option>B</option>
|
|
<option>A</option>
|
|
<option>S</option>
|
|
</select>
|
|
<br>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='sheet-spells'>
|
|
<div style='justify-content: center;'>
|
|
<br>
|
|
<label>Spell Techniques</label>
|
|
<table border="1">
|
|
<tr>
|
|
<td>
|
|
<span>Speed Cast</span><input type='checkbox' name='attr_spell-speed' title="" />
|
|
</td>
|
|
<td>
|
|
<span>High-Speed Cast</span><input type='checkbox' name='attr_spell-hispeed' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Spell Reflex</span><input type='checkbox' name='attr_spell-reflex' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Counter Spell</span><input type='checkbox' name='attr_spell-counter' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Hyper Spell</span><input type='checkbox' name='attr_spell-hyper' title="" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span>Double Cast</span><input type='checkbox' name='attr_spell-double' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Junction Cast</span><input type='checkbox' name='attr_spell-junction' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Double Pulse</span><input type='checkbox' name='attr_spell-pulse' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Triple Spell</span><input type='checkbox' name='attr_spell-triple' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Father Spell</span><input type='checkbox' name='attr_spell-father' title="" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span>Spell Lift</span><input type='checkbox' name='attr_spell-lift' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Carry Spell</span><input type='checkbox' name='attr_spell-carry' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Spell Recovery</span><input type='checkbox' name='attr_spell-recovery' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Auto Cast</span><input type='checkbox' name='attr_spell-auto' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Infiinty Spell</span><input type='checkbox' name='attr_spell-infinity' title="" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<span>Spell Shift</span><input type='checkbox' name='attr_spell-shift' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Spell Charge</span><input type='checkbox' name='attr_spell-charge' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Rivet Cast</span><input type='checkbox' name='attr_spell-rivet' title="" />
|
|
</td>
|
|
<td>
|
|
<span>Spell Surge</span><input type='checkbox' name='attr_spell-surge' title="" />
|
|
</td>
|
|
<td>
|
|
<span>???</span>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<label>Spells</label>
|
|
</div>
|
|
<br>
|
|
<fieldset class="repeating_spells">
|
|
<b>Name:</b><input type='text' name='attr_spells-name' title='Name' placeholder="Name"/>
|
|
<b>School:</b><select name='attr_spells-school' value='None' />
|
|
<option value='None'>None</option>
|
|
<option value='Elementalism (Covenant)'>Elementalism (Covenant)</option>
|
|
<option value='Plying Arts (Basic)'>Plying Arts (Basic)</option>
|
|
<option value='Enchanting (Basic)'>Enchanting (Basic)</option>
|
|
<option value='High Magic (Basic)'>High Magic (Basic)</option>
|
|
<option value='Sage Arts (Basic)'>Sage Arts (Basic)</option>
|
|
<option value='Prayer (Covenant)'>Prayer (Covenant)</option>
|
|
<option value='Kinetics (Advanced)'>Kinetics (Advanced)</option>
|
|
<option value='Sealing (Advanced)'>Sealing (Advanced)</option>
|
|
<option value='Transcendalism (Advanced)'>Transcendalism (Advanced)</option>
|
|
<option value='Elder Magic (Advanced)'>Elder Magic (Advanced)</option>
|
|
<option value='Arcane (Covenant)'>Arcane (Covenant)</option>
|
|
<option value='Sorcery (Forbidden)'>Sorcery (Forbidden)</option>
|
|
<option value='Ghosting Arts (Forbidden)'>Ghosting Arts (Forbidden)</option>
|
|
<option value='Demonic Magic (Forbidden)'>Demonic Magic (Forbidden)</option>
|
|
<option value='Alchemy (Forbidden)'>Alchemy (Forbidden)</option>
|
|
<option value='Godden Magic'>Godden Magic</option>
|
|
</select>
|
|
<b>Branch:</b><input type='text' name='attr_spells-branch' title='School Branch' placeholder="School Branch"/>
|
|
<b>Mastery:</b><select name='attr_spells-mastery' value='N/A'/>
|
|
<option value='N/A'>N/A</option>
|
|
<option>Novice</option>
|
|
<option>Intermediate</option>
|
|
<option>Mastered</option>
|
|
</select>
|
|
<b>Potency:</b><select name='attr_spells-potency' value='N/A' />
|
|
<option value='N/A'>N/A</option>
|
|
<option value='Minor'>Minor</option>
|
|
<option value='Major'>Major</option>
|
|
<option value='Extreme'>Extreme</option>
|
|
<option value='Cataclysmic'>Cataclysmic</option>
|
|
</select>
|
|
<b>Cost:</b><input type='text' name='attr_spells-cost' title='Spell Cost' placeholder="Spell Cost"/>
|
|
<b>Cast-Time:</b><input type='text' name='attr_spells-cast-time' title="Cast Time" placeholder="Cast Time"/>
|
|
<textarea name="attr_inventory-text" placeholder="description"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class='sheet-energytechniques'>
|
|
<fieldset class="repeating_energytech">
|
|
<b>Name:</b><input type='text' name='attr_etech-name' title='Name' placeholder="Name"/>
|
|
<b>Req:</b><select name='attr_etech-requirement' title='Requirement'/>
|
|
<option>0</option>
|
|
<option>5</option>
|
|
<option>10</option>
|
|
<option>15</option>
|
|
<option>20</option>
|
|
<option>25</option>
|
|
<option>30</option>
|
|
<option>35</option>
|
|
<option>40</option>
|
|
<option>45</option>
|
|
<option>50</option>
|
|
<option>55</option>
|
|
<option>60</option>
|
|
<option>65</option>
|
|
<option>70</option>
|
|
<option>75</option>
|
|
<option>80</option>
|
|
<option>85</option>
|
|
<option>90</option>
|
|
<option>95</option>
|
|
<option>100</option>
|
|
</select>
|
|
<b>Lv:</b><select name='attr_etech-level' value=''/>
|
|
<option>N/A</option>
|
|
<option>1</option>
|
|
<option>2</option>
|
|
<option>3</option>
|
|
</select>
|
|
<b>Cost:</b><input type='text' name='attr_etech-cost' title='Cost' placeholder="Cost"/>
|
|
<textarea name="attr_etech-text" placeholder="description"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class='sheet-meleetechniques'>
|
|
<input type= 'hidden' name="attr_combo_counter" value=''>
|
|
<input type= 'hidden' name="attr_techwarning" value=''>
|
|
<b>Combo Counter:</b><span name="attr_combo_counter"></span>
|
|
<br>
|
|
<b>Equipped Weapon Durability:</b><span name="attr_weapon-rem-dur"></span>
|
|
<span name="attr_techwarning"></span>
|
|
<div class="sheet-progress">
|
|
<input type="hidden" value="0" name="attr_dur-bar" class="sheet-durbar">
|
|
<div class="sheet-durbar"></div>
|
|
</div>
|
|
<br>
|
|
<fieldset class="repeating_meleetech">
|
|
<!-- Cooldown Bar -->
|
|
<div class="sheet-progress">
|
|
<input type="hidden" value="0" name="attr_tech-bar" class="sheet-techbar">
|
|
<div class="sheet-techbar"></div>
|
|
</div>
|
|
|
|
<button type="action" name='act_execute'>Execute</button>
|
|
<b>Name:</b><input type='text' name='attr_meleetech-name' value='' title='Name' placeholder="Name"/>
|
|
<b>Req:</b><select name='attr_meleetech-requirement' title='Requirement'>
|
|
<option>0</option>
|
|
<option>5</option>
|
|
<option>10</option>
|
|
<option>15</option>
|
|
<option>20</option>
|
|
<option>25</option>
|
|
<option>30</option>
|
|
<option>35</option>
|
|
<option>40</option>
|
|
<option>45</option>
|
|
<option>50</option>
|
|
<option>55</option>
|
|
<option>60</option>
|
|
<option>65</option>
|
|
<option>70</option>
|
|
<option>75</option>
|
|
<option>80</option>
|
|
<option>85</option>
|
|
<option>90</option>
|
|
<option>95</option>
|
|
<option>100</option>
|
|
</select>
|
|
<b>Type: </b>
|
|
<input type='radio' name='attr_meleetech-type' value='Combat'>
|
|
<lable for="Combat">Combat</lable>
|
|
<input type='radio' name='attr_meleetech-type' value='Weapon'>
|
|
<lable for="Weapon">Weapon</lable>
|
|
<br>
|
|
<b>Sequence:</b>
|
|
<div style='display: inline'>
|
|
<input type='checkbox' name='attr_meleetech-lunge'>
|
|
<lable for="Lunge">Lunge</lable>
|
|
<input type='checkbox' name='attr_meleetech-launcher'>
|
|
<lable for="Launcher">Launcher</lable>
|
|
<input type='checkbox' name='attr_meleetech-spike'>
|
|
<lable for="Spike">Spike</lable>
|
|
<input type='checkbox' name='attr_meleetech-streak'>
|
|
<lable for="Streak">Streak</lable>
|
|
<input type='checkbox' name='attr_meleetech-ender'>
|
|
<lable for="Ender">Ender</lable>
|
|
<input type='checkbox' name='attr_meleetech-counter'>
|
|
<lable for="Counter">Counter</lable>
|
|
<input type='checkbox' name='attr_meleetech-parry'>
|
|
<lable for="Parry">Parry</lable>
|
|
</div>
|
|
<br>
|
|
<b>Base:</b><input type='number' name='attr_meleetech-base' value='' title='Base Damage Bonus' placeholder="Base" max='50' min='0'/>
|
|
<b>Cost/Cooldown:</b><input type='text' name='attr_meleetech-cost' value='' title='Cost' placeholder="Cost: (Durability/Cooldown)"/>
|
|
<textarea name="attr_meleetech-text" placeholder="description"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class='sheet-training'>
|
|
<fieldset class="repeating_training">
|
|
<select name="attr_training-origin">
|
|
<option value='Ciaha'>Ciaha</option>
|
|
<option value='Magian'>Magian</option>
|
|
<option value='Adept'>Adept</option>
|
|
<option value='Arbitar'>Arbitar</option>
|
|
<option value='Necrian'>Necrian</option>
|
|
<option value='Riahan'>Riahan</option>
|
|
<option value='Celestial'>Celestial</option>
|
|
</select>
|
|
<input type='text' name='attr_training-req' value='' title='Requirement' placeholder="Requirement"/>
|
|
<textarea name="attr_training-text" placeholder="STILL IN DEVELOPEMENT"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<script type="text/worker">
|
|
//tab buttons
|
|
const buttonlist = ["character","passives","inventory","equipment","spells","styles","meleetechniques","energytechniques","training","memories","minions"];
|
|
buttonlist.forEach(button => {
|
|
//creates several functions with a foreach using energyRadioValues array and string concatenation for function names
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
sheetTab: button
|
|
});
|
|
});
|
|
});
|
|
//Energy Catalyst buttons
|
|
const energyRadioValues = ["Mental","Body","Spirit","Memory","Demon","necroforce"];
|
|
//creates several functions with a foreach using energyRadioValues array and string concatenation for function names
|
|
energyRadioValues.forEach(value => {
|
|
on(`clicked:Energy_type_${value}`, function() {
|
|
setAttrs({
|
|
Energy_type: value
|
|
});
|
|
});
|
|
});
|
|
//race radio buttons
|
|
const raceRadioValues = ["Ciaha","Magian","Necrian","Adept","Arbiter"];
|
|
//creates several functions with a foreach using raceRadioValues array and string concatenation for function names
|
|
raceRadioValues.forEach(value => {
|
|
on(`clicked:Race_${value}`, function() {
|
|
setAttrs({
|
|
Char_Race: value
|
|
});
|
|
//console.log(value);
|
|
});
|
|
});
|
|
//unfortunately, there is no way to incremenant an attribute without the API
|
|
const statButtons = ["constitution","discipline","resistance","intelligence"];
|
|
statButtons.forEach(value => {
|
|
on(`clicked:add_${value}`, () => {
|
|
getAttrs([`char_${value}`], v => {
|
|
if(v[`char_${value}`] < 10)
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: v[`char_${value}`] + 1
|
|
});
|
|
}else
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: 10
|
|
});
|
|
}
|
|
})
|
|
});
|
|
on(`clicked:minus_${value}`, () => {
|
|
getAttrs([`char_${value}`], v => {
|
|
if(v[`char_${value}`] > 0)
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: v[`char_${value}`] - 1
|
|
});
|
|
}else
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: 0
|
|
});
|
|
}
|
|
})
|
|
});
|
|
});
|
|
//unfortunately, there is no way to incremenant an attribute without the API
|
|
const skillsButtons = ["weapon_arts","combat_arts","magitech","tech"];
|
|
skillsButtons.forEach(value => {
|
|
on(`clicked:add_${value}`, () => {
|
|
getAttrs([`char_${value}`,"equipped-weapon-style","equipped-weapon"], v => {
|
|
if(v[`char_${value}`] < 100)
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: v[`char_${value}`] + 5
|
|
});
|
|
}else
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: 100
|
|
});
|
|
}
|
|
Adjust_Battle(v["equipped-weapon"], v["equipped-weapon-style"]);
|
|
})
|
|
});
|
|
on(`clicked:minus_${value}`, () => {
|
|
getAttrs([`char_${value}`,"equipped-weapon-style","equipped-weapon"], v => {
|
|
if(v[`char_${value}`] > 5)
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: v[`char_${value}`] - 5
|
|
});
|
|
}else
|
|
{
|
|
setAttrs({
|
|
[`char_${value}`]: 0
|
|
});
|
|
}
|
|
Adjust_Battle(v["equipped-weapon"], v["equipped-weapon-style"]);
|
|
})
|
|
});
|
|
});
|
|
//unfortunately, there is no way to incremenant an attribute without the API
|
|
const CatalystButtons = ["catalyst_mental","catalyst_body","catalyst_spirit","catalyst_memory","catalyst_demon","catalyst_necro"];
|
|
CatalystButtons.forEach(value => {
|
|
on(`clicked:add_${value}`, () => {
|
|
getAttrs([`${value}`], v => {
|
|
if(v[`${value}`] <96)
|
|
{
|
|
setAttrs({
|
|
[`${value}`]: v[`${value}`] + 5
|
|
});
|
|
}else
|
|
{
|
|
setAttrs({
|
|
[`${value}`]: 100
|
|
});
|
|
}
|
|
});
|
|
Adjust_Energy();
|
|
});
|
|
on(`clicked:minus_${value}`, () => {
|
|
getAttrs([`${value}`], v => {
|
|
if(v[`${value}`] > 4)
|
|
{
|
|
setAttrs({
|
|
[`${value}`]: v[`${value}`] - 5
|
|
});
|
|
}else
|
|
{
|
|
setAttrs({
|
|
[`${value}`]: 0
|
|
});
|
|
}
|
|
});
|
|
Adjust_Energy();
|
|
});
|
|
});
|
|
//governs skill and Spell Points growth and extra point accumulation
|
|
const growthPointButtons = ["spell_points","skill_points"];
|
|
growthPointButtons.forEach(value => {
|
|
on(`clicked:add_${value}`, () => {
|
|
getAttrs([`${value}`], v => {
|
|
setAttrs({
|
|
[`${value}`]: v[`${value}`] + 1
|
|
});
|
|
});
|
|
});
|
|
on(`clicked:minus_${value}`, () => {
|
|
getAttrs([`${value}`], v => {
|
|
setAttrs({
|
|
[`${value}`]: v[`${value}`] - 1
|
|
});
|
|
});
|
|
});
|
|
on(`clicked:add_Ex${value}`, () => {
|
|
getAttrs([`Ex${value}`,`${value}`], v => {
|
|
setAttrs({
|
|
[`Ex${value}`]: v[`Ex${value}`] + 1,
|
|
[`${value}`]: v[`${value}`] + 1
|
|
});
|
|
});
|
|
});
|
|
on(`clicked:minus_Ex${value}`, () => {
|
|
getAttrs([`Ex${value}`,`${value}`], v => {
|
|
setAttrs({
|
|
[`Ex${value}`]: v[`Ex${value}`] - 1,
|
|
[`${value}`]: v[`${value}`] - 1
|
|
});
|
|
});
|
|
});
|
|
});
|
|
//armor module radio buttons
|
|
const ModuleValues = ["assault","vigilant","caster","universal"];
|
|
//creates several functions with a foreach using ModuleValues array and string concatenation for function names
|
|
//button within repeating sections are NOT detected with an "_" therefore, a "-" is necessary instead
|
|
ModuleValues.forEach(value => {
|
|
on(`clicked:repeating_armor:module-${value}`, function(eventInfo) {
|
|
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
setAttrs({
|
|
[`repeating_armor_${rowid}_module-type`]: value
|
|
});
|
|
});
|
|
});
|
|
//defense module prog bars
|
|
const defensiveProgBar = ["0","1","2","3","4","5"]
|
|
defensiveProgBar.forEach(bar => {
|
|
on(`clicked:activate-${bar}`, () => {
|
|
getAttrs([`modmax${bar}`,`mod-cd${bar}`], v => {
|
|
if(v[`mod-cd${bar}`]==="")
|
|
{
|
|
setAttrs({
|
|
[`mod-cd${bar}`]: parseInt(v[`modmax${bar}`])
|
|
});
|
|
}
|
|
console.log(v[`modmax${bar}`]);
|
|
});
|
|
});
|
|
});
|
|
//Defensive Techiques
|
|
on('clicked:PhaseStep', () => {
|
|
getAttrs(["Char_Manna", "Energy_type","Char_Demon"], v => {
|
|
if(v.Energy_type==="Demon"&&v.Char_Demon > 14)
|
|
{
|
|
setAttrs({
|
|
Char_Demon: parseInt(v.Char_Demon) - 15
|
|
})
|
|
return
|
|
}
|
|
|
|
if(parseInt(v.Char_Manna) > 14)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: parseInt(v.Char_Manna) - 15
|
|
})
|
|
}
|
|
});
|
|
});
|
|
on('clicked:PhaseJump', () => {
|
|
getAttrs(["Char_Manna", "Energy_type","Char_Demon"], v => {
|
|
if(v.Energy_type==="Demon"&&v.Char_Demon > 14)
|
|
{
|
|
setAttrs({
|
|
Char_Demon: parseInt(v.Char_Demon) - 15
|
|
})
|
|
return
|
|
}
|
|
|
|
if(parseInt(v.Char_Manna) > 14)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: parseInt(v.Char_Manna) - 15
|
|
})
|
|
}
|
|
});
|
|
});
|
|
on('clicked:Barrier', () => {
|
|
getAttrs(["Char_Manna", "Energy_type","Char_Demon"], v => {
|
|
if(v.Energy_type==="Demon"&&v.Char_Demon > 29)
|
|
{
|
|
setAttrs({
|
|
Char_Demon: parseInt(v.Char_Demon) - 30
|
|
})
|
|
return
|
|
}
|
|
|
|
if(parseInt(v.Char_Manna) > 29)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: parseInt(v.Char_Manna) - 30
|
|
})
|
|
}
|
|
});
|
|
});
|
|
on('clicked:Reflect', () => {
|
|
getAttrs(["Char_Manna", "Energy_type","Char_Demon"], v => {
|
|
if(v.Energy_type==="Demon"&&v.Char_Demon > 4)
|
|
{
|
|
setAttrs({
|
|
Char_Demon: parseInt(v.Char_Demon) - 5
|
|
})
|
|
return
|
|
}
|
|
|
|
if(parseInt(v.Char_Manna) > 4)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: parseInt(v.Char_Manna) - 5
|
|
})
|
|
}
|
|
});
|
|
});
|
|
on('clicked:Defend', () => {
|
|
getAttrs(["Char_Manna", "Energy_type","Char_Demon"], v => {
|
|
if(v.Energy_type==="Demon"&&v.Char_Demon > 6)
|
|
{
|
|
setAttrs({
|
|
Char_Demon: parseInt(v.Char_Demon) - 7
|
|
})
|
|
return
|
|
}
|
|
|
|
if(parseInt(v.Char_Manna) > 6)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: parseInt(v.Char_Manna) - 7
|
|
})
|
|
}
|
|
});
|
|
});
|
|
on('clicked:combatBlock', () => {
|
|
getAttrs(["curCGG","blockedHits"], v => {
|
|
setAttrs({
|
|
curCGG: (v.curCGG > 100) ? v.curCGG - 100 : 0,
|
|
guardWarningC: (v.curCGG > 100) ? "" : "Guard Break!",
|
|
economy: (v.curCGG > 100) ? 100 : 25,
|
|
blockedHits: 1 + v.blockedHits
|
|
})
|
|
})
|
|
});
|
|
on('clicked:weaponBlock', () => {
|
|
getAttrs(["curWGG","blockedHits"], v => {
|
|
setAttrs({
|
|
curWGG: (v.curWGG > 100) ? v.curWGG - 100 : 0,
|
|
guardWarningW: (v.curWGG > 100) ? "" : "Guard Break!",
|
|
economy: (v.curWGG > 100) ? 100 : 25,
|
|
blockedHits: 1 + v.blockedHits
|
|
})
|
|
})
|
|
});
|
|
on('clicked:gather', () => {
|
|
getAttrs(["economy","Char_Manna","Char_Manna_Training","Char_Level"], value => {
|
|
var max = parseInt(value.Char_Manna_Training) + 100 + parseInt(value.Char_Level);
|
|
if(value.economy >= 70)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: ((parseInt(value.Manna) + 30) <= max) ? value.Char_Manna + 30 : max,
|
|
economy: value.economy - 30
|
|
})
|
|
}
|
|
});
|
|
Adjust_Energy();
|
|
});
|
|
on('clicked:vitalize', () => Vitalize());
|
|
//intialize new characters //default to Ciaha
|
|
on("sheet:opened", ()=> {
|
|
getAttrs(["Char_Race"], v => {
|
|
if(v.Char_Race ==="")
|
|
{
|
|
let initiate = {
|
|
Char_Race: "Ciaha",
|
|
Char_Level: 1,
|
|
char_constitution: 3,
|
|
char_discipline: 2,
|
|
char_resistance: 0,
|
|
char_intelligence: 1,
|
|
char_combat_arts: 20,
|
|
char_weapon_arts: 25,
|
|
char_tech: 5,
|
|
char_magitech: 5,
|
|
catalyst_mental: 0,
|
|
catalyst_body: 10,
|
|
catalyst_spirit: 0,
|
|
catalyst_memory: 5,
|
|
catalyst_demon: 0,
|
|
catalyst_necro: 0,
|
|
Char_Life_Force: 131,
|
|
Char_Manna: 101,
|
|
Char_Demon: 0,
|
|
Char_Manna_Training: 0,
|
|
spell_points: 1,
|
|
skill_points: 12,
|
|
Exspell_points: 0,
|
|
Exskill_points: 0,
|
|
|
|
};
|
|
setAttrs(initiate, {silent:true});
|
|
//console.log(Object.values(initiate));
|
|
//console.log(Object.keys(initiate));
|
|
}
|
|
});
|
|
});
|
|
|
|
on("change:Char_Life_Force", (eventInfo) => {
|
|
if(eventInfo.newValue <= 1)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: 0,
|
|
Char_Demon: 0
|
|
})
|
|
Adjust_Energy(false);
|
|
}
|
|
});
|
|
on("change:Char_Spirit_Force", (eventInfo) => {
|
|
if(eventInfo.newValue <= 1)
|
|
{
|
|
setAttrs({
|
|
Char_Manna: 0
|
|
})
|
|
Adjust_Energy(false);
|
|
}
|
|
});
|
|
|
|
on("change:powerstate", () => Adjust_Energy());
|
|
|
|
on("change:Power", (eventInfo) => {
|
|
getAttrs(["weapon-stress", "armor-stress"], v => {
|
|
if(parseInt(eventInfo.newValue) > v["weapon-stress"] && v["weapon-stress"] !=="")
|
|
setAttrs({[`weapon-warning`]: "WARNING: Weapon Stress Tolerance exceeded. Using the weapon (attack/blocking) with too much Power will destroy it."})
|
|
if(parseInt(eventInfo.newValue) > v["armor-stress"] && v["armor-stress"] !== "")
|
|
setAttrs({[`armor-warning`]: "WARNING: Armor Stress Tolerance exceeded. Wearing the armor during a turn of battle with too much Power will destroy it."})
|
|
});
|
|
});
|
|
|
|
on("change:char_constitution", (eventInfo) => {
|
|
getAttrs(["Char_Level","char_resistance","armor-disruption","char_discipline"], v => {
|
|
var dis = 0;
|
|
if(v["armor-disruption"]!=="")
|
|
dis = parseInt(v["armor-disruption"]);
|
|
setAttrs({
|
|
Char_Life_Force: parseInt(eventInfo.newValue)*10 + v.Char_Level + 100,
|
|
Disruption: v.Char_Level + dis + (parseInt(eventInfo.newValue) + v.char_resistance)*5,
|
|
Pain: v.Char_Level + (parseInt(eventInfo.newValue) + v.char_discipline)*10
|
|
})
|
|
});
|
|
});
|
|
|
|
on("change:char_resistance", (eventInfo) => {
|
|
getAttrs(["Char_Level","char_constitution","armor-disruption"], v => {
|
|
var dis = 0;
|
|
if(v["armor-disruption"]!=="")
|
|
dis = parseInt(v["armor-disruption"]);
|
|
setAttrs({
|
|
Disruption: v.Char_Level + dis + (parseInt(eventInfo.newValue) + v.char_constitution)*5
|
|
})
|
|
});
|
|
});
|
|
|
|
on("change:char_discipline", (eventInfo) => {
|
|
getAttrs(["Char_Level","char_constitution","char_weapon_arts","char_combat_arts","equipped-weapon-style","equipped-weapon"], v => {
|
|
var WA = v.char_weapon_arts + (parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue))*5
|
|
var CA = v.char_combat_arts + (parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue))*5
|
|
setAttrs({
|
|
Pain: v.Char_Level + (parseInt(eventInfo.newValue) + v.char_constitution)*10,
|
|
char_weapon_arts: WA,
|
|
char_combat_arts: CA
|
|
})
|
|
Adjust_Battle(v["equipped-weapon"], v["equipped-weapon-style"]);
|
|
});
|
|
});
|
|
|
|
on("change:char_intelligence", (eventInfo) => {
|
|
getAttrs(["char_magitech","char_tech"], v => {
|
|
setAttrs({
|
|
char_magitech: v.char_magitech + (parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue))*5,
|
|
char_tech: v.char_tech + (parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue))*5
|
|
})
|
|
});
|
|
});
|
|
|
|
on("change:halfbreed", (eventInfo) =>{
|
|
getAttrs(["Char_Race","Difficulty","Char_Level","Age"], v => {
|
|
let race = Adjust_Race(v.Char_Race);
|
|
var Diff = v.Difficulty;
|
|
var Age = v.Age;
|
|
if(eventInfo.newValue=="on"){
|
|
Age *= 1.5;
|
|
Diff ++;
|
|
}
|
|
else{
|
|
Age *= (2/3);
|
|
Diff--;
|
|
}
|
|
|
|
if(v.Age < 100 && Age > 100)
|
|
Diff++;
|
|
else if(v.Age > 100 && Age < 100)
|
|
Diff--;
|
|
|
|
setAttrs({
|
|
Char_Demon: 100 + ((eventInfo.newValue=="on") ? v.Char_Level * 9 : v.Char_Level*3),
|
|
Difficulty: Diff,
|
|
Age: Age
|
|
})
|
|
})
|
|
console.log(eventInfo.newValue);
|
|
});
|
|
//equips weapon
|
|
on("clicked:repeating_weapons:equip-weapon", function(eventInfo) {
|
|
// Check the current value of the hidden attribute.
|
|
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
getAttrs([`repeating_weapons_${rowid}_weapon-name`,
|
|
`repeating_weapons_${rowid}_weapon-req`,
|
|
`repeating_weapons_${rowid}_weapon-stress`,
|
|
`repeating_weapons_${rowid}_weapon-current-dur`,
|
|
`repeating_weapons_${rowid}_weapon-maximum-dur`,
|
|
`repeating_weapons_${rowid}_weapon-base`,
|
|
`repeating_weapons_${rowid}_weapon-pscaling`,
|
|
`repeating_weapons_${rowid}_weapon-nscaling`,
|
|
`repeating_weapons_${rowid}_weapon-acc`,
|
|
`repeating_weapons_${rowid}_weapon-type`,
|
|
`repeating_weapons_${rowid}_weapon-effects`,
|
|
"char_constitution","equipped-weapon-style",
|
|
"Power"], function(weapon) {
|
|
// Toggle the hidden attribute value between
|
|
if(weapon[`repeating_weapons_${rowid}_weapon-name`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Name Missing"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-req`] > weapon["char_constitution"])
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Inadequate constitution"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-stress`] < weapon["Power"])
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Exceeds Power Tolerance"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-base`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Incomplete"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-pscaling`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Incomplete"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-nscaling`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Incomplete"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-acc`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Incomplete"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-type`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Incomplete"
|
|
});
|
|
return
|
|
}else if(weapon[`repeating_weapons_${rowid}_weapon-maximum-dur`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${rowid}_weapon-equipwarning`]: "Weapon Incomplete"
|
|
});
|
|
return
|
|
}
|
|
setAttrs({[`equipped-weapon`]: rowid});
|
|
Adjust_Battle(rowid, weapon[`equipped-weapon-style`]);
|
|
});
|
|
});
|
|
//equips weapon style
|
|
on("clicked:repeating_weapon-styles:equip-weapon-style", function(eventInfo) {
|
|
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
|
|
getAttrs([`repeating_weapon-styles_${rowid}_style-name`,
|
|
`repeating_weapon-styles_${rowid}_style-name`,
|
|
`repeating_weapon-styles_${rowid}_style-acc`,
|
|
`repeating_weapon-styles_${rowid}_style-eva`,
|
|
`repeating_weapon-styles_${rowid}_style-gg`,
|
|
`repeating_weapon-styles_${rowid}_style-req`,
|
|
`equipped-weapon`,"char_weapon_arts"], function(style) {
|
|
|
|
if(style[`repeating_weapon-styles_${rowid}_style-name`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapon-styles_${rowid}_weapon-style-warning`]: "Style Name Missing"
|
|
});
|
|
return
|
|
}else if(style[`repeating_weapon-styles_${rowid}_style-acc`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapon-styles_${rowid}_weapon-style-warning`]: "Accuracy Rating Missing"
|
|
});
|
|
return
|
|
}else if(style[`repeating_weapon-styles_${rowid}_style-eva`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapon-styles_${rowid}_weapon-style-warning`]: "Evasion Rating Missing"
|
|
});
|
|
return
|
|
}else if(style[`repeating_weapon-styles_${rowid}_style-gg`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapon-styles_${rowid}_weapon-style-warning`]: "Guard Guarge Rating Missing"
|
|
});
|
|
return
|
|
}else if(style[`repeating_weapon-styles_${rowid}_style-req`]==="" || style[`repeating_weapon-styles_${rowid}_style-req`] > (style.char_weapon_arts))
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapon-styles_${rowid}_weapon-style-warning`]: "Weapon Arts Requirement Failed or Missing"
|
|
});
|
|
return
|
|
}
|
|
|
|
setAttrs({[`equipped-weapon-style`]: rowid});
|
|
Adjust_Battle(style[`equipped-weapon`], rowid);
|
|
});
|
|
});
|
|
//equips combat style
|
|
on("clicked:repeating_combat-styles:equip-combat-style", function(eventInfo) {
|
|
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
|
|
getAttrs([`repeating_combat-styles_${rowid}_style-name`,
|
|
`repeating_combat-styles_${rowid}_style-acc`,
|
|
`repeating_combat-styles_${rowid}_style-eva`,
|
|
`repeating_combat-styles_${rowid}_style-gg`,
|
|
"char_constitution", `repeating_combat-styles_${rowid}_style-req`,
|
|
"char_discipline", "char_combat_arts"], function (style) {
|
|
|
|
if(style[`repeating_combat-styles_${rowid}_style-name`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_combat-styles_${rowid}_combat-style-warning`]: "Missing Style Name"
|
|
});
|
|
return
|
|
}else if(style[`repeating_combat-styles_${rowid}_style-acc`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_combat-styles_${rowid}_combat-style-warning`]: "Missing Accuracy Rating"
|
|
});
|
|
return
|
|
}else if(style[`repeating_combat-styles_${rowid}_style-eva`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_combat-styles_${rowid}_combat-style-warning`]: "Missing Evasion Rating"
|
|
});
|
|
return
|
|
}else if(style[`repeating_combat-styles_${rowid}_style-gg`]==="")
|
|
{
|
|
setAttrs({
|
|
[`repeating_combat-styles_${rowid}_combat-style-warning`]: "Missing Guard Guage Rating"
|
|
});
|
|
return
|
|
}else if(style[`repeating_combat-styles_${rowid}_style-req`]==="" || style[`repeating_combat-styles_${rowid}_style-req`] > (style.char_combat_arts))
|
|
{
|
|
setAttrs({
|
|
[`repeating_combat-styles_${rowid}_combat-style-warning`]: "Combat Arts Requirement Failed or Missing"
|
|
});
|
|
return
|
|
}
|
|
|
|
var NewBase = (5 + style.char_constitution);
|
|
|
|
setAttrs({
|
|
combat_base: `${NewBase}`,
|
|
combat_acc: (parseInt(style[`repeating_combat-styles_${rowid}_style-acc`]) + 100),
|
|
combat_eva: (parseInt(style[`repeating_combat-styles_${rowid}_style-eva`]) + (style.char_discipline * 5)),
|
|
combat_gg: (parseInt(style[`repeating_combat-styles_${rowid}_style-gg`]) + (style.char_discipline * 5)),
|
|
combat_style: style[`repeating_combat-styles_${rowid}_style-name`],
|
|
combat_scaling: ([`${NewBase}/5`]),
|
|
[`repeating_combat-styles_${rowid}_combat-style-warning`]: ""
|
|
});
|
|
|
|
});
|
|
});
|
|
//updates progress bars for meleetechs
|
|
on("clicked:repeating_meleetech:execute", function(eventInfo) {
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
|
|
getAttrs([`repeating_meleetech_${rowid}_meleetech-cost`,"combo_counter",`equipped-weapon`,`weapon-rem-dur`,`weapon-max-dur`,`repeating_meleetech_${rowid}_tech-bar`], function(value){
|
|
//the repeating section only has one input for cost but...
|
|
//combat techniques always have a cooldown whereas weapon tech use DURABILITY
|
|
//However, This means that weapon tech will always have at least 10 meleetech-cost
|
|
//using this, we seperate the execute button to either start a cooldown progress bar or subtract the cost from DURABILITY bar
|
|
if(value[`repeating_meleetech_${rowid}_meleetech-cost`]==="")
|
|
{
|
|
setAttrs({
|
|
techwarning: "WARNING: Tech Incomplete"
|
|
});
|
|
return
|
|
}
|
|
if(value[`repeating_meleetech_${rowid}_meleetech-cost`] > 9)//weapon tech tree
|
|
{
|
|
if(value[`equipped-weapon`]==="")
|
|
{
|
|
setAttrs({
|
|
techwarning: "WARNING: No weapon Equipped!"
|
|
});
|
|
return
|
|
}else if(parseInt(value[`repeating_meleetech_${rowid}_meleetech-cost`]) > parseInt(value[`weapon-rem-dur`]))
|
|
{
|
|
setAttrs({
|
|
techwarning: "WARNING: Weapon will break if tech is used!"
|
|
});
|
|
return
|
|
}//END IF ELSE
|
|
|
|
setAttrs({
|
|
[`weapon-rem-dur`]: value[`weapon-rem-dur`] - value[`repeating_meleetech_${rowid}_meleetech-cost`],
|
|
[`dur-bar`]: Math.floor(((value[`weapon-rem-dur`] - value[`repeating_meleetech_${rowid}_meleetech-cost`])/value[`weapon-max-dur`])*5 + 1),
|
|
combo_counter: parseInt(value.combo_counter) + 1 || 1,
|
|
techwarning: ""
|
|
});
|
|
console.log(Math.floor(((value[`weapon-rem-dur`] - value[`repeating_meleetech_${rowid}_meleetech-cost`])/value[`weapon-max-dur`])*5 + 1));
|
|
return
|
|
}
|
|
if(parseInt(value[`repeating_meleetech_${rowid}_meleetech-cost`]) < 10)//combat tech tree
|
|
{
|
|
if(value[`repeating_meleetech_${rowid}_tech-bar`]!=="")
|
|
{
|
|
console.log(value[`repeating_meleetech_${rowid}_tech-bar`]);
|
|
setAttrs({
|
|
techwarning: "WARNING: Tech in Cooldown"
|
|
});
|
|
return
|
|
}
|
|
setAttrs({
|
|
[`repeating_meleetech_${rowid}_tech-bar`]: value[`repeating_meleetech_${rowid}_meleetech-cost`],
|
|
combo_counter: parseInt(value.combo_counter) + 1 || 1,
|
|
techwarning: ""
|
|
});
|
|
}
|
|
});
|
|
});
|
|
//equips armor and modules
|
|
on("clicked:equip-armor", ()=> {
|
|
|
|
getSectionIDs('repeating_armor', idArray => {
|
|
//console.log(idArray); //debugging
|
|
const foo = [];
|
|
let Mods = {
|
|
mod1: "",
|
|
mod2: "",
|
|
mod3: "",
|
|
mod4: "",
|
|
mod5: "",
|
|
"mod-cd1": "",
|
|
"modmax1": "",
|
|
"mod-cd2": "",
|
|
"modmax2": "",
|
|
"mod-cd3": "",
|
|
"modmax3": "",
|
|
"mod-cd4": "",
|
|
"modmax4": "",
|
|
"mod-cd5": "",
|
|
"modmax5": "",
|
|
['armor-totalttt']: 0,
|
|
['Disruption']: 0,
|
|
["armor-equipwarning"]: "Equipped"
|
|
};
|
|
var i =0;
|
|
idArray.forEach(id => {
|
|
foo.push(`repeating_armor_${id}_module-form`,
|
|
`repeating_armor_${id}_module-cooldown`,
|
|
`repeating_armor_${id}_module-cost`,
|
|
`repeating_armor_${id}_module-effect`,
|
|
`repeating_armor_${id}_module-turn-to-turn`);
|
|
});
|
|
|
|
const bar = ["armor-equipwarning","armor-basettt", "armor-disruption","armor-max-dur","Char_Level", "char_constitution", "char_resistance"];
|
|
foo.push.apply(foo, bar);
|
|
|
|
getAttrs(foo, v => {
|
|
if(v["armor-equipwarning"]!=="")
|
|
return
|
|
idArray.forEach(id => {
|
|
i++;
|
|
Mods[`mod${i}`] = [`Module Type: ${v[`repeating_armor_${id}_module-form`]}. Cooldown: ${v[`repeating_armor_${id}_module-cooldown`]}.\n
|
|
Cost: ${v[`repeating_armor_${id}_module-cost`]}. TTT: ${v[`repeating_armor_${id}_module-turn-to-turn`]}.\n
|
|
Effect: ${v[`repeating_armor_${id}_module-effect`]}.`];
|
|
Mods['armor-totalttt'] += parseInt(v[`repeating_armor_${id}_module-turn-to-turn`]);
|
|
Mods[`modmax${i}`] = v[`repeating_armor_${id}_module-cooldown`];
|
|
});
|
|
Mods['armor-current-dur'] = v['armor-max-dur'];
|
|
Mods['armor-totalttt'] += parseInt(v["armor-basettt"]);
|
|
Mods['Disruption'] = parseInt(v["armor-disruption"]) + parseInt(v["Char_Level"]) + (parseInt(v["char_resistance"]) + parseInt(v["char_constitution"]))*5;
|
|
setAttrs(Mods);
|
|
console.log(Mods['Disruption']);
|
|
});
|
|
Adjust_Energy();
|
|
});
|
|
});
|
|
|
|
on("change:repeating_armor:module-form", function(eventInfo) {
|
|
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
|
|
getAttrs([`repeating_armor_${rowid}_module-level`, "char_constitution", "armor-type"], v => {
|
|
|
|
let module = Defensive_Module(eventInfo.newValue, v[`repeating_armor_${rowid}_module-level`], v["armor-type"], v["char_constitution"]);
|
|
|
|
setAttrs({
|
|
[`repeating_armor_${rowid}_module-turn-to-turn`]: module.TTT,
|
|
[`repeating_armor_${rowid}_module-cooldown`]: module.CoolD,
|
|
[`repeating_armor_${rowid}_module-cost`]: module.Cost,
|
|
[`repeating_armor_${rowid}_module-effect`]: module.effect,
|
|
["armor-equipwarning"]: module.warn
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_armor:module-level", function(eventInfo) {
|
|
const rowid = eventInfo.sourceAttribute.split('_')[2];
|
|
//place dropdown to default "None" entry
|
|
setAttrs({[`repeating_armor_${rowid}_module-form`]: 'None'});
|
|
});
|
|
|
|
on('change:Energy_type', () => Adjust_Energy());
|
|
|
|
on('clicked:endTurn', ()=>{
|
|
var manna = true;
|
|
getSectionIDs('repeating_meleetech', techs => {
|
|
|
|
let cooldown = {
|
|
economy: 100,
|
|
blockedHits: 0,
|
|
guardWarningC: "",
|
|
guardWarningW: "",
|
|
};
|
|
const foo = [];
|
|
techs.forEach(id => {
|
|
foo.push(`repeating_meleetech_${id}_tech-bar`);
|
|
});
|
|
for(var i = 1; i<=5; i++)
|
|
{
|
|
foo.push(`mod-cd${i}`);
|
|
foo.push(`modmax${i}`);
|
|
cooldown[`mod-cd${i}`] = "";
|
|
}
|
|
|
|
const bar = ["Char_TTT","Energy_type","Char_Manna","Char_Demon","Char_Life_Force","combat_gg","weapon_gg","curCGG","curWGG","defense"];
|
|
foo.push.apply(foo, bar);
|
|
|
|
getAttrs(foo, value => {
|
|
//reduce cooldowns for each combat tech by 1 until zero
|
|
techs.forEach(id => {
|
|
if(parseInt(value[`repeating_meleetech_${id}_tech-bar`]) > 1)
|
|
cooldown[`repeating_meleetech_${id}_tech-bar`] = value[`repeating_meleetech_${id}_tech-bar`] - 1;
|
|
else
|
|
cooldown[`repeating_meleetech_${id}_tech-bar`] = "";
|
|
})
|
|
//increase gg meter for blocking
|
|
// guard is set to 100 after Guard break during next turn
|
|
|
|
var def = 50;
|
|
if(value.defense == "on")
|
|
def = 100;
|
|
|
|
if(value.combat_gg != "" && (def + value.curCGG) <= value.combat_gg)
|
|
cooldown.curCGG = (value.curCGG != 0) ? def + value.curCGG : 100;
|
|
else if(value.combat_gg != "")
|
|
cooldown.curCGG = (value.curCGG != 0) ? value.combat_gg : 100;
|
|
|
|
if(value.weapon_gg != "" && (def + value.curWGG) <= value.weapon_gg)
|
|
cooldown.curWGG = (value.curWGG != 0) ? def + value.curWGG : 100;
|
|
else if(value.weapon_gg != "")
|
|
cooldown.curWGG = (value.curWGG != 0) ? value.weapon_gg : 100;
|
|
|
|
console.log(value.curWGG);
|
|
console.log(value.curCGG);
|
|
//reduce cooldown for each armor mod
|
|
for(var i = 1; i<=5; i++)
|
|
{
|
|
if(value[`modmax${i}`]!=="")
|
|
if(value[`mod-cd${i}`] > 1)
|
|
cooldown[`mod-cd${i}`] = value[`mod-cd${i}`] - 1;
|
|
}
|
|
|
|
if(value.Energy_type==="necroforce") //if using necro, no manna is consumed but all armor ceases to operate - INCOMPLETE
|
|
{
|
|
cooldown.Char_Life_Force = parseInt(value.Char_Life_Force) - value.Char_TTT;
|
|
setAttrs(cooldown);
|
|
}
|
|
else if(value.Energy_type==="Demon") //if using demon, TTT will reduce Demon pool
|
|
{
|
|
if(parseInt(value.Char_Demon) < parseInt(value.Char_TTT))
|
|
{
|
|
cooldown.Char_Demon = 0;
|
|
manna = false;
|
|
}
|
|
else
|
|
cooldown.Char_Demon = value.Char_Demon - value.Char_TTT;
|
|
setAttrs(cooldown);
|
|
} else //using just manna, TTT will reduce Manna pool
|
|
{
|
|
if(parseInt(value.Char_Manna) < parseInt(value.Char_TTT))
|
|
{
|
|
cooldown.Char_Manna = 0;
|
|
manna = false;
|
|
}
|
|
else
|
|
cooldown.Char_Manna = value.Char_Manna - value.Char_TTT;
|
|
setAttrs(cooldown);
|
|
}
|
|
});
|
|
Adjust_Energy(manna);//change stats if manna/demon reaches zero
|
|
});
|
|
});
|
|
|
|
on('clicked:AddLevel', function() {
|
|
|
|
getAttrs(["Char_Level"], function(value){
|
|
setAttrs({
|
|
Char_Level: ((parseInt(value.Char_Level)+1) || 1)
|
|
});
|
|
});
|
|
});
|
|
|
|
on('clicked:Add10Level', function() {
|
|
|
|
getAttrs(["Char_Level"], function(value){
|
|
setAttrs({
|
|
Char_Level: ((parseInt(value.Char_Level)+10) || 10)
|
|
});
|
|
});
|
|
});
|
|
|
|
on('clicked:ResetLevel', function() {
|
|
setAttrs({
|
|
Char_Level: 1
|
|
});
|
|
});
|
|
|
|
on('change:Char_Race', function(eventInfo) {
|
|
//gather data about race base stats before adjusting all derivatives
|
|
let OldBase = Adjust_Race(eventInfo.previousValue);
|
|
let NewBase = Adjust_Race(eventInfo.newValue);
|
|
|
|
getAttrs(["equipped-weapon-style","equipped-weapon","Char_Manna_Training","Char_Level","armor-disruption","armor-totalttt","spell_points","skill_points","Exspell_points","Exskill_points","powerstate"], function (value) {
|
|
var dis = 0;
|
|
if(value["armor-disruption"]!=="")
|
|
dis = parseInt(value["armor-disruption"]);
|
|
var TTT = 0;
|
|
|
|
if(value.powerstate == 1)
|
|
TTT = 5 + value["armor-totalttt"];
|
|
else if(value.powerstate == .5)
|
|
TTT = (5 + value["armor-totalttt"]) *0.5;
|
|
else if(value.powerstate == 1.25)
|
|
TTT = (5 + value["armor-totalttt"]) *2;
|
|
|
|
//let newAll = Adjust_Energy(energies);
|
|
|
|
setAttrs({
|
|
char_combat_arts: NewBase.Dis*5 + NewBase.CA,
|
|
char_weapon_arts: NewBase.Dis*5 + NewBase.WA,
|
|
char_tech: NewBase.Int*5 + NewBase.TE,
|
|
char_magitech: NewBase.Int*5 + NewBase.MT,
|
|
char_constitution: NewBase.Con,
|
|
char_discipline: NewBase.Dis,
|
|
char_resistance: NewBase.Res,
|
|
char_intelligence: NewBase.Int,
|
|
catalyst_mental: ((Math.floor(value.Char_Level/2)) || 0) + NewBase.Me,
|
|
catalyst_body: ((Math.floor(value.Char_Level/2)) || 0) + NewBase.Be,
|
|
catalyst_spirit: ((Math.floor(value.Char_Level/2)) || 0) + NewBase.Se,
|
|
catalyst_memory: ((Math.floor(value.Char_Level/2)) || 0) + NewBase.Mem,
|
|
catalyst_demon: ((Math.floor(value.Char_Level/2)) || 0),
|
|
catalyst_necro: ((Math.floor(value.Char_Level/2)) || 0),
|
|
Char_Life_Force: parseInt(value.Char_Level) + 100 + (NewBase.Con* 10),
|
|
Char_Manna: parseInt(value.Char_Level) + 100 + parseInt(value.Char_Manna_Training),
|
|
Char_Demon: 0,
|
|
halfbreed: "",
|
|
spell_points: (value.Char_Level*NewBase.SPG) + NewBase.SPB - ((value.Char_Level*OldBase.SPG) + OldBase.SPB - value.spell_points),
|
|
skill_points: (value.Char_Level*NewBase.SKG) + NewBase.SKB - ((value.Char_Level*OldBase.SKG) + OldBase.SKB - value.skill_points),
|
|
Disruption: parseInt(value.Char_Level) + dis + (NewBase.Res + NewBase.Con)*5,
|
|
Pain: parseInt(value.Char_Level) + (NewBase.Con + NewBase.Dis)*10,
|
|
defend: "",
|
|
phasestep: "",
|
|
phasejump: "",
|
|
reflect: "",
|
|
absorb: "",
|
|
barrier: "",
|
|
cutter: "",
|
|
Energy_type: "",
|
|
Age: NewBase.Age,
|
|
Difficulty: 1,
|
|
Power: 0,
|
|
Endurance: 0,
|
|
Speed: 0,
|
|
Flight: 0,
|
|
Char_TTT: TTT
|
|
}, {silent: true});
|
|
//attempt to deal with asynchrononicity. Silent:true fails if setAttrs is called too quickly
|
|
//Adjust_Battle(value["equipped-weapon"], value["equipped-weapon-style"]);
|
|
});
|
|
});
|
|
|
|
on('change:Char_Level', function(eventInfo){
|
|
getAttrs(["char_constitution","char_discipline","char_resistance","Char_Manna_Training","Char_Race","armor-disruption","spell_points","skill_points"], function(value){
|
|
|
|
let Base = Adjust_Race(value.Char_Race);
|
|
var dis = 0;
|
|
if(value["armor-disruption"]!=="")
|
|
dis = parseInt(value["armor-disruption"]) || 0;
|
|
console.log(eventInfo.newValue);
|
|
|
|
setAttrs({
|
|
catalyst_mental: ((Math.floor(parseInt(eventInfo.newValue)/2)) || 0) + Base.Me,
|
|
catalyst_body: ((Math.floor(parseInt(eventInfo.newValue)/2)) || 0) + Base.Be,
|
|
catalyst_spirit: ((Math.floor(parseInt(eventInfo.newValue)/2)) || 0) + Base.Se,
|
|
catalyst_memory: ((Math.floor(parseInt(eventInfo.newValue)/2)) || 0) + Base.Mem,
|
|
catalyst_demon: ((Math.floor(parseInt(eventInfo.newValue)/2)) || 0),
|
|
catalyst_necro: ((Math.floor(parseInt(eventInfo.newValue)/2)) || 0),
|
|
Char_Life_Force: parseInt(eventInfo.newValue) + 100 + (value.char_constitution * 10),
|
|
Char_Manna: parseInt(eventInfo.newValue) + 100 + value.Char_Manna_Training,
|
|
spell_points: value.spell_points + ((parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue))*Base.SPG),
|
|
skill_points: value.skill_points + ((parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue))*Base.SKG),
|
|
Disruption: parseInt(eventInfo.newValue) + dis + ((value.char_resistance + value.char_constitution) *5),
|
|
Pain: parseInt(eventInfo.newValue) + (parseInt(value.char_discipline) + parseInt(value.char_resistance)) * 10
|
|
}, {silent:true});
|
|
Adjust_Energy();
|
|
});
|
|
});
|
|
|
|
Vitalize=function()
|
|
{
|
|
let vital = {};
|
|
const stats = ["combat_gg","weapon_gg","char_constitution","char_discipline","char_resistance","Char_Level","weapon-max-dur","armor-max-dur","armor-disruption","Char_Manna_Training"];
|
|
//const foo = [];
|
|
|
|
getSectionIDs('repeating_meleetech', techs => {
|
|
techs.forEach(id => {//reset tech cooldown
|
|
vital[`repeating_meleetech_${id}_tech-bar`] = "";
|
|
|
|
})
|
|
|
|
for(var i = 1; i<=5; i++)//reset defensive mod cooldown
|
|
vital[`mod-cd${i}`] = "";
|
|
|
|
//foo.push.apply(foo, stats);
|
|
//restore manna, life-force, pain, disruption, GG, and dur to max
|
|
//spirit & soul are not restored with vitalize
|
|
getAttrs(stats, value => {
|
|
var dis = 0;
|
|
if(value["armor-disruption"]!=="")
|
|
dis = parseInt(value["armor-disruption"]) || 0;
|
|
|
|
//reset gg meter for blocking
|
|
vital.curCGG = (value.combat_gg != "") ? value.combat_gg : 0;
|
|
vital.curWGG = (value.weapon_gg != "") ? value.weapon_gg : 0;
|
|
vital.blockedHits = 0;
|
|
vital.guardWarningC = "";
|
|
vital.guardWarningW = "";
|
|
vital.Char_Manna = value.Char_Manna_Training + 100 + value.Char_Level;
|
|
vital.Char_Life_Force = 100 + value.Char_Level + (value.char_constitution * 10);
|
|
vital.Disruption = value.Char_Level + dis + (value.char_constitution + value.char_resistance) * 5;
|
|
vital.Pain = value.Char_Level + (value.char_constitution + value.char_discipline) * 10;
|
|
vital["weapon-current-dur"] = value["weapon-max-dur"];
|
|
vital["armor-current-dur"] = value["armor-max-dur"];
|
|
vital.economy = 100;
|
|
|
|
setAttrs(vital);
|
|
});
|
|
});
|
|
//Adjust_Energy();
|
|
};
|
|
|
|
Defensive_Module=function(New, Mlevel, Atype, Con)
|
|
{
|
|
let Module = {
|
|
TTT: "",
|
|
CoolD: "",
|
|
Cost: "",
|
|
effect: "",
|
|
warn: ""
|
|
};
|
|
var level = parseInt(Mlevel);
|
|
//console.log(New);
|
|
switch(New)
|
|
{
|
|
case "N": //No module selected
|
|
break;
|
|
case "XSB": //Speed Boost Module
|
|
if(level != 2 && level != 3 && level != 5 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2,3,5, or 6. ";
|
|
else if(Atype!=="A" && Atype!=="U")
|
|
Module.warn = "Error: Module Exclusive to Assault Type Armor. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 100;
|
|
Module.effect = "+1 Speed for 2 turns(Max of 4)";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 100;
|
|
Module.effect = "+1 Speed for 4 turns(Max of 4)";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 4;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 150;
|
|
Module.effect = "+2 Speed for 2 turns(Max of 6)";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 5;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 150;
|
|
Module.effect = "+2 Speed for 4 turns(Max of 6)";
|
|
break;
|
|
}
|
|
Module.ward = "";
|
|
}
|
|
break;
|
|
case "XB": //Barrier Module
|
|
if(Atype!=="V" && Atype!=="U")
|
|
Module.warn = "Error: Module Exclusive to Vigilant Type Armor. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 30;
|
|
Module.effect = "+50 Vit Shield";
|
|
break;
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 45;
|
|
Module.effect = "+100 Vit Shield";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 60;
|
|
Module.effect = "+150 Vit Shield";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 4;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 75;
|
|
Module.effect = "+200 Vit Shield";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 5;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 90;
|
|
Module.effect = "+250 Vit Shield";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 6;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 105;
|
|
Module.effect = "+300 Vit Shield";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "XER": //Emergency Reconstitution Module
|
|
if(level != 2 && level != 3 && level != 5 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2,3,5, or 6. ";
|
|
else if(Atype!=="V" && Atype!=="U")
|
|
Module.warn = "Error: Module Exclusive to Vigilant Type Armor. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 5;
|
|
Module.Cost = 150;
|
|
Module.effect = "Reconstitute 2 units of body mass";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 5;
|
|
Module.Cost = 250;
|
|
Module.effect = "Reconstitute 3 units of body mass";
|
|
break;
|
|
|
|
case 5:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 5;
|
|
Module.Cost = 350;
|
|
Module.effect = "Reconstitute 4 units of body mass";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 5;
|
|
Module.Cost = 450;
|
|
Module.effect = "Reconstitute 5 units of body mass";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "XJC": //Junction Cast Module
|
|
if(level != 2 && level != 4 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2, 4, or 6. ";
|
|
else if(Atype!=="C" && Atype!=="U")
|
|
Module.warn = "Error: Module Exclusive to Caster Type Armor. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 45;
|
|
Module.effect = "+100 Vit Shield";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 60;
|
|
Module.effect = "+150 Vit Shield";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 105;
|
|
Module.effect = "+300 Vit Shield";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "XSC": //Spell Charge Module
|
|
if(level != 1 && level != 3 && level != 5)
|
|
Module.warn = "Error: Module only compatible with Level: 1, 3, or 5. ";
|
|
else if(Atype!=="C" && Atype!=="U")
|
|
Module.warn = "Error: Module Exclusive to Caster Type Armor. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 1;
|
|
Module.Cost = 50;
|
|
Module.effect = "Charge a spell for up to 2 turns";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 1;
|
|
Module.Cost = 50;
|
|
Module.effect = "Charge a spell for up to 3 turns";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 1;
|
|
Module.Cost = 50;
|
|
Module.effect = "Charge a spell for up to 4 turns";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "C": //Counter Attack Module
|
|
if(level != 2 && level != 4 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2, 4, or 6. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 0;
|
|
Module.Cost = 30;
|
|
Module.effect = `Counter Attack: Base = ${parseInt(Con)*4} `;
|
|
break;
|
|
case 4:
|
|
Module.TTT = 4;
|
|
Module.CoolD = 0;
|
|
Module.Cost = 45;
|
|
Module.effect = `Counter Attack: Base = ${parseInt(Con)*6} `;
|
|
break;
|
|
case 6:
|
|
Module.TTT = 6;
|
|
Module.CoolD = 0;
|
|
Module.Cost = 60;
|
|
Module.effect = `Counter Attack: Base = ${parseInt(Con)*8} `;
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "GB": //Guard Boost Module
|
|
if(level != 2 && level != 4 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2, 4, or 6. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 20;
|
|
Module.effect = "+ 50 GG; block with armor";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 40;
|
|
Module.effect = "+ 100 GG; block with armor";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 60;
|
|
Module.effect = "+ 150 GG; block with armor";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 80;
|
|
Module.effect = "+ 200 GG; block with armor";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "GR": //Guard Regeneration Module
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 20;
|
|
Module.effect = "+25 GG a turn for 3 turns";
|
|
break;
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 40;
|
|
Module.effect = "+50 GG a turn for 3 turns";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 60;
|
|
Module.effect = "+75 GG a turn for 3 turns";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 4;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 80;
|
|
Module.effect = "+100 GG a turn for 3 turns";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 4;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 100;
|
|
Module.effect = "+125 GG a turn for 3 turns";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 4;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 120;
|
|
Module.effect = "+150 GG a turn for 3 turns";
|
|
break;
|
|
|
|
}
|
|
Module.warn = "";
|
|
break;
|
|
case "EB": //Evasion Boost Module
|
|
if(level > 5 )
|
|
Module.warn = "Error: Module only compatible with Levels up to 5. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 10;
|
|
Module.effect = "+30 Eva";
|
|
break;
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 20;
|
|
Module.effect = "+60 Eva";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 30;
|
|
Module.effect = "+90 Eva";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 40;
|
|
Module.effect = "+120 Eva";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 50;
|
|
Module.effect = "+150 Eva";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "RS": //Restore Spirit Module
|
|
if(level != 2 && level != 3 && level != 5 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2,3,5, or 6. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 6;
|
|
Module.Cost = 200;
|
|
Module.effect = "Recover 50 Spirit";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 6;
|
|
Module.Cost = 200;
|
|
Module.effect = "Recover 100 Spirit";
|
|
break;
|
|
|
|
case 5:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 6;
|
|
Module.Cost = 300;
|
|
Module.effect = "Recover 150 Spirit";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 6;
|
|
Module.Cost = 300;
|
|
Module.effect = "Recover 200 Spirit";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "NS": //Nueral Stress Relief Module
|
|
if(level > 5 )
|
|
Module.warn = "Error: Module only compatible with Levels upt o 5. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 25;
|
|
Module.effect = "Reduce Pain by 30";
|
|
break;
|
|
case 2:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 30;
|
|
Module.effect = "Reduce Pain by 60";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 35;
|
|
Module.effect = "Reduce Pain by 90";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 40;
|
|
Module.effect = "Reduce Pain by 120";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 45;
|
|
Module.effect = "Reduce Pain by 150";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "EG": //Enhanced Gather Module
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 0;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 20;
|
|
Module.effect = "Gather 10 Extra Manna. +1 Saturation";
|
|
break;
|
|
case 2:
|
|
Module.TTT = 0;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 30;
|
|
Module.effect = "Gather 30 Extra Manna. +2 Saturation";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 0;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 40;
|
|
Module.effect = "Gather 50 Extra Manna. +3 Saturation";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 0;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 50;
|
|
Module.effect = "Gather 70 Extra Manna. +4 Saturation";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 0;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 60;
|
|
Module.effect = "Gather 90 Extra Manna. +5 Saturation";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 0;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 70;
|
|
Module.effect = "Gather 110 Extra Manna. +6 Saturation";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
break;
|
|
case "SR": //Saturation Replenishment Module
|
|
if(level != 1 && level != 3 && level != 5)
|
|
Module.warn = "Error: Module only compatible with Level: 1, 3, or 5. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 35;
|
|
Module.effect = "Reduce Saturation by 10";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 70;
|
|
Module.effect = "Reduce Saturation by 15";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 5;
|
|
Module.Cost = 105;
|
|
Module.effect = "Reduce Saturation by 20";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "RA": //Repair Armor Module
|
|
if(level != 2 && level != 3 && level != 5 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2,3,5, or 6. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 0;
|
|
Module.effect = "Restore 25% Max durability";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 0;
|
|
Module.effect = "Restore 50% Max durability";
|
|
break;
|
|
|
|
case 5:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 0;
|
|
Module.effect = "Restore 75% Max durability";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 1;
|
|
Module.CoolD = 8;
|
|
Module.Cost = 0;
|
|
Module.effect = "Restore 100% Max durability";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
case "RH": //Restore Health Module
|
|
switch(parseInt(level))
|
|
{
|
|
case 1:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 20;
|
|
Module.effect = "+25 Life-Force";
|
|
break;
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 2;
|
|
Module.Cost = 40;
|
|
Module.effect = "+50 Life-Force";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 60;
|
|
Module.effect = "+75 Life-Force";
|
|
break;
|
|
case 4:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 80;
|
|
Module.effect = "+100 Life-Force";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 100;
|
|
Module.effect = "+125 Life-Force";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 3;
|
|
Module.CoolD = 4;
|
|
Module.Cost = 120;
|
|
Module.effect = "+150 Life-Force";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
break;
|
|
case "DP": //Disruption Purge Module
|
|
if(level != 2 && level != 3 && level != 5 && level != 6)
|
|
Module.warn = "Error: Module only compatible with Level: 2,3,5, or 6. ";
|
|
else
|
|
{
|
|
switch(parseInt(level))
|
|
{
|
|
case 2:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 50;
|
|
Module.effect = "Remove 50 Disruption";
|
|
break;
|
|
case 3:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 75;
|
|
Module.effect = "Remove 100 Disruption";
|
|
break;
|
|
case 5:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 100;
|
|
Module.effect = "Remove 150 Disruption";
|
|
break;
|
|
case 6:
|
|
Module.TTT = 2;
|
|
Module.CoolD = 3;
|
|
Module.Cost = 125;
|
|
Module.effect = "Remove 200 Disruption";
|
|
break;
|
|
}
|
|
Module.warn = "";
|
|
}
|
|
break;
|
|
}
|
|
//console.log(Object.keys(Module));
|
|
return Module
|
|
};
|
|
|
|
Adjust_Race=function(Race)
|
|
{
|
|
let Base = {};
|
|
switch(Race)
|
|
{
|
|
case "Ciaha":
|
|
Base.Con = 3;
|
|
Base.Dis = 2;
|
|
Base.Res = 0;
|
|
Base.Int = 1;
|
|
Base.CA = 10;
|
|
Base.WA = 15;
|
|
Base.TE = 0;
|
|
Base.MT = 0;
|
|
Base.Be = 10;
|
|
Base.Me = 0;
|
|
Base.Se = 0;
|
|
Base.Mem = 5;
|
|
Base.SPG = 1;
|
|
Base.SKG = 2;
|
|
Base.SPB = 0;
|
|
Base.SKB = 10;
|
|
Base.Age = 20;
|
|
break;
|
|
case "Adept" :
|
|
Base.Con = 3;
|
|
Base.Dis = 2;
|
|
Base.Res = 0;
|
|
Base.Int = 1;
|
|
Base.CA = 15;
|
|
Base.WA = 5;
|
|
Base.TE = 0;
|
|
Base.MT = 5;
|
|
Base.Be = 5;
|
|
Base.Me = 0;
|
|
Base.Se = 10;
|
|
Base.Mem = 0;
|
|
Base.SPG = 1;
|
|
Base.SKG = 2;
|
|
Base.SPB = 0;
|
|
Base.SKB = 10;
|
|
Base.Age = 20;
|
|
break;
|
|
case "Magian" :
|
|
Base.Con = 1;
|
|
Base.Dis = 1;
|
|
Base.Res = 2;
|
|
Base.Int = 3;
|
|
Base.CA = 5;
|
|
Base.WA = 10;
|
|
Base.TE = 5;
|
|
Base.MT = 15;
|
|
Base.Be = 0;
|
|
Base.Me = 5;
|
|
Base.Se = 0;
|
|
Base.Mem = 5;
|
|
Base.SPG = 2;
|
|
Base.SKG = 1;
|
|
Base.SPB = 30;
|
|
Base.SKB = 0;
|
|
Base.Age = 20;
|
|
break;
|
|
case "Arbiter" :
|
|
Base.Con = 1;
|
|
Base.Dis = 1;
|
|
Base.Res = 1;
|
|
Base.Int = 3;
|
|
Base.CA = 5;
|
|
Base.WA = 10;
|
|
Base.TE = 15;
|
|
Base.MT = 5;
|
|
Base.Be = 0;
|
|
Base.Me = 10;
|
|
Base.Se = 0;
|
|
Base.Mem = 0;
|
|
Base.SPG = 1.5;
|
|
Base.SKG = 1.5;
|
|
Base.SPB = 5;
|
|
Base.SKB = 5;
|
|
Base.Age = 20;
|
|
break;
|
|
case "Necrian" :
|
|
Base.Con = 1;
|
|
Base.Dis = 1;
|
|
Base.Res = 3;
|
|
Base.Int = 2;
|
|
Base.CA = 10;
|
|
Base.WA = 10;
|
|
Base.TE = 0;
|
|
Base.MT = 10;
|
|
Base.Be = 5;
|
|
Base.Me = 5;
|
|
Base.Se = 5;
|
|
Base.Mem = 5;
|
|
Base.SPG = 1.5;
|
|
Base.SKG = 1.5;
|
|
Base.SPB = 0;
|
|
Base.SKB = 0;
|
|
Base.Age = 20;
|
|
break;
|
|
case "Celestial" :
|
|
Base.Con = 7;
|
|
Base.Dis = 7;
|
|
Base.Res = 7;
|
|
Base.Int = 7;
|
|
Base.CA = 30;
|
|
Base.WA = 30;
|
|
Base.TE = 0;
|
|
Base.MT = 50;
|
|
Base.Be = -10;
|
|
Base.Me = -10;
|
|
Base.Se = -10;
|
|
Base.Mem = -10;
|
|
Base.SPG = .5;
|
|
Base.SKG = .5;
|
|
Base.SPB = 0;
|
|
Base.SKB = 0;
|
|
Base.Age = 0;
|
|
break;
|
|
};
|
|
|
|
Base.R=Race;
|
|
return Base
|
|
};
|
|
|
|
Adjust_Battle=function(weapon, style)
|
|
{
|
|
//weapon and style are rowids or "" if not previously assigned
|
|
//console.log(weapon);
|
|
//console.log(style);
|
|
|
|
const weaponAttrs = [`repeating_weapons_${weapon}_weapon-name`,
|
|
`repeating_weapons_${weapon}_weapon-req`,
|
|
`repeating_weapons_${weapon}_weapon-stress`,
|
|
`repeating_weapons_${weapon}_weapon-current-dur`,
|
|
`repeating_weapons_${weapon}_weapon-maximum-dur`,
|
|
`repeating_weapons_${weapon}_weapon-base`,
|
|
`repeating_weapons_${weapon}_weapon-pscaling`,
|
|
`repeating_weapons_${weapon}_weapon-nscaling`,
|
|
`repeating_weapons_${weapon}_weapon-acc`,
|
|
`repeating_weapons_${weapon}_weapon-type`];
|
|
|
|
const styleAttrs = [`repeating_weapon-styles_${style}_style-name`,
|
|
`repeating_weapon-styles_${style}_style-acc`,
|
|
`repeating_weapon-styles_${style}_style-eva`,
|
|
`repeating_weapon-styles_${style}_style-gg`];
|
|
|
|
const styleComp = [`repeating_weapon-styles_${style}_style-S`,
|
|
`repeating_weapon-styles_${style}_style-H`,
|
|
`repeating_weapon-styles_${style}_style-SS`,
|
|
`repeating_weapon-styles_${style}_style-D`,
|
|
`repeating_weapon-styles_${style}_style-P`,
|
|
`repeating_weapon-styles_${style}_style-PS`,
|
|
`repeating_weapon-styles_${style}_style-HH`,
|
|
`repeating_weapon-styles_${style}_style-U`,
|
|
`repeating_weapon-styles_${style}_style-SH`];
|
|
|
|
const getArray = ["char_constitution","char_discipline","char_weapon_arts",
|
|
"Power"];
|
|
|
|
//test to make certain if either weapon or style is blank
|
|
if(weapon==="")
|
|
return
|
|
else
|
|
getArray.push.apply(getArray, weaponAttrs);
|
|
if(style==="")
|
|
return
|
|
else
|
|
{
|
|
getArray.push.apply(getArray, styleAttrs);
|
|
getArray.push.apply(getArray, styleComp);
|
|
}
|
|
|
|
getAttrs(getArray, function(battle) {
|
|
const styleTypes = [];
|
|
var T = true;
|
|
var i = 0;
|
|
styleComp.forEach(type => {
|
|
//console.log(type); // debugging
|
|
//console.log(Object.values(battle));
|
|
if(battle[`${type}`]!="0")
|
|
{
|
|
styleTypes.push(battle[`${type}`]);
|
|
i++;
|
|
}
|
|
});//console.log(styleTypes);
|
|
if(i==0)
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapon-styles_${style}_weapon-style-warning`]: "WARNING: Missing Type Compatibility",
|
|
sheetTab: "styles"
|
|
});
|
|
T = false;
|
|
return
|
|
}
|
|
if(battle[`repeating_weapons_${weapon}_weapon-req`] > battle["char_constitution"])
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${weapon}_weapon-equipwarning`]: "WARNING: Inadequate constitution",
|
|
sheetTab: "equipment"
|
|
});
|
|
return
|
|
}
|
|
|
|
var scaling = [battle[`repeating_weapons_${weapon}_weapon-pscaling`], battle[`repeating_weapons_${weapon}_weapon-nscaling`]];
|
|
|
|
styleTypes.forEach(type => {
|
|
if(battle[`repeating_weapons_${weapon}_weapon-type`]===type)
|
|
T = false;
|
|
})
|
|
|
|
if(battle[`repeating_weapons_${weapon}_weapon-current-dur`]==0)
|
|
{
|
|
setAttrs({
|
|
[`repeating_weapons_${weapon}_weapon-equipwarning`]: "WARNING: Weapon Broken",
|
|
sheetTab: "equipment"
|
|
});
|
|
return
|
|
}
|
|
|
|
if(T==true)
|
|
i = "WARNING: Weapon type not supported by style.";
|
|
else
|
|
i = "";
|
|
|
|
if(battle["Power"] > battle[`repeating_weapons_${weapon}_weapon-stress`])
|
|
i += `\nWARNING: Weapon Stress Tolerance exceeded. Using the weapon (attack/blocking) with too much Power will destroy it.`;
|
|
|
|
setAttrs({
|
|
weapon: battle[`repeating_weapons_${weapon}_weapon-name`],
|
|
weapon_base: battle[`repeating_weapons_${weapon}_weapon-base`],
|
|
weapon_acc: parseInt(battle[`repeating_weapons_${weapon}_weapon-acc`]) + parseInt(battle[`repeating_weapon-styles_${style}_style-acc`]) + 100 + parseInt(battle["char_weapon_arts"]),
|
|
weapon_eva: parseInt(battle[`repeating_weapon-styles_${style}_style-eva`]) + (parseInt(battle["char_discipline"]) *5),
|
|
weapon_gg: parseInt(battle[`repeating_weapon-styles_${style}_style-gg`]) + (parseInt(battle["char_discipline"]) *5),
|
|
weapon_style: battle[`repeating_weapon-styles_${style}_style-name`],
|
|
[`weapon-stress`]: battle[`repeating_weapons_${weapon}_weapon-stress`],
|
|
[`weapon-type`]: battle[`repeating_weapons_${weapon}_weapon-type`],
|
|
[`weapon-scaling`]: [`${scaling[0]}/${scaling[1]}`],
|
|
[`style-types`]: styleTypes.join(',') || "Error",
|
|
[`repeating_weapon-styles_${style}_weapon-style-warning`]: "",
|
|
[`repeating_weapons_${weapon}_weapon-equipwarning`]: "",
|
|
[`weapon-rem-dur`]: battle[`repeating_weapons_${weapon}_weapon-current-dur`]==="" ? battle[`repeating_weapons_${weapon}_weapon-maximum-dur`] : battle[`repeating_weapons_${weapon}_weapon-current-dur`],
|
|
[`weapon-max-dur`]: battle[`repeating_weapons_${weapon}_weapon-maximum-dur`],
|
|
[`weapon-warning`]: i
|
|
});
|
|
});
|
|
};
|
|
|
|
Adjust_Energy=function(manna = true)
|
|
{
|
|
var defensive_measures = {
|
|
defend: "",
|
|
phasestep: "",
|
|
phasejump: "",
|
|
reflect: "",
|
|
absorb: "",
|
|
barrier: "",
|
|
cutter: "",
|
|
};
|
|
|
|
var foo = ["catalyst_mental","catalyst_body","catalyst_spirit","catalyst_memory","catalyst_demon","catalyst_necro"];
|
|
var bar = ["Energy_type","powerstate", "armor-totalttt"];
|
|
//if(!energies.length)
|
|
bar.push.apply(bar,foo);
|
|
|
|
getAttrs(bar, function(value){
|
|
//get attrs turns array of attributes into object properties specified here as "value"
|
|
|
|
var Stats = {};// Empty javascript Object. Different from roll20 object
|
|
//Stats.Power = 15; Example assignment of empty javascript-object properties made without declaration. "use strict" dissallows this notation
|
|
|
|
if(value.powerstate == 1)
|
|
Stats.TTT = 5 + value["armor-totalttt"];
|
|
else if(value.powerstate == .5)
|
|
Stats.TTT = (5 + value["armor-totalttt"]) *0.5;
|
|
else if(value.powerstate == 1.25)
|
|
Stats.TTT = (5 + value["armor-totalttt"]) *2;
|
|
|
|
if(manna==false)//if out of manna/demonic essence
|
|
{
|
|
if(value.Energy_type!=="necroforce")
|
|
{
|
|
defensive_measures.Power = 0;
|
|
defensive_measures.Endurance = 0;
|
|
defensive_measures.Speed = 0;
|
|
defensive_measures.Flight = 0;
|
|
defensive_measures.Char_TTT = Stats.TTT;
|
|
}
|
|
setAttrs(defensive_measures);
|
|
return
|
|
}
|
|
|
|
|
|
switch(value.Energy_type){
|
|
case "Mental" :
|
|
switch((Math.floor((parseInt(value.catalyst_mental)*value.powerstate)/5))*5){
|
|
case 0 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 0;
|
|
break;
|
|
case 5 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 0;
|
|
break;
|
|
case 10 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 0;
|
|
break;
|
|
case 15 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 20 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 25 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 30 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 35 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 40 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 45 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 50 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 55 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 60 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 65 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 70 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 75 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 80 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 85 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 90 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 95 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 100 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
};
|
|
break;
|
|
case "Spirit" :
|
|
switch((Math.floor((parseInt(value.catalyst_spirit)*value.powerstate)/5))*5){
|
|
case 0 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
break;
|
|
case 5 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 10 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 15 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 20 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 25 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 30 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 35 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 40 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 45 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 50 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 55 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 60 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 65 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 70 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 75 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 80 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 85 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 90 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 95 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 100 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
};
|
|
break;
|
|
case "Memory" :
|
|
switch((Math.floor((parseInt(value.catalyst_memory)*value.powerstate)/5))*5){
|
|
case 0 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 0;
|
|
break;
|
|
case 5 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 0;
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 10 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 0;
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 15 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 1;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 20 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 25 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 30 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 2;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 35 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 2;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 40 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 45 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 3;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 50 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 3;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 55 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 3;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 60 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 4;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 65 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 4;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 70 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 4;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 75 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 5;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 80 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 5;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 85 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 5;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 90 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 6;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 95 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 6;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 100 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 6;
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
};
|
|
break;
|
|
case "Body" :
|
|
switch((Math.floor((parseInt(value.catalyst_body)*value.powerstate)/5))*5){
|
|
case 0 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 0;
|
|
break;
|
|
case 5 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 0;
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 10 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 0;
|
|
Stats.Flight = 1;
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 15 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 20 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 25 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 2;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 30 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 35 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 40 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 3;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 45 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 50 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 55 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 4;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 60 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 65 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 70 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 5;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 75 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 80 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 85 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 6;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 90 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 95 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 100 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 7;
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.absorb = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
};
|
|
break;
|
|
case "necroforce" :
|
|
switch((Math.floor((parseInt(value.catalyst_necro)*value.powerstate)/5))*5){
|
|
case 0 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
break;
|
|
case 5 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 10 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 15 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
break;
|
|
case 20 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 25 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 30 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 35 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 40 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 45 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 50 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 55 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 60 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 65 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 70 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 75 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 80 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 85 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 90 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 95 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 100 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
};
|
|
break;
|
|
case "Demon" :
|
|
switch((Math.floor((parseInt(value.catalyst_demon)*value.powerstate)/5))*5){
|
|
case 0 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
break;
|
|
case 5 :
|
|
Stats.Power = 0;
|
|
Stats.Endurance = 0;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 10 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 1;
|
|
Stats.Flight = 1;
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 15 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 1;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
break;
|
|
case 20 :
|
|
Stats.Power = 1;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 25 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 2;
|
|
Stats.Flight = 2;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 30 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 2;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 35 :
|
|
Stats.Power = 2;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
break;
|
|
case 40 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 3;
|
|
Stats.Flight = 3;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 45 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 3;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
break;
|
|
case 50 :
|
|
Stats.Power = 3;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
break;
|
|
case 55 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 4;
|
|
Stats.Flight = 4;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 60 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 4;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 65 :
|
|
Stats.Power = 4;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 70 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 5;
|
|
Stats.Flight = 5;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 75 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 5;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 80 :
|
|
Stats.Power = 5;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 85 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 6;
|
|
Stats.Flight = 6;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 90 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 6;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 95 :
|
|
Stats.Power = 6;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
case 100 :
|
|
Stats.Power = 7;
|
|
Stats.Endurance = 7;
|
|
Stats.Speed = 7;
|
|
Stats.Flight = 7;
|
|
defensive_measures.phasejump = "active";
|
|
defensive_measures.phasestep = "active";
|
|
defensive_measures.defend = "active";
|
|
defensive_measures.reflect = "active";
|
|
defensive_measures.barrier = "active";
|
|
defensive_measures.absorb = "active";
|
|
break;
|
|
};
|
|
break;
|
|
}
|
|
//activate techniques
|
|
//wrote Stat switch case first and don't feel like changing it, so defensive measures becomes the object sent to setAttrs
|
|
defensive_measures.Power = Stats.Power;
|
|
defensive_measures.Endurance = Stats.Endurance;
|
|
defensive_measures.Speed = Stats.Speed;
|
|
defensive_measures.Flight = Stats.Flight;
|
|
defensive_measures.Char_TTT = Stats.TTT;
|
|
|
|
setAttrs(defensive_measures);
|
|
});
|
|
};
|
|
|
|
</script>
|