Only War (Enhanced) code improvements (#6960)

* refactoring and small corrections

changed page # in Advancements tab to type 'text'

code refactoring for carry-capacity switch statement and insanity/corruption range checks

fixed typo in sheet.json

* improved CSS, refactoring

changed "Page #" in the Advancements tab to input type: text
refactored range check for Insanity/Corruption
refactored Unnatural Characteristics styling
fixed incorrect comment in carryweight sheetworker
improved css grid for armor display overall
removed css grid in armor display cells
Added disclaimer next to Efffective Psy Rating
Added WIP framework for sheetworker psykana calculations
This commit is contained in:
johnmoney-code
2020-07-13 11:04:58 -05:00
committed by GitHub
parent 79201decae
commit 37a862bf58
3 changed files with 219 additions and 129 deletions
+38 -58
View File
@@ -278,31 +278,32 @@ _____________ start of grid structure for unnatural characteristics, size dropdo
.sheet-unnat_centering { grid-area: e1; margin-left: 50px; }
.sheet-unnat_centering_container {
display: grid;
grid-template-columns: auto auto auto;
justify-items:center;
grid-template-columns: 1fr 1fr 1fr;
grid-template-areas:
'e0 e1 e2';
'. e1 .';
}
.sheet-mythicgs_width { width: 40px; }
.sheet-mythicgs1 { grid-area: amy1; font-size: 15px; font-family: inherit; letter-spacing: 0px; text-align: center; }
.sheet-mythicgs2 { grid-area: amy2; z-index: 1; position: relative; }
.sheet-mythicgs3 { grid-area: amy3; z-index: 1; position: relative; }
.sheet-mythicgs4 { grid-area: amy4; z-index: 1; position: relative; }
.sheet-mythicgs5 { grid-area: amy5; z-index: 1; position: relative; }
.sheet-mythicgs6 { grid-area: amy6; z-index: 1; position: relative; }
.sheet-mythicgs7 { grid-area: amy7; z-index: 1; position: relative; }
.sheet-mythicgs8 { grid-area: amy8; z-index: 1; position: relative; }
.sheet-mythicgs9 { grid-area: amy9; z-index: 1; position: relative; }
.sheet-mythicgs11 { grid-area: amy10; z-index: 1; position: relative; }
.sheet-mythicgs12 { grid-area: amy11; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs13 { grid-area: amy12; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs14 { grid-area: amy13; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs15 { grid-area: amy14; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs16 { grid-area: amy15; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs17 { grid-area: amy16; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs18 { grid-area: amy17; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs19 { grid-area: amy18; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-mythicgs20 { grid-area: amy19; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs_width { width: 40px; }
.sheet-unnatgs1 { grid-area: amy1; font-size: 15px; font-family: inherit; letter-spacing: 0px; text-align: center; }
.sheet-unnatgs2 { grid-area: amy2; z-index: 1; position: relative; }
.sheet-unnatgs3 { grid-area: amy3; z-index: 1; position: relative; }
.sheet-unnatgs4 { grid-area: amy4; z-index: 1; position: relative; }
.sheet-unnatgs5 { grid-area: amy5; z-index: 1; position: relative; }
.sheet-unnatgs6 { grid-area: amy6; z-index: 1; position: relative; }
.sheet-unnatgs7 { grid-area: amy7; z-index: 1; position: relative; }
.sheet-unnatgs8 { grid-area: amy8; z-index: 1; position: relative; }
.sheet-unnatgs9 { grid-area: amy9; z-index: 1; position: relative; }
.sheet-unnatgs11 { grid-area: amy10; z-index: 1; position: relative; }
.sheet-unnatgs12 { grid-area: amy11; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs13 { grid-area: amy12; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs14 { grid-area: amy13; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs15 { grid-area: amy14; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs16 { grid-area: amy15; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs17 { grid-area: amy16; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs18 { grid-area: amy17; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs19 { grid-area: amy18; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-unnatgs20 { grid-area: amy19; font-family: inherit; font-size: 14px; text-align: center; }
.sheet-characteristics_unnat {
display: grid;
@@ -746,53 +747,32 @@ display: inline-block;
}
.sheet-armor_display_gs1 { grid-area: ad1; }
.sheet-armor_display_grid1 {
display: grid;
width: 300px;
grid-template-columns: 0% auto 3%;
grid-template-areas:
'ad0 ad1 ad0';
}
.sheet-armor_display_gs2 { grid-area: ad2; }
.sheet-armor_display_gs3 { grid-area: ad3; }
.sheet-armor_display_gs4 { grid-area: ad4; }
.sheet-armor_display_grid2 {
.sheet-armor_display_grid1 {
display: grid;
width: 300px;
grid-template-columns: 33% auto 33%;
justify-items: center;
align-content: space-around;
grid-template-columns: 1fr 1fr 1fr;
column-gap: 10px;
row-gap: 15px;
grid-template-areas:
'. ad1 .'
'ad2 ad3 ad4';
}
.sheet-armor_display_gs5 { grid-area: ad5; }
.sheet-armor_display_gs6 { grid-area: ad6; }
.sheet-armor_display_grid3 {
.sheet-armor_display_grid2 {
display: grid;
width: 300px;
grid-template-columns: 50% 50%;
justify-items: center;
grid-template-columns: 1fr 2fr 2fr 1fr;
column-gap: 15px;
grid-template-areas:
'ad5 ad6';
'. ad5 ad6 .';
}
.sheet-armor_cell_gs1 { grid-area: ae1; font-size: 12pt; width: 80%; text-align: center; align-self: center; }
.sheet-armor_cell_gs2 { grid-area: ae2; font-size: 12pt; width: 80%; text-align: center; align-self: center; }
.sheet-armor_cell_gs3 { grid-area: ae3; font-size: 12pt; width: 80%; text-align: center; align-self: center; }
.sheet-armor_cell_gs4 { grid-area: ae4; font-size: 12pt; width: 80%; text-align: center; align-self: center; }
.sheet-armor_cell_grid {
display: grid;
align-items: center;
width: 60px;
grid-template-columns: 50px;
grid template-rows: 10px 10px 10px 10px;
grid-template-areas:
'ae1'
'ae2'
'ae3'
'ae4';
}
.sheet-equipment_cybernetics_grid {
margin: 0px 50.5px 0.6px 0px;
position: relative;
@@ -949,8 +929,8 @@ ______________________________ start of Psykana tab ____________________________
display: grid;
grid-template-columns: 39% 1% 60%;
grid-template-areas:
'e1 e0 e3'
'e2 e0 e3';
'e1 . e3'
'e2 . e3';
}
.sheet-psykana_info { grid-area: e1; background:#6E8B3D; border-radius: 10px; padding: 2px; margin-bottom: 5px; }
@@ -1048,7 +1028,7 @@ ______________________________ start of Psykana tab ____________________________
display: grid;
grid-template-columns: auto auto auto auto auto auto auto auto auto auto;
grid-template-areas:
'pa19 pa19 pa20 pa20 pa20 pa21 pa22 pa0 pa0 pa0';
'pa19 pa19 pa20 pa20 pa20 pa21 pa22 . . . ';
}
+180 -70
View File
@@ -27,7 +27,7 @@
<div class='gs13'>
<div><img name='logo' src='https://raw.githubusercontent.com/johnmoney-code/roll20-character-sheets/Only-War-Enhanced/Only-War-Enhanced/images/assets/guard.PNG' width='130' /></div>
</div>
<!-- fourth column of grid: right-side fields gs14-19 -->
<input name='attr_player_name' type='text' class='gs14' />
<input name='attr_appearance' type='text' class='gs15' placeholder='Gender, Age, Build, etc.' />
@@ -144,25 +144,25 @@
<div class='unnat_centering_container'>
<div class='unnat_centering'>
<div class='characteristics_unnat'>
<p class='mythicgs1'><b>Unnatural Characteristics</b></p>
<input name='attr_WS_unnat' type='text' value='0' class='mythicgs2 mythicgs_width' />
<input name='attr_BS_unnat' type='text' value='0' class='mythicgs3 mythicgs_width' />
<input name='attr_STR_unnat' type='text' value='0' class='mythicgs4 mythicgs_width' />
<input name='attr_TOU_unnat' type='text' value='0' class='mythicgs5 mythicgs_width' />
<input name='attr_AGI_unnat' type='text' value='0' class='mythicgs6 mythicgs_width' />
<input name='attr_INT_unnat' type='text' value='0' class='mythicgs7 mythicgs_width' />
<input name='attr_PER_unnat' type='text' value='0' class='mythicgs8 mythicgs_width' />
<input name='attr_WP_unnat' type='text' value='0' class='mythicgs9 mythicgs_width' />
<input name='attr_FEL_unnat' type='text' value='0' class='mythicgs10 mythicgs_width' />
<p class='mythicgs12'>WS</p>
<p class='mythicgs13'>BS</p>
<p class='mythicgs14'>STR</p>
<p class='mythicgs15'>TOU</p>
<p class='mythicgs16'>AGI</p>
<p class='mythicgs17'>INT</p>
<p class='mythicgs18'>PER</p>
<p class='mythicgs19'>WP</p>
<p class='mythicgs20'>FEL</p>
<p class='unnatgs1'><b>Unnatural Characteristics</b></p>
<input name='attr_WS_unnat' type='text' value='0' class='unnatgs2 unnatgs_width' />
<input name='attr_BS_unnat' type='text' value='0' class='unnatgs3 unnatgs_width' />
<input name='attr_STR_unnat' type='text' value='0' class='unnatgs4 unnatgs_width' />
<input name='attr_TOU_unnat' type='text' value='0' class='unnatgs5 unnatgs_width' />
<input name='attr_AGI_unnat' type='text' value='0' class='unnatgs6 unnatgs_width' />
<input name='attr_INT_unnat' type='text' value='0' class='unnatgs7 unnatgs_width' />
<input name='attr_PER_unnat' type='text' value='0' class='unnatgs8 unnatgs_width' />
<input name='attr_WP_unnat' type='text' value='0' class='unnatgs9 unnatgs_width' />
<input name='attr_FEL_unnat' type='text' value='0' class='unnatgs10 unnatgs_width' />
<p class='unnatgs12'>WS</p>
<p class='unnatgs13'>BS</p>
<p class='unnatgs14'>STR</p>
<p class='unnatgs15'>TOU</p>
<p class='unnatgs16'>AGI</p>
<p class='unnatgs17'>INT</p>
<p class='unnatgs18'>PER</p>
<p class='unnatgs19'>WP</p>
<p class='unnatgs20'>FEL</p>
</div>
</div>
</div>
@@ -171,7 +171,7 @@
<div class='characteristics_size_movement_carry'>
<div class='characteristics2_size'>
<p class='sizegs1 mythicgs_heading'><b>Size</b></p>
<p class='sizegs1 unnatgs_heading'><b>Size</b></p>
<select name='attr_size' class='sizegs2 full_width edge_padding'>
<option value='-3'>Miniscule (1)</option>
<option value='-2'>Puny (2)</option>
@@ -186,21 +186,21 @@
</select>
</div>
<div class='characteristics2_movement'>
<p class='movementgs1 mythicgs_heading'><b>Character Movement</b></p>
<input name='attr_half_move' type='text' class='movementgs2 mythicgs_width' readonly />
<input name='attr_full_move' type='text' class='movementgs3 mythicgs_width' readonly />
<input name='attr_charge_move' type='text' class='movementgs4 mythicgs_width' readonly />
<input name='attr_run_move' type='text' class='movementgs5 mythicgs_width' readonly />
<p class='movementgs1 unnatgs_heading'><b>Character Movement</b></p>
<input name='attr_half_move' type='text' class='movementgs2 unnatgs_width' readonly />
<input name='attr_full_move' type='text' class='movementgs3 unnatgs_width' readonly />
<input name='attr_charge_move' type='text' class='movementgs4 unnatgs_width' readonly />
<input name='attr_run_move' type='text' class='movementgs5 unnatgs_width' readonly />
<p class='movementgs6 '>Half</p>
<p class='movementgs7 '>Full</p>
<p class='movementgs8 '>Charge</p>
<p class='movementgs9 '>Run</p>
</div>
<div class='characteristics2_carry'>
<p class='carrygs1 mythicgs_heading'><b>Weight Capacity</b></p>
<input name='attr_carry' type='text' class='carrygs2 mythicgs_width' readonly />
<input name='attr_lift' type='text' class='carrygs3 mythicgs_width' readonly />
<input name='attr_push' type='text' class='carrygs4 mythicgs_width' readonly />
<p class='carrygs1 unnatgs_heading'><b>Weight Capacity</b></p>
<input name='attr_carry' type='text' class='carrygs2 unnatgs_width' readonly />
<input name='attr_lift' type='text' class='carrygs3 unnatgs_width' readonly />
<input name='attr_push' type='text' class='carrygs4 unnatgs_width' readonly />
<p class='carrygs5'>Carry</p>
<p class='carrygs6'>Lift</p>
<p class='carrygs7'>Push</p>
@@ -1119,21 +1119,20 @@
<br>
<!-- TODO: make the Armor Display come out more nicely. -->
<div class='equipment_armor_grid'>
<div class='equipment_armor_gs1 radius_border'>
<h3 class='radius_border_top'>Armor Display</h3>
<div class='armor_display_grid1'>
<div class='armor_display_gs1'>
<div class='armor_border armor_cell_grid'>
<div class='armor_cell_gs1'><b>Head</b></div>
<input class='armor_cell_gs2' name='attr_armor_head' type='number' value='0' />
<div class='armor_cell_gs3'><b>(1-10)</b></div>
<input class='armor_cell_gs4' name='attr_soak_head' type='number' readonly' />
<div class='armor_border equipment_armor_input'>
<p><b>Head</b></p>
<input name='attr_armor_head' type='number' value='0' />
<p><b>(1-10)</b></p>
<input name='attr_soak_head' type='number' readonly' />
</div>
</div>
</div>
<div class='armor_display_grid2'>
<div class='armor_display_gs2'>
<div class='armor_border equipment_armor_input'>
<p><b>Arm R</b></p>
@@ -1159,7 +1158,9 @@
</div>
</div>
</div>
<div class='armor_display_grid3'>
<br />
<br />
<div class='armor_display_grid2'>
<div class='armor_display_gs5'>
<div class='armor_border equipment_armor_input' >
<p><b>Leg R</b></p>
@@ -1176,8 +1177,8 @@
<input name='attr_soak_leg_left' type='number' readonly' />
</div>
</div>
</div>
</div>
</div>
<div class='equipment_armor_gs2 radius_border'>
<h3 class='radius_border_top'>Cybernetics</h3>
@@ -1296,10 +1297,10 @@
<div class='advancements_grid'>
<input class='advancements_grid_gs1' name='attr_advancement_nameL' type='text' placeholder='Write XP-costing item name here' />
<input class='advancements_grid_gs2' name='attr_advancement_costL' type='number' placeholder='XP Cost' />
<input class='advancements_grid_gs3' name='attr_advancement_pg#L' type='number' placeholder='Page #' />
<input class='advancements_grid_gs3' name='attr_advancement_pg#L' type='text' placeholder='Page #' />
<input class='advancements_grid_gs4' name='attr_advancement_nameR' type='text' placeholder='Write XP-costing item name here' />
<input class='advancements_grid_gs5' name='attr_advancement_costR' type='number' placeholder='XP Cost' />
<input class='advancements_grid_gs6' name='attr_advancement_pg#R' type='number' placeholder='Page #' />
<input class='advancements_grid_gs6' name='attr_advancement_pg#R' type='text' placeholder='Page #' />
<label class='advancements_grid_gs7'><input type='checkbox' name='attr_collapse' value='7' class='collapsible_entity_switch select_button hidden'><span class='select_text'>▼</span></label>
</div>
<input name='attr_collapse' type='checkbox' value='7' class='collapsible_entity_switch hidden' />
@@ -1366,8 +1367,8 @@
<div class='insanity_side ssc'>
<h3 class='radius_border_top'>Insanity</h3>
<div class='insanity_info'>
<input class='insanity_gs1' type='number' name='attr_insanity_pts' value='0'></input>
<input class='insanity_gs2' type='text' name='attr_insanity_degree' readonly></input>
<input class='insanity_gs1' type='number' name='attr_insanity_pts' value='0' />
<input class='insanity_gs2' type='text' name='attr_insanity_degree' readonly />
<div class='insanity_gs3'>Disorders</div>
<input name='attr_insanity_disorder_minor' type='text' placeholder='Minor Disorder' class='insanity_gs4 full_width border_none' />
<input name='attr_insanity_disorder_severe' type='text' placeholder='Severe Disorder' class='insanity_gs5 full_width border_none' />
@@ -1377,8 +1378,8 @@
<div class='corruption_side ssc'>
<h3 class='radius_border_top'>Corruption</h3>
<div class='corruption_info'>
<input class='corruption_gs1' type='number' name='attr_corruption_pts' value='0'></input>
<input class='corruption_gs2' type='text' name='attr_corruption_degree' readonly></input>
<input class='corruption_gs1' type='number' name='attr_corruption_pts' value='0' />
<input class='corruption_gs2' type='text' name='attr_corruption_degree' readonly />
<div class='corruption_gs3'>Malignancies and Mutations</div>
</div>
<div>
@@ -1405,34 +1406,48 @@
<div class='psykana_info_grid'>
<div class='psykana_info_gs1'>Class</div>
<select name='attr_psykana_class' class='psykana_info_gs2 full_width'>
<option value='0' selected='selected'>Bound</option>
<option value='1'>Unbound</option>
<option value='2'>Demonic</option>
<option value='1' selected='selected'>Bound</option>
<option value='2'>Unbound</option>
<option value='3'>Demonic</option>
</select>
<div class='psykana_info_gs3'>Limit</div>
<select name='attr_psykana_limit' class='psykana_info_gs4 full_width'>
<option value='0.5' selected='selected'>Fettered</option>
<option value='1'>Unfettered</option>
<option value='1 + @{psy_push}'>Push</option>
<option value='1' selected='selected'>Fettered</option>
<option value='2'>Unfettered</option>
<option value='3'>Push</option>
</select>
<div class='psykana_info_gs5'>Psy Rating</div>
<input class='psykana_info_gs6 full_width' type='number' name='attr_psy_rating'></input>
<input name='attr_psykana_limit' type='checkbox' value='1 + @{psy_push}' class='hidden hider' />
<input class='psykana_info_gs6 full_width' type='number' name='attr_psy_rating' />
<input name='attr_psykana_limit' type='checkbox' value='3' class='hidden hider' />
<div class='psykana_info_gs7'>Push Level</div>
<input name='attr_psykana_limit' type='checkbox' value='1 + @{psy_push}' class='hidden hider' />
<input class='psykana_info_gs8 full_width' type='number' value='1' name='attr_psy_push'></input>
<input name='attr_psykana_limit' type='checkbox' value='3' class='hidden hider' />
<input class='psykana_info_gs8 full_width' type='number' value='1' name='attr_psy_push' />
<div class='psykana_info_gs9'>Sustaining?</div>
<input class='psykana_info_gs10' name='attr_psykana_sustain' type='checkbox' value='1' />
<input name='attr_psykana_sustain' type='checkbox' value='1' class='hidden hider' />
<div class='psykana_info_gs11'># Powers</div>
<input name='attr_psykana_sustain' type='checkbox' value='1' class='hidden hider' />
<input class='psykana_info_gs12 full_width' type='number' value='1' name='attr_psykana_sustain_count'></input>
<input class='psykana_info_gs12 full_width' type='number' value='1' name='attr_psykana_sustain_count' />
<div class='psykana_info_gs13'>Effective PR</div>
<input class='psykana_info_gs14 full_width' type='number' value='ceil(@{psy_rating} * @{psykana_limit}) - @{psykana_sustain} * @{psykana_sustain_count}' name='attr_effective_psy_rating' disabled></input>
<input class='psykana_info_gs14 full_width' type='number' value='ceil(@{psy_rating} * @{psykana_limit}) - @{psykana_sustain} * @{psykana_sustain_count}' name='attr_effective_psy_rating' disabled />
<!--
<input class='psykana_info_gs14 full_width' type='number' name='attr_effective_psy_rating' readonly />
-->
<div class='psykana_info_gs15'>
(EPR * 5 not yet added to Focus Power Tests)
</div>
<!--
<div class='psykana_info_gs15'>Phenomena</div>
<input name='psykana_phenomena' class='psykana_info_gs16 full_width' type='number' readonly />
-->
</div>
</div>
@@ -1475,11 +1490,13 @@
<input class='psykana_ability_gs14 full_width' type='text' name='attr_P_action' />
<div class='psykana_ability_gs15'>Sustained</div>
<input class='psykana_ability_gs16 full_width' type='text' name='attr_P_sustained' />
<!-- TODO: add [[5 * @{effective_psy_rating}]] to the Cast roll once the sheetworker is debugged-->
<button class='psykana_ability_gs17 full_width clear' type='roll' value='@{to-gm}&{template:mythic} {{character= @{character_name}}} {{attack= }} {{weapon= @{P_name}}} {{roll=[[floor(( [[@{P_focus} + @{P_mod1} ]] + @{inlinemod-toggle} - 1d100)/10)]]}} @{settings_hitroll}' >Cast</button>
<button class='psykana_ability_gs18 full_width clear' type='roll' value='@{to-gm}&{template:mythic} {{character= @{character_name}}} {{type= @{P_type}}} {{weapon= @{P_name}}} {{damage=[[@{P_dam-roll}]] }} {{pen=[[@{P_pen}]] }} {{@{settings_weapondescription}=@{P_ability_r} }}' >DMG</button>
</div>
<div class='psykana_ability_grid4'>
<div class='psykana_ability_gs19'>Focus Power</div>
<!-- TODO: vertically align this dropdown -->
<select name='attr_P_focus' class='psykana_info_gs20 full_width'>
<option value='[[@{WP} + @{WP_advancement} ]]' selected='selected'>Willpower</option>
<option value='[[@{PER} + @{PER_advancement} ]]'>Perception</option>
@@ -1489,7 +1506,7 @@
<input class='psykana_ability_gs22 full_width' type='text' value='0' name='attr_P_mod1' />
</div>
<div>
<input name='attr_P_ability_r' type='text' placeholder='Special' class='full_width_49px border_none' />
<input name='attr_P_ability_r' type='text' placeholder='Disclaimer: 5 * Effective PR not yet counted in casting test' class='full_width_49px border_none' />
<label class='margin_adjust_wep'><input type='checkbox' name='attr_collapse' value='3' class='collapsible_entity_switch select_button hidden' /><span class='select_text radius_border_right_wep'>▼</span></label>
<label class='margin_adjust_wep2'><button type='roll' value='@{to-gm}&{template:mythic} {{name=@{P_name} }} {{description=@{P_desc_r} }}' class='hidden'></button><span class='select_text'>🗭</span></label>
<input name='attr_collapse' type='checkbox' value='3' class='collapsible_entity_switch hidden' />
@@ -1855,7 +1872,7 @@
full_move: (move_mod * 2),
charge_move: (move_mod * 3),
run_move: (move_mod * 6),
carry: (carry_calc * 1), //taking out the *1 will cause attr_carry to freeze when carry_calc is set to 1 or 0
carry: (carry_calc * 1), //taking out the * 1 seems to cause attr_carry to freeze when carry_mod is set to 1 or 0
lift: (carry_calc * 2),
push: (carry_calc * 4),
});
@@ -1955,27 +1972,27 @@
insanity_degree: ('Stable')
});
}
if (insanity_pts > 9 && insanity_pts <= 39) {
else if (insanity_pts <= 39) {
setAttrs({
insanity_degree: ('Unsettled')
});
}
if (insanity_pts > 39 && insanity_pts <= 59) {
else if (insanity_pts <= 59) {
setAttrs({
insanity_degree: ('Disturbed')
});
}
if (insanity_pts > 39 && insanity_pts <= 79) {
else if (insanity_pts <= 79) {
setAttrs({
insanity_degree: ('Unhinged')
});
}
if (insanity_pts > 79 && insanity_pts <= 99) {
else if (insanity_pts <= 99) {
setAttrs({
insanity_degree: ('Deranged')
});
}
if (insanity_pts > 99) {
else {
setAttrs({
insanity_degree: ('Terminally Insane')
});
@@ -1986,38 +2003,130 @@
corruption_degree: ('Pure')
});
}
if (corruption_pts > 0 && corruption_pts <= 30) {
else if (corruption_pts <= 30) {
setAttrs({
corruption_degree: ('Tainted')
});
}
if (corruption_pts > 30 && corruption_pts <= 60) {
else if (corruption_pts <= 60) {
setAttrs({
corruption_degree: ('Soiled')
});
}
if (corruption_pts > 60 && corruption_pts <= 90) {
else if (corruption_pts <= 90) {
setAttrs({
corruption_degree: ('Debased')
});
}
if (corruption_pts > 90 && corruption_pts <= 99) {
else if (corruption_pts <= 99) {
setAttrs({
corruption_degree: ('Profane')
});
}
if (corruption_pts > 99) {
else {
setAttrs({
corruption_degree: ('Damned')
});
}
});
});
// ___________________________________________________________________________
// _______________________psychic info sheet worker___________________________
// ___________________________________________________________________________
/* TODO: debug this sheetworker. If we can make it work, we can rewrite the HTML to refer here.
on('sheet:opened change:psykana_class change:psykana_limit', function() {
getAttrs([
'psykana_class','psykana_limit'
], function(values) {
var psykana_class = parseInt(values['psykana_class'], 10) || 0;
var psykana_limit = parseInt(values['psykana_limit'], 10) || 0;
setAttrs({
effective_psy_rating: (4);
});
});
});
*/
/*
on('sheet:opened change:psykana_class change:psykana_limit change:psy_push change:psy_rating change:psykana_sustain change:psykana_sustain_count', function() {
getAttrs([
'psykana_class','psykana_limit','psy_push','psy_rating','psykana_sustain','psykana_sustain_count'
], function(values) {
var psykana_class = parseInt(values['psykana_class'], 10) || 0;
var psykana_limit = parseInt(values['psykana_limit'], 10) || 0;
var psykana_push = parseInt(values['psykana_push'], 10) || 0;
var psy_rating = parseInt(values['psy_rating'], 10) || 0;
var psykana_sustain = parseInt(values['psykana_sustain'], 10) || 0;
var psykana_sustain_count = parseInt(values['psykana_sustain_count'], 10) || 0;
setAttrs({
effective_psy_rating = 4;
});
/*
var psykana_limit_factor;
var push_addend;
var sustain_count_addend;
/*
if (psykana_limit == 0) {
psykana_limit_factor = 0.5,
}
if (psykana_limit === 1) {
psykana_limit_factor = 1;
}
if (psykana_limit === 2) {
psykana_limit_factor = 1;
push_addend = psykana_push;
}
if (psykana_sustain == 1) {
sustain_count_addend = psykana_sustain_count;
}
setAttrs({
effective_psy_rating: (psy_rating * psykana_limit_factor + push_addend)
});
//end of psy rating calc, start of psychic phenomena calc
var unfettered_addend = 0;
var push_addend = 0
var sustain_addend = 0;
if (psykana_class == 1 && psykana_limit == 1) || (psykana_class == 2 && psykana_limit == 1) {
unfettered_addend = 10;
}
if (psykana_class == 0 && psykana_limit == 2) {
push_addend = 10;
}
if (psykana_class == 1 && psykana_limit == 2) {
push_addend = 5 * psykana_push;
}
if (psykana_class == 2 && psykana_limit == 2) {
push_addend = 10 * psykana_push;
}
if (psykana_sustain == 1) {
sustain_addend = 10;
}
setAttrs({
psykana_phenomena = unfettered_addend + push_addend + sustain_addend,
});
});
});
*/
// ___________________________________________________________________________
// ____________________gear cost/weight sheet worker__________________________
// ___________________________________________________________________________
@@ -2215,6 +2324,7 @@
{{/description}}
{{#scatter-range}}
<div class="sheet-template-header">{{character}} scatters </div>
<div class="sheet-template-content">
+1 -1
View File
@@ -1,7 +1,7 @@
{
"html": "OnlyWarEnhanced.html",
"css": "OnlyWarEnhanced.css",
"author": "Jason Lee",
"authors": "Jason Lee",
"roll20userid": "685637",
"preview": "preview.png",
"instructions": "This sheet is designed for use in Roll20. It is based on the Warhammer 40000: Only War ttrpg by Fantasy Flight Games, and derived from the Halo Mythic 3.5 Roll20 sheet made by Omran Losinno and Michael van Weelde.\r\rThere is a universal header that applies to all in-sheet tabs. This header section consists of five grid sub-sections: first logo and core character details, second characteristics, third Unnatural characteristics plus physical calculations such as movement and carrying capacity, fourth initiative roller and alternate in-sheet tabs, and fifth has all other numbers that should be accessible on-hand by the player such as wounds, fate points, and fatigue. These tabs are composed of different sections: core character information such as skills and special abilities, a page to list Comrades and the abilities the player may use with them, a list of equipment both used in and out of combat such as weapons or cybernetics, an experience page to differentiate unspent/spent experience points toward an automatically tracked total sum number, a player-kept journal tab to list complete/incomplete objectives in a mission, keep a history of your character's time spent, and track Insanity/Corruption, a tab for characters with psychic ability to show related stats, and a settings tab to allow the player to apply technical changes to the sheet if needed, such as applying an Initiative tiebreaker or replace the character sheet with a vehicle one.",