/* Init order = 10 - Legendary 9 - Heroic 8 - Success 7 - Rivals/adversary 6 - Coriaces/tough 5 - Failure 4 - Pietaille 3 - Echec critique */ export class BoLCombatManager extends Combat { /************************************************************************************/ async rollInitiative(ids, formula = undefined, messageOptions = {}) { console.log(`${game.data.system.data.title} | Combat.rollInitiative()`, ids, formula, messageOptions); // Structure input data ids = typeof ids === "string" ? [ids] : ids; const currentId = this.combatant._id; // calculate initiative for (let cId = 0; cId < ids.length; cId++) { const combatant = this.combatants.get(ids[cId]); let fvttInit = 5 if (combatant.actor.type == 'character') { let initData = combatant.actor.getLastInitData(); if (initData.isLegendary) { fvttInit = 10 } else if (initData.isCritical) { fvttInit = 9 } else if (initData.lastinit >= 9) { fvttInit = 8 } else if (initData.isFumble) { fvttInit = 3 } } else { fvttInit = 4 // Pietaille par defaut if ( combatant.actor.getSubtype == 'adversary') { fvttInit = 7 } if ( combatant.actor.getSubtype == 'tough') { fvttInit = 6 } } fvttInit += (cId / 100) await this.updateEmbeddedDocuments("Combatant", [{ _id: ids[cId], initiative: fvttInit }]); } console.log("TODO : Compute init for actor"); } }