From a9bc5dd5fb3a6c2cbc2d6ef839b869c3e777d2cd Mon Sep 17 00:00:00 2001 From: "James C (aka Chuz)" Date: Tue, 7 Feb 2023 13:54:40 -0500 Subject: [PATCH] updated NPC Spell and NPC Attack buttons Converted NPC Spell roll buttons to use the newer PC style Converted NPC Attack (ranged and melee) buttons to use the new roll buttons Converted NPC Attack (ranged and melee) buttons to use the new roll template weapon info block --- Shadowrun Sixth World/CHANGELOG.md | 5 + Shadowrun Sixth World/Shadowrun6thEdition.css | 50 ++++++- .../Shadowrun6thEdition.html | 140 +++++++++++------- 3 files changed, 141 insertions(+), 54 deletions(-) diff --git a/Shadowrun Sixth World/CHANGELOG.md b/Shadowrun Sixth World/CHANGELOG.md index f6fcaca68e..83dd728b7e 100644 --- a/Shadowrun Sixth World/CHANGELOG.md +++ b/Shadowrun Sixth World/CHANGELOG.md @@ -1,6 +1,11 @@ Change Log ============================================== **2023-02-13 ** v.71 Chuz (James Culp) + Converted NPC Spell roll buttons to use the newer PC style + Converted NPC Attack (ranged and melee) buttons to use the new roll buttons + Converted NPC Attack (ranged and melee) buttons to use the new roll template weapon info block + Updated Matrix Roll buttons to include inline opposed roll buttons. To use these the target's token must be selected. + Converted Grunt skill buttons to new style Converted Vehicle Autosoft roll buttons to the newer PC style Converted NPC attribute roll buttons to the newer PC style Converted NPC Initiative and Defense button blocks to the newer PC style diff --git a/Shadowrun Sixth World/Shadowrun6thEdition.css b/Shadowrun Sixth World/Shadowrun6thEdition.css index e31bb2bbc6..4f57f795c6 100644 --- a/Shadowrun Sixth World/Shadowrun6thEdition.css +++ b/Shadowrun Sixth World/Shadowrun6thEdition.css @@ -442,7 +442,8 @@ input:checked + .slider:before { input.toggle { position: absolute !important; opacity: 0 !important; - z-index: 2 !important; } + z-index: 2 !important; + top: 5px; } .pc input.settings-toggle, .pc input.settings-flag, @@ -454,7 +455,10 @@ input[type='radio'].tab-switch { z-index: 2 !important; } .npc div.repeating input[name='attr_flag'] + span { - opacity: .5 !important; } + opacity: .5 !important; + position: absolute; + top: 3px; + left: 1px; } .npc div.repeating input[name='attr_flag']:checked + span { opacity: 1 !important; } .npc div.repeating input[name='attr_flag']:checked ~ .settings { @@ -1455,7 +1459,11 @@ div.matrix-device .matrixFirewall { .pc div.magic div.spellsFormulas div.repitem input[name='attr_category'][value='Combat'] ~ button[name*='act_noncombatspell'], .pc div.magic div.spellsFormulas div.repitem input[name='attr_category']:not([value='Combat']) ~ button[name^='act_spell'], .pc div.magic div.spellsFormulas div.repitem input[name='attr_range']:not([value='LOS (A)']) ~ button[name$='aoe'], - .pc div.magic div.spellsFormulas div.repitem input[name='attr_range'][value='LOS (A)'] ~ button:not([name$='aoe']) { + .pc div.magic div.spellsFormulas div.repitem input[name='attr_range'][value='LOS (A)'] ~ button:not([name$='aoe']), + .npc div.spells div.repitem input[name='attr_category'][value='Combat'] ~ button[name*='act_npcnoncombatspell'], + .npc div.spells div.repitem input[name='attr_category']:not([value='Combat']) ~ button[name^='act_npcspell'], + .npc div.spells div.repitem input[name='attr_range']:not([value='LOS (A)']) ~ button[name$='aoe'], + .npc div.spells div.repitem input[name='attr_range'][value='LOS (A)'] ~ button:not([name$='aoe']) { display: none !important; } .pc div.magic div.spellsFormulas div.repitem { @@ -2644,6 +2652,11 @@ h2[data-i18n='nuyen'], h3[data-i18n='nuyen'] { font-size: 1em; text-align: center; width: unset; } +#SR6WE .npc .rows .repitem button[type='action'][name='act_skill'], +#SR6WE .npc .rows .repitem button[type='action'][name='act_spriteskill'], +#SR6WE .npc .rows .repitem button[name='roll_power'], +#SR6WE .npc .rows .repitem button[name='roll_npc_knowledge'] { + margin-left: 15px !important; } .attr-col button > span { font-weight: bold !important; } .attr-col input[type='number'] { @@ -5146,7 +5159,8 @@ div.footer img { font-size: .6em !important; line-height: 1.25em !important; } -.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-weapon-info { +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-weapon-info, +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info { font-size: 1em !important; line-height: 1.25em !important; font-weight: bold; @@ -5193,6 +5207,34 @@ div.footer img { grid-row: 3 / 4; } +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info { + font-size: 1.5em; +} +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info span.sheet-weap-dv { + grid-column: 1 / 2; + grid-row: 1 / 3; +} +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info span.sheet-weap-dv > span { + justify-content: center; + align-content: center; + display: grid; + height: 100%; + font-size: 1.5em; +} +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info span.sheet-weap-melee { + grid-column: 2 / 3; + grid-row: 1 / 2; +} +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info span.sheet-weap-mode { + grid-column: 2 / 3; + grid-row: 1 / 2; +} +.sheet-rolltemplate-rolls-computed div.sheet-template-row div.sheet-npcweapon-info span.sheet-weap-ars { + grid-column: 3 / 4; + grid-row: 1 / 2; +} + + .sheet-rolltemplate-multirow .sheet-template-row:nth-child(2n+0), .sheet-rolltemplate-quality .sheet-template-row:nth-child(2n+0), .sheet-rolltemplate-rolls .sheet-template-row:nth-child(2n+0), diff --git a/Shadowrun Sixth World/Shadowrun6thEdition.html b/Shadowrun Sixth World/Shadowrun6thEdition.html index 1bc7ccc020..8c63989336 100644 --- a/Shadowrun Sixth World/Shadowrun6thEdition.html +++ b/Shadowrun Sixth World/Shadowrun6thEdition.html @@ -4722,7 +4722,7 @@

skills

x - +

Skill

x - +

Skill

+
- + + + + + + @@ -5912,7 +5918,7 @@ {{ammotype}} {{/ammotype}} {{#ars}} - {{arclose}} / {{arnear}} / {{armedium}} / {{arfar}} / {{arextreme}} + {{arclose}}{{^arclose}}-{{/arclose}} / {{arnear}}{{^arnear}}-{{/arnear}} / {{armedium}}{{^armedium}}-{{/armedium}} / {{arfar}}{{^arfar}}-{{/arfar}} / {{arextreme}}{{^arextreme}}-{{/arextreme}} {{/ars}} {{#skill}} {{skill}} @@ -5928,6 +5934,25 @@
{{/attackinfo}} + {{#npcattackinfo}} +
+
+ {{#damage}} + {{damage}} + {{/damage}} + {{#melee}} + Melee Attack + {{/melee}} + {{#firingmode}} + {{firingmode}} + {{/firingmode}} + {{#ars}} + {{arclose}}{{^arclose}}-{{/arclose}} / {{arnear}}{{^arnear}}-{{/arnear}} / {{armedium}}{{^armedium}}-{{/armedium}} / {{arfar}}{{^arfar}}-{{/arfar}} / {{arextreme}}{{^arextreme}}-{{/arextreme}} + {{/ars}} +
+
+ {{/npcattackinfo}} + {{#desc}}
{{desc}} @@ -6880,6 +6905,7 @@ const rollButtons = { sprite_sleaze: "&{template:rolls-computed}{{header=@{character_name}}}{{dice=[[(@{sleaze}+[[?{Attribute|None,0 [None]|Custom,?{Dice?|0} [Custom]|Willpower,@{willpower} [Willpower]|Logic,@{logic} [Logic]|Intuition,@{intuition} [Intuition]|Charisma,@{charisma} [Charisma]|Attack,@{attack} [Attack]|Sleaze,@{sleaze} [Sleaze]|Data Processing,@{data_processing} [Data Processing]|Firewall,@{firewall} [Firewall]}]]+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{base=^{matrix} ^{sleaze} + ?{Attribute}}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", sprite_data_processing: "&{template:rolls-computed}{{header=@{character_name}}}{{dice=[[(@{data_processing}+[[?{Attribute|None,0 [None]|Custom,?{Dice?|0} [Custom]|Willpower,@{willpower} [Willpower]|Logic,@{logic} [Logic]|Intuition,@{intuition} [Intuition]|Charisma,@{charisma} [Charisma]|Attack,@{attack} [Attack]|Sleaze,@{sleaze} [Sleaze]|Data Processing,@{data_processing} [Data Processing]|Firewall,@{firewall} [Firewall]}]]+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{base=^{matrix} ^{data_processing} + ?{Attribute}}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", sprite_firewall: "&{template:rolls-computed}{{header=@{character_name}}}{{dice=[[(@{firewall}+[[?{Attribute|None,0 [None]|Custom,?{Dice?|0} [Custom]|Willpower,@{willpower} [Willpower]|Logic,@{logic} [Logic]|Intuition,@{intuition} [Intuition]|Charisma,@{charisma} [Charisma]|Attack,@{attack} [Attack]|Sleaze,@{sleaze} [Sleaze]|Data Processing,@{data_processing} [Data Processing]|Firewall,@{firewall} [Firewall]}]]+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{base=^{matrix} ^{firewall} + ?{Attribute}}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", + spriteskill:"@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{skill} @{level} + Attribute ?{Attribute|Logic,@{data_processing}|Intuition,@{sleaze}|Charisma,@{attack}|Willpower,@{firewall}|None,0}}}{{dice=[[(@{level}+?{Attribute}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", vehicle_dr: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defenserating} = ^{piloting} (?{Piloting?|No Pilot,@{pilot}|1|2|3|4|5|6|7|8|9|10}) + ^{armor} (@{armor})}}{{rating=[[?{Piloting?}+@{armor}]]}}", vehicle_defense: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defense} = ^{piloting} (?{Piloting?|No Pilot,@{pilot}|1|2|3|4|5|6|7|8|9|10}) + ^{evasion} (?{Evasion Autosoft Rating or Pilot Reaction?| No Evasion Autosoft,0|1|2|3|4|5|6|7|8|9|10})}}{{dice=[[((?{Piloting?}+?{Evasion Autosoft Rating or Pilot Reaction?}+@{defense_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{wilddie_dice=[[0]]}}", npc_clearsight: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{clearsight} = ^{clearsight} + ^{sensor}}}{{dice=[[(@{clearsight}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", @@ -6891,9 +6917,15 @@ const rollButtons = { npc_targeting2: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{targeting2_weapon} ^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting2}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", npc_targeting3: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{targeting3_weapon} ^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting3}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", spirit_dr: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defenserating}}}{{rating=@{defense_rating}}}", - spirit_skill: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{skill} ^{force} (@{force}) + ^{attribute} (?{Attribute|Body,@{body}|Agility,@{agility}|Reaction,@{reaction}|Strength,@{strength}|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}|Charisma,@{charisma}|None,0})}}{{dice=[[(@{force}+?{Attribute}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{wilddie_dice=[[0]]}}", - npc_range_weapon_no_dicepool: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (Dicepool: ?{Skill / Autosoft Rating?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10} + ?{Attribute / Sensor Rating?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10})}}{{dice=[[(?{Skill / Autosoft Rating?}+?{Attribute / Sensor Rating?}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Mode @{mode}, Damage @{damage}, Dicepool = @{dicepool} + Wounds @{wounds_toggle} + Modifiers @{modifiers_toggle} + Edge @{edge_toggle}, Notes @{notes}}}{{wilddie=[[@{wild_die}]]}}{{wilddie_dice=[[0]]}}", - npc_range_weapon: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (Dicepool: @{dicepool})}}{{dice=[[(@{dicepool}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Mode @{mode}, Damage @{damage}, Dicepool = @{dicepool} + Wounds @{wounds_toggle} + Modifiers @{modifiers_toggle} + Edge @{edge_toggle}, Notes @{notes}}}{{wilddie=[[@{wild_die}]]}}{{wilddie_dice=[[0]]}}", + spiritskill: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{skill} ^{force} (@{force}) + ^{attribute} (?{Attribute|Body,@{body}|Agility,@{agility}|Reaction,@{reaction}|Strength,@{strength}|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}|Charisma,@{charisma}|None,0})}}{{dice=[[(@{force}+?{Attribute}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", + npcrangeweapon: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[(@{dicepool}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}{{tip=**Next:** Target rolls Defense}}{{npcattackinfo=1}}{{ars=1}}{{arclose=@{close}}}{{arnear=@{near}}}{{armedium=@{medium}}}{{arfar=@{far}}}{{arextreme=@{extreme}}}{{firingmode=@{mode}}}{{damage=@{damage}}}{{ammotype=}}{{skill=}}{{attribute=}}{{weapspec=}}{{weapexpert=}}", + npcrangeweaponnodicepool: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[(?{Skill / Autosoft Rating?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10}+?{Attribute / Sensor Rating?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}{{tip=**Next:** Target rolls Defense}}{{npcattackinfo=1}}{{ars=1}}{{arclose=@{close}}}{{arnear=@{near}}}{{armedium=@{medium}}}{{arfar=@{far}}}{{arextreme=@{extreme}}}{{firingmode=@{mode}}}{{damage=@{damage}}}{{ammotype=}}{{skill=}}{{attribute=}}{{weapspec=}}{{weapexpert=}}", + npcmeleeweapon: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[(@{dicepool}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}{{tip=**Next:** Target rolls Defense}}{{npcattackinfo=1}}{{ars=1}}{{arclose=@{close}}}{{arnear=@{near}}}{{armedium=@{medium}}}{{arfar=@{far}}}{{arextreme=@{extreme}}}{{firingmode=}}{{damage=@{damage}}}{{ammotype=}}{{skill=}}{{attribute=}}{{weapspec=}}{{weapexpert=}}{{melee=1}}", + npcmeleeweaponnodicepool: "@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[(?{Skill / Autosoft Rating?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10}+?{Attribute / Sensor Rating?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}{{tip=**Next:** Target rolls Defense}}{{npcattackinfo=1}}{{ars=1}}{{arclose=@{close}}}{{arnear=@{near}}}{{armedium=@{medium}}}{{arfar=@{far}}}{{arextreme=@{extreme}}}{{firingmode=}}{{damage=@{damage}}}{{ammotype=}}{{skill=}}{{attribute=}}{{weapspec=}}{{weapexpert=}}{{melee=1}}", + npcspell: "@{gm_toggle} &{template:rolls-computed}{{dice=[[((@{skill}+@{magic})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{ampup=[[?{Amp Up|0|1|2|3|4|5|6|7|8|9|10}]]}}{{drain=[[?{Amp Up}*2+(@{drain})]]}}{{header=@{character_name}}}{{base=@{name} (@{category} ^{magic})}}{{effecttype=@{effect_type}}}{{damagetype=@{damage}}}{{desc=@{notes}}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", + npcspellaoe: "@{gm_toggle} &{template:rolls-computed}{{dice=[[((@{skill}+@{magic})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{ampup=[[?{Amp Up|0|1|2|3|4|5|6|7|8|9|10}]]}}{{increasearea=[[?{Increase Area|0m,0|2m,1|4m,2|6m,3|8m,4|10m,5|12m,5|14m,6|16m,8|18m,9|20m,10}*2]]}}{{drain=[[?{Amp Up}*2+?{Increase Area}+(@{drain})]]}}{{header=@{character_name}}}{{base=@{name} (@{category} ^{magic})}}{{effecttype=@{effect_type}}}{{damagetype=@{damage}}}{{desc=@{notes}}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", + npcnoncombatspell: "@{gm_toggle} &{template:rolls-computed}{{dice=[[((@{skill}+@{magic})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{drain=[[@{drain}]]}}{{header=@{character_name}}}{{base=@{name} (@{category} ^{magic})}}{{effecttype=@{effect_type}}}{{damagetype=@{damage}}}{{desc=@{notes}}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", + npcnoncombatspellaoe: "@{gm_toggle} &{template:rolls-computed}{{dice=[[((@{skill}+@{magic})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}cs>5cf<[[(1+@{bad_luck})]]]]}}{{wilddie=[[@{wild_die}]]}}{{glitch=[[0]]}}{{wilddie_dice=[[0]]}}{{dicepool=[[0]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{increasearea=[[?{Increase Area|0m,0|2m,1|4m,2|6m,3|8m,4|10m,5|12m,5|14m,6|16m,8|18m,9|20m,10}*2]]}}{{drain=[[?{Increase Area}+(@{drain})]]}}{{header=@{character_name}}}{{base=@{name} (@{category} ^{magic})}}{{effecttype=@{effect_type}}}{{damagetype=@{damage}}}{{desc=@{notes}}}{{misses=[[0]]}}{{hits=[[0]]}}{{fours=[[0]]}}{{rerolls=[[@{rerolls}]]}}", }; const initiatives = { @@ -6958,8 +6990,7 @@ Object.keys(initiatives).forEach((ini) => { 'host_rating', 'host_attack', 'host_sleaze', 'host_data_processing', 'host_firewall', 'pilot', 'vehicle_dr', 'vehicle_defense', 'npc_clearsight', 'npc_electronicwarfare', 'npc_evasion', 'npc_maneuvering', 'npc_stealth', 'npc_targeting', 'npc_targeting2', 'npc_targeting3', 'level', 'sprite_attack', 'sprite_sleaze', 'sprite_data_processing', 'sprite_firewall', 'resonance', -'spirit_dr', 'spirit_skill', -'npc_range_weapon', 'npc_range_weapon_no_dicepool', +'spirit_dr', 'spiritskill', ].forEach((button) => { on(`clicked:${button}`, (eventInfo) => { console.log(eventInfo); @@ -6994,12 +7025,12 @@ for(c = 1; c < 50; c++) { } // Repeating Skill Rolls -['repeating_skills:skill', 'repeating_skills:spec', 'repeating_skills:expert'].forEach((button) => { +['repeating_skills:skill', 'repeating_skills:spec', 'repeating_skills:expert', 'repeating_skills:spriteskill', 'repeating_skills:spiritskill'].forEach((button) => { on(`clicked:${button}`, (eventInfo) => { var buttonType = eventInfo.triggerName.split('_')[eventInfo.triggerName.split('_').length - 1]; var rollButton = rollButtons[buttonType]; - ['name', 'spec', 'expert', 'display_spec', 'display_expert', 'rating', 'attribute', 'display_attribute', 'mod', 'notes'].forEach((field) => { + ['name', 'spec', 'expert', 'display_spec', 'display_expert', 'rating', 'attribute', 'display_attribute', 'mod', 'notes', 'skill'].forEach((field) => { var replacement = eventInfo.triggerName.slice(8); var re = RegExp(buttonType+'$', "g"); @@ -7013,31 +7044,33 @@ console.log(rollButton); }); // Repeating Weapon Rolls -['repeating_range:rangeweapon', 'repeating_melee:meleeweapon', 'repeating_grenade:grenadeweapon'].forEach((button) => { +['repeating_range:rangeweapon', 'repeating_melee:meleeweapon', 'repeating_grenade:grenadeweapon', 'repeating_range:npcrangeweaponnodicepool', 'repeating_range:npcrangeweapon', 'repeating_melee:npcrangeweaponnodicepool', 'repeating_melee:npcmeleeweaponnodicepool', 'repeating_melee:npcmeleeweapon'].forEach((button) => { on(`clicked:${button}`, (eventInfo) => { var buttonType = eventInfo.triggerName.split('_')[eventInfo.triggerName.split('_').length - 1]; var rollButton = rollButtons[buttonType]; - ['name', 'type', 'spec', 'expert', 'dicepool_modifier', 'ground_zero', 'close', 'near', 'blast', 'rating', 'attr_rating', 'damage', 'skill', 'attribute', 'mode', 'notes'].forEach((field) => { + ['name', 'type', 'spec', 'expert', 'dicepool_modifier', 'ground_zero', 'close', 'near', 'medium', 'far', 'extreme', 'blast', 'rating', 'attr_rating', 'damage', 'skill', 'attribute', 'mode', 'notes', 'dicepool', 'dicepool_mod'].forEach((field) => { var replacement = eventInfo.triggerName.slice(8); var re = RegExp(buttonType+'$', "g"); replacement = replacement.replace(re, field); +console.log(replacement); rollButton = rollButton.replace('@{'+field+'}', '@{'+replacement+'}'); }); +console.log(rollButton); rollProcessor(rollButton); }); }); // Repeating Spell/Preparation/Ritual Rolls -['repeating_spell:spell', 'repeating_spell:spellaoe', 'repeating_spell:noncombatspell', 'repeating_spell:noncombatspellaoe', 'repeating_preparations:preparation', 'repeating_ritual:ritual'].forEach((button) => { +['repeating_spell:spell', 'repeating_spell:spellaoe', 'repeating_spell:noncombatspell', 'repeating_spell:noncombatspellaoe', 'repeating_preparations:preparation', 'repeating_ritual:ritual', 'repeating_npcspell:npcspell', 'repeating_npcspell:npcspellaoe', 'repeating_npcspell:npcnoncombatspell', 'repeating_npcspell:npcnoncombatspellaoe'].forEach((button) => { on(`clicked:${button}`, (eventInfo) => { var buttonType = eventInfo.triggerName.split('_')[eventInfo.triggerName.split('_').length - 1]; var rollButton = rollButtons[buttonType]; - ['name', 'category', 'effect_type', 'skill', 'dicepool_modifier', 'specialization', 'expertise', 'drain', 'spec', 'expert', 'threshold', 'potency', 'notes', 'damage'].forEach((field) => { + ['sheet_type', 'name', 'category', 'effect_type', 'skill', 'dicepool_modifier', 'specialization', 'expertise', 'drain', 'spec', 'expert', 'threshold', 'potency', 'notes', 'damage'].forEach((field) => { var replacement = eventInfo.triggerName.slice(8); var re = RegExp(buttonType+'$', "g"); @@ -11590,39 +11623,46 @@ var compendiumAddSpell = function(data) { row_id = generateRowID(); - var spell_type = 'spell'; - - ['data-damage', 'data-duration', 'data-effect_type', 'data-range'].forEach((key) => { - if(typeof(data[key]) === 'undefined') { - data[key] = ''; + getAttrs(['sheet_type'], (v) => { + var spell_type = 'spell'; + if(v.sheet_type == 'pc') { + spell_type = 'spell'; + } else { + spell_type = 'npcspell'; } + + ['data-damage', 'data-duration', 'data-effect_type', 'data-range'].forEach((key) => { + if(typeof(data[key]) === 'undefined') { + data[key] = ''; + } + }); + + rowattrs["repeating_" + spell_type + "_" + row_id + "_flag"] = false; + rowattrs["repeating_" + spell_type + "_" + row_id + "_name"] = data["data-name"] || 'No Name'; + rowattrs["repeating_" + spell_type + "_" + row_id + "_skill"] = '@{sorcery}'; + rowattrs["repeating_" + spell_type + "_" + row_id + "_notes"] = data["data-description"] || ''; + rowattrs["repeating_" + spell_type + "_" + row_id + "_category"] = ucfirst(data["data-category"]) || ''; + rowattrs["repeating_" + spell_type + "_" + row_id + "_damage"] = trans.Spells.damage[data["data-damage"].toUpperCase()] || ''; + rowattrs["repeating_" + spell_type + "_" + row_id + "_drain"] = data["data-drain"] || 0; + rowattrs["repeating_" + spell_type + "_" + row_id + "_duration"] = trans.Spells.duration[data["data-duration"].toUpperCase()] || ''; + + var eftype = ''; + if(data["data-effect_type"]) { + eftype = data["data-effect_type"].toUpperCase(); + } else if(data["data-typename"]) { + eftype = data["data-typename"]; + var reg = /.*\((.*)\).*/; + eftype = eftype.match(reg) || ('', ''); + eftype = eftype[1].toUpperCase(); + } + + rowattrs["repeating_" + spell_type + "_" + row_id + "_effect_type"] = trans.Spells.effect_type[eftype] || ''; + rowattrs["repeating_" + spell_type + "_" + row_id + "_range"] = trans.Spells.range[data["data-range"].toUpperCase()] || ''; + rowattrs["repeating_" + spell_type + "_" + row_id + "_type"] = ucfirst(data["data-type"]) || ''; + + rowattrs["repeating_" + spell_type + "_" + row_id + "_notes"] = data["data-notes"] || ''; + setAttrs(rowattrs); }); - - rowattrs["repeating_" + spell_type + "_" + row_id + "_flag"] = false; - rowattrs["repeating_" + spell_type + "_" + row_id + "_name"] = data["data-name"] || 'No Name'; - rowattrs["repeating_" + spell_type + "_" + row_id + "_skill"] = '@{sorcery}'; - rowattrs["repeating_" + spell_type + "_" + row_id + "_notes"] = data["data-description"] || ''; - rowattrs["repeating_" + spell_type + "_" + row_id + "_category"] = ucfirst(data["data-category"]) || ''; - rowattrs["repeating_" + spell_type + "_" + row_id + "_damage"] = trans.Spells.damage[data["data-damage"].toUpperCase()] || ''; - rowattrs["repeating_" + spell_type + "_" + row_id + "_drain"] = data["data-drain"] || 0; - rowattrs["repeating_" + spell_type + "_" + row_id + "_duration"] = trans.Spells.duration[data["data-duration"].toUpperCase()] || ''; - - var eftype = ''; - if(data["data-effect_type"]) { - eftype = data["data-effect_type"].toUpperCase(); - } else if(data["data-typename"]) { - eftype = data["data-typename"]; - var reg = /.*\((.*)\).*/; - eftype = eftype.match(reg) || ('', ''); - eftype = eftype[1].toUpperCase(); - } - - rowattrs["repeating_" + spell_type + "_" + row_id + "_effect_type"] = trans.Spells.effect_type[eftype] || ''; - rowattrs["repeating_" + spell_type + "_" + row_id + "_range"] = trans.Spells.range[data["data-range"].toUpperCase()] || ''; - rowattrs["repeating_" + spell_type + "_" + row_id + "_type"] = ucfirst(data["data-type"]) || ''; - - rowattrs["repeating_" + spell_type + "_" + row_id + "_notes"] = data["data-notes"] || ''; - setAttrs(rowattrs); };