forked from public/foundryvtt-reve-de-dragon
Améliorations du combat
- nettoyage des infos et messages de combat améliorés - message de status envoyé uniquement par le GM (pour éviter les doublons) - stockage des infos de passes d'armes géré par RdDCombat Déplacement des Hooks/notifications de messages socket: - liés au combat dans la méthode RdDCombat.init Convention de nommage: les méthodes de gestion de notification par hook/socket sont préfixées 'on' ex: onSocketMessage, onUpdateCombat, onPreDeleteCombat
This commit is contained in:
@ -629,13 +629,11 @@ export class RdDUtility {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static performSocketMesssage(sockmsg) {
|
||||
static onSocketMesssage(sockmsg) {
|
||||
console.log(">>>>> MSG RECV", sockmsg);
|
||||
switch (sockmsg.msg) {
|
||||
case "msg_encaisser":
|
||||
return RdDUtility._handleMsgEncaisser(sockmsg.data);
|
||||
case "msg_defense":
|
||||
return RdDUtility._handleMsgDefense(sockmsg.data);
|
||||
case "msg_gm_chat_message":
|
||||
return ChatUtility.handleGMChatMessage(sockmsg.data);
|
||||
case "msg_sync_time":
|
||||
@ -647,25 +645,6 @@ export class RdDUtility {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static _handleMsgDefense(data) {
|
||||
let defenderToken = canvas.tokens.get(data.defenderTokenId);
|
||||
if (defenderToken) {
|
||||
if (!game.user.isGM && game.user.character == undefined) { // vérification / sanity check
|
||||
ui.notifications.error("Le joueur " + game.user.name + " n'est connecté à aucun personnage. Impossible de continuer.");
|
||||
return;
|
||||
}
|
||||
if ((game.user.isGM && !defenderToken.actor.hasPlayerOwner) || (defenderToken.actor.hasPlayerOwner && (game.user.character.id == defenderToken.actor.data._id))) {
|
||||
//console.log("User is pushing message...", game.user.name);
|
||||
game.system.rdd.rollDataHandler.attaques[data.attackerId] = duplicate(data.rollData);
|
||||
data.whisper = [game.user];
|
||||
data.blind = true;
|
||||
data.rollMode = "blindroll";
|
||||
ChatMessage.create(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static rollInitiativeCompetence(combatantId, arme) {
|
||||
const combatant = game.combat.getCombatant(combatantId);
|
||||
@ -760,12 +739,9 @@ export class RdDUtility {
|
||||
/* -------------------------------------------- */
|
||||
static _handleMsgEncaisser(data) {
|
||||
if (game.user.isGM) { // Seul le GM effectue l'encaissement sur la fiche
|
||||
let attackerRoll = game.system.rdd.rollDataHandler.attaques[data.attackerId]; // Retrieve the rolldata from the store
|
||||
game.system.rdd.rollDataHandler.attaques[data.attackerId] = undefined;
|
||||
game.system.rdd.rollDataHandler.defenses[attackerRoll.passeArme] = undefined;
|
||||
|
||||
let defender = canvas.tokens.get(data.defenderTokenId).actor;
|
||||
defender.encaisserDommages(attackerRoll);
|
||||
let attacker = data.attackerId ? game.actors.get(data.attackerId) : null;
|
||||
defender.encaisserDommages(attackerRoll, attacker);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user