commit
da0b4da4b7
|
@ -63,3 +63,15 @@ v0.6.2 Further Compendium updates
|
|||
MINOR CHANGES:
|
||||
Added Class Abilities, Monster Abilities, Monsters, Treasure Tables, and tokens and icons for all.
|
||||
Swapped map with .webp format to save about 2MB from download package.
|
||||
|
||||
v0.7.0 Compatibility with new Foundry release
|
||||
MAJOR CHANGES:
|
||||
FoundryACKS is now compatible with release 7.5 of Foundry.
|
||||
|
||||
MINOR CHANGES:
|
||||
Added support for ability scores above 18. It is assumed that every point above 18 adds a further +1 modifier. All dialogs adjusted accordingly.
|
||||
Added a saving throw modifier to the tweaks dialog. This allows for a bonus or penalty to be applied to all saving throws (ex. Divine Blessing or Ring/Cloak of Protection). Suggested by Bobloblah.
|
||||
Added support for applying half (resistant) or double (vulnerable) damage from chat cards. Suggested by Bobloblah.
|
||||
|
||||
BUG FIXES:
|
||||
Added support for HP to dip into the negatives when auto-applied from chat cards. It was previously clamped to zero.
|
||||
|
|
Binary file not shown.
|
@ -83,12 +83,15 @@
|
|||
top: 365px;
|
||||
right: -169px;
|
||||
width: 320px;
|
||||
border-top: none;
|
||||
height: 20px;
|
||||
z-index: -1;
|
||||
}
|
||||
.acks.sheet.actor .sheet-tabs .item {
|
||||
padding: 2px 10px 0;
|
||||
margin-left: -5px;
|
||||
text-indent: 4px;
|
||||
line-height: 18px;
|
||||
background: url("/ui/parchment.jpg");
|
||||
border-top-right-radius: 4px;
|
||||
border-top-left-radius: 80px;
|
||||
|
|
|
@ -97,6 +97,7 @@
|
|||
"ACKS.saves.spell.long": "Spells",
|
||||
"ACKS.saves.magic.long": "Bonus vs Magic",
|
||||
"ACKS.saves.magic.short": "vs Magic",
|
||||
"ACKS.SaveBonus": "Saving Throw Bonus",
|
||||
|
||||
"ACKS.Health": "Hit Points",
|
||||
"ACKS.HealthMax": "Maximum Hit Points",
|
||||
|
@ -152,6 +153,13 @@
|
|||
"ACKS.NativePlus1": "Native + 1",
|
||||
"ACKS.NativePlus2": "Native + 2",
|
||||
"ACKS.NativePlus3": "Native + 3",
|
||||
"ACKS.NativePlus4": "Native + 4",
|
||||
"ACKS.NativePlus5": "Native + 5",
|
||||
"ACKS.NativePlus6": "Native + 6",
|
||||
"ACKS.NativePlus7": "Native + 7",
|
||||
"ACKS.NativePlus8": "Native + 8",
|
||||
"ACKS.NativePlus9": "Native + 9",
|
||||
"ACKS.NativePlus10": "Native + 10",
|
||||
|
||||
"ACKS.NPCReaction": "NPC Reaction",
|
||||
"ACKS.RetainersMax": "#Retainers",
|
||||
|
@ -274,6 +282,8 @@
|
|||
"ACKS.messages.InflictsDamage": "Inflicts damage!",
|
||||
"ACKS.messages.applyDamage": "Apply Damage",
|
||||
"ACKS.messages.applyHealing": "Apply Healing",
|
||||
"ACKS.messages.applyHalf": "Apply Half Damage",
|
||||
"ACKS.messages.applyDouble": "Apply 2x Damage",
|
||||
"ACKS.messages.Fumble": "<b>1! Automatic Miss!</b>",
|
||||
"ACKS.messages.Critical": "<b>20! Automatic Hit!</b>",
|
||||
|
||||
|
|
|
@ -121,6 +121,8 @@ export class AcksActor extends Actor {
|
|||
rollSave(save, options = {}) {
|
||||
const label = game.i18n.localize(`ACKS.saves.${save}.long`);
|
||||
const rollParts = ["1d20"];
|
||||
rollParts.push(this.data.data.save.mod);
|
||||
|
||||
let data = {};
|
||||
|
||||
if (this.data.type == "character") {
|
||||
|
@ -562,11 +564,11 @@ export class AcksActor extends Actor {
|
|||
}
|
||||
|
||||
async applyDamage(amount = 0, multiplier = 1) {
|
||||
amount = Math.floor(parseInt(amount) * multiplier);
|
||||
amount = Math.ceil(parseInt(amount) * multiplier);
|
||||
const hp = this.data.data.hp;
|
||||
|
||||
// Remaining goes to health
|
||||
const dh = Math.clamped(hp.value - amount, 0, hp.max);
|
||||
const dh = Math.clamped(hp.value - amount, -99, hp.max);
|
||||
|
||||
// Update the Actor
|
||||
return this.update({
|
||||
|
@ -746,6 +748,13 @@ export class AcksActor extends Actor {
|
|||
13: 1,
|
||||
16: 2,
|
||||
18: 3,
|
||||
19: 4,
|
||||
20: 5,
|
||||
21: 6,
|
||||
22: 7,
|
||||
23: 8,
|
||||
24: 9,
|
||||
25: 10
|
||||
};
|
||||
data.scores.str.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
|
@ -791,7 +800,7 @@ export class AcksActor extends Actor {
|
|||
data.scores.cha.value
|
||||
);
|
||||
data.scores.cha.retain = data.scores.cha.mod + 4;
|
||||
data.scores.cha.loyalty = data.scores.cha.mod + 7;
|
||||
data.scores.cha.loyalty = data.scores.cha.mod;
|
||||
|
||||
const od = {
|
||||
0: 0,
|
||||
|
@ -802,6 +811,7 @@ export class AcksActor extends Actor {
|
|||
13: 14,
|
||||
16: 10,
|
||||
18: 6,
|
||||
19: 2,
|
||||
};
|
||||
data.exploration.odMod = AcksActor._valueFromTable(
|
||||
od,
|
||||
|
@ -823,6 +833,13 @@ export class AcksActor extends Actor {
|
|||
13: "ACKS.NativePlus1",
|
||||
16: "ACKS.NativePlus2",
|
||||
18: "ACKS.NativePlus3",
|
||||
19: "ACKS.NativePlus4",
|
||||
20: "ACKS.NativePlus5",
|
||||
21: "ACKS.NativePlus6",
|
||||
22: "ACKS.NativePlus7",
|
||||
23: "ACKS.NativePlus8",
|
||||
24: "ACKS.NativePlus9",
|
||||
25: "ACKS.NativePlus10",
|
||||
};
|
||||
data.languages.spoken = AcksActor._valueFromTable(
|
||||
spoken,
|
||||
|
|
|
@ -21,6 +21,18 @@ export const addChatMessageContextOptions = function(html, options) {
|
|||
icon: '<i class="fas fa-user-plus"></i>',
|
||||
condition: canApply,
|
||||
callback: li => applyChatCardDamage(li, -1)
|
||||
},
|
||||
{
|
||||
name: game.i18n.localize("ACKS.messages.applyHalf"),
|
||||
icon: '<i class="fas fa-user-times"></i>',
|
||||
condition: canApply,
|
||||
callback: li => applyChatCardDamage(li, 0.5)
|
||||
},
|
||||
{
|
||||
name: game.i18n.localize("ACKS.messages.applyDouble"),
|
||||
icon: '<i class="fas fa-bullseye"></i>',
|
||||
condition: canApply,
|
||||
callback: li => applyChatCardDamage(li, 2)
|
||||
}
|
||||
);
|
||||
return options;
|
||||
|
|
|
@ -331,7 +331,7 @@ export class AcksDice {
|
|||
};
|
||||
|
||||
let buttons = {}
|
||||
if (skipDialog) { AcksDice.sendRoll(rollData); }
|
||||
if (skipDialog) { return AcksDice.sendRoll(rollData); }
|
||||
if (game.settings.get("acks", "removeMagicBonus") == false) {
|
||||
buttons = {
|
||||
ok: {
|
||||
|
@ -339,7 +339,7 @@ export class AcksDice {
|
|||
icon: '<i class="fas fa-dice-d20"></i>',
|
||||
callback: (html) => {
|
||||
rolled = true;
|
||||
rollData.form = html[0].children[0];
|
||||
rollData.form = html[0].querySelector("form");
|
||||
roll = AcksDice.sendRoll(rollData);
|
||||
},
|
||||
},
|
||||
|
@ -348,7 +348,7 @@ export class AcksDice {
|
|||
icon: '<i class="fas fa-magic"></i>',
|
||||
callback: (html) => {
|
||||
rolled = true;
|
||||
rollData.form = html[0].children[0];
|
||||
rollData.form = html[0].querySelector("form");
|
||||
rollData.data.roll.target = parseInt(rollData.data.roll.target) + parseInt(rollData.data.roll.magic);
|
||||
rollData.title += ` ${game.i18n.localize("ACKS.saves.magic.short")} (${rollData.data.roll.magic})`;
|
||||
roll = AcksDice.sendRoll(rollData);
|
||||
|
@ -431,7 +431,7 @@ export class AcksDice {
|
|||
icon: '<i class="fas fa-dice-d20"></i>',
|
||||
callback: (html) => {
|
||||
rolled = true;
|
||||
rollData.form = html[0].children[0];
|
||||
rollData.form = html[0].querySelector("form");
|
||||
roll = ["melee", "missile", "attack"].includes(data.roll.type)
|
||||
? AcksDice.sendAttackRoll(rollData)
|
||||
: AcksDice.sendRoll(rollData);
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
"name": "acks",
|
||||
"title": "Adventurer Conqueror King System",
|
||||
"description": "Play B/X or other OSR compatible content using the ACKS system",
|
||||
"version": "0.6.2",
|
||||
"minimumCoreVersion": "0.6.2",
|
||||
"compatibleCoreVersion": "0.6.6",
|
||||
"version": "0.7.0",
|
||||
"minimumCoreVersion": "0.7.4",
|
||||
"compatibleCoreVersion": "0.7.5",
|
||||
"templateVersion": 2,
|
||||
"author": "The Happy Anarchist",
|
||||
"esmodules": ["acks.js"],
|
||||
|
@ -185,5 +185,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.6.2.zip"
|
||||
"download": "https://github.com/thehappyanarchist/foundryacks/raw/master/package/acks-v0.7.0.zip"
|
||||
}
|
||||
|
|
|
@ -53,6 +53,9 @@
|
|||
"value": 0
|
||||
}
|
||||
},
|
||||
"save": {
|
||||
"mod": 0
|
||||
},
|
||||
"movement": {
|
||||
"base": 120
|
||||
},
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
{{localize 'ACKS.RetainersMax'}} ({{add data.scores.cha.mod 4}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'ACKS.Loyalty'}} ({{add data.scores.cha.mod 7}})
|
||||
{{localize 'ACKS.Loyalty'}} ({{add data.scores.cha.mod 0}})
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
|
|
@ -76,6 +76,13 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "ACKS.SaveBonus"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.save.mod" id="save" value="{{data.save.mod}}"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "ACKS.Encumbrance"}}</label>
|
||||
<div class="form-fields">
|
||||
|
|
Loading…
Reference in New Issue