forked from public/foundryvtt-reve-de-dragon
#20 Gestion des RollModes et gestion initiative plus fine
This commit is contained in:
@ -27,7 +27,7 @@ import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||
const _patch_initiative = () => {
|
||||
Combat.prototype.rollInitiative = async function (
|
||||
ids,
|
||||
formula = null,
|
||||
formula = undefined,
|
||||
messageOptions = {}
|
||||
) {
|
||||
console.log(
|
||||
@ -39,31 +39,32 @@ const _patch_initiative = () => {
|
||||
// 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 c = this.getCombatant( ids[cId] );
|
||||
//if (!c) return results;
|
||||
|
||||
let armeCombat, rollFormula, competence;
|
||||
if ( c.actor.data.type == 'creature' || c.actor.data.type == 'entite') {
|
||||
for (const competenceItem of c.actor.data.items) {
|
||||
if ( competenceItem.data.iscombat) {
|
||||
competence = duplicate(competenceItem);
|
||||
|
||||
let rollFormula = formula; // Init per default
|
||||
if ( !rollFormula ) {
|
||||
let armeCombat, competence;
|
||||
if ( c.actor.data.type == 'creature' || c.actor.data.type == 'entite') {
|
||||
for (const competenceItem of c.actor.data.items) {
|
||||
if ( competenceItem.data.iscombat) {
|
||||
competence = duplicate(competenceItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
rollFormula = "1d6+" + competence.data.niveau + "+" + Math.ceil(competence.data.carac_value / 2);
|
||||
} else {
|
||||
for (const item of c.actor.data.items) {
|
||||
if (item.type == "arme" && item.data.equipe) {
|
||||
armeCombat = duplicate(item);
|
||||
rollFormula = "1d6+" + competence.data.niveau + "+" + Math.ceil(competence.data.carac_value / 2);
|
||||
} else {
|
||||
for (const item of c.actor.data.items) {
|
||||
if (item.type == "arme" && item.data.equipe) {
|
||||
armeCombat = duplicate(item);
|
||||
}
|
||||
}
|
||||
let compName = ( armeCombat == undefined ) ? "Corps à corps" : armeCombat.data.competence;
|
||||
competence = RdDUtility.findCompetence( c.actor.data.items, compName );
|
||||
rollFormula = "1d6+" + competence.data.niveau + "+" + Math.ceil(c.actor.data.data.carac[competence.data.defaut_carac].value/2);
|
||||
}
|
||||
let compName = ( armeCombat == undefined ) ? "Corps à corps" : armeCombat.data.competence;
|
||||
competence = RdDUtility.findCompetence( c.actor.data.items, compName );
|
||||
rollFormula = "1d6+" + competence.data.niveau + "+" + Math.ceil(c.actor.data.data.carac[competence.data.defaut_carac].value/2);
|
||||
}
|
||||
|
||||
//console.log("Combatat", c);
|
||||
const roll = this._getInitiativeRoll(c, rollFormula);
|
||||
//console.log("Compute init for", armeCombat, competence, rollFormula, roll.total);
|
||||
@ -82,7 +83,7 @@ const _patch_initiative = () => {
|
||||
alias: c.token.name,
|
||||
sound: CONFIG.sounds.dice,
|
||||
},
|
||||
flavor: `${c.token.name} a fait son jet d'Initiative (Compétence ${competence.name})`,
|
||||
flavor: `${c.token.name} a fait son jet d'Initiative`,
|
||||
},
|
||||
messageOptions
|
||||
);
|
||||
|
Reference in New Issue
Block a user