ENH: Individual Init
parent
8760b08dcc
commit
e3f9afe297
|
@ -1,5 +1,3 @@
|
|||
import { OseDice } from "./dice.js";
|
||||
|
||||
export class OseCombat {
|
||||
static rollInitiative(combat, data) {
|
||||
// Check groups
|
||||
|
@ -27,6 +25,14 @@ export class OseCombat {
|
|||
}
|
||||
}
|
||||
|
||||
static individualInitiative(combat, data) {
|
||||
let ids = [];
|
||||
combat.data.combatants.forEach(cbt => {
|
||||
ids.push(cbt._id);
|
||||
})
|
||||
combat.rollInitiative(ids);
|
||||
}
|
||||
|
||||
static format(object, html, user) {
|
||||
html.find('.combat-control[data-control="rollNPC"]').remove();
|
||||
html.find('.combat-control[data-control="rollAll"]').remove();
|
||||
|
|
13
src/ose.js
13
src/ose.js
|
@ -77,6 +77,7 @@ Hooks.once("ready", async () => {
|
|||
);
|
||||
});
|
||||
|
||||
// License and KOFI infos
|
||||
Hooks.on("renderSidebarTab", async (object, html) => {
|
||||
if (object instanceof Settings) {
|
||||
const template = "systems/ose/templates/chat/license.html";
|
||||
|
@ -106,6 +107,10 @@ Hooks.on("preUpdateCombatant", (combat, combatant, data, diff, id) => {
|
|||
data.initiative = parseInt(groupInit);
|
||||
}
|
||||
});
|
||||
} else if (data.initiative && init) {
|
||||
if (combatant.actor.data.data.isSlow) {
|
||||
data.initiative = -1;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -118,10 +123,14 @@ Hooks.on("renderCombatTracker", (object, html, data) => {
|
|||
|
||||
Hooks.on("preUpdateCombat", async (combat, data, diff, id) => {
|
||||
let init = game.settings.get("ose", "individualInit");
|
||||
if (!data.round || init) {
|
||||
if (!data.round) {
|
||||
return;
|
||||
}
|
||||
OseCombat.rollInitiative(combat, data, diff, id);
|
||||
if (!init) {
|
||||
OseCombat.rollInitiative(combat, data, diff, id);
|
||||
} else {
|
||||
OseCombat.individualInitiative(combat, data, diff, id);
|
||||
}
|
||||
});
|
||||
|
||||
Hooks.on("renderChatLog", (app, html, data) => OseItem.chatListeners(html));
|
||||
|
|
Loading…
Reference in New Issue