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); };