From 0f43467b82ff610f05550a412fcb12be67d4381f Mon Sep 17 00:00:00 2001 From: David Maitland Date: Sun, 27 Dec 2020 16:00:21 +0000 Subject: [PATCH 1/4] - Added support to field calculations for specific special abilities: - Collar - Instinctive - Added base stat action roll button below skills. Contort roll incorporates build modifier. - For weapons with Unreliable trait, the roll template will show if weapon becomes jammed - Added required food units below build - Ensure all read-only fields have a grey background --- Maximum Apocalypse/MaximumApocalypse.css | 83 +++++++++--- Maximum Apocalypse/MaximumApocalypse.html | 153 ++++++++++++++++++---- Maximum Apocalypse/README.md | 13 +- Maximum Apocalypse/sheet.json | 2 +- Maximum Apocalypse/translation.json | 10 ++ 5 files changed, 211 insertions(+), 50 deletions(-) diff --git a/Maximum Apocalypse/MaximumApocalypse.css b/Maximum Apocalypse/MaximumApocalypse.css index fa6f8a56f6..2daadcbf57 100644 --- a/Maximum Apocalypse/MaximumApocalypse.css +++ b/Maximum Apocalypse/MaximumApocalypse.css @@ -11,8 +11,11 @@ Could do with more efficient class definition .sheet-has-faith, .sheet-has-reflex, -.sheet-has-reflex, +.sheet-has-collar, +input.sheet-has-collar-check[value="1"] ~ .sheet-starving .sheet-hunger-desc-left, +input.sheet-has-collar-check[value="1"] ~ .sheet-emaciated .sheet-hunger-desc-left, .sheet-has-luck-stars, +.sheet-has-instinctive, .sheet-has-moving-target, .sheet-has-giant-genetics, .sheet-tightening-the-belt { @@ -21,7 +24,9 @@ Could do with more efficient class definition input.sheet-has-faith-check[value="1"] ~ .sheet-has-faith, input.sheet-has-reflex-check[value="1"] ~ .sheet-has-reflex, +input.sheet-has-collar-check[value="1"] ~ .sheet-has-collar, input.sheet-has-luck-stars-check[value="1"] ~ .sheet-has-luck-stars, +input.sheet-has-instinctive-check[value="1"] ~ .sheet-has-instinctive, input.sheet-has-moving-target-check[value="1"] ~ .sheet-has-moving-target, input.sheet-has-giant-genetics-check[value="1"] ~ .sheet-has-giant-genetics, input.sheet-tightening-the-belt-check[value="1"] ~ .sheet-tightening-the-belt { @@ -599,12 +604,44 @@ input[type=number].sheet-armor-cp { display: grid; grid-area: build; grid-template-columns: 45px 45px; - grid-template-rows: 32px 40px 40px; + grid-template-rows: 32px 40px 30px 40px; grid-template-areas: "build-labels build-labels" "build-input dc-input" - ". dc-input-label"; + ". dc-input-label" + "food-req-label food-req"; } +.sheet-food { + font-size: 10px; + font-weight: bold; + font-family: 'Blinker'; + text-transform: uppercase; + line-height: 11px; +} + +.sheet-food-req-label { + grid-area: food-req-label; + padding-right: 5px; + align-self: center; + text-align: end; +} + +.sheet-food-req { + grid-area: food-req; + display: flex; + align-items: center; +} + +input[type=number].sheet-food-req { + width: 24px !important; + height: 30px !important; + border: 1px solid #000000; + font-family: Bangers; + font-size: 12px; + text-align: center; + margin-right: 5px; +} + .sheet-build-labels { grid-area: build-labels; align-self: end; @@ -657,7 +694,6 @@ input[type=number].sheet-dc-lozenge { } .sheet-dc-lozenge { - background-color: #ffffff; border-style: solid; border-color: #000000; border-width: 3px 3px 3px 0px; @@ -679,7 +715,6 @@ input[type=number].sheet-dc-lozenge { .sheet-health-lozenge { text-align:center; - background-color: #ffffff; border: 3px solid black; border-radius: 10px; -moz-border-radius: 10px; @@ -750,7 +785,6 @@ input[type=number].sheet-health-current { .sheet-init-lozenge { text-align:center; - background-color: #ffffff; border: 3px solid black; border-radius: 10px; -moz-border-radius: 10px; @@ -857,14 +891,13 @@ input[type=number].sheet-init- { border-top: 2px dashed #000000; grid-area: prof-desc; grid-column-gap: 5px; - grid-template-columns: 29px 10% 70%; - grid-template-rows: 20px 20px 20px 20px 20px 80px; - grid-template-areas:"prof-circle prof-code-not prof-desc-not" - "prof-circle prof-code-p prof-desc-p" - "prof-circle prof-code-s prof-desc-s" - "prof-circle prof-code-t prof-desc-t" - "prof-circle prof-code-m prof-desc-m" - "prof-text prof-text prof-text"; + grid-template-columns: 29px 29px 70px; + grid-template-rows: 20px 20px 20px 20px 20px; + grid-template-areas:"prof-circle prof-code-not prof-desc-not prof-text" + "prof-circle prof-code-p prof-desc-p prof-text" + "prof-circle prof-code-s prof-desc-s prof-text" + "prof-circle prof-code-t prof-desc-t prof-text" + "prof-circle prof-code-m prof-desc-m prof-text"; } .sheet-prof-desc .sheet-code { @@ -873,12 +906,10 @@ input[type=number].sheet-init- { .sheet-prof-text { grid-area: prof-text; - border-top: 2px dashed #000000; font-size: 10px; font-weight: bold; font-family: 'Blinker'; padding-left: 15px; - width: 145px; } @@ -947,7 +978,6 @@ input[type=number].sheet-init- { .sheet-lozenge { text-align:center; - background-color: #fff; border: 1px solid black; border-radius: 15px; -moz-border-radius: 15px; @@ -1368,7 +1398,7 @@ input[type=number].sheet-table-cell { display: grid; grid-column-gap: 5px; grid-template-columns: 3% 8.5% 3% 8.5% 3% 8.5% 3% 8.5% 3% 8.5% 3% 8.5% 3% 8.5% 3% 8.5%; - grid-template-rows: 32px 32px 32px 32px 32px 32px 32px 32px; + grid-template-rows: 32px 32px 32px 32px 32px 32px 32px 32px 32px; grid-template-areas: ". skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner skill-banner ." "skill-str skill-str skill-for skill-for skill-agi skill-agi skill-int skill-int skill-ins skill-ins skill-cha skill-cha skill-fs skill-fs skill-bs skill-bs" "athletics-prof athletics-label . . archery-prof archery-label academics-prof academics-label crafting-prof crafting-label animalken-prof animalken-label blades-prof blades-label firearms-prof firearms-label" @@ -1376,15 +1406,15 @@ input[type=number].sheet-table-cell { "prof-desc prof-desc prof-desc prof-desc palming-prof palming-label medicine-prof medicine-label navigation-prof navigation-label command-prof command-label clubs-prof clubs-label . ." "prof-desc prof-desc prof-desc prof-desc stealth-prof stealth-label science-prof science-label perception-prof perception-label interrogate-prof interrogate-label . . . ." "prof-desc prof-desc prof-desc prof-desc wrangle-prof wrangle-label techuse-prof techuse-label survival-prof survival-label intimidate-prof intimidate-label . luck-label luck-use-label luck-use-label" - "prof-desc prof-desc prof-desc prof-desc . . . . tracking-prof tracking-label . . . luck-input luck-max luck-current" - "prof-desc prof-desc prof-desc prof-desc roll-mod roll-mod roll-mod roll-mod xenotechuse-prof xenotechuse-label . . . luck-base-label luck-max-label luck-current-label"; + "lift-prof lift-label . . contort-prof contort-label remember-prof remember-label tracking-prof tracking-label . . . luck-input luck-max luck-current" + "pry-prof pry-label . . throw-prof throw-label . . xenotechuse-prof xenotechuse-label . . . luck-base-label luck-max-label luck-current-label" + ". . . . . . . . . . . . roll-mod roll-mod roll-mod roll-mod"; } .sheet-sp-stats { grid-area: sp-stats; display: grid; - grid-template-columns: 1fr 3fr 1fr 3fr 2fr 4fr; grid-template-rows: 11px 5px 1fr; grid-template-areas: "sp-stats-ltl sp-stats-ltl sp-stats-ltl sp-stats-banner sp-stats-ltr sp-stats-ltr" "sp-stats-lbl sp-stats-lbl sp-stats-lbl sp-stats-banner sp-stats-lbr sp-stats-lbr" @@ -1661,6 +1691,17 @@ input[type=number].sheet-table-cell { .sheet-xenotechuse-prof { grid-area: xenotechuse-prof; } .sheet-xenotechuse-label { grid-area: xenotechuse-label; } +.sheet-contort-prof { grid-area: contort-prof; } +.sheet-contort-label { grid-area: contort-label; } +.sheet-lift-prof { grid-area: lift-prof; } +.sheet-lift-label { grid-area: lift-label; } +.sheet-pry-prof { grid-area: pry-prof; } +.sheet-pry-label { grid-area: pry-label; } +.sheet-remember-prof { grid-area: remember-prof; } +.sheet-remember-label { grid-area: remember-label; } +.sheet-throw-prof { grid-area: throw-prof; } +.sheet-throw-label { grid-area: throw-label; } + .sheet-prof-code-not { grid-area: prof-code-not; } .sheet-prof-desc-not { grid-area: prof-desc-not; } .sheet-prof-code-p { grid-area: prof-code-p; } diff --git a/Maximum Apocalypse/MaximumApocalypse.html b/Maximum Apocalypse/MaximumApocalypse.html index 70a5d6fcf4..4c9268affd 100644 --- a/Maximum Apocalypse/MaximumApocalypse.html +++ b/Maximum Apocalypse/MaximumApocalypse.html @@ -702,9 +702,51 @@
Skills that are NOT PROFICIENT start as DISADVANTAGE and cannot have ADVANTAGE when rolled.
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
Threshold modifier prompt on every roll ? +
(L)
@@ -741,7 +783,7 @@
Armor.
- +
Max. @@ -787,6 +829,13 @@ DC
Modifier.
+
+ Required Food.: +
+
+ + Unit(s). +
@@ -809,7 +858,12 @@
Initiative.
-
(AGI + LUCK) / 10
+
+ + (AGI + LUCK + + INS + ) / 10 +
@@ -1048,8 +1102,9 @@ + -
+ +
1/4 FOR +4 =
+
+ N/A (Collar) + = +
Starving.
+
1/2 FOR @@ -1180,6 +1242,10 @@ +8 =
+
+ N/A (Collar) + = +
Emaciated.
FOR =
@@ -1251,13 +1317,21 @@ const multistats = { luck_uses_max: {rule: 'luck_uses', attributes: ['luck', 'has_faith', "has_luck_stars"], modifier: 10}, + contort: {rule: 'contort', attributes: ['agi', 'build_dc']}, + lift: {rule: 'sum', attributes: ['str']}, + pry: {rule: 'sum', attributes: ['str']}, + remember: {rule: 'sum', attributes: ['int']}, + throwing: {rule: 'sum', attributes: ['agi']}, build: {rule: 'build', attributes: ['str', 'for', 'has_giant_genetics'], modifier: 1}, build_dc: {rule: 'build_dc', attributes: ['build']}, + food_req: {rule: 'food_req', attributes: ['build_dc']}, health_max: {rule: 'special_stat', attributes: ['build'], modifier: 5}, - starving: {rule: 'hungry', attributes: ['hunger', 'for_quarter', 'has_tightening_the_belt'], modifier: 4}, - emaciated: {rule: 'hungry', attributes: ['hunger', 'for_half', 'has_tightening_the_belt'], modifier: 8}, + starving: {rule: 'hungry', attributes: ['hunger', 'starving_threshold']}, + starving_threshold: {rule: 'hunger_threshold', attributes: ['for_quarter', 'has_tightening_the_belt', 'has_collar'], modifier: 4}, + emaciated: {rule: 'hungry', attributes: ['hunger', 'emaciated_threshold']}, + emaciated_threshold: {rule: 'hunger_threshold', attributes: ['for_half', 'has_tightening_the_belt', 'has_collar'], modifier: 8}, dead: {rule: 'greater_than_or_equal', attributes: ['hunger', 'for']}, - init: {rule: 'init', values: -1, attributes: ['agi', 'luck', 'init_temp', 'encumbered', 'shaken', 'acute', 'starving', 'emaciated', 'has_moving_target'], modifier: 10}, + init: {rule: 'init', values: -1, attributes: ['agi', 'luck', 'init_temp', 'encumbered', 'shaken', 'acute', 'starving', 'emaciated', 'has_moving_target', 'has_instinctive', 'ins'], modifier: 10}, init_5: {rule: 'add', attributes: ['init'], modifier: -5}, init_10: {rule: 'add', attributes: ['init'], modifier: -10}, init_15: {rule: 'add', attributes: ['init'], modifier: -15}, @@ -1272,7 +1346,8 @@ const multistats = { encum_max: {rule: 'add', attributes: ['build'], modifier: 200}, cp_total: {rule: 'sum', attributes: ['cp_inferior', 'cp', 'cp_superior', 'cx']}, encum: {rule: 'sum', attributes: ['armor_cp_total', 'attack_cp_total', 'gear_cp_total', 'cp_total']}, - encumbered: {rule: 'encumbered', attributes: ['encum', 'encum_max', 'armor_max']} + encumbered: {rule: 'encumbered', attributes: ['encum', 'encum_max', 'armor_max']}, + '$attack_unreliable': {rule: 'contains', values: -1, section: 'attack', attributes: ['$attack_traits'], modifier: 'unreliable'} }; const stats = ['str', 'for', 'agi', 'int', 'ins', 'cha', 'fs', 'bs', 'brawl', @@ -1306,6 +1381,13 @@ prof_mods['m'] = {mod:15,desc:'Master'}; const dmg_codes = ["1d4", "2d4", "1d6+3", "2d6+3", "1d8+7", "2d8+7", "1d10+11", "2d10+11", "2d10+1d4+11", "2d10+2d4+11", "2d10+1d6+14", "2d10+2d6+14", "2d10+1d8+18", "2d10+2d8+18", "3d10+22", "4d10+22"]; +const build_dc_mods = {}; +build_dc_mods[-1] = {food_units: 1, contort_mod: 20}; +build_dc_mods[0] = {food_units: 2, contort_mod: 10}; +build_dc_mods[1] = {food_units: 3, contort_mod: 0}; +build_dc_mods[2] = {food_units: 4, contort_mod: -10}; +build_dc_mods[3] = {food_units: 5, contort_mod: -20}; + const multifunctions = { sum: (arr) => arr.reduce((total, add) => total + add), // add up any number of attributes @@ -1313,19 +1395,22 @@ const multifunctions = { half: (arr) => Math.max(Math.floor(arr[0] / 2), 1), quarter: (arr) => Math.max(Math.floor(arr[0] / 4), 1), build_dc: (arr) => Math.floor(arr[0]/50)-1, + food_req: (arr) => build_dc_mods[arr[0]].food_units, + contort: (arr) => arr[0] + build_dc_mods[arr[1]].contort_mod || arr[0], add: (arr, val) => arr[0]+val, full_dodge: (arr) => Math.floor(arr[0]+(arr[1]/2)), max: (arr) => Math.max(...arr), encumbered: (arr) => arr[0] > arr[1] || arr[2] >= 12 ? 'on' : '0', greater_than_or_equal: (arr) => arr[0] >= arr[1] ? 'on' : '0', toggle: (arr, modifier) => arr[0] === 'on' ? modifier : 0, + contains: (arr, modifier) => arr.join('').toLowerCase().indexOf(modifier)>-1 ? 1 : 0, luck_uses: function(arr, divisor) { let luck = arr[0]; let has_faith = arr[1]; let has_luck_stars = arr[2]; let luck_uses = Math.floor(luck / divisor) luck_uses += has_faith > 0 ? 3 : 0; - luck_uses += has_luck_stars > 0 ? 1 : 0; + luck_uses += has_luck_stars > 0 ? 3 : 0; return luck_uses; }, dodge: function(arr, divisor) { @@ -1358,13 +1443,18 @@ const multifunctions = { let hasGiantGenetics = arr[2]; return str + fort + (hasGiantGenetics > 0 ? 50 : 0); }, - hungry: function(arr, modifier) { + hungry: function(arr) { let hunger = arr[0]; - let baseThreshold = arr[1]; - let hasTighteningTheBelt = arr[2]; - let threshold = baseThreshold + (hasTighteningTheBelt > 0 ? modifier : 0); + let threshold = arr[1]; return hunger >= threshold ? 'on' : '0'; }, + hunger_threshold: function(arr, modifier) { + let baseThreshold = arr[0]; + let hasTighteningTheBelt = arr[1]; + let hasCollar = arr[2]; + let threshold = baseThreshold + (hasTighteningTheBelt > 0 ? modifier : 0); + return hasCollar > 0 ? 999 : threshold; + }, init: function(arr, divisor) { let agi = parseInt(arr[0]) || 0; let luck = parseInt(arr[1]) || 0; @@ -1375,8 +1465,12 @@ const multifunctions = { let starving = arr[6]; let emaciated = arr[7]; let hasMovingTarget = arr[8]; + let hasInstinctive = arr[9]; + let instinct = parseInt(arr[10]) || 0; - let init = Math.floor((agi+luck) / divisor); + let init = agi+luck; + init += hasInstinctive > 0 ? instinct : 0; + init = Math.floor(init / divisor); init += initTemp; init -= encumbered === 'on' ? 1 : 0; init -= shaken === 'on' ? 3 : 0; @@ -1585,11 +1679,11 @@ on('change:repeating_gear:gear_cp remove:repeating_gear', function() { /* detect special abilities */ on('change:repeating_abilities:ability_name remove:repeating_abilities', function() { - repeatingPresence(["has_faith", "has_reflex", "has_tightening_the_belt", "has_moving_target", "has_giant_genetics", "has_luck_stars"], - "abilities", - //["ability_name", "ability_name", "ability_name", "ability_name", "ability_name", "ability_name"], - "ability_name", - ["faith", "reflex", "tightening_the_belt", "moving_target", "giant_genetics", "luck_stars"]); + + var abilitieNames = ["faith", "reflex", "tightening_the_belt", "moving_target", "giant_genetics", "luck_stars", "collar", "instinctive"]; + var abilityAttrs = _.map(abilitieNames, function(name){ return 'has_' + name; }); + + repeatingPresence(abilityAttrs, "abilities", "ability_name", abilitieNames); }); /* END OF REPEATING ABILITY PRESENCE */ @@ -1733,10 +1827,10 @@ attackSkills.forEach(attackSkill => { {{#rollGreater() mod -2}} - {{#rollLess() profroll 2}} + {{#rollTotal() profroll 1}}
Critical Success !!!
Degrees of Success
4
- {{/rollLess() profroll 2}} + {{/rollTotal() profroll 1}} {{#rollBetween() profroll 2 thirddegree}}
Amazing Success !!
Degrees of Success
3
@@ -1753,10 +1847,10 @@ attackSkills.forEach(attackSkill => { {{#rollTotal() mod -2}} - {{#rollLess() profroll 2}} + {{#rollTotal() profroll 1}}
Critical Success !!!
Degrees of Success
3
- {{/rollLess() profroll 2}} + {{/rollTotal() profroll 1}} {{#rollBetween() profroll 2 thirddegree}}
Amazing Success !!
Degrees of Success
2
@@ -1772,10 +1866,10 @@ attackSkills.forEach(attackSkill => { {{#rollTotal() mod -3}} - {{#rollLess() profroll 2}} + {{#rollTotal() profroll 1}}
Critical Success !!!
Degrees of Success
2
- {{/rollLess() profroll 2}} + {{/rollTotal() profroll 1}} {{#rollBetween() profroll 2 thirddegree}}
Amazing Success !!
Degrees of Success
1
@@ -1794,9 +1888,16 @@ attackSkills.forEach(attackSkill => {
Failure
{{/rollBetween() profroll firstdegree1 99}} - {{#rollGreater() profroll 99}} + {{#rollTotal() profroll 0}}
Critical Failure !!!!
- {{/rollGreater() profroll 99}} + {{/rollTotal() profroll 0}} + + + {{#rollTotal() unreliable 1}} + {{#rollGreater() profroll 94}} +
WEAPON JAMMED !
+ {{/rollGreater() profroll 94}} + {{/rollTotal() unreliable 1}} {{/mod}} diff --git a/Maximum Apocalypse/README.md b/Maximum Apocalypse/README.md index 860c6a279e..67fe148764 100644 --- a/Maximum Apocalypse/README.md +++ b/Maximum Apocalypse/README.md @@ -12,15 +12,15 @@ Also see the API script which implements the logic to handle initiative tracking - Structure very close to to core rulebook - Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance -- Automatic calculations incorporate effects from following abilities: Faith, Giant Genetics, Luck Stars, Moving Target, Reflex, Tightening the Belt +- Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable - Roll buttons for stats, skills, special stats, defenses, attacks & damage - Roll buttons query for 0-3 advantages/disadvantages & implement advantage/disadvantage effects - Roll template indicates level & degree of success +- Sheet also has roll buttons for base stat actions & shows required food units - Tick the "Threshold modifier prompt on every roll" checkbox to specify misc. threshold modifer for subsequent rolls - Drop down selections for archetypes, apocalypse & skill proficiencies - Initiative includes modifiers from being encumbered, shaken, acute, starving & emaciated - Temporary initiative modifier field for situational special ability effects -- Faith & Reflex ability benefits automatically calculated - Special Ability and Gear descriptions can be expanded/contracted to see the full text when needed - Hunger conditions will highlight in red when active - Starving condition will apply -10 modifier to base stats (modifier indicator will appear next to base stats) @@ -33,6 +33,15 @@ Also see the API script which implements the logic to handle initiative tracking ## Change Log +### December 27th 2020 v6.0 +- Added support to field calculations for specific special abilities: + - Collar + - Instinctive +- Added base stat action roll button below skills. Contort roll incorporates build modifier. +- For weapons with Unreliable trait, the roll template will show if weapon becomes jammed +- Added required food units below build +- Ensure all read-only fields have a grey background + ### December 14th 2020 v5.0 - Added support to field calculations for specific special abilities: - Tightening the Belt diff --git a/Maximum Apocalypse/sheet.json b/Maximum Apocalypse/sheet.json index f592e55034..5cde2f0d7f 100644 --- a/Maximum Apocalypse/sheet.json +++ b/Maximum Apocalypse/sheet.json @@ -4,5 +4,5 @@ "authors": "David Maitland", "roll20userid": "994218", "preview": "MaximumApocalypse.png", - "instructions": "Version 5.0 of sheet for Maximum Apocalypse. Includes roll buttons & field value calculation. See ReadMe for full feature list." + "instructions": "* Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance\r* Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable\r* Roll buttons for stats, skills, special stats, defenses, attacks & damage\r* Roll buttons query for 0-3 advantages/disadvantages & implement advantage/disadvantage effects\r* Roll template indicates level & degree of success\r* Sheet also has roll buttons for base stat actions & shows required food units\r* Tick the "Threshold modifier prompt on every roll" checkbox to specify misc. threshold modifer for subsequent rolls\r* Drop down selections for archetypes, apocalypse & skill proficiencies\r* Initiative includes modifiers from being encumbered, shaken, acute, starving & emaciated\r* Temporary initiative modifier field for situational special ability effects\r* Special Ability and Gear descriptions can be expanded/contracted to see the full text when needed\r* Hunger conditions will highlight in red when active\r* Starving condition will apply -10 modifier to base stats (modifier indicator will appear next to base stats)\r* Structure deviations from core rulebook implemented to provide enough room for Special Ability and Gear descriptions\r\r[Sheet Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Maximum%20Apocalypse/README.md)." } \ No newline at end of file diff --git a/Maximum Apocalypse/translation.json b/Maximum Apocalypse/translation.json index 7a4044c563..600fc415d2 100644 --- a/Maximum Apocalypse/translation.json +++ b/Maximum Apocalypse/translation.json @@ -26,7 +26,9 @@ "charm": "Charm", "child_0-15": "Child (0-15)", "clubs": "Clubs", + "collar": "Collar", "command": "Command", + "contort": "Contort", "cp_costs": "CP Costs", "crafting": "Crafting", "current": "Current", @@ -65,11 +67,13 @@ "initiative": "Initiative", "insanity_condition": "Insanity Condition", "instinct": "Instinct", + "instinctive": "Instinctive", "intelligence": "Intelligence", "interrogate": "Interrogate", "intimidate": "Intimidate", "item": "Item", "kaiju_attack": "Kaiju Attack", + "lift": "Lift", "lockpick": "Lockpick", "luck": "Luck", "luck_stars": "Luck Stars", @@ -84,6 +88,7 @@ "move": "Move", "moving_target": "Moving Target", "navigation": "Navigation", + "na": "N/A", "not_proficient": "Not Proficient", "nuclear_holocaust": "Nuclear Holocaust", "one_per_4_cp": "1 per 4 CP", @@ -99,7 +104,10 @@ "prodromal": "Prodromal", "proficiency_text": "Skills that are NOT PROFICIENT start as DISADVANTAGE and cannot have ADVANTAGE when rolled.", "proficient": "Proficient", + "pry": "Pry", "reflex": "Relex", + "remember": "Remember", + "required_food": "Required Food", "repair": "Repair", "repair_skill": "Repair Skill", "resilience": "Resilience", @@ -135,6 +143,7 @@ "thief": "Thief", "three_per_armor_point": "3 per Armor pt", "threshold": "Threshold", + "throw": "Throw", "tightening_the_belt": "Tightening the Belt", "time_paradox": "Time Paradox", "total_xp": "Total XP", @@ -142,6 +151,7 @@ "trained": "Trained", "traits": "Traits", "transform_die": "Transform/Die", + "unit(s)": "Unit(s)", "unarmed": "Unarmed", "unnerved": "Unnerved", "unused_xp": "Unused XP", From 04204bb77e21887408c25c66cba84dccf2510801 Mon Sep 17 00:00:00 2001 From: David Maitland Date: Sun, 27 Dec 2020 16:19:32 +0000 Subject: [PATCH 2/4] Fixed Skill proficiency description for FireFox --- Maximum Apocalypse/MaximumApocalypse.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Maximum Apocalypse/MaximumApocalypse.css b/Maximum Apocalypse/MaximumApocalypse.css index 2daadcbf57..0e593ae4a4 100644 --- a/Maximum Apocalypse/MaximumApocalypse.css +++ b/Maximum Apocalypse/MaximumApocalypse.css @@ -891,7 +891,7 @@ input[type=number].sheet-init- { border-top: 2px dashed #000000; grid-area: prof-desc; grid-column-gap: 5px; - grid-template-columns: 29px 29px 70px; + grid-template-columns: 28px 20px 73px 1fr; grid-template-rows: 20px 20px 20px 20px 20px; grid-template-areas:"prof-circle prof-code-not prof-desc-not prof-text" "prof-circle prof-code-p prof-desc-p prof-text" From 9944b69d53555ee7636cfc3b9d090fe04447dab5 Mon Sep 17 00:00:00 2001 From: David Maitland Date: Sun, 27 Dec 2020 16:22:46 +0000 Subject: [PATCH 3/4] Added note about using browser zoom to make sheet smaller --- Maximum Apocalypse/README.md | 1 + Maximum Apocalypse/sheet.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Maximum Apocalypse/README.md b/Maximum Apocalypse/README.md index 67fe148764..bb609175db 100644 --- a/Maximum Apocalypse/README.md +++ b/Maximum Apocalypse/README.md @@ -11,6 +11,7 @@ Also see the API script which implements the logic to handle initiative tracking ## Usage Notes - Structure very close to to core rulebook +- If sheet is too wide/large setting browser zoom to 80% is a good alternate size - Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance - Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable - Roll buttons for stats, skills, special stats, defenses, attacks & damage diff --git a/Maximum Apocalypse/sheet.json b/Maximum Apocalypse/sheet.json index 5cde2f0d7f..4e999d765b 100644 --- a/Maximum Apocalypse/sheet.json +++ b/Maximum Apocalypse/sheet.json @@ -4,5 +4,5 @@ "authors": "David Maitland", "roll20userid": "994218", "preview": "MaximumApocalypse.png", - "instructions": "* Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance\r* Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable\r* Roll buttons for stats, skills, special stats, defenses, attacks & damage\r* Roll buttons query for 0-3 advantages/disadvantages & implement advantage/disadvantage effects\r* Roll template indicates level & degree of success\r* Sheet also has roll buttons for base stat actions & shows required food units\r* Tick the "Threshold modifier prompt on every roll" checkbox to specify misc. threshold modifer for subsequent rolls\r* Drop down selections for archetypes, apocalypse & skill proficiencies\r* Initiative includes modifiers from being encumbered, shaken, acute, starving & emaciated\r* Temporary initiative modifier field for situational special ability effects\r* Special Ability and Gear descriptions can be expanded/contracted to see the full text when needed\r* Hunger conditions will highlight in red when active\r* Starving condition will apply -10 modifier to base stats (modifier indicator will appear next to base stats)\r* Structure deviations from core rulebook implemented to provide enough room for Special Ability and Gear descriptions\r\r[Sheet Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Maximum%20Apocalypse/README.md)." + "instructions": "* Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance\r* Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable\r* Roll buttons for stats, skills, special stats, defenses, attacks & damage\r* Roll buttons query for 0-3 advantages/disadvantages & implement advantage/disadvantage effects\r* Roll template indicates level & degree of success\r* Sheet also has roll buttons for base stat actions & shows required food units\r* Tick the "Threshold modifier prompt on every roll" checkbox to specify misc. threshold modifer for subsequent rolls\r* Drop down selections for archetypes, apocalypse & skill proficiencies\r* Initiative includes modifiers from being encumbered, shaken, acute, starving & emaciated\r* Temporary initiative modifier field for situational special ability effects\r* Special Ability and Gear descriptions can be expanded/contracted to see the full text when needed\r* Hunger conditions will highlight in red when active\r* Starving condition will apply -10 modifier to base stats (modifier indicator will appear next to base stats)\r* Structure deviations from core rulebook implemented to provide enough room for Special Ability and Gear descriptions\r* If sheet is too wide/large setting browser zoom to 80% is a good alternate size\r\r[Sheet Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Maximum%20Apocalypse/README.md)." } \ No newline at end of file From 171191ec701ca0e01b4dd88cdef6ad966ac8e435 Mon Sep 17 00:00:00 2001 From: David Maitland Date: Sun, 27 Dec 2020 16:29:58 +0000 Subject: [PATCH 4/4] Correct sheet.json un-escaped quotes --- Maximum Apocalypse/sheet.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Maximum Apocalypse/sheet.json b/Maximum Apocalypse/sheet.json index 4e999d765b..891877a084 100644 --- a/Maximum Apocalypse/sheet.json +++ b/Maximum Apocalypse/sheet.json @@ -4,5 +4,5 @@ "authors": "David Maitland", "roll20userid": "994218", "preview": "MaximumApocalypse.png", - "instructions": "* Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance\r* Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable\r* Roll buttons for stats, skills, special stats, defenses, attacks & damage\r* Roll buttons query for 0-3 advantages/disadvantages & implement advantage/disadvantage effects\r* Roll template indicates level & degree of success\r* Sheet also has roll buttons for base stat actions & shows required food units\r* Tick the "Threshold modifier prompt on every roll" checkbox to specify misc. threshold modifer for subsequent rolls\r* Drop down selections for archetypes, apocalypse & skill proficiencies\r* Initiative includes modifiers from being encumbered, shaken, acute, starving & emaciated\r* Temporary initiative modifier field for situational special ability effects\r* Special Ability and Gear descriptions can be expanded/contracted to see the full text when needed\r* Hunger conditions will highlight in red when active\r* Starving condition will apply -10 modifier to base stats (modifier indicator will appear next to base stats)\r* Structure deviations from core rulebook implemented to provide enough room for Special Ability and Gear descriptions\r* If sheet is too wide/large setting browser zoom to 80% is a good alternate size\r\r[Sheet Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Maximum%20Apocalypse/README.md)." + "instructions": "* Automatically calculates all derived stats: half/quarter stats, special stats, build/repair table & encumbrance\r* Automatic calculations incorporate effects from following abilities: Collar, Faith, Giant Genetics, Instinctive, Luck Stars, Moving Target, Reflex, Tightening the Belt, Unreliable\r* Roll buttons for stats, skills, special stats, defenses, attacks & damage\r* Roll buttons query for 0-3 advantages/disadvantages & implement advantage/disadvantage effects\r* Roll template indicates level & degree of success\r* Sheet also has roll buttons for base stat actions & shows required food units\r* Tick the \"Threshold modifier prompt on every roll\" checkbox to specify misc. threshold modifer for subsequent rolls\r* Drop down selections for archetypes, apocalypse & skill proficiencies\r* Initiative includes modifiers from being encumbered, shaken, acute, starving & emaciated\r* Temporary initiative modifier field for situational special ability effects\r* Special Ability and Gear descriptions can be expanded/contracted to see the full text when needed\r* Hunger conditions will highlight in red when active\r* Starving condition will apply -10 modifier to base stats (modifier indicator will appear next to base stats)\r* Structure deviations from core rulebook implemented to provide enough room for Special Ability and Gear descriptions\r* If sheet is too wide/large setting browser zoom to 80% is a good alternate size\r\r[Sheet Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Maximum%20Apocalypse/README.md)." } \ No newline at end of file