diff --git a/module/rdd-utility.js b/module/rdd-utility.js
index ce1bcd25..eff98f86 100644
--- a/module/rdd-utility.js
+++ b/module/rdd-utility.js
@@ -617,14 +617,14 @@ export class RdDUtility {
/* -------------------------------------------- */
static buildDefenseChatCard( attacker, target, rollData )
{
- console.log("Attacker.defense", attacker, target, attacker.data._id, rollData.competence.data.categorie );
+ console.log("Attacker.defense", attacker, target, target.actor.isToken, attacker.data._id, rollData.competence.data.categorie );
let myTarget = target.actor;
let defenseMsg = { title: "Défense en combat",
content: ""+myTarget.name+" doit se défendre :
" +
- "Encaisser !",
+ "Encaisser !",
whisper: ChatMessage.getWhisperRecipients( myTarget.name ),
attackerid: attacker.data._id,
- defenderid: myTarget.data._id,
+ defenderTokenId: target.data._id,
rollMode: true
};
@@ -633,16 +633,16 @@ export class RdDUtility {
for (const arme of myTarget.data.items) {
if (arme.type == "arme" && this.isArmeMelee(arme.data.competence)) {
defenderArmes.push( arme );
- defenseMsg.content += "
Parer avec " + arme.name + "";
+ defenseMsg.content += "
Parer avec " + arme.name + "";
}
}
- defenseMsg.content += "
Esquiver";
+ defenseMsg.content += "
Esquiver";
}
if ( rollData.competence.data.categorie == "tir" ) {
for (const arme of myTarget.data.items) { // Bouclier for parry
if ( arme.type == "arme" && arme.name.toLowerCase.match("bouclier") ) {
defenderArmes.push( arme );
- defenseMsg.content += "
Parer avec " + arme.name + "";
+ defenseMsg.content += "
Parer avec " + arme.name + "";
}
}
}
@@ -650,10 +650,10 @@ export class RdDUtility {
for (const arme of myTarget.data.items) { // Bouclier for parry Dodge/Esquive
if ( arme.type == "arme" && arme.name.toLowerCase.match("bouclier") ) {
defenderArmes.push( arme );
- defenseMsg.content += "
Parer avec " + arme.name + "";
+ defenseMsg.content += "
Parer avec " + arme.name + "";
}
}
- defenseMsg.content += "
Esquiver";
+ defenseMsg.content += "
Esquiver";
}
defenseMsg.toSocket = true; // True per default for all players
@@ -680,9 +680,9 @@ export class RdDUtility {
/* -------------------------------------------- */
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))) {
+ let defenderToken = canvas.tokens.get(data.defenderTokenId);
+ if (defenderToken) {
+ 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[data.attackerid] = duplicate(data.rollData);
data.whisper = [game.user];
@@ -792,8 +792,8 @@ export class RdDUtility {
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);
+ let defenderToken = canvas.tokens.get(data.defenderTokenId);
+ defenderToken.actor.encaisserDommages(rollData);
}
}
@@ -803,17 +803,17 @@ export class RdDUtility {
html.on("click", '#encaisser-button', event => {
event.preventDefault();
let attackerid = event.currentTarget.attributes['data-attackerid'].value;
- let defenderid = event.currentTarget.attributes['data-defenderid'].value;
+ let defenderTokenId = event.currentTarget.attributes['data-defendertokenid'].value;
if ( game.user.isGM ) { // Current user is the GM -> direct access
let rollData = game.system.rdd.rollDataHandler[attackerid];
rollData.attackerid = attackerid;
- rollData.defenderid = defenderid;
- let defenderActor = game.actors.get(defenderid );
- defenderActor.encaisserDommages( rollData );
+ rollData.defenderTokenId = defenderTokenId;
+ let defenderToken = canvas.tokens.get( defenderTokenId );
+ defenderToken.actor.encaisserDommages( rollData );
} else { // Emit message for GM
game.socket.emit("system.foundryvtt-reve-de-dragon", {
msg: "msg_encaisser",
- data: { attackerid: attackerid, defenderid: defenderid }
+ data: { attackerid: attackerid, defenderTokenId: defenderTokenId }
} );
}
});
@@ -821,19 +821,19 @@ export class RdDUtility {
html.on("click", '#parer-button', event => {
event.preventDefault();
let attackerid = event.currentTarget.attributes['data-attackerid'].value;
- let defenderActor = game.actors.get(event.currentTarget.attributes['data-defenderid'].value );
+ let defenderToken = canvas.tokens.get(event.currentTarget.attributes['data-defenderTokenId'].value );
let armeId = event.currentTarget.attributes['data-armeid'].value;
let rollData = game.system.rdd.rollDataHandler[attackerid];
- defenderActor.parerAttaque( rollData, armeId );
+ defenderToken.actor.parerAttaque( rollData, armeId );
});
html.on("click", '#esquiver-button', event => {
event.preventDefault();
let attackerid = event.currentTarget.attributes['data-attackerid'].value;
- let defenderActor = game.actors.get(event.currentTarget.attributes['data-defenderid'].value );
+ let defenderToken = canvas.tokens.get(event.currentTarget.attributes['data-defenderTokenId'].value );
let rollData = game.system.rdd.rollDataHandler[attackerid];
//console.log("Esquive !", rollData, defenderActor);
- defenderActor.esquiverAttaque( rollData );
+ defenderToken.actor.esquiverAttaque( rollData );
});
html.on("click", '#particuliere-attaque', event => {