Correction combat V2 avec plusieurs joueurs
Les messages de défense fonctionnent sur les jets V2
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
- lancer de sorts
|
||||
- jets suite à appel à la chance
|
||||
- permettre de faire une attaque même si l'initiative n'est pas faite
|
||||
- Les messages de défense s'affichent correctement avec plusieurs joueurs
|
||||
|
||||
## 13.0.18 - Le reflet d'Illysis
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ export class RdDBonus {
|
||||
const dmg = {
|
||||
total: 0,
|
||||
dmgArme: dmgArme,
|
||||
penetration: arme?.penetration() ?? 0,
|
||||
penetration: arme?.system.penetration ?? 0,
|
||||
diff: attaque.diff,
|
||||
dmgTactique: attaque.tactique?.dmg ?? 0,
|
||||
dmgParticuliere: RdDBonus._dmgParticuliere(rollData),
|
||||
|
||||
@@ -315,6 +315,7 @@ export class RdDCombat {
|
||||
switch (sockmsg.msg) {
|
||||
case "msg_encaisser": return RdDCombat.onMsgEncaisser(sockmsg.data);
|
||||
case "msg_defense": return RdDCombat.onMsgDefense(sockmsg.data);
|
||||
case "msg_defense_v2": return RdDCombat.onMsgDefenseV2(sockmsg.data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -367,6 +368,19 @@ export class RdDCombat {
|
||||
return new RdDCombat(attacker, attackerTokenId, defender, defenderTokenId, target)
|
||||
}
|
||||
|
||||
static rddCombatForAttackV2(attackerRoll) {
|
||||
const defenderRoll = RollBasicParts.prepareDefense(attackerRoll)
|
||||
return RdDCombat.rddCombatForDefenseV2(defenderRoll)
|
||||
}
|
||||
|
||||
static rddCombatForDefenseV2(defenderRoll) {
|
||||
let defenderToken = canvas.tokens.get(defenderRoll.active.tokenId)
|
||||
if (defenderToken) {
|
||||
return RdDCombat.rddCombatForAttackerAndDefender(defenderRoll.opponent.id, defenderRoll.opponent.tokenId, defenderRoll.active.tokenId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static onMsgEncaisser(msg) {
|
||||
let defender = canvas.tokens.get(msg.defenderToken.id).actor;
|
||||
@@ -722,9 +736,24 @@ export class RdDCombat {
|
||||
await this._chatMessageDefenseV2(paramChatDefense);
|
||||
}
|
||||
else {
|
||||
this._socketSendMessageDefense(paramChatDefense, {});
|
||||
this._socketSendMessageDefenseV2(paramChatDefense);
|
||||
}
|
||||
}
|
||||
|
||||
_socketSendMessageDefenseV2(paramChatDefense) {
|
||||
game.socket.emit(SYSTEM_SOCKET_ID, { msg: "msg_defense_v2", data: {paramChatDefense} })
|
||||
}
|
||||
|
||||
static async onMsgDefenseV2(msg) {
|
||||
if (Misc.isFirstConnectedGM()) {
|
||||
const paramChatDefense = msg.paramChatDefense
|
||||
RollBasicParts.restore(paramChatDefense.attackerRoll)
|
||||
const rddCombat = RdDCombat.rddCombatForAttackV2(paramChatDefense.attackerRoll)
|
||||
rddCombat?.removeChatMessageActionsPasseArme(paramChatDefense.attackerRoll.passeArme)
|
||||
await rddCombat?._chatMessageDefenseV2(paramChatDefense)
|
||||
}
|
||||
}
|
||||
|
||||
async _chatMessageDefenseV2(paramDemandeDefense) {
|
||||
const attackerRoll = paramDemandeDefense.attackerRoll;
|
||||
RollBasicParts.loadSurprises(attackerRoll)
|
||||
|
||||
Reference in New Issue
Block a user