Added a tab for setting scores manually
- Added tab - Added fields for that tab - Added display for Roll tab
This commit is contained in:
@@ -2580,4 +2580,4 @@ on("change:hpRollSwitch", function(args) {
|
||||
setAttrs(update, {silent: true});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -72,14 +72,19 @@ input.sheet-pageToggle:not([value="3"]) ~ .sheet-tab3 {
|
||||
/**********************
|
||||
Roll-up
|
||||
***********************/
|
||||
input.sheet-rollSwitch:not([value="0"]) ~ .sheet-pre-rolled {
|
||||
input.sheet-rollSwitch[value="0"] ~ .sheet-tab-score-roll, input.sheet-rollSwitch[value="0"] ~ .sheet-tab-score-input {
|
||||
display:none
|
||||
}
|
||||
|
||||
input.sheet-rollSwitch:not([value="1"]) ~ .sheet-post-rolled {
|
||||
input.sheet-rollSwitch[value="1"] ~ .sheet-tab-score-input {
|
||||
display:none
|
||||
}
|
||||
|
||||
input.sheet-rollSwitch[value="2"] ~ .sheet-tab-score-roll {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+196
-6
@@ -273,19 +273,108 @@
|
||||
option(value="MS") MS
|
||||
option(value="CH") CH
|
||||
.col-xs-2
|
||||
label Effort
|
||||
label Targets
|
||||
.col-xs-2
|
||||
input(type="text" name="attr_number")
|
||||
.col-xs-2
|
||||
label Effort
|
||||
.col-xs-3
|
||||
select(name="attr_effort")
|
||||
option(value="passive") Subconscious
|
||||
option(value="active") Conscious
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label No.
|
||||
.col-xs-1
|
||||
input(type="text" name="attr_number")
|
||||
label Save
|
||||
.col-xs-2
|
||||
select(name="attr_save")
|
||||
option(value="PS") PS
|
||||
option(value="DX") DX
|
||||
option(value="CN") CN
|
||||
option(value="IN") IN
|
||||
option(value="MS") MS
|
||||
option(value="CH") CH
|
||||
.col-xs-2
|
||||
label Duration
|
||||
.col-xs-2
|
||||
input(type="text" name="attr_duration")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label Effect
|
||||
.col-xs-2
|
||||
select(name="attr_effect" value=0)
|
||||
option(value=0) None
|
||||
option(value="accrit") AC Critical
|
||||
option(value="burn") Burn
|
||||
option(value="cold") Cold
|
||||
option(value="compa") Comp. A
|
||||
option(value="compc") Comp. C
|
||||
option(value="critical") Critical
|
||||
option(value="delirium") Delirium
|
||||
option(value="disintegrate") Disintegrate
|
||||
option(value="domination") Domination
|
||||
option(value="electrical") Electrical
|
||||
option(value="fatal") Fatal
|
||||
option(value="fieldnegate") Field Negate
|
||||
option(value="fumes") Fumes
|
||||
option(value="heat") Heat
|
||||
option(value="extrarf") Hits +1RF
|
||||
option(value="ignites") Ignites
|
||||
option(value="ignoresac") Ignores AC
|
||||
option(value="intercept") Intercept
|
||||
option(value="irritant") Irritant
|
||||
option(value="knockdown") Knock Down
|
||||
option(value="ko") Knock Out
|
||||
option(value="mutate") Mutate
|
||||
option(value="paralysis") Paralysis
|
||||
option(value="poison") Poison
|
||||
option(value="powerdrain") Power Drain
|
||||
option(value="radiation") Radiation
|
||||
option(value="scatter") Scatter
|
||||
option(value="seeker") Seeker
|
||||
option(value="shortout") Short Out
|
||||
option(value="slam") Slam
|
||||
option(value="sonic") Sonic
|
||||
option(value="stun") Stun
|
||||
option(value="subsonics") Subsonics
|
||||
option(value="tangle") Tangle
|
||||
.col-xs-2 Critical
|
||||
.col-xs-2
|
||||
select(name="attr_effect_crit" value=0)
|
||||
option(value=0) None
|
||||
option(value="accrit") AC Critical
|
||||
option(value="burn") Burn
|
||||
option(value="cold") Cold
|
||||
option(value="compa") Comp. A
|
||||
option(value="compc") Comp. C
|
||||
option(value="critical") Critical
|
||||
option(value="delirium") Delirium
|
||||
option(value="disintegrate") Disintegrate
|
||||
option(value="domination") Domination
|
||||
option(value="electrical") Electrical
|
||||
option(value="fatal") Fatal
|
||||
option(value="fieldnegate") Field Negate
|
||||
option(value="fumes") Fumes
|
||||
option(value="heat") Heat
|
||||
option(value="extrarf") Hits +1 RF
|
||||
option(value="ignites") Ignites
|
||||
option(value="ignoresac") Ignores AC
|
||||
option(value="intercept") Intercept
|
||||
option(value="irritant") Irritant
|
||||
option(value="knockdown") Knock Down
|
||||
option(value="ko") Knock Out
|
||||
option(value="mutate") Mutate
|
||||
option(value="paralysis") Paralysis
|
||||
option(value="poison") Poison
|
||||
option(value="powerdrain") Power Drain
|
||||
option(value="radiation") Radiation
|
||||
option(value="scatter") Scatter
|
||||
option(value="seeker") Seeker
|
||||
option(value="shortout") Short Out
|
||||
option(value="slam") Slam
|
||||
option(value="sonic") Sonic
|
||||
option(value="stun") Stun
|
||||
option(value="subsonics") Subsonics
|
||||
option(value="tangle") Tangle
|
||||
.col-xs-12
|
||||
label Description
|
||||
.col-xs-12
|
||||
@@ -1354,18 +1443,119 @@
|
||||
label Description
|
||||
.col-xs-12
|
||||
textarea(name="attr_description")
|
||||
|
||||
.tab3
|
||||
.sheet-container
|
||||
h2 Ability Scores
|
||||
div.panel
|
||||
input.short.rollSwitch(type="hidden" value="0")
|
||||
label.tab
|
||||
input.short.rollSwitch(type="radio" value="0" name="attr_rollSwitch")
|
||||
span Reset
|
||||
label.tab
|
||||
input.short.rollSwitch(type="radio" value="1" name="attr_rollSwitch")
|
||||
span Roll
|
||||
label.tab
|
||||
input.short.rollSwitch(type="radio" value="2" name="attr_rollSwitch")
|
||||
span Input
|
||||
input.rollSwitch(type="hidden" name="attr_rollSwitch" value="2")
|
||||
.tab-score-roll
|
||||
.row
|
||||
.col-xs-6
|
||||
h2 Physical Abilities
|
||||
.row
|
||||
.col-xs-1
|
||||
.col-xs-2(title="Initially Rolled Score") Score
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability PS
|
||||
.col-xs-1
|
||||
span(name="attr_PS_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability DX
|
||||
.col-xs-1
|
||||
span(name="attr_DX_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability CN
|
||||
.col-xs-1
|
||||
span(name="attr_CN_rolled")
|
||||
|
||||
.col-xs-6.post
|
||||
h2 Mental Abilities
|
||||
.row
|
||||
.col-xs-1
|
||||
.col-xs-2(title="Initially Rolled Score") Score
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability IN
|
||||
.col-xs-1
|
||||
span(name="attr_IN_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability MS
|
||||
.col-xs-1
|
||||
span(name="attr_MS_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability CH
|
||||
.col-xs-1
|
||||
span(name="attr_CH_rolled")
|
||||
.tab-score-input
|
||||
.row
|
||||
.col-xs-6
|
||||
h2 Physical Abilities
|
||||
.row
|
||||
.col-xs-1
|
||||
.col-xs-2(title="Initially Rolled Score") Score
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability PS
|
||||
.col-xs-1
|
||||
input.tab4(type="text" name="attr_PS_rolled" title="@{PS_rolled}")
|
||||
.col-xs-1
|
||||
span(name="attr_PS_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability DX
|
||||
.col-xs-2
|
||||
input.tab4(type="text" name="attr_DX_rolled" title="@{DX_rolled}")
|
||||
.col-xs-1
|
||||
span(name="attr_DX_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability CN
|
||||
.col-xs-2
|
||||
input.tab4(type="text" name="attr_CN_rolled" title="@{CN_rolled}")
|
||||
.col-xs-1
|
||||
span(name="attr_CN_rolled")
|
||||
|
||||
.col-xs-6.post
|
||||
h2 Mental Abilities
|
||||
.row
|
||||
.col-xs-1
|
||||
.col-xs-2(title="Initially Rolled Score") Score
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability IN
|
||||
.col-xs-2
|
||||
input.tab4(type="text" name="attr_IN_rolled" title="@{IN_rolled}")
|
||||
.col-xs-1
|
||||
span(name="attr_IN_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability MS
|
||||
.col-xs-2
|
||||
input.tab4(type="text" name="attr_MS_rolled" title="@{MS_rolled}")
|
||||
.col-xs-1
|
||||
span(name="attr_MS_rolled")
|
||||
.row.middle-xs
|
||||
.col-xs-1
|
||||
label.ability CH
|
||||
.col-xs-2
|
||||
input.tab4(type="text" name="attr_CH_rolled" title="@{CH_rolled}")
|
||||
.col-xs-1
|
||||
span(name="attr_CH_rolled")
|
||||
|
||||
h2 Hit Points
|
||||
div.panel
|
||||
input.short.hpRollSwitch(type="hidden" value="0")
|
||||
|
||||
+496
-413
@@ -1,496 +1,579 @@
|
||||
|
||||
//------ Functions ---------
|
||||
|
||||
const update_ability = function(name) {
|
||||
console.log('update_ability: '+name);
|
||||
let update = {};
|
||||
getAttrs([name+'_rolled', name+'_advanced', name+'_tmp'], (v) => {
|
||||
console.log(v);
|
||||
update[name] = (parseInt(v[name+'_rolled']) || 0 ) + (parseInt(v[name+'_advanced']) || 0 ) + (parseInt(v[name+'_tmp']) || 0 );
|
||||
console.log(update);
|
||||
setAttrs(update, {silent: false});
|
||||
});
|
||||
const update_ability = function (name) {
|
||||
console.log("update_ability: " + name);
|
||||
let update = {};
|
||||
getAttrs([name + "_rolled", name + "_advanced", name + "_tmp"], (v) => {
|
||||
console.log(v);
|
||||
update[name] =
|
||||
(parseInt(v[name + "_rolled"]) || 0) +
|
||||
(parseInt(v[name + "_advanced"]) || 0) +
|
||||
(parseInt(v[name + "_tmp"]) || 0);
|
||||
console.log(update);
|
||||
setAttrs(update, { silent: false });
|
||||
});
|
||||
};
|
||||
// @todo: this should probably just pick up equipped shields, rather than having a specific shield setting.
|
||||
const getShieldCS = function(shield_size, shield_material) {
|
||||
console.log('getShieldCS');
|
||||
console.log(shield_size);
|
||||
console.log(shield_material);
|
||||
let CS_physical = 0, CS_energy = 0, CS_mental = 0;
|
||||
|
||||
CS_physical =
|
||||
parseInt(shield_size) > 2 ? -2 :
|
||||
parseInt(shield_size) > 1 ? -1 :
|
||||
0;
|
||||
|
||||
CS_physical =
|
||||
parseInt(shield_material) === 1 ? CS_physical :
|
||||
parseInt(shield_material) === 2 ? CS_physical :
|
||||
parseInt(shield_material) === 3 ? CS_physical-1 :
|
||||
parseInt(shield_material) === 4 ? CS_physical-1 :
|
||||
parseInt(shield_material) === 5 ? CS_physical-2 :
|
||||
parseInt(shield_material) === 6 ? CS_physical :
|
||||
CS_physical;
|
||||
CS_energy = parseInt(shield_material) === 6 ? CS_physical -3 : CS_physical;
|
||||
return {CS_physical, CS_energy, CS_mental};
|
||||
const getShieldCS = function (shield_size, shield_material) {
|
||||
console.log("getShieldCS");
|
||||
console.log(shield_size);
|
||||
console.log(shield_material);
|
||||
let CS_physical = 0,
|
||||
CS_energy = 0,
|
||||
CS_mental = 0;
|
||||
|
||||
CS_physical =
|
||||
parseInt(shield_size) > 2 ? -2 : parseInt(shield_size) > 1 ? -1 : 0;
|
||||
|
||||
CS_physical =
|
||||
parseInt(shield_material) === 1
|
||||
? CS_physical
|
||||
: parseInt(shield_material) === 2
|
||||
? CS_physical
|
||||
: parseInt(shield_material) === 3
|
||||
? CS_physical - 1
|
||||
: parseInt(shield_material) === 4
|
||||
? CS_physical - 1
|
||||
: parseInt(shield_material) === 5
|
||||
? CS_physical - 2
|
||||
: parseInt(shield_material) === 6
|
||||
? CS_physical
|
||||
: CS_physical;
|
||||
CS_energy = parseInt(shield_material) === 6 ? CS_physical - 3 : CS_physical;
|
||||
return { CS_physical, CS_energy, CS_mental };
|
||||
};
|
||||
|
||||
const update_ac = function() {
|
||||
console.log('update_ac');
|
||||
let update = {};
|
||||
let dr_total = 0;
|
||||
let ac_total = 0;
|
||||
let count = 0;
|
||||
let enc_attrs = ['shield_CS'];
|
||||
const update_ac = function () {
|
||||
console.log("update_ac");
|
||||
let update = {};
|
||||
let dr_total = 0;
|
||||
let ac_total = 0;
|
||||
let count = 0;
|
||||
let enc_attrs = ["shield_CS"];
|
||||
getSectionIDs("repeating_armour", (armourIds) => {
|
||||
_.each(armourIds, (currentID, i) => {
|
||||
enc_attrs.push(`repeating_armour_${currentID}_weight`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_count`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_equipped`);
|
||||
});
|
||||
getAttrs(enc_attrs, (v) => {});
|
||||
});
|
||||
};
|
||||
|
||||
const update_enc = function () {
|
||||
console.log("update_enc");
|
||||
let update = {};
|
||||
let wtotal = 0;
|
||||
let DR_physical = 0;
|
||||
let DR_energy = 0;
|
||||
let CS = {};
|
||||
let RFtotal = 0;
|
||||
let CS_physical = 0;
|
||||
let CS_mental = 0;
|
||||
let CS_energy = 0;
|
||||
let count = 0;
|
||||
let PSfactor = 1;
|
||||
let spdfactor = 1;
|
||||
let enc_attrs = [
|
||||
"DR_physical",
|
||||
"DR_energy",
|
||||
"coin_gp",
|
||||
"coin_nk",
|
||||
"coin_sp",
|
||||
"coin_dm",
|
||||
"PS",
|
||||
"PS_rolled",
|
||||
"PS_advanced",
|
||||
"PS_tmp",
|
||||
"encumbrance",
|
||||
"encumbrance_max",
|
||||
"speed",
|
||||
"speed_max",
|
||||
"burden",
|
||||
"burden_max",
|
||||
];
|
||||
getSectionIDs("repeating_gear", (gearIds) => {
|
||||
_.each(gearIds, (currentID, i) => {
|
||||
enc_attrs.push(`repeating_gear_${currentID}_weight`);
|
||||
enc_attrs.push(`repeating_gear_${currentID}_count`);
|
||||
enc_attrs.push(`repeating_gear_${currentID}_equipped`);
|
||||
});
|
||||
|
||||
getSectionIDs("repeating_armour", (armourIds) => {
|
||||
_.each(armourIds, (currentID, i) => {
|
||||
enc_attrs.push(`repeating_armour_${currentID}_weight`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_count`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_equipped`);
|
||||
});
|
||||
getAttrs(enc_attrs, (v) => {
|
||||
|
||||
})
|
||||
});
|
||||
};
|
||||
|
||||
const update_enc = function() {
|
||||
console.log('update_enc');
|
||||
let update = {};
|
||||
let wtotal = 0;
|
||||
let DR_physical = 0;
|
||||
let DR_energy = 0;
|
||||
let CS = {};
|
||||
let RFtotal = 0;
|
||||
let CS_physical = 0;
|
||||
let CS_mental = 0;
|
||||
let CS_energy = 0;
|
||||
let count = 0;
|
||||
let PSfactor = 1;
|
||||
let spdfactor = 1;
|
||||
let enc_attrs = ['DR_physical', 'DR_energy', 'coin_gp', 'coin_nk', 'coin_sp', 'coin_dm', 'PS', 'PS_rolled', 'PS_advanced', 'PS_tmp', 'encumbrance', 'encumbrance_max', 'speed', 'speed_max', 'burden', 'burden_max'];
|
||||
getSectionIDs("repeating_gear", (gearIds) => {
|
||||
_.each(gearIds, (currentID, i) => {
|
||||
enc_attrs.push(`repeating_gear_${currentID}_weight`);
|
||||
enc_attrs.push(`repeating_gear_${currentID}_count`);
|
||||
enc_attrs.push(`repeating_gear_${currentID}_equipped`);
|
||||
});
|
||||
|
||||
getSectionIDs("repeating_armour", (armourIds) => {
|
||||
_.each(armourIds, (currentID, i) => {
|
||||
enc_attrs.push(`repeating_armour_${currentID}_weight`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_count`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_equipped`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_powered`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_enc_factor`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_spd_factor`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_PS_factor`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_shield_size`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_shield_material`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_CS_mental`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_DR_energy`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_DR_physical`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_RF_physical`);
|
||||
});
|
||||
getAttrs(enc_attrs, (v) => {
|
||||
|
||||
console.log(v);
|
||||
if (v["speed_max"] === undefined) {
|
||||
v["speed_max"] = v['speed'];
|
||||
update["speed_max"] = v['speed'];
|
||||
}
|
||||
["coin_gp", "coin_sp", "coin_nk", "coin_dm"].forEach((type)=> {
|
||||
let coinweight = (isNaN(parseInt(v[`${type}`], 10)) === false) ? parseInt(v[`${type}`], 10) : 0;
|
||||
// use roughly correct weights for different materials as per g/cm3
|
||||
if(type === 'coin_gp') {
|
||||
wtotal += coinweight / 100
|
||||
}
|
||||
if(type === 'coin_sp') {
|
||||
wtotal += coinweight / 200
|
||||
}
|
||||
if(type === 'coin_nk') {
|
||||
wtotal += coinweight / 250
|
||||
}
|
||||
if(type === 'coin_dm') {
|
||||
wtotal += coinweight / 1000
|
||||
}
|
||||
if(type === 'coin_dl') {
|
||||
wtotal += coinweight / 1000
|
||||
}
|
||||
if(type === 'coin_db') {
|
||||
wtotal += coinweight / 1000
|
||||
}
|
||||
});
|
||||
|
||||
_.each(gearIds, (currentID, i) => {
|
||||
if (
|
||||
v[`repeating_gear_${currentID}_weight`]
|
||||
&& v[`repeating_gear_${currentID}_equipped`] === '1'
|
||||
&& isNaN(parseInt(v[`repeating_gear_${currentID}_weight`], 10)) === false)
|
||||
{
|
||||
count = v[`repeating_gear_${currentID}_count`] && isNaN(parseFloat(v[`repeating_gear_${currentID}_count`])) === false ? parseFloat(v[`repeating_gear_${currentID}_count`]) : 1;
|
||||
wtotal = wtotal + (parseFloat(v[`repeating_gear_${currentID}_weight`]) * count);
|
||||
}
|
||||
});
|
||||
|
||||
_.each(armourIds, (currentID, i) => {
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_weight`]
|
||||
&& v[`repeating_armour_${currentID}_equipped`] === '1'
|
||||
&& isNaN(parseInt(v[`repeating_armour_${currentID}_weight`], 10)) === false)
|
||||
{
|
||||
count = v[`repeating_armour_${currentID}_count`] && isNaN(parseFloat(v[`repeating_armour_${currentID}_count`])) === false ? parseFloat(v[`repeating_armour_${currentID}_count`]) : 1;
|
||||
wtotal = wtotal + (parseFloat(v[`repeating_armour_${currentID}_weight`]) * count * (isNaN(parseFloat(v[`repeating_armour_${currentID}_enc_factor`])) === false ? parseFloat(v[`repeating_armour_${currentID}_enc_factor`]) : 0.5));
|
||||
PSfactor
|
||||
= isNaN(parseFloat(v[`repeating_armour_${currentID}_PS_factor`])) === false
|
||||
? (v[`repeating_armour_${currentID}_PS_factor`] > PSfactor ? v[`repeating_armour_${currentID}_PS_factor`] : PSfactor)
|
||||
: PSfactor;
|
||||
spdfactor
|
||||
= isNaN(parseFloat(v[`repeating_armour_${currentID}_spd_factor`])) === false
|
||||
? (v[`repeating_armour_${currentID}_spd_factor`] > spdfactor ? v[`repeating_armour_${currentID}_spd_factor`] : spdfactor)
|
||||
: spdfactor;
|
||||
}
|
||||
// update DR_physical
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_DR_physical`]
|
||||
&& v[`repeating_armour_${currentID}_equipped`] === '1'
|
||||
&& isNaN(parseInt(v[`repeating_armour_${currentID}_DR_physical`], 10)) === false
|
||||
) {
|
||||
DR_physical += parseInt(v[`repeating_armour_${currentID}_DR_physical`]);
|
||||
}
|
||||
// update DR_energy
|
||||
console.log('DR_energy: ', v[`repeating_armour_${currentID}_DR_energy`]);
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_DR_energy`] !== undefined
|
||||
&& v[`repeating_armour_${currentID}_equipped`] === '1'
|
||||
&& isNaN(parseInt(v[`repeating_armour_${currentID}_DR_energy`], 10)) === false
|
||||
) {
|
||||
DR_energy += parseInt(v[`repeating_armour_${currentID}_DR_energy`]);
|
||||
} else {
|
||||
DR_energy += DR_physical;
|
||||
}
|
||||
|
||||
// update CS
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_shield_size`]
|
||||
&& v[`repeating_armour_${currentID}_shield_material`]
|
||||
&& v[`repeating_armour_${currentID}_equipped`] === '1'
|
||||
) {
|
||||
CS = getShieldCS(v[`repeating_armour_${currentID}_shield_size`], v[`repeating_armour_${currentID}_shield_material`] );
|
||||
CS_physical += CS.CS_physical;
|
||||
CS_mental += CS.CS_mental;
|
||||
CS_energy += CS.CS_energy;
|
||||
}
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_CS_mental`]
|
||||
&& v[`repeating_armour_${currentID}_equipped`] === '1'
|
||||
) {
|
||||
console.log('HELMET: '+v[`repeating_armour_${currentID}_CS_mental`] )
|
||||
CS_mental += parseInt(v[`repeating_armour_${currentID}_CS_mental`]) ;
|
||||
}
|
||||
|
||||
// update RF
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_RF_physical`]
|
||||
&& v[`repeating_armour_${currentID}_equipped`] === '1'
|
||||
&& isNaN(parseInt(v[`repeating_armour_${currentID}_RF_physical`], 10)) === false
|
||||
) {
|
||||
RFtotal += parseInt(v[`repeating_armour_${currentID}_RF_physical`]);
|
||||
console.log(CS_physical);
|
||||
}
|
||||
});
|
||||
// console.log(CS_physical);
|
||||
update["RF_physical"] = RFtotal;
|
||||
update["RF_energy"] = RFtotal;
|
||||
update["CS_physical"] = CS_physical;
|
||||
update["CS_energy"] = CS_energy;
|
||||
update["CS_mental"] = CS_mental;
|
||||
update["DR_physical"] = DR_physical;
|
||||
update["DR_energy"] = DR_energy;
|
||||
update["encumbrance"] = Math.round(wtotal * 10) / 10;
|
||||
let PS = (parseInt(v["PS_rolled"])
|
||||
+ parseInt(v["PS_advanced"])
|
||||
+ parseInt(v["PS_tmp"])) * PSfactor;
|
||||
update['PS'] = PS;
|
||||
update["burden"] =
|
||||
(wtotal > PS*5) ? "Crushing Weight" :
|
||||
(wtotal > PS*3) ? "Immobile" :
|
||||
(wtotal > PS*2) ? "Heavily Burdened" :
|
||||
(wtotal > PS*1) ? "Burdened" :
|
||||
"Normal";
|
||||
update["speed"] =
|
||||
(wtotal > PS*3) ? 0 :
|
||||
(wtotal > PS*2) ? Math.floor((parseInt(v["speed_max"]) / 3)) :
|
||||
(wtotal > PS*1) ? Math.floor((parseInt(v["speed_max"]) /3)*2) :
|
||||
parseInt(v["speed_max"]) * spdfactor;
|
||||
console.log(update);
|
||||
setAttrs(update, {silent: true});
|
||||
update_mod('PS');
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const update_mod = function(ability) {
|
||||
console.log('update_mod: '+ability);
|
||||
let update = {};
|
||||
let mod = 6;
|
||||
let total = 0;
|
||||
let ps_attrs = [ability];
|
||||
getAttrs(ps_attrs, (v) => {
|
||||
_.each(armourIds, (currentID, i) => {
|
||||
enc_attrs.push(`repeating_armour_${currentID}_weight`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_count`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_equipped`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_powered`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_enc_factor`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_spd_factor`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_PS_factor`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_shield_size`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_shield_material`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_CS_mental`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_DR_energy`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_DR_physical`);
|
||||
enc_attrs.push(`repeating_armour_${currentID}_RF_physical`);
|
||||
});
|
||||
getAttrs(enc_attrs, (v) => {
|
||||
console.log(v);
|
||||
console.log(v[ability]);
|
||||
total += parseInt(v[ability]);
|
||||
if(total < 601) {
|
||||
mod = 5;
|
||||
if (v["speed_max"] === undefined) {
|
||||
v["speed_max"] = v["speed"];
|
||||
update["speed_max"] = v["speed"];
|
||||
}
|
||||
if(total < 121) {
|
||||
mod = 4;
|
||||
}
|
||||
if(total < 22) {
|
||||
mod = 3;
|
||||
}
|
||||
if(total < 19) {
|
||||
mod = 2;
|
||||
}
|
||||
if(total < 16) {
|
||||
mod = 1;
|
||||
}
|
||||
if(total < 12) {
|
||||
mod = 0;
|
||||
}
|
||||
if(total < 10) {
|
||||
mod = -1;
|
||||
}
|
||||
if(total < 7) {
|
||||
mod = -2;
|
||||
}
|
||||
if(total < 4) {
|
||||
mod = -3;
|
||||
}
|
||||
if(total < 0) {
|
||||
mod = -4;
|
||||
}
|
||||
if(total < -6) {
|
||||
mod = -5;
|
||||
}
|
||||
if(total < -26) {
|
||||
mod = -6;
|
||||
}
|
||||
update[ability+'_modifier'] = mod;
|
||||
setAttrs(update, {silent: true});
|
||||
["coin_gp", "coin_sp", "coin_nk", "coin_dm"].forEach((type) => {
|
||||
let coinweight =
|
||||
isNaN(parseInt(v[`${type}`], 10)) === false
|
||||
? parseInt(v[`${type}`], 10)
|
||||
: 0;
|
||||
// use roughly correct weights for different materials as per g/cm3
|
||||
if (type === "coin_gp") {
|
||||
wtotal += coinweight / 100;
|
||||
}
|
||||
if (type === "coin_sp") {
|
||||
wtotal += coinweight / 200;
|
||||
}
|
||||
if (type === "coin_nk") {
|
||||
wtotal += coinweight / 250;
|
||||
}
|
||||
if (type === "coin_dm") {
|
||||
wtotal += coinweight / 1000;
|
||||
}
|
||||
if (type === "coin_dl") {
|
||||
wtotal += coinweight / 1000;
|
||||
}
|
||||
if (type === "coin_db") {
|
||||
wtotal += coinweight / 1000;
|
||||
}
|
||||
});
|
||||
|
||||
_.each(gearIds, (currentID, i) => {
|
||||
if (
|
||||
v[`repeating_gear_${currentID}_weight`] &&
|
||||
v[`repeating_gear_${currentID}_equipped`] === "1" &&
|
||||
isNaN(parseInt(v[`repeating_gear_${currentID}_weight`], 10)) ===
|
||||
false
|
||||
) {
|
||||
count =
|
||||
v[`repeating_gear_${currentID}_count`] &&
|
||||
isNaN(parseFloat(v[`repeating_gear_${currentID}_count`])) ===
|
||||
false
|
||||
? parseFloat(v[`repeating_gear_${currentID}_count`])
|
||||
: 1;
|
||||
wtotal =
|
||||
wtotal +
|
||||
parseFloat(v[`repeating_gear_${currentID}_weight`]) * count;
|
||||
}
|
||||
});
|
||||
|
||||
_.each(armourIds, (currentID, i) => {
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_weight`] &&
|
||||
v[`repeating_armour_${currentID}_equipped`] === "1" &&
|
||||
isNaN(parseInt(v[`repeating_armour_${currentID}_weight`], 10)) ===
|
||||
false
|
||||
) {
|
||||
count =
|
||||
v[`repeating_armour_${currentID}_count`] &&
|
||||
isNaN(parseFloat(v[`repeating_armour_${currentID}_count`])) ===
|
||||
false
|
||||
? parseFloat(v[`repeating_armour_${currentID}_count`])
|
||||
: 1;
|
||||
wtotal =
|
||||
wtotal +
|
||||
parseFloat(v[`repeating_armour_${currentID}_weight`]) *
|
||||
count *
|
||||
(isNaN(
|
||||
parseFloat(v[`repeating_armour_${currentID}_enc_factor`])
|
||||
) === false
|
||||
? parseFloat(v[`repeating_armour_${currentID}_enc_factor`])
|
||||
: 0.5);
|
||||
PSfactor =
|
||||
isNaN(
|
||||
parseFloat(v[`repeating_armour_${currentID}_PS_factor`])
|
||||
) === false
|
||||
? v[`repeating_armour_${currentID}_PS_factor`] > PSfactor
|
||||
? v[`repeating_armour_${currentID}_PS_factor`]
|
||||
: PSfactor
|
||||
: PSfactor;
|
||||
spdfactor =
|
||||
isNaN(
|
||||
parseFloat(v[`repeating_armour_${currentID}_spd_factor`])
|
||||
) === false
|
||||
? v[`repeating_armour_${currentID}_spd_factor`] > spdfactor
|
||||
? v[`repeating_armour_${currentID}_spd_factor`]
|
||||
: spdfactor
|
||||
: spdfactor;
|
||||
}
|
||||
// update DR_physical
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_DR_physical`] &&
|
||||
v[`repeating_armour_${currentID}_equipped`] === "1" &&
|
||||
isNaN(
|
||||
parseInt(v[`repeating_armour_${currentID}_DR_physical`], 10)
|
||||
) === false
|
||||
) {
|
||||
DR_physical += parseInt(
|
||||
v[`repeating_armour_${currentID}_DR_physical`]
|
||||
);
|
||||
}
|
||||
// update DR_energy
|
||||
console.log(
|
||||
"DR_energy: ",
|
||||
v[`repeating_armour_${currentID}_DR_energy`]
|
||||
);
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_DR_energy`] !== undefined &&
|
||||
v[`repeating_armour_${currentID}_equipped`] === "1" &&
|
||||
isNaN(
|
||||
parseInt(v[`repeating_armour_${currentID}_DR_energy`], 10)
|
||||
) === false
|
||||
) {
|
||||
DR_energy += parseInt(v[`repeating_armour_${currentID}_DR_energy`]);
|
||||
} else {
|
||||
DR_energy += DR_physical;
|
||||
}
|
||||
|
||||
// update CS
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_shield_size`] &&
|
||||
v[`repeating_armour_${currentID}_shield_material`] &&
|
||||
v[`repeating_armour_${currentID}_equipped`] === "1"
|
||||
) {
|
||||
CS = getShieldCS(
|
||||
v[`repeating_armour_${currentID}_shield_size`],
|
||||
v[`repeating_armour_${currentID}_shield_material`]
|
||||
);
|
||||
CS_physical += CS.CS_physical;
|
||||
CS_mental += CS.CS_mental;
|
||||
CS_energy += CS.CS_energy;
|
||||
}
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_CS_mental`] &&
|
||||
v[`repeating_armour_${currentID}_equipped`] === "1"
|
||||
) {
|
||||
console.log(
|
||||
"HELMET: " + v[`repeating_armour_${currentID}_CS_mental`]
|
||||
);
|
||||
CS_mental += parseInt(v[`repeating_armour_${currentID}_CS_mental`]);
|
||||
}
|
||||
|
||||
// update RF
|
||||
if (
|
||||
v[`repeating_armour_${currentID}_RF_physical`] &&
|
||||
v[`repeating_armour_${currentID}_equipped`] === "1" &&
|
||||
isNaN(
|
||||
parseInt(v[`repeating_armour_${currentID}_RF_physical`], 10)
|
||||
) === false
|
||||
) {
|
||||
RFtotal += parseInt(v[`repeating_armour_${currentID}_RF_physical`]);
|
||||
console.log(CS_physical);
|
||||
}
|
||||
});
|
||||
// console.log(CS_physical);
|
||||
update["RF_physical"] = RFtotal;
|
||||
update["RF_energy"] = RFtotal;
|
||||
update["CS_physical"] = CS_physical;
|
||||
update["CS_energy"] = CS_energy;
|
||||
update["CS_mental"] = CS_mental;
|
||||
update["DR_physical"] = DR_physical;
|
||||
update["DR_energy"] = DR_energy;
|
||||
update["encumbrance"] = Math.round(wtotal * 10) / 10;
|
||||
let PS =
|
||||
(parseInt(v["PS_rolled"]) +
|
||||
parseInt(v["PS_advanced"]) +
|
||||
parseInt(v["PS_tmp"])) *
|
||||
PSfactor;
|
||||
update["PS"] = PS;
|
||||
update["burden"] =
|
||||
wtotal > PS * 5
|
||||
? "Crushing Weight"
|
||||
: wtotal > PS * 3
|
||||
? "Immobile"
|
||||
: wtotal > PS * 2
|
||||
? "Heavily Burdened"
|
||||
: wtotal > PS * 1
|
||||
? "Burdened"
|
||||
: "Normal";
|
||||
update["speed"] =
|
||||
wtotal > PS * 3
|
||||
? 0
|
||||
: wtotal > PS * 2
|
||||
? Math.floor(parseInt(v["speed_max"]) / 3)
|
||||
: wtotal > PS * 1
|
||||
? Math.floor((parseInt(v["speed_max"]) / 3) * 2)
|
||||
: parseInt(v["speed_max"]) * spdfactor;
|
||||
console.log(update);
|
||||
setAttrs(update, { silent: true });
|
||||
update_mod("PS");
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const update_mod = function (ability) {
|
||||
console.log("update_mod: " + ability);
|
||||
let update = {};
|
||||
let mod = 6;
|
||||
let total = 0;
|
||||
let ps_attrs = [ability];
|
||||
getAttrs(ps_attrs, (v) => {
|
||||
console.log(v);
|
||||
console.log(v[ability]);
|
||||
total += parseInt(v[ability]);
|
||||
if (total < 601) {
|
||||
mod = 5;
|
||||
}
|
||||
if (total < 121) {
|
||||
mod = 4;
|
||||
}
|
||||
if (total < 22) {
|
||||
mod = 3;
|
||||
}
|
||||
if (total < 19) {
|
||||
mod = 2;
|
||||
}
|
||||
if (total < 16) {
|
||||
mod = 1;
|
||||
}
|
||||
if (total < 12) {
|
||||
mod = 0;
|
||||
}
|
||||
if (total < 10) {
|
||||
mod = -1;
|
||||
}
|
||||
if (total < 7) {
|
||||
mod = -2;
|
||||
}
|
||||
if (total < 4) {
|
||||
mod = -3;
|
||||
}
|
||||
if (total < 0) {
|
||||
mod = -4;
|
||||
}
|
||||
if (total < -6) {
|
||||
mod = -5;
|
||||
}
|
||||
if (total < -26) {
|
||||
mod = -6;
|
||||
}
|
||||
update[ability + "_modifier"] = mod;
|
||||
setAttrs(update, { silent: true });
|
||||
});
|
||||
};
|
||||
|
||||
//------ Events ---------
|
||||
|
||||
on("sheet:opened", function(eventinfo) {
|
||||
console.log('sheet:opened');
|
||||
on("sheet:opened", function (eventinfo) {
|
||||
console.log("sheet:opened");
|
||||
});
|
||||
|
||||
on("change:import", function(args) {
|
||||
console.log('sheet:import',args);
|
||||
|
||||
on("change:import", function (args) {
|
||||
console.log("sheet:import", args);
|
||||
});
|
||||
|
||||
on("change:PS_rolled", function(args) {
|
||||
console.log('change:PS_rolled')
|
||||
update_ability('PS');
|
||||
on("change:PS_rolled", function (args) {
|
||||
console.log("change:PS_rolled");
|
||||
update_ability("PS");
|
||||
});
|
||||
|
||||
on("change:PS_advanced", function(args) {
|
||||
console.log('change:PS_advanced')
|
||||
update_ability('PS');
|
||||
on("change:PS_advanced", function (args) {
|
||||
console.log("change:PS_advanced");
|
||||
update_ability("PS");
|
||||
});
|
||||
|
||||
on("change:PS_tmp", function(args) {
|
||||
console.log('change:PS_tmp')
|
||||
update_ability('PS');
|
||||
on("change:PS_tmp", function (args) {
|
||||
console.log("change:PS_tmp");
|
||||
update_ability("PS");
|
||||
});
|
||||
|
||||
on("change:PS", function(args) {
|
||||
console.log('PS changed');
|
||||
update_mod('PS');
|
||||
update_enc();
|
||||
on("change:PS", function (args) {
|
||||
console.log("PS changed");
|
||||
update_mod("PS");
|
||||
update_enc();
|
||||
});
|
||||
|
||||
on("change:DX_rolled", function(args) {
|
||||
console.log('change:DX_rolled')
|
||||
update_ability('DX');
|
||||
on("change:DX_rolled", function (args) {
|
||||
console.log("change:DX_rolled");
|
||||
update_ability("DX");
|
||||
});
|
||||
|
||||
on("change:DX_advanced", function(args) {
|
||||
console.log('change:DX_advanced')
|
||||
update_ability('DX');
|
||||
on("change:DX_advanced", function (args) {
|
||||
console.log("change:DX_advanced");
|
||||
update_ability("DX");
|
||||
});
|
||||
|
||||
on("change:DX_tmp", function(args) {
|
||||
console.log('change:DX_tmp')
|
||||
update_ability('DX');
|
||||
on("change:DX_tmp", function (args) {
|
||||
console.log("change:DX_tmp");
|
||||
update_ability("DX");
|
||||
});
|
||||
|
||||
on("change:DX", function(args) {
|
||||
console.log('DX changed');
|
||||
update_mod('DX');
|
||||
on("change:DX", function (args) {
|
||||
console.log("DX changed");
|
||||
update_mod("DX");
|
||||
});
|
||||
|
||||
on("change:CN_rolled", function(args) {
|
||||
console.log('change:CN_rolled')
|
||||
update_ability('CN');
|
||||
on("change:CN_rolled", function (args) {
|
||||
console.log("change:CN_rolled");
|
||||
update_ability("CN");
|
||||
});
|
||||
|
||||
on("change:CN_advanced", function(args) {
|
||||
console.log('change:CN_advanced')
|
||||
update_ability('CN');
|
||||
on("change:CN_advanced", function (args) {
|
||||
console.log("change:CN_advanced");
|
||||
update_ability("CN");
|
||||
});
|
||||
|
||||
on("change:CN_tmp", function(args) {
|
||||
console.log('change:CN_tmp')
|
||||
update_ability('CN');
|
||||
on("change:CN_tmp", function (args) {
|
||||
console.log("change:CN_tmp");
|
||||
update_ability("CN");
|
||||
});
|
||||
|
||||
on("change:CN", function(args) {
|
||||
console.log('CN changed');
|
||||
update_mod('CN');
|
||||
on("change:CN", function (args) {
|
||||
console.log("CN changed");
|
||||
update_mod("CN");
|
||||
});
|
||||
|
||||
on("change:IN_rolled", function(args) {
|
||||
console.log('change:IN_rolled')
|
||||
update_ability('IN');
|
||||
on("change:IN_rolled", function (args) {
|
||||
console.log("change:IN_rolled");
|
||||
update_ability("IN");
|
||||
});
|
||||
|
||||
on("change:IN_advanced", function(args) {
|
||||
console.log('change:IN_advanced')
|
||||
update_ability('IN');
|
||||
on("change:IN_advanced", function (args) {
|
||||
console.log("change:IN_advanced");
|
||||
update_ability("IN");
|
||||
});
|
||||
|
||||
on("change:IN_tmp", function(args) {
|
||||
console.log('change:IN_tmp')
|
||||
update_ability('IN');
|
||||
on("change:IN_tmp", function (args) {
|
||||
console.log("change:IN_tmp");
|
||||
update_ability("IN");
|
||||
});
|
||||
|
||||
on("change:IN", function(args) {
|
||||
console.log('IN changed');
|
||||
update_mod('IN');
|
||||
on("change:IN", function (args) {
|
||||
console.log("IN changed");
|
||||
update_mod("IN");
|
||||
});
|
||||
|
||||
on("change:MS_rolled", function(args) {
|
||||
console.log('change:MS_rolled')
|
||||
update_ability('MS');
|
||||
on("change:MS_rolled", function (args) {
|
||||
console.log("change:MS_rolled");
|
||||
update_ability("MS");
|
||||
});
|
||||
|
||||
on("change:MS_advanced", function(args) {
|
||||
console.log('change:MS_advanced')
|
||||
update_ability('MS');
|
||||
on("change:MS_advanced", function (args) {
|
||||
console.log("change:MS_advanced");
|
||||
update_ability("MS");
|
||||
});
|
||||
|
||||
on("change:MS_tmp", function(args) {
|
||||
console.log('change:MS_tmp')
|
||||
update_ability('MS');
|
||||
on("change:MS_tmp", function (args) {
|
||||
console.log("change:MS_tmp");
|
||||
update_ability("MS");
|
||||
});
|
||||
|
||||
on("change:MS", function(args) {
|
||||
console.log('MS changed');
|
||||
update_mod('MS');
|
||||
on("change:MS", function (args) {
|
||||
console.log("MS changed");
|
||||
update_mod("MS");
|
||||
});
|
||||
|
||||
on("change:CH_rolled", function(args) {
|
||||
console.log('change:CH_rolled')
|
||||
update_ability('CH');
|
||||
on("change:CH_rolled", function (args) {
|
||||
console.log("change:CH_rolled");
|
||||
update_ability("CH");
|
||||
});
|
||||
|
||||
on("change:CH_advanced", function(args) {
|
||||
console.log('change:CH_advanced')
|
||||
update_ability('CH');
|
||||
on("change:CH_advanced", function (args) {
|
||||
console.log("change:CH_advanced");
|
||||
update_ability("CH");
|
||||
});
|
||||
|
||||
on("change:CH_tmp", function(args) {
|
||||
console.log('change:CH_tmp')
|
||||
update_ability('CH');
|
||||
on("change:CH_tmp", function (args) {
|
||||
console.log("change:CH_tmp");
|
||||
update_ability("CH");
|
||||
});
|
||||
|
||||
on("change:CH", function(args) {
|
||||
console.log('CH changed');
|
||||
update_mod('CH');
|
||||
on("change:CH", function (args) {
|
||||
console.log("CH changed");
|
||||
update_mod("CH");
|
||||
});
|
||||
|
||||
on("change:repeating_gear", function(args) {
|
||||
update_enc();
|
||||
on("change:repeating_gear", function (args) {
|
||||
update_enc();
|
||||
});
|
||||
|
||||
on("change:repeating_armour", function(args) {
|
||||
console.log('change:repeating_armour');
|
||||
update_enc();
|
||||
// update_ac();
|
||||
on("change:repeating_armour", function (args) {
|
||||
console.log("change:repeating_armour");
|
||||
update_enc();
|
||||
// update_ac();
|
||||
});
|
||||
|
||||
on("change:coin_gp", function(args) {
|
||||
update_enc();
|
||||
on("change:coin_gp", function (args) {
|
||||
update_enc();
|
||||
});
|
||||
|
||||
on("change:coin_nk", function(args) {
|
||||
update_enc();
|
||||
on("change:coin_nk", function (args) {
|
||||
update_enc();
|
||||
});
|
||||
|
||||
on("change:coin_dm", function(args) {
|
||||
update_enc();
|
||||
on("change:coin_dm", function (args) {
|
||||
update_enc();
|
||||
});
|
||||
|
||||
on("change:coin_sp", function(args) {
|
||||
update_enc();
|
||||
on("change:coin_sp", function (args) {
|
||||
update_enc();
|
||||
});
|
||||
|
||||
on("change:rollSwitch", function(args) {
|
||||
console.log(args);
|
||||
let update = {};
|
||||
if(args.newValue == "0") {
|
||||
update['PS_rolled'] = 0;
|
||||
update['IN_rolled'] = 0;
|
||||
update['CN_rolled'] = 0;
|
||||
update['IN_rolled'] = 0;
|
||||
update['MS_rolled'] = 0;
|
||||
update['CH_rolled'] = 0;
|
||||
} else {
|
||||
update['PS_rolled'] = dices.roll('4d6', {dropLowest: 1}).total;
|
||||
update['DX_rolled'] = dices.roll('4d6', {dropLowest: 1}).total;
|
||||
update['CN_rolled'] = dices.roll('4d6', {dropLowest: 1}).total;
|
||||
update['IN_rolled'] = dices.roll('4d6', {dropLowest: 1}).total;
|
||||
update['MS_rolled'] = dices.roll('4d6', {dropLowest: 1}).total;
|
||||
update['CH_rolled'] = dices.roll('4d6', {dropLowest: 1}).total;
|
||||
}
|
||||
setAttrs(update, {silent: true});
|
||||
|
||||
update_ability('PS');
|
||||
update_ability('DX');
|
||||
update_ability('CN');
|
||||
update_ability('IN');
|
||||
update_ability('MS');
|
||||
update_ability('CH');
|
||||
on("change:rollSwitch", function (args) {
|
||||
console.log(args);
|
||||
let update = {};
|
||||
if (args.newValue == "2") { return }
|
||||
if (args.newValue == "1") {
|
||||
update["PS_rolled"] = dices.roll("4d6", { dropLowest: 1 }).total;
|
||||
update["DX_rolled"] = dices.roll("4d6", { dropLowest: 1 }).total;
|
||||
update["CN_rolled"] = dices.roll("4d6", { dropLowest: 1 }).total;
|
||||
update["IN_rolled"] = dices.roll("4d6", { dropLowest: 1 }).total;
|
||||
update["MS_rolled"] = dices.roll("4d6", { dropLowest: 1 }).total;
|
||||
update["CH_rolled"] = dices.roll("4d6", { dropLowest: 1 }).total;
|
||||
}
|
||||
|
||||
if (args.newValue == "0") {
|
||||
update["PS_rolled"] = 0;
|
||||
update["DX_rolled"] = 0;
|
||||
update["IN_rolled"] = 0;
|
||||
update["CN_rolled"] = 0;
|
||||
update["IN_rolled"] = 0;
|
||||
update["MS_rolled"] = 0;
|
||||
update["CH_rolled"] = 0;
|
||||
}
|
||||
setAttrs(update, { silent: true });
|
||||
|
||||
update_mod('PS');
|
||||
update_mod('DX');
|
||||
update_mod('CN');
|
||||
update_mod('IN');
|
||||
update_mod('MS');
|
||||
update_mod('CH');
|
||||
update_ability("PS");
|
||||
update_ability("DX");
|
||||
update_ability("CN");
|
||||
update_ability("IN");
|
||||
update_ability("MS");
|
||||
update_ability("CH");
|
||||
|
||||
update_mod("PS");
|
||||
update_mod("DX");
|
||||
update_mod("CN");
|
||||
update_mod("IN");
|
||||
update_mod("MS");
|
||||
update_mod("CH");
|
||||
});
|
||||
|
||||
|
||||
on("change:hpRollSwitch", function(args) {
|
||||
let update = {};
|
||||
if(args.newValue == "0") {
|
||||
update['hp_max'] = 0;
|
||||
} else {
|
||||
let rank, CN;
|
||||
getAttrs(['character_rank', 'CN'], (v) => {
|
||||
rank = v['character_rank'];
|
||||
CN = v['CN'];
|
||||
});
|
||||
|
||||
update['hp_max'] = dices.roll(`${CN}d6+${CN}`).total;
|
||||
setAttrs(update, {silent: true});
|
||||
}
|
||||
});
|
||||
on("change:hpRollSwitch", function (args) {
|
||||
console.log("change:hpRollSwitch");
|
||||
console.log(args);
|
||||
let update = {};
|
||||
if (args.newValue == "0") {
|
||||
console.log("set hp_max to zero");
|
||||
update["hp_max"] = 0;
|
||||
setAttrs(update, { silent: true });
|
||||
} else {
|
||||
let rank, CN;
|
||||
getAttrs(["character_rank", "CN"], (v) => {
|
||||
console.log("v", v);
|
||||
rank = v["character_rank"];
|
||||
CN = v["CN"];
|
||||
update["hp_max"] = dices.roll(`${CN}d6+${CN}`).total;
|
||||
setAttrs(update, { silent: true });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -314,10 +314,13 @@ input.sheet-pageToggle:not([value="3"]) ~ .sheet-tab3 {
|
||||
/**********************
|
||||
Roll-up
|
||||
***********************/
|
||||
input.sheet-rollSwitch:not([value="0"]) ~ .sheet-pre-rolled {
|
||||
input.sheet-rollSwitch[value="0"] ~ .sheet-tab-score-roll, input.sheet-rollSwitch[value="0"] ~ .sheet-tab-score-input {
|
||||
display: none; }
|
||||
|
||||
input.sheet-rollSwitch:not([value="1"]) ~ .sheet-post-rolled {
|
||||
input.sheet-rollSwitch[value="1"] ~ .sheet-tab-score-input {
|
||||
display: none; }
|
||||
|
||||
input.sheet-rollSwitch[value="2"] ~ .sheet-tab-score-roll {
|
||||
display: none; }
|
||||
|
||||
/**********************
|
||||
|
||||
Reference in New Issue
Block a user