ENH: Reset initiative option

master
U~man 2020-07-30 15:40:22 +02:00
parent ade4cd7d40
commit 002e97988a
5 changed files with 18 additions and 5 deletions

View File

@ -162,7 +162,8 @@
"OSE.Setting.Initiative": "Initiative", "OSE.Setting.Initiative": "Initiative",
"OSE.Setting.InitiativeHint": "Grouped or individual initiative. Unique individual is only rolled at the start of the combat", "OSE.Setting.InitiativeHint": "Grouped or individual initiative. Unique individual is only rolled at the start of the combat",
"OSE.Setting.InitiativeOnce": "Unique individual Initiative", "OSE.Setting.InitiativeOnce": "Unique individual Initiative",
"OSE.Setting.InitiativeReroll": "Individual Initiative per Round", "OSE.Setting.InitiativeReroll": "Roll individual Initiative each Round",
"OSE.Setting.InitiativeReset": "Reset individual Initiative each Round",
"OSE.Setting.InitiativeGroup": "Grouped Initiative", "OSE.Setting.InitiativeGroup": "Grouped Initiative",
"OSE.Setting.AscendingAC": "Ascending Armor Class", "OSE.Setting.AscendingAC": "Ascending Armor Class",
"OSE.Setting.AscendingACHint": "The more the better", "OSE.Setting.AscendingACHint": "The more the better",

View File

@ -162,7 +162,8 @@
"OSE.Setting.Initiative": "Initiative", "OSE.Setting.Initiative": "Initiative",
"OSE.Setting.InitiativeHint": "Initiative groupée ou individuelle. L'initiative unique est tirée une seule fois en début de combat.", "OSE.Setting.InitiativeHint": "Initiative groupée ou individuelle. L'initiative unique est tirée une seule fois en début de combat.",
"OSE.Setting.InitiativeOnce": "Initiative unique individuelle", "OSE.Setting.InitiativeOnce": "Initiative unique individuelle",
"OSE.Setting.InitiativeReroll": "Initiative individuelle", "OSE.Setting.InitiativeReroll": "Initiative relancée chaque tour",
"OSE.Setting.InitiativeReset": "Initiative mise à zéro chaque tour",
"OSE.Setting.InitiativeGroup": "Initiative groupée", "OSE.Setting.InitiativeGroup": "Initiative groupée",
"OSE.Setting.AscendingAC": "Classe d'Armure Ascendante", "OSE.Setting.AscendingAC": "Classe d'Armure Ascendante",
"OSE.Setting.AscendingACHint": "Le plus est le mieux", "OSE.Setting.AscendingACHint": "Le plus est le mieux",

View File

@ -31,6 +31,14 @@ export class OseCombat {
} }
} }
static async resetInitiative(combat, data) {
let updates = [];
combat.data.combatants.forEach((c, i) => {
updates.push({_id: c._id, initiative: ""});
});
await combat.updateEmbeddedEntity("Combatant", updates);
}
static async individualInitiative(combat, data) { static async individualInitiative(combat, data) {
let updates = []; let updates = [];
let messages = []; let messages = [];
@ -43,7 +51,7 @@ export class OseCombat {
if (combat.settings.skipDefeated && c.defeated) { if (combat.settings.skipDefeated && c.defeated) {
value = -790; value = -790;
} }
updates.push({ _id: c._id, initiative: value }); updates.push({ _id: c._id, initiative: "value" });
// Determine the roll mode // Determine the roll mode
let rollMode = game.settings.get("core", "rollMode"); let rollMode = game.settings.get("core", "rollMode");

View File

@ -10,6 +10,7 @@ export const registerSettings = function () {
choices: { choices: {
disabled: "OSE.Setting.InitiativeOnce", disabled: "OSE.Setting.InitiativeOnce",
rerolled: "OSE.Setting.InitiativeReroll", rerolled: "OSE.Setting.InitiativeReroll",
reset: "OSE.Setting.InitiativeReset",
group: "OSE.Setting.InitiativeGroup", group: "OSE.Setting.InitiativeGroup",
}, },
onChange: _ => window.location.reload() onChange: _ => window.location.reload()

View File

@ -128,10 +128,12 @@ Hooks.on("preUpdateCombat", async (combat, data, diff, id) => {
if (!data.round) { if (!data.round) {
return; return;
} }
if (init == "group") { if (init === "group") {
OseCombat.rollInitiative(combat, data, diff, id); OseCombat.rollInitiative(combat, data, diff, id);
} else if (init == "rerolled") { } else if (init === "rerolled") {
OseCombat.individualInitiative(combat, data, diff, id); OseCombat.individualInitiative(combat, data, diff, id);
} else if (init === "reset") {
OseCombat.resetInitiative(combat, data, diff, id);
} }
}); });