first commit
This commit is contained in:
124
module/helpers/dice-helper.js
Normal file
124
module/helpers/dice-helper.js
Normal file
@@ -0,0 +1,124 @@
|
||||
export default class KHDiceRoller {
|
||||
async rollSpellCostInChat(cost, speaker) {
|
||||
let formula = cost + "d6"
|
||||
|
||||
const roll = new Roll(formula);
|
||||
|
||||
let res = roll.roll();
|
||||
|
||||
let rollData = {
|
||||
name: "SPELL.COST",
|
||||
res: res,
|
||||
showFormula: true
|
||||
};
|
||||
|
||||
const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData);
|
||||
|
||||
await roll.toMessage({
|
||||
create: true,
|
||||
content: html,
|
||||
user: game.user._id,
|
||||
speaker: {
|
||||
actor: speaker._id,
|
||||
token: speaker.token,
|
||||
alias: speaker.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async rollDamageInChat(facesNr, speaker) {
|
||||
let formula = facesNr + "d6x6"
|
||||
|
||||
const roll = new Roll(formula);
|
||||
|
||||
let res = roll.roll();
|
||||
|
||||
let rollData = {
|
||||
name: "ITEM.DAMAGE",
|
||||
res: res,
|
||||
showFormula: true
|
||||
};
|
||||
|
||||
const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData);
|
||||
|
||||
await roll.toMessage({
|
||||
create: true,
|
||||
content: html,
|
||||
user: game.user._id,
|
||||
speaker: {
|
||||
actor: speaker._id,
|
||||
token: speaker.token,
|
||||
alias: speaker.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async rollArmorInChat(armor, hasHelmet, speaker) {
|
||||
let formula = armor + "d6"
|
||||
|
||||
if(hasHelmet) {
|
||||
formula += "x6"
|
||||
}
|
||||
|
||||
const roll = new Roll(formula);
|
||||
|
||||
let res = roll.roll();
|
||||
|
||||
let rollData = {
|
||||
name: "ITEM.DEFENCE",
|
||||
res: res,
|
||||
showFormula: true
|
||||
};
|
||||
|
||||
const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData);
|
||||
|
||||
await roll.toMessage({
|
||||
create: true,
|
||||
content: html,
|
||||
user: game.user._id,
|
||||
speaker: {
|
||||
actor: speaker._id,
|
||||
token: speaker.token,
|
||||
alias: speaker.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async rollSkillInChat(skillName, skillValue, showValue, speaker) {
|
||||
const roll = new Roll(`1d100`);
|
||||
|
||||
let res = roll.roll();
|
||||
|
||||
let computedName = skillName
|
||||
|
||||
if(showValue) {
|
||||
computedName += " (" + skillValue + ")"
|
||||
}
|
||||
|
||||
let rollData = {
|
||||
name: computedName,
|
||||
res: res
|
||||
};
|
||||
|
||||
if(skillValue > 0) {
|
||||
if(res.total <= skillValue) {
|
||||
rollData.success = true
|
||||
} else {
|
||||
rollData.failure = true
|
||||
}
|
||||
}
|
||||
|
||||
const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData);
|
||||
|
||||
await roll.toMessage({
|
||||
create: true,
|
||||
content: html,
|
||||
user: game.user._id,
|
||||
speaker: {
|
||||
actor: speaker._id,
|
||||
token: speaker.token,
|
||||
alias: speaker.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
35
module/helpers/item-helpers.js
Normal file
35
module/helpers/item-helpers.js
Normal file
@@ -0,0 +1,35 @@
|
||||
export default class ItemHelpers {
|
||||
static async itemUpdate(event, formData) {
|
||||
formData = expandObject(formData);
|
||||
|
||||
if (this.object.isOwned && this.object.actor?.compendium?.metadata) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle the free-form modifications list
|
||||
const formAttrs = expandObject(formData)?.data?.modifications || {};
|
||||
|
||||
const modifications = Object.values(formAttrs).reduce((obj, v) => {
|
||||
let k = v["key"].trim();
|
||||
delete v["key"];
|
||||
obj[k] = v;
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
// Remove modifications which are no longer used
|
||||
if (this.object.data?.data?.modifications) {
|
||||
for (let k of Object.keys(this.object.data.data.modifications)) {
|
||||
if (!modifications.hasOwnProperty(k)) modifications[`-=${k}`] = null;
|
||||
}
|
||||
}
|
||||
|
||||
// recombine modifications to formData
|
||||
if (Object.keys(modifications).length > 0) {
|
||||
setProperty(formData, `data.modifications`, modifications);
|
||||
}
|
||||
|
||||
// Update the Item
|
||||
this.item.data.flags.loaded = false;
|
||||
this.object.update(formData);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user