
Why does this sheet worker work in this game: <a href="https://app.roll20.net/campaigns/details/4348330/gurps-testbed" rel="nofollow">https://app.roll20.net/campaigns/details/4348330/gurps-testbed</a> and not in this one: <a href="https://app.roll20.net/campaigns/details/5235386/sheet-test" rel="nofollow">https://app.roll20.net/campaigns/details/5235386/sheet-test</a> . // Update Lines on Melee
on("sheet:opened change:repeating_melee remove:repeating_melee change:strength change:ambidextrous change:trained_by_master change:weapon_master change:badfoot change:meleegrappled change:shield_defense_bonus change:shieldccbt change:meleelgshieldpen change:targetpenalty change:distraction change:meleestrikeccbt change:meleewild change:evaluate change:meleecannotsee change:visionpenalty change:nightvision change:firing_size_mod change:temp_DX_mod change:skillRoll_mod", function () {
console.log("********* Update Lines Melee *********");
TAS.repeating("melee")
.attrs("strength", "ambidextrous", "trained_by_master", "weapon_master", "badfoot", "meleegrappled", "shield_defense_bonus", "shieldccbt", "shield_melee_penalty", "meleelgshieldpen", "targetpenalty", "distraction", "meleestrikeccbt", "meleewild", "evaluate", "meleecannotsee", "visionpenalty", "nightvision", "firing_size_mod", "temp_DX_mod", "skillRoll_mod" )
.fields("esl", "skill", "mmods", "minst", "stdeficit", "rapidstrike", "rsp", "dualweapon", "offhand", "wield", "deceptiveatk", "telegraph", "visionpenalty")
.each(function (r, a) {
if (r.I.minst > a.I.strength) {
r.D[0].stdeficit = a.I.strength - r.I.minst;
} else {
r.D[0].stdeficit = 0;
}
if (a.I.trained_by_master > 0 || a.I.weapon_master > 0) {
r.D[0].rsp = r.I.rapidstrike / 2;
} else { r.D[0].rsp = r.I.rapidstrike;
}
if (r.I.wield < 1 && a.I.ambidextrous < 1) {
r.D[0].offhand = -4;
} else {
r.D[0].offhand = 0;
}
if (a.I.visionpenalty < -9) {
r.D[0].visionpenalty = -10;
} else {
r.D[0].visionpenalty = Math.min(0, (a.F.visionpenalty + a.F.nightvision));
}
a.D[0].shield_melee_penalty = a.F.shieldccbt * a.F.shield_defense_bonus;
r.D[0].mmods = r.F.stdeficit + r.F.rsp + a.F.badfoot + a.F.meleegrappled + a.F.shield_melee_penalty + a.F.meleelgshieldpen + r.F.offhand + r.F.deceptiveatk + r.F.dualweapon + r.F.telegraph + a.F.targetpenalty + a.F.distraction + a.F.meleestrikeccbt + a.F.meleewild + a.F.evaluate + a.F.meleecannotsee + r.F.visionpenalty + a.F.firing_size_mod + a.F.temp_DX_mod + a.F.skillRoll_mod;
r.D[0].esl = r.I.skill + r.F.mmods;
})
.execute();
});