Merge pull request #11621 from jaculpiii/ShadowrunSixthWorld-v.77
Shadowrun Sixth World v.77
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
Change Log
|
||||
==============================================
|
||||
**2023-03-20 ** v.77 Chuz (James Culp)
|
||||
Bugfix - (?) Trying to fix some dicepool bugs on NPC and Vehicle sheets tied to grunt groups.
|
||||
Bugfix - Vehicle physical and matrix condition monitors weren't updating right on drag and drop
|
||||
**2023-03-13 ** v.76 Chuz (James Culp)
|
||||
Bugfix</b> - Fixed Spirit Astral initiative dice had been reduced to mere metahumanity levels, they've been returned to their previous exceptionalism.
|
||||
**2023-03-06 ** v.75 Chuz (James Culp)
|
||||
|
||||
@@ -3474,6 +3474,11 @@
|
||||
<div class="notes-changelog">
|
||||
<div name="changelog" class="changelog">
|
||||
<h1 class="changelog-header">Most Recent Updates</h1>
|
||||
<span class="changelog-entry">**2023-03-20 ** v.77 Chuz (James Culp)</span>
|
||||
<ul>
|
||||
<li><span class="bullet">A</span><b>Bugfix</b> - (?) Trying to fix some dicepool bugs on NPC and Vehicle sheets tied to grunt groups.
|
||||
<li><span class="bullet">A</span><b>Bugfix</b> - Vehicle physical and matrix condition monitors weren't updating right on drag and drop
|
||||
</ul>
|
||||
<span class="changelog-entry">**2023-03-13 ** v.76 Chuz (James Culp)</span>
|
||||
<ul>
|
||||
<li><span class="bullet">A</span><b>Bugfix</b> - Fixed Spirit Astral initiative dice had been reduced to mere metahumanity levels, they've been returned to their previous exceptionalism.
|
||||
@@ -4871,6 +4876,7 @@
|
||||
<input name="attr_far" type="hidden" value=""/>
|
||||
<input name="attr_extreme" type="hidden" value=""/>
|
||||
<input name="attr_dicepool" type="hidden" value=""/>
|
||||
<input name="attr_dicepool_base" type="hidden" value=""/>
|
||||
<button class="no-dicepool" name="act_npcrangeweaponnodicepool" type="action" value="@{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]]}}"><span name="attr_name"></span></button>
|
||||
<button class="dicepool" name="act_npcrangeweapon" type="action" value="@{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]]}}"><span name="attr_name"></span></button>
|
||||
<span class="center" name="attr_dicepool"></span>
|
||||
@@ -4967,6 +4973,7 @@
|
||||
<input name="attr_far" type="hidden" value=""/>
|
||||
<input name="attr_extreme" type="hidden" value=""/>
|
||||
<input name="attr_dicepool" type="hidden" value=""/>
|
||||
<input name="attr_dicepool_base" type="hidden" value=""/>
|
||||
<input name="attr_dicepool_modifier" type="hidden" value=""/>
|
||||
<button class="no-dicepool" name="act_npcmeleeweaponnodicepool" type="action" value="@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (Dicepool: ?{Skill / Autosoft?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10} + ?{Attribute / Sensor?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10})}}{{dice=[[(?{Skill / Autosoft?}+?{Attribute / Sensor?}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=DV @{damage}, Notes: @{notes}}}{{wilddie=[[@{wild_die}]]}}{{wilddie_dice=[[0]]}}"><span name="attr_name"></span></button>
|
||||
<button class="dicepool" name="act_npcmeleeweapon" type="action" value="@{gm_toggle} &{template:rolls-computed}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (Dicepool: @{dicepool})}}{{dice=[[(@{dicepool}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=DV @{damage}, Notes: @{notes}}}{{wilddie=[[@{wild_die}]]}}{{wilddie_dice=[[0]]}}"><span name="attr_name"></span></button>
|
||||
@@ -6267,7 +6274,7 @@
|
||||
<input type="hidden" name="attr_spellcasting_specialist" value="0" />
|
||||
<input type="hidden" name="attr_spellcasting_expert" value="0" />
|
||||
|
||||
<input type="hidden" name="attr_sheet_version" value="0.76">
|
||||
<input type="hidden" name="attr_sheet_version" value="0.77">
|
||||
<input type="hidden" name="attr_data_version" value="0">
|
||||
<script type="text/worker">
|
||||
// Sheet workers
|
||||
@@ -6343,6 +6350,10 @@ on("sheet:opened", function() {
|
||||
case (v.data_version < 0.72):
|
||||
_v72_update();
|
||||
console.log("Data now fits v.72");
|
||||
case (v.data_version < 0.77):
|
||||
_v77_update();
|
||||
console.log("Data now fits v.77");
|
||||
break;
|
||||
default:
|
||||
setAttrs({
|
||||
'data_version': v.sheet_version
|
||||
@@ -6364,6 +6375,33 @@ var show_changelog = () => {
|
||||
};
|
||||
|
||||
|
||||
var _v77_update = () => {
|
||||
getAttrs(["sheet_type"], (v) => {
|
||||
if(v.sheet_type == 'grunt' || v.sheet_type == 'spirit' || v.sheet_type == 'vehicle') {
|
||||
// set the new repeating melee and repeating ranged dicepool_base attribute to dicepool - dicepool_modifier
|
||||
getSectionIDs('repeating_range', (ids) => {
|
||||
ids.forEach((row_id) => {
|
||||
getAttrs([`repeating_range_${row_id}_dicepool_base`, `repeating_range_${row_id}_dicepool`, `repeating_range_${row_id}_dicepool_modifier`], (v) => {
|
||||
setAttrs({
|
||||
[`repeating_range_${row_id}_dicepool_base`]: parseInt(v[`repeating_range_${row_id}_dicepool`]) - parseInt(v[`repeating_range_${row_id}_dicepool_modifier`])
|
||||
}, {silent: true});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
getSectionIDs('repeating_melee', (ids) => {
|
||||
ids.forEach((row_id) => {
|
||||
getAttrs([`repeating_melee_${row_id}_dicepool_base`, `repeating_melee_${row_id}_dicepool`, `repeating_melee_${row_id}_dicepool_modifier`], (v) => {
|
||||
setAttrs({
|
||||
[`repeating_melee_${row_id}_dicepool_base`]: parseInt(v[`repeating_melee_${row_id}_dicepool`]) - parseInt(v[`repeating_melee_${row_id}_dicepool_modifier`])
|
||||
}, {silent: true});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var _v72_update = () => {
|
||||
getAttrs(["sheet_type"], (v) => {
|
||||
if(v.sheet_type == 'grunt' || v.sheet_type == 'spirit') {
|
||||
@@ -9686,9 +9724,7 @@ console.log(toSet);
|
||||
const regex = /_(-.*)$/;
|
||||
var rowID = eventInfo.triggerName.match(regex)[1];
|
||||
|
||||
//console.log(eventInfo);
|
||||
getAttrs([`${weap}_name`, `${weap}_dicepool_modifier`, `${weap}_spec`, `${weap}_expert`, `${weap}_skill`, `${weap}_attribute`, `${weap}_attr_rating`, `${weap}_primary`, `${weap}_firing_modes`, `${weap}_default_mode`, `${weap}_damage`, `${weap}_close`, `${weap}_near`, `${weap}_medium`, `${weap}_far`, `${weap}_extreme`, `${weap}_has_mods`, `${weap}_notes`, `sheet_type`, `${weap}_dicepool`, `${weap}_dicepool_base`], (v) => {
|
||||
//console.log(v);
|
||||
// Trying to detect this firing on a remove: event and stop processing if it was
|
||||
if(typeof eventInfo.newValue === 'undefined' && typeof eventInfo.previousValue === 'undefined' && ! v[`${weap}_name`]) {
|
||||
console.log("do nothing!");
|
||||
@@ -9697,14 +9733,30 @@ console.log(toSet);
|
||||
|
||||
|
||||
if(eventInfo.sourceAttribute.endsWith("dicepool") && eventInfo.newValue && eventInfo.newValue != "0") {
|
||||
console.log(eventInfo);
|
||||
if(eventInfo.sourceType === 'player') {
|
||||
console.log("updating dicepool_base to: "+v[`${weap}_dicepool`]);
|
||||
setAttrs({
|
||||
[`${weap}_dicepool_base`]: v[`${weap}_dicepool`],
|
||||
}, {silent: true});
|
||||
}
|
||||
return;
|
||||
} else if(v[`${weap}_dicepool_base`] && v[`${weap}_dicepool_base`] != v[`${weap}_dicepool`]) {
|
||||
let diff = parseInt(v[`${weap}_dicepool_base`]) - parseInt(v[`${weap}_dicepool`]);
|
||||
//console.log("updating dicepool_base to: "+v[`${weap}_dicepool`]);
|
||||
// let diff = parseInt(v[`${weap}_dicepool_base`]) - parseInt(v[`${weap}_dicepool`]);
|
||||
|
||||
setAttrs({
|
||||
[`${weap}_dicepool_base`]: '',
|
||||
[`${weap}_dicepool_modifier`]: parseInt(v[`${weap}_dicepool_modifier`] + diff)
|
||||
});
|
||||
// setAttrs({
|
||||
// [`${weap}_dicepool_modifier`]: parseInt(v[`${weap}_dicepool_modifier`] + diff)
|
||||
// }, {silent: true});
|
||||
}
|
||||
|
||||
// if(v[`${weap}_dicepool_base`] == '') {
|
||||
// v[`${weap}_dicepool_base`] = v[`${weap}_dicepool`];
|
||||
// }
|
||||
|
||||
// If this is a vehicle/drone sheet there's nothing more to do
|
||||
if(v.sheet_type == 'vehicle') {
|
||||
return;
|
||||
}
|
||||
|
||||
const mod = parseInt(v[`${weap}_dicepool_modifier`]) || 0;
|
||||
@@ -10012,9 +10064,13 @@ on("change:grunt_group_count change:grunt_group_member change:repeating_melee:mo
|
||||
[`repeating_${wtype}_${id}_medium`]: m,
|
||||
[`repeating_${wtype}_${id}_far`]: f,
|
||||
[`repeating_${wtype}_${id}_extreme`]: e
|
||||
});
|
||||
}, {silent: true});
|
||||
} else { // they are now a grunt group member we need to adjust dicepool and ARs
|
||||
//console.log("dicepool_base: "+dice);
|
||||
//console.log("dicepool_modifier: "+diceMod);
|
||||
//console.log("grunt group dicepool bonus: "+bonuses.dice);
|
||||
var dp = parseInt(dice) + parseInt(diceMod) + parseInt(bonuses.dice) || 0;
|
||||
//console.log("dicepool: "+dp);
|
||||
setAttrs({
|
||||
[`repeating_${wtype}_${id}_damage`]: DV,
|
||||
[`repeating_${wtype}_${id}_dicepool`]: dp,
|
||||
@@ -10023,7 +10079,7 @@ on("change:grunt_group_count change:grunt_group_member change:repeating_melee:mo
|
||||
[`repeating_${wtype}_${id}_medium`]: m,
|
||||
[`repeating_${wtype}_${id}_far`]: f,
|
||||
[`repeating_${wtype}_${id}_extreme`]: e
|
||||
});
|
||||
}, {silent: true});
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -11830,19 +11886,27 @@ console.log("Category: "+data.Category);
|
||||
case 'Vehicles':
|
||||
case 'Drone':
|
||||
case 'Drones':
|
||||
canvasAddDrone(data);
|
||||
|
||||
if(typeof data["data-physical"] !== 'undefined') {
|
||||
physical = data["data-physical"];
|
||||
} else if(typeof data["data-body_base"] !== 'undefined') {
|
||||
physical = 8 + Math.ceil(data["data-body_base"] / 2);
|
||||
}
|
||||
|
||||
console.log("Physical: "+physical);
|
||||
if(typeof data["data-matrix"] !== 'undefined') {
|
||||
matrix = data["data-matrix"];
|
||||
} else if(typeof data["data-sensor_base"] !== 'undefined') {
|
||||
matrix = 8 + Math.ceil(data["data-sensor_base"]);
|
||||
matrix = 8 + Math.ceil(data["data-sensor_base"] / 2);
|
||||
}
|
||||
console.log("Matrix: "+matrix);
|
||||
|
||||
if(! data["data-physical"]) {
|
||||
data["data-physical"] = physical;
|
||||
}
|
||||
if(! data["data-matrix"]) {
|
||||
data["data-matrix"] = matrix;
|
||||
}
|
||||
|
||||
canvasAddDrone(data);
|
||||
|
||||
tokenAttrs.bar1_value = physical;
|
||||
tokenAttrs.bar1_max = physical;
|
||||
@@ -11934,6 +11998,7 @@ var canvasAddNPC = function(data) {
|
||||
addattrs[attr] = '';
|
||||
}
|
||||
});
|
||||
|
||||
addattrs.physical_max = addattrs['physical'];
|
||||
|
||||
|
||||
@@ -12153,6 +12218,10 @@ var canvasAddDrone = function(data) {
|
||||
addattrs["maneuvering"] = data["data-maneuvering"] || 0;
|
||||
addattrs["stealth"] = data["data-stealth"] || 0;
|
||||
addattrs["targeting"] = data["data-targeting"] || 0;
|
||||
addattrs["physical"] = data["data-physical"] || 0;
|
||||
addattrs["physical_max"] = data["data-physical"] || 0;
|
||||
addattrs["matrix"] = data["data-matrix"] || 0;
|
||||
addattrs["matrix_max"] = data["data-matrix"] || 0;
|
||||
|
||||
addattrs["notes"] = data["data-description"] || '';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user