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.
|
All the features you need to play ACKS in Foundry VTT. Forked off of Old School Essentials by U~Man and heavily modified.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
Defaulted to exploding 20s in combat from HFH optional rules\
|
Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\
|
||||||
Added BHR to the character sheet from HFH optional rules\
|
Changed Ascending Armor Class to ACKS AC\
|
||||||
|
Uncapped the dexterity and charisma bonuses\
|
||||||
Changed Ascending Armor Class to ACKS AC\
|
Changed Ascending Armor Class to ACKS AC\
|
||||||
Uncapped the dexterity and charisma bonuses\
|
Uncapped the dexterity and charisma bonuses\
|
||||||
Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\
|
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.\
|
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\
|
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)\
|
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
|
## License
|
||||||
This Foundry VTT system requires ACKS Core Rules that you can find at http://autarch.co/buy-now.
|
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.HealthShort": "HP",
|
||||||
"ACKS.HitDice": "Hit Dice",
|
"ACKS.HitDice": "Hit Dice",
|
||||||
"ACKS.HitDiceShort": "HD",
|
"ACKS.HitDiceShort": "HD",
|
||||||
|
"ACKS.BHR": "Base Healing Rate",
|
||||||
|
"ACKS.BHRShort": "BHR",
|
||||||
|
|
||||||
"ACKS.movement.base": "Movement Rate",
|
"ACKS.movement.base": "Movement Rate",
|
||||||
"ACKS.movement.short": "MV",
|
"ACKS.movement.short": "MV",
|
||||||
|
@ -137,8 +139,6 @@
|
||||||
"ACKS.AttacksShort": "ATT",
|
"ACKS.AttacksShort": "ATT",
|
||||||
"ACKS.Damage": "Damage",
|
"ACKS.Damage": "Damage",
|
||||||
"ACKS.Spellcaster": "Spellcaster",
|
"ACKS.Spellcaster": "Spellcaster",
|
||||||
"ACKS.BHR": "Base Healing Rate",
|
|
||||||
"ACKS.BHRShort": "BHR",
|
|
||||||
|
|
||||||
"ACKS.Language": "Language",
|
"ACKS.Language": "Language",
|
||||||
"ACKS.SpokenLanguages": "Spoken Languages",
|
"ACKS.SpokenLanguages": "Spoken Languages",
|
||||||
|
@ -188,6 +188,10 @@
|
||||||
"ACKS.Setting.MovementAuto": "Calculate Movement",
|
"ACKS.Setting.MovementAuto": "Calculate Movement",
|
||||||
"ACKS.Setting.SignificantTreasure": "Significant Treasure Weight",
|
"ACKS.Setting.SignificantTreasure": "Significant Treasure Weight",
|
||||||
"ACKS.Setting.SignificantTreasureHint": "Weight at which treasure will reduce the movement, only useful for basic encumbrance",
|
"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.Equip": "Equip",
|
||||||
"ACKS.items.Unequip": "Unequip",
|
"ACKS.items.Unequip": "Unequip",
|
||||||
|
|
|
@ -51,6 +51,7 @@ export class AcksActorSheetCharacter extends AcksActorSheet {
|
||||||
data.config.ascendingAC = game.settings.get("acks", "ascendingAC");
|
data.config.ascendingAC = game.settings.get("acks", "ascendingAC");
|
||||||
data.config.initiative = game.settings.get("acks", "initiative") != "group";
|
data.config.initiative = game.settings.get("acks", "initiative") != "group";
|
||||||
data.config.encumbrance = game.settings.get("acks", "encumbranceOption");
|
data.config.encumbrance = game.settings.get("acks", "encumbranceOption");
|
||||||
|
data.config.BHR = game.settings.get("acks", "bhr");
|
||||||
|
|
||||||
data.isNew = this.actor.isNew();
|
data.isNew = this.actor.isNew();
|
||||||
return data;
|
return data;
|
||||||
|
|
|
@ -451,7 +451,12 @@ export class AcksActor extends Actor {
|
||||||
|
|
||||||
rollAttack(attData, options = {}) {
|
rollAttack(attData, options = {}) {
|
||||||
const data = this.data.data;
|
const data = this.data.data;
|
||||||
const rollParts = ["1d20x="];
|
let rollParts = ["1d20"];
|
||||||
|
|
||||||
|
if (game.settings.get("acks", "exploding20s")) {
|
||||||
|
rollParts = ["1d20x="];
|
||||||
|
}
|
||||||
|
|
||||||
const dmgParts = [];
|
const dmgParts = [];
|
||||||
let label = game.i18n.format("ACKS.roll.attacks", {
|
let label = game.i18n.format("ACKS.roll.attacks", {
|
||||||
name: this.data.name,
|
name: this.data.name,
|
||||||
|
|
|
@ -29,6 +29,11 @@ export class AcksDice {
|
||||||
} else {
|
} else {
|
||||||
result.isFailure = true;
|
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") {
|
} else if (data.roll.type == "table") {
|
||||||
// Reaction
|
// Reaction
|
||||||
let table = data.roll.table;
|
let table = data.roll.table;
|
||||||
|
@ -197,6 +202,11 @@ export class AcksDice {
|
||||||
const roll = new Roll(parts.join("+"), data).roll();
|
const roll = new Roll(parts.join("+"), data).roll();
|
||||||
const dmgRoll = new Roll(data.roll.dmg.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
|
// Convert the roll to a chat message and return the roll
|
||||||
let rollMode = game.settings.get("core", "rollMode");
|
let rollMode = game.settings.get("core", "rollMode");
|
||||||
rollMode = form ? form.rollMode.value : rollMode;
|
rollMode = form ? form.rollMode.value : rollMode;
|
||||||
|
|
|
@ -20,7 +20,21 @@ export const registerSettings = function () {
|
||||||
default: true,
|
default: true,
|
||||||
scope: "world",
|
scope: "world",
|
||||||
type: Boolean,
|
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,
|
config: true,
|
||||||
|
choices: {
|
||||||
|
detailed: "ACKS.Setting.EncumbranceDetailed",
|
||||||
|
complete: "ACKS.Setting.EncumbranceComplete",
|
||||||
|
},
|
||||||
onChange: _ => window.location.reload()
|
onChange: _ => window.location.reload()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -33,29 +47,23 @@ export const registerSettings = function () {
|
||||||
config: true,
|
config: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
game.settings.register("acks", "encumbranceOption", {
|
game.settings.register("acks", "exploding20s", {
|
||||||
name: game.i18n.localize("ACKS.Setting.Encumbrance"),
|
name: game.i18n.localize("ACKS.Setting.Explode20"),
|
||||||
hint: game.i18n.localize("ACKS.Setting.EncumbranceHint"),
|
hint: game.i18n.localize("ACKS.Setting.Explode20Hint"),
|
||||||
default: "detailed",
|
default: false,
|
||||||
scope: "world",
|
scope: "world",
|
||||||
type: String,
|
type: Boolean,
|
||||||
config: true,
|
config: true,
|
||||||
choices: {
|
|
||||||
// disabled: "ACKS.Setting.EncumbranceDisabled",
|
|
||||||
// basic: "ACKS.Setting.EncumbranceBasic",
|
|
||||||
detailed: "ACKS.Setting.EncumbranceDetailed",
|
|
||||||
complete: "ACKS.Setting.EncumbranceComplete",
|
|
||||||
},
|
|
||||||
onChange: _ => window.location.reload()
|
onChange: _ => window.location.reload()
|
||||||
});
|
});
|
||||||
|
|
||||||
// game.settings.register("acks", "significantTreasure", {
|
game.settings.register("acks", "bhr", {
|
||||||
// name: game.i18n.localize("ACKS.Setting.SignificantTreasure"),
|
name: game.i18n.localize("ACKS.Setting.BHR"),
|
||||||
// hint: game.i18n.localize("ACKS.Setting.SignificantTreasureHint"),
|
hint: game.i18n.localize("ACKS.Setting.BHRHint"),
|
||||||
// default: 800,
|
default: false,
|
||||||
// scope: "world",
|
scope: "world",
|
||||||
// type: Number,
|
type: Boolean,
|
||||||
// config: true,
|
config: true,
|
||||||
// onChange: _ => window.location.reload()
|
onChange: _ => window.location.reload()
|
||||||
// });
|
});
|
||||||
};
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "acks",
|
"name": "acks",
|
||||||
"title": "Adventurer Conqueror King System",
|
"title": "Adventurer Conqueror King System",
|
||||||
"description": "Play using the ACKS system",
|
"description": "Play B/X or other OSR compatible content using the ACKS system",
|
||||||
"version": "0.5.0",
|
"version": "0.5.1",
|
||||||
"minimumCoreVersion": "0.6.2",
|
"minimumCoreVersion": "0.6.2",
|
||||||
"compatibleCoreVersion": "0.6.6",
|
"compatibleCoreVersion": "0.6.6",
|
||||||
"templateVersion": 2,
|
"templateVersion": 2,
|
||||||
|
@ -41,5 +41,5 @@
|
||||||
"gridUnits": "ft",
|
"gridUnits": "ft",
|
||||||
"url": "https://github.com/thehappyanarchist/foundryacks",
|
"url": "https://github.com/thehappyanarchist/foundryacks",
|
||||||
"manifest": "https://github.com/thehappyanarchist/foundryacks/raw/master/src/system.json",
|
"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": {
|
"saves": {
|
||||||
"death": {
|
"death": {
|
||||||
"value": 15
|
"value": 0
|
||||||
},
|
},
|
||||||
"wand": {
|
"wand": {
|
||||||
"value": 17
|
"value": 0
|
||||||
},
|
},
|
||||||
"paralysis": {
|
"paralysis": {
|
||||||
"value": 16
|
"value": 0
|
||||||
},
|
},
|
||||||
"breath": {
|
"breath": {
|
||||||
"value": 17
|
"value": 0
|
||||||
},
|
},
|
||||||
"spell": {
|
"spell": {
|
||||||
"value": 18
|
"value": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"movement": {
|
"movement": {
|
||||||
|
|
|
@ -108,6 +108,7 @@
|
||||||
data-dtype="String" />
|
data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
{{#if config.BHR}}
|
||||||
<li class="attribute bhr">
|
<li class="attribute bhr">
|
||||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.BHR' }}">
|
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.BHR' }}">
|
||||||
<a>{{ localize "ACKS.BHRShort" }}</a>
|
<a>{{ localize "ACKS.BHRShort" }}</a>
|
||||||
|
@ -117,6 +118,7 @@
|
||||||
{{data.hp.bhr}}
|
{{data.hp.bhr}}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
{{/if}}
|
||||||
{{#if config.initiative}}
|
{{#if config.initiative}}
|
||||||
<li class="attribute">
|
<li class="attribute">
|
||||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
|
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
|
||||||
|
|
Loading…
Reference in New Issue