#87 - Init du premier round
This commit is contained in:
parent
b2dab45646
commit
ae03fabd9e
@ -9,6 +9,7 @@ import { RdDRoll } from "./rdd-roll.js";
|
|||||||
import { RdDRollTables } from "./rdd-rolltables.js";
|
import { RdDRollTables } from "./rdd-rolltables.js";
|
||||||
import { ReglesOptionelles } from "./regles-optionelles.js";
|
import { ReglesOptionelles } from "./regles-optionelles.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
export class RdDCombat {
|
export class RdDCombat {
|
||||||
|
|
||||||
static init() {
|
static init() {
|
||||||
|
@ -97,6 +97,8 @@ const _patch_initiative = () => {
|
|||||||
messageOptions
|
messageOptions
|
||||||
);
|
);
|
||||||
roll.toMessage(messageData, { rollMode, create: true });
|
roll.toMessage(messageData, { rollMode, create: true });
|
||||||
|
|
||||||
|
RdDUtility.processPremierRoundInit( );
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
@ -63,6 +63,26 @@ const tableCaracDerivee = {
|
|||||||
32: { xp: 180, poids: "1501-2000", plusdom:+11, sconst: 10, sust: 17 }
|
32: { xp: 180, poids: "1501-2000", plusdom:+11, sconst: 10, sust: 17 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
const premierRoundInit = [
|
||||||
|
{ type: 'competence', pattern: 'hast', init: 3.90},
|
||||||
|
{ type: 'competence', pattern: 'lance', init: 3.85},
|
||||||
|
{ type: 'arme', pattern: 'bâton', init: 3.80},
|
||||||
|
{ type: 'arme', pattern: 'double dragonne', init: 3.75},
|
||||||
|
{ type: 'arme', pattern: 'esparlongue', init: 3.70},
|
||||||
|
{ type: 'arme', pattern: 'pée dragonne', init: 3.65},
|
||||||
|
{ type: 'arme', pattern: 'bâtarde', init: 3.60},
|
||||||
|
{ type: 'arme', pattern: 'cyane', init: 3.55},
|
||||||
|
{ type: 'arme', pattern: 'sorde', init: 3.50},
|
||||||
|
{ type: 'arme', pattern: 'grande hache', init: 3.45},
|
||||||
|
{ type: 'arme', pattern: 'bataille', init: 3.40},
|
||||||
|
{ type: 'arme', pattern: 'gnome', init: 3.35},
|
||||||
|
{ type: 'arme', pattern: 'masse', init: 3.30},
|
||||||
|
{ type: 'arme', pattern: 'gourdin', init: 3.25},
|
||||||
|
{ type: 'competence', pattern: 'fléau', init: 3.20},
|
||||||
|
{ type: 'arme', pattern: 'dague', init: 3.15},
|
||||||
|
];
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
function _buildAllSegmentsFatigue(max) {
|
function _buildAllSegmentsFatigue(max) {
|
||||||
const cycle = [5, 2, 4, 1, 3, 0];
|
const cycle = [5, 2, 4, 1, 3, 0];
|
||||||
@ -665,6 +685,37 @@ export class RdDUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static processPremierRoundInit() {
|
||||||
|
// Check if we have the whole init !
|
||||||
|
if ( game.user.isGM) {
|
||||||
|
let initDone = true;
|
||||||
|
for( let combatant of game.combat.data.combatants) {
|
||||||
|
if ( !combatant.initiative ) initDone = false;
|
||||||
|
}
|
||||||
|
if (initDone && game.combat.current.round == 1) { // Premier round !
|
||||||
|
for( let combatant of game.combat.data.combatants) {
|
||||||
|
let arme = combatant.initiativeData.arme;
|
||||||
|
//console.log("Parsed !!!", combatant, initDone, game.combat.current, arme);
|
||||||
|
if ( arme && arme.type == "arme" ) {
|
||||||
|
for (let initData of premierRoundInit) {
|
||||||
|
if ( ( initData == 'competence' && arme.data.competence.toLowerCase().includes(initData.pattern)) ||
|
||||||
|
(arme.name.toLowerCase().includes(initData.pattern)) ) {
|
||||||
|
let msg = `<h4>L'initiative de ${combatant.actor.name} a été modifiée !</h4>
|
||||||
|
<hr>
|
||||||
|
<div>
|
||||||
|
Etant donné son ${arme.name}, son initative pour ce premier round est désormais de ${initData.init}.
|
||||||
|
</div>`
|
||||||
|
ChatMessage.create( { content: msg } );
|
||||||
|
game.combat.setInitiative(combatant._id, initData.init);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static rollInitiativeCompetence(combatantId, arme) {
|
static rollInitiativeCompetence(combatantId, arme) {
|
||||||
const combatant = game.combat.getCombatant(combatantId);
|
const combatant = game.combat.getCombatant(combatantId);
|
||||||
@ -706,7 +757,9 @@ export class RdDUtility {
|
|||||||
}
|
}
|
||||||
let malus = actor.getEtatGeneral(); // Prise en compte état général
|
let malus = actor.getEtatGeneral(); // Prise en compte état général
|
||||||
// Cas des créatures et entités vs personnages
|
// Cas des créatures et entités vs personnages
|
||||||
let rollFormula = initOffset + "+ ( (" + RdDUtility.calculInitiative(compNiveau, caracForInit) + " + " + malus + ") /100)";
|
let rollFormula = initOffset + "+ ( (" + RdDUtility.calculInitiative(compNiveau, caracForInit) + " + " + malus + ") /100)";
|
||||||
|
// Garder la trace de l'arme/compétence utilisée pour l'iniative
|
||||||
|
combatant.initiativeData = { arme: arme } // pour reclasser l'init au round 0
|
||||||
game.combat.rollInitiative(combatantId, rollFormula);
|
game.combat.rollInitiative(combatantId, rollFormula);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "foundryvtt-reve-de-dragon",
|
"name": "foundryvtt-reve-de-dragon",
|
||||||
"title": "Rêve de Dragon",
|
"title": "Rêve de Dragon",
|
||||||
"description": "Rêve de Dragon RPG for FoundryVTT",
|
"description": "Rêve de Dragon RPG for FoundryVTT",
|
||||||
"version": "1.3.13",
|
"version": "1.3.14",
|
||||||
"manifestPlusVersion": "1.0.0",
|
"manifestPlusVersion": "1.0.0",
|
||||||
"minimumCoreVersion": "0.7.5",
|
"minimumCoreVersion": "0.7.5",
|
||||||
"compatibleCoreVersion": "0.7.9",
|
"compatibleCoreVersion": "0.7.9",
|
||||||
|
5
templates/chat-initiative-premier-round.html
Normal file
5
templates/chat-initiative-premier-round.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<h4>L'initiative de {{alias}} a été modifiée !</h4>
|
||||||
|
<hr>
|
||||||
|
<div>
|
||||||
|
Etant donné son {{armeName}}, son initative pour ce premier round est désormais de {{initValue}}.
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user