Gestion initiative améliorée

This commit is contained in:
2020-11-24 16:43:54 +01:00
6 changed files with 135 additions and 54 deletions

View File

@ -2,6 +2,7 @@
import { TMRUtility } from "./tmr-utility.js";
import { RdDRollTables } from "./rdd-rolltables.js";
import { ChatUtility } from "./chat-utility.js";
const level_category = {
"generale": "-4",
@ -626,23 +627,26 @@ export class RdDUtility {
static performSocketMesssage( sockmsg )
{
console.log(">>>>> MSG RECV", sockmsg);
if ( sockmsg.msg == "msg_encaisser" ) {
if ( game.user.isGM ) { // Seul le GM effectue l'encaissement sur la fiche
let rollData = game.system.rdd.rollDataHandler[sockmsg.data.attackerid]; // Retrieve the rolldata from the store
let defenderActor = game.actors.get( sockmsg.data.defenderid );
defenderActor.encaisserDommages( rollData );
}
} else if (sockmsg.msg == "msg_defense" ) {
let defenderActor = game.actors.get( sockmsg.data.defenderid );
if ( defenderActor ) {
if ( (game.user.isGM && !defenderActor.hasPlayerOwner) || (defenderActor.hasPlayerOwner && (game.user.character.id == defenderActor.id) ) ) {
console.log("User is pushing message...", game.user.name);
game.system.rdd.rollDataHandler[sockmsg.data.attackerid] = duplicate(sockmsg.data.rollData);
sockmsg.data.whisper = [ game.user ];
sockmsg.data.blind = true;
sockmsg.data.rollMode = "blindroll";
ChatMessage.create( sockmsg.data );
}
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);
}
}
static _handleMsgDefense(data) {
let defenderActor = game.actors.get(data.defenderid);
if (defenderActor) {
if ((game.user.isGM && !defenderActor.hasPlayerOwner) || (defenderActor.hasPlayerOwner && (game.user.character.id == defenderActor.id))) {
console.log("User is pushing message...", game.user.name);
game.system.rdd.rollDataHandler[data.attackerid] = duplicate(data.rollData);
data.whisper = [game.user];
data.blind = true;
data.rollMode = "blindroll";
ChatMessage.create(data);
}
}
}
@ -702,7 +706,16 @@ export class RdDUtility {
//WFRP_Utility.displayStatus(target.attr("data-token-id"));
//$(`#sidebar-tabs`).find(`.item[data-tab="chat"]`).click();
}
});
});
}
/* -------------------------------------------- */
static _handleMsgEncaisser(data) {
if (game.user.isGM) { // Seul le GM effectue l'encaissement sur la fiche
let rollData = game.system.rdd.rollDataHandler[data.attackerid]; // Retrieve the rolldata from the store
let defenderActor = game.actors.get(data.defenderid);
defenderActor.encaisserDommages(rollData);
}
}
/* -------------------------------------------- */