Encumbrance Workaround, Exploration checks, and default Monster Saves

master
The Happy Anarchist 2020-09-03 22:42:44 -10:00
parent dd2aba57cb
commit db04c41943
4 changed files with 77 additions and 59 deletions

View File

@ -333,12 +333,12 @@ export class AcksActor extends Actor {
rollExploration(expl, options = {}) { rollExploration(expl, options = {}) {
const label = game.i18n.localize(`ACKS.exploration.${expl}.long`); const label = game.i18n.localize(`ACKS.exploration.${expl}.long`);
const rollParts = ["1d6"]; const rollParts = ["1d20"];
const data = { const data = {
actor: this.data, actor: this.data,
roll: { roll: {
type: "below", type: "check",
target: this.data.data.exploration[expl], target: this.data.data.exploration[expl],
}, },
details: game.i18n.format("ACKS.roll.details.exploration", { details: game.i18n.format("ACKS.roll.details.exploration", {
@ -553,15 +553,15 @@ export class AcksActor extends Actor {
const data = this.data.data; const data = this.data.data;
let option = game.settings.get("acks", "encumbranceOption"); let option = game.settings.get("acks", "encumbranceOption");
let weight = data.encumbrance.value; let weight = data.encumbrance.value;
let delta = data.encumbrance.max - 1600; let delta = data.encumbrance.max - 20000;
if (["detailed", "complete"].includes(option)) { if (["detailed", "complete"].includes(option)) {
if (weight > data.encumbrance.max) { if (weight > data.encumbrance.max) {
data.movement.base = 0; data.movement.base = 0;
} else if (weight > 800 + delta) { } else if (weight > 10000 + delta) {
data.movement.base = 30; data.movement.base = 30;
} else if (weight > 600 + delta) { } else if (weight > 7000 + delta) {
data.movement.base = 60; data.movement.base = 60;
} else if (weight > 400 + delta) { } else if (weight > 5000 + delta) {
data.movement.base = 90; data.movement.base = 90;
} else { } else {
data.movement.base = 120; data.movement.base = 120;
@ -703,11 +703,13 @@ export class AcksActor extends Actor {
const od = { const od = {
0: 0, 0: 0,
3: 1, 3: 30,
9: 2, 4: 26,
13: 3, 6: 22,
16: 4, 9: 18,
18: 5, 13: 14,
16: 10,
18: 6,
}; };
data.exploration.odMod = AcksActor._valueFromTable( data.exploration.odMod = AcksActor._valueFromTable(
od, od,

View File

@ -106,75 +106,91 @@ export const ACKS = {
monster_saves: { monster_saves: {
0: { 0: {
label: "Normal Human", label: "Normal Human",
d: 14, d: 15,
w: 15, w: 17,
p: 16, p: 16,
b: 17, b: 17,
s: 18 s: 18
}, },
1: { 1: {
label: "1-3", label: "1",
d: 12, d: 14,
w: 13, w: 16,
p: 15,
b: 16,
s: 17
},
2: {
label: "2-3",
d: 13,
w: 15,
p: 14, p: 14,
b: 15, b: 15,
s: 16 s: 16
}, },
4: { 4: {
label: "4-6", label: "4",
d: 10, d: 12,
w: 11, w: 14,
p: 13,
b: 14,
s: 15
},
5: {
label: "5-6",
d: 11,
w: 13,
p: 12, p: 12,
b: 13, b: 13,
s: 14 s: 14
}, },
7: { 7: {
label: "7-9", label: "7",
d: 8, d: 10,
w: 9, w: 12,
p: 11,
b: 12,
s: 13
},
8: {
label: "8-9",
d: 9,
w: 11,
p: 10, p: 10,
b: 10, b: 11,
s: 12 s: 12
}, },
10: { 10: {
label: "10-12", label: "10",
d: 6, d: 8,
w: 7, w: 10,
p: 9,
b: 10,
s: 11
},
11: {
label: "11-12",
d: 7,
w: 9,
p: 8, p: 8,
b: 8, b: 9,
s: 10 s: 10
}, },
13: { 13: {
label: "13-15", label: "13",
d: 4, d: 6,
w: 5, w: 8,
p: 7,
b: 8,
s: 9
},
14: {
label: "14+",
d: 5,
w: 7,
p: 6, p: 6,
b: 5, b: 7,
s: 8 s: 8
}, },
16: { },
label: "16-18",
d: 2,
w: 3,
p: 4,
b: 3,
s: 6
},
19: {
label: "19-21",
d: 2,
w: 2,
p: 2,
b: 2,
s: 4
},
22: {
label: "22+",
d: 2,
w: 2,
p: 2,
b: 2,
s: 2
},
}
}; };

View File

@ -16,14 +16,14 @@ export class AcksDice {
result.isFailure = true; result.isFailure = true;
} }
} else if (data.roll.type == "below") { } else if (data.roll.type == "below") {
// MORALE, EXPLORATION // MORALE
if (roll.total <= result.target) { if (roll.total <= result.target) {
result.isSuccess = true; result.isSuccess = true;
} else { } else {
result.isFailure = true; result.isFailure = true;
} }
} else if (data.roll.type == "check") { } else if (data.roll.type == "check") {
// SCORE CHECKS (1s and 20s) // SCORE CHECKS (1s and 20s), EXPLORATION
if (die == 1 || (roll.total <= result.target && die < 20)) { if (die == 1 || (roll.total <= result.target && die < 20)) {
result.isSuccess = true; result.isSuccess = true;
} else { } else {

View File

@ -6,7 +6,7 @@
{{localize 'ACKS.Melee'}} ({{mod data.scores.str.mod}}) {{localize 'ACKS.Melee'}} ({{mod data.scores.str.mod}})
</li> </li>
<li> <li>
{{localize 'ACKS.exploration.od.long'}} ({{data.exploration.odMod}} in 6) {{localize 'ACKS.exploration.od.long'}} ({{data.exploration.odMod}}+)
</li> </li>
</ol> </ol>
</div> </div>