#105 Affichage résumé a chaque tour de combat

This commit is contained in:
2021-01-03 15:40:48 +01:00
parent 57c568c0d4
commit 969291a526
7 changed files with 84 additions and 18 deletions

View File

@ -58,7 +58,7 @@ export class RdDCombat {
return RdDCombat.createUsingTarget(attacker)
}
/* -------------------------------------------- */
static _sendRollMessage(sender, recipient, defenderTokenId, topic, message, rollData) {
let chatMessage = {
content: message,
@ -85,6 +85,13 @@ export class RdDCombat {
}
}
/* -------------------------------------------- */
static _callJetDeVie( event ) {
let actorId = event.currentTarget.attributes['data-actorId'].value;
let actor = game.actors.get(actorId);
actor.jetVie();
}
/* -------------------------------------------- */
static registerChatCallbacks(html) {
for (let button of ['#parer-button', '#esquiver-button', '#particuliere-attaque', '#encaisser-button']) {
@ -93,6 +100,11 @@ export class RdDCombat {
RdDCombat.createForEvent(event).onEvent(button, event);
});
}
html.on("click", '#chat-jet-vie', event => {
event.preventDefault();
RdDCombat._callJetDeVie(event);
} );
}
/* -------------------------------------------- */
@ -668,4 +680,35 @@ export class RdDCombat {
return rolled.isSuccess;
}
/* -------------------------------------------- */
static async displayActorCombatStatus( actor ) {
let rollMode = game.settings.get("core", "rollMode");
let rollData = {
alias: actor.name,
etatGeneral: actor.getEtatGeneral(),
isSonne: actor.getSonne(),
blessuresStatus: actor.computeResumeBlessure(),
SConst: actor.getSConst(),
actorId: actor.data._id,
isGrave: false,
isCritique: false
}
if ( actor.countBlessuresByName("critiques") > 0 ) { // Pour éviter le cumul grave + critique
rollData.isCritique = true;
} else if ( actor.countBlessuresByName("graves") > 0) {
rollData.isGrave = true;
}
let content = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-turn-summary.html`, rollData);
ChatUtility.createChatMessage({ content: content }, rollMode, actor.name);
}
/* -------------------------------------------- */
static updateCombatRound( combat, data) {
if (combat.data.round != 0 && combat.turns && combat.data.active) {
let turn = combat.turns.find(t => t.tokenId == combat.current.tokenId);
this.displayActorCombatStatus( turn.actor );
// TODO Playaudio ??
}
}
}