Merge pull request #22 from thehappyanarchist/THA-Dev
Bug Fixes, Option to disable HFH settings, and new Deployment packagemaster
commit
9bc9230012
10
README.md
10
README.md
|
@ -2,8 +2,9 @@
|
|||
All the features you need to play ACKS in Foundry VTT. Forked off of Old School Essentials by U~Man and heavily modified.
|
||||
|
||||
## Features
|
||||
Defaulted to exploding 20s in combat from HFH optional rules\
|
||||
Added BHR to the character sheet from HFH optional rules\
|
||||
Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\
|
||||
Changed Ascending Armor Class to ACKS AC\
|
||||
Uncapped the dexterity and charisma bonuses\
|
||||
Changed Ascending Armor Class to ACKS AC\
|
||||
Uncapped the dexterity and charisma bonuses\
|
||||
Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\
|
||||
|
@ -13,7 +14,10 @@ Changed "Slow weapon" to subtract 1 from initiative instead of making the charac
|
|||
Added a HOLD TURN icon to the Combat Tracker to remind the judge that a player has held their action.\
|
||||
Modified the encumbrance bar to reflect ACKS standard movement penalties while encumbered, and to show that on the bar\
|
||||
Changed default monster saves to match ACKS numbers (actually makes monsters a bit less resistant overall)\
|
||||
Added Auran languages and removed alignment tongues
|
||||
Added Auran languages and removed alignment tongues\
|
||||
### Optional
|
||||
Added exploding 20s in combat from HFH optional rules\
|
||||
Added BHR to the character sheet from HFH optional rules
|
||||
|
||||
## License
|
||||
This Foundry VTT system requires ACKS Core Rules that you can find at http://autarch.co/buy-now.
|
||||
|
|
Binary file not shown.
|
@ -103,6 +103,8 @@
|
|||
"ACKS.HealthShort": "HP",
|
||||
"ACKS.HitDice": "Hit Dice",
|
||||
"ACKS.HitDiceShort": "HD",
|
||||
"ACKS.BHR": "Base Healing Rate",
|
||||
"ACKS.BHRShort": "BHR",
|
||||
|
||||
"ACKS.movement.base": "Movement Rate",
|
||||
"ACKS.movement.short": "MV",
|
||||
|
@ -137,8 +139,6 @@
|
|||
"ACKS.AttacksShort": "ATT",
|
||||
"ACKS.Damage": "Damage",
|
||||
"ACKS.Spellcaster": "Spellcaster",
|
||||
"ACKS.BHR": "Base Healing Rate",
|
||||
"ACKS.BHRShort": "BHR",
|
||||
|
||||
"ACKS.Language": "Language",
|
||||
"ACKS.SpokenLanguages": "Spoken Languages",
|
||||
|
@ -188,6 +188,10 @@
|
|||
"ACKS.Setting.MovementAuto": "Calculate Movement",
|
||||
"ACKS.Setting.SignificantTreasure": "Significant Treasure Weight",
|
||||
"ACKS.Setting.SignificantTreasureHint": "Weight at which treasure will reduce the movement, only useful for basic encumbrance",
|
||||
"ACKS.Setting.Explode20": "HFH: Exploding attack throws",
|
||||
"ACKS.Setting.Explode20Hint": "Heroic Fantasy Option: Attack throws explode on 20 - Critical if exceed target AC by 10",
|
||||
"ACKS.Setting.BHR": "HFH: Base Healing Rate",
|
||||
"ACKS.Setting.BHRHint": "Heroic Fantasy Option: Base Healing Rate per day varies by Max HP",
|
||||
|
||||
"ACKS.items.Equip": "Equip",
|
||||
"ACKS.items.Unequip": "Unequip",
|
||||
|
|
|
@ -51,6 +51,7 @@ export class AcksActorSheetCharacter extends AcksActorSheet {
|
|||
data.config.ascendingAC = game.settings.get("acks", "ascendingAC");
|
||||
data.config.initiative = game.settings.get("acks", "initiative") != "group";
|
||||
data.config.encumbrance = game.settings.get("acks", "encumbranceOption");
|
||||
data.config.BHR = game.settings.get("acks", "bhr");
|
||||
|
||||
data.isNew = this.actor.isNew();
|
||||
return data;
|
||||
|
|
|
@ -451,7 +451,12 @@ export class AcksActor extends Actor {
|
|||
|
||||
rollAttack(attData, options = {}) {
|
||||
const data = this.data.data;
|
||||
const rollParts = ["1d20x="];
|
||||
let rollParts = ["1d20"];
|
||||
|
||||
if (game.settings.get("acks", "exploding20s")) {
|
||||
rollParts = ["1d20x="];
|
||||
}
|
||||
|
||||
const dmgParts = [];
|
||||
let label = game.i18n.format("ACKS.roll.attacks", {
|
||||
name: this.data.name,
|
||||
|
|
|
@ -29,6 +29,11 @@ export class AcksDice {
|
|||
} else {
|
||||
result.isFailure = true;
|
||||
}
|
||||
} else if (data.roll.type == "hitdice") {
|
||||
// RESULT CAN BE NO LOWER THAN 1
|
||||
if (roll.total < 1) {
|
||||
roll._total = 1;
|
||||
}
|
||||
} else if (data.roll.type == "table") {
|
||||
// Reaction
|
||||
let table = data.roll.table;
|
||||
|
@ -197,6 +202,11 @@ export class AcksDice {
|
|||
const roll = new Roll(parts.join("+"), data).roll();
|
||||
const dmgRoll = new Roll(data.roll.dmg.join("+"), data).roll();
|
||||
|
||||
// Add minimal damage of 1
|
||||
if (dmgRoll.total < 1) {
|
||||
dmgRoll._total = 1;
|
||||
}
|
||||
|
||||
// Convert the roll to a chat message and return the roll
|
||||
let rollMode = game.settings.get("core", "rollMode");
|
||||
rollMode = form ? form.rollMode.value : rollMode;
|
||||
|
|
|
@ -20,7 +20,21 @@ export const registerSettings = function () {
|
|||
default: true,
|
||||
scope: "world",
|
||||
type: Boolean,
|
||||
config: false,
|
||||
onChange: _ => window.location.reload()
|
||||
});
|
||||
|
||||
game.settings.register("acks", "encumbranceOption", {
|
||||
name: game.i18n.localize("ACKS.Setting.Encumbrance"),
|
||||
hint: game.i18n.localize("ACKS.Setting.EncumbranceHint"),
|
||||
default: "detailed",
|
||||
scope: "world",
|
||||
type: String,
|
||||
config: true,
|
||||
choices: {
|
||||
detailed: "ACKS.Setting.EncumbranceDetailed",
|
||||
complete: "ACKS.Setting.EncumbranceComplete",
|
||||
},
|
||||
onChange: _ => window.location.reload()
|
||||
});
|
||||
|
||||
|
@ -33,29 +47,23 @@ export const registerSettings = function () {
|
|||
config: true,
|
||||
});
|
||||
|
||||
game.settings.register("acks", "encumbranceOption", {
|
||||
name: game.i18n.localize("ACKS.Setting.Encumbrance"),
|
||||
hint: game.i18n.localize("ACKS.Setting.EncumbranceHint"),
|
||||
default: "detailed",
|
||||
game.settings.register("acks", "exploding20s", {
|
||||
name: game.i18n.localize("ACKS.Setting.Explode20"),
|
||||
hint: game.i18n.localize("ACKS.Setting.Explode20Hint"),
|
||||
default: false,
|
||||
scope: "world",
|
||||
type: String,
|
||||
type: Boolean,
|
||||
config: true,
|
||||
choices: {
|
||||
// disabled: "ACKS.Setting.EncumbranceDisabled",
|
||||
// basic: "ACKS.Setting.EncumbranceBasic",
|
||||
detailed: "ACKS.Setting.EncumbranceDetailed",
|
||||
complete: "ACKS.Setting.EncumbranceComplete",
|
||||
},
|
||||
onChange: _ => window.location.reload()
|
||||
});
|
||||
|
||||
// game.settings.register("acks", "significantTreasure", {
|
||||
// name: game.i18n.localize("ACKS.Setting.SignificantTreasure"),
|
||||
// hint: game.i18n.localize("ACKS.Setting.SignificantTreasureHint"),
|
||||
// default: 800,
|
||||
// scope: "world",
|
||||
// type: Number,
|
||||
// config: true,
|
||||
// onChange: _ => window.location.reload()
|
||||
// });
|
||||
};
|
||||
game.settings.register("acks", "bhr", {
|
||||
name: game.i18n.localize("ACKS.Setting.BHR"),
|
||||
hint: game.i18n.localize("ACKS.Setting.BHRHint"),
|
||||
default: false,
|
||||
scope: "world",
|
||||
type: Boolean,
|
||||
config: true,
|
||||
onChange: _ => window.location.reload()
|
||||
});
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "acks",
|
||||
"title": "Adventurer Conqueror King System",
|
||||
"description": "Play using the ACKS system",
|
||||
"version": "0.5.0",
|
||||
"description": "Play B/X or other OSR compatible content using the ACKS system",
|
||||
"version": "0.5.1",
|
||||
"minimumCoreVersion": "0.6.2",
|
||||
"compatibleCoreVersion": "0.6.6",
|
||||
"templateVersion": 2,
|
||||
|
@ -41,5 +41,5 @@
|
|||
"gridUnits": "ft",
|
||||
"url": "https://github.com/thehappyanarchist/foundryacks",
|
||||
"manifest": "https://github.com/thehappyanarchist/foundryacks/raw/master/src/system.json",
|
||||
"download": "https://github.com/thehappyanarchist/foundryacks/raw/master/package/acks-v0.5.0.zip"
|
||||
"download": "https://github.com/thehappyanarchist/foundryacks/raw/master/package/acks-v0.5.1.zip"
|
||||
}
|
||||
|
|
|
@ -38,19 +38,19 @@
|
|||
},
|
||||
"saves": {
|
||||
"death": {
|
||||
"value": 15
|
||||
"value": 0
|
||||
},
|
||||
"wand": {
|
||||
"value": 17
|
||||
"value": 0
|
||||
},
|
||||
"paralysis": {
|
||||
"value": 16
|
||||
"value": 0
|
||||
},
|
||||
"breath": {
|
||||
"value": 17
|
||||
"value": 0
|
||||
},
|
||||
"spell": {
|
||||
"value": 18
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
"movement": {
|
||||
|
|
|
@ -108,6 +108,7 @@
|
|||
data-dtype="String" />
|
||||
</div>
|
||||
</li>
|
||||
{{#if config.BHR}}
|
||||
<li class="attribute bhr">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.BHR' }}">
|
||||
<a>{{ localize "ACKS.BHRShort" }}</a>
|
||||
|
@ -117,6 +118,7 @@
|
|||
{{data.hp.bhr}}
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if config.initiative}}
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
|
||||
|
|
Loading…
Reference in New Issue