Add initiative and ammo
This commit is contained in:
@@ -2,17 +2,29 @@ import { DarkStarsUtility } from "./dark-stars-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class DarkStarsCombat extends Combat {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
||||
ids = typeof ids === "string" ? [ids] : ids;
|
||||
for (let cId = 0; cId < ids.length; cId++) {
|
||||
const c = this.combatants.get(ids[cId]);
|
||||
let id = c._id || c.id;
|
||||
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, id ) : -1;
|
||||
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
processOtherTurns(c, initScore) {
|
||||
let toCreate = []
|
||||
let token = canvas.tokens.get(c.tokenId)
|
||||
let hasLastWord = token.actor.hasLastWord()
|
||||
while ( (initScore > 5) || (hasLastWord && initScore >= 5)) {
|
||||
initScore -= 5;
|
||||
toCreate.push({tokenId: c.tokenId, sceneId: c.sceneId, actorId: c.actorId, hidden: c.hidden, initiative: initScore, isDuplicated: true});
|
||||
}
|
||||
this.createEmbeddedDocuments("Combatant", toCreate);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollInitiative(ids, formula = undefined, messageOptions = {}) {
|
||||
ids = typeof ids === "string" ? [ids] : ids;
|
||||
for (let cId of ids) {
|
||||
const c = this.combatants.get(cId);
|
||||
let id = c._id || c.id;
|
||||
let initScore = c.actor ? c.actor.getInitiativeScore(this.id, id) : -1;
|
||||
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: initScore }]);
|
||||
setTimeout(() => this.processOtherTurns(c, initScore), 400)
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -20,11 +32,4 @@ export class DarkStarsCombat extends Combat {
|
||||
_onUpdate(changed, options, userId) {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async checkTurnPosition() {
|
||||
while (game.combat.turn > 0) {
|
||||
await game.combat.previousTurn()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user