#101 Gestion des status de surprise
La demi-surprise ou surprise dépend des états: - les TMRs sont ouvertes (sauf visu) - le personnage est sonné - un status parmi: prone, restrain - si inconscient ou aveugle, surprise totale Ajout de la possibilité de filtrer les status
This commit is contained in:
		| @@ -387,10 +387,11 @@ export class RdDCombat { | ||||
|       passeArme: randomID(16), | ||||
|       coupsNonMortels: false, | ||||
|       competence: competence, | ||||
|       surprise: this.attacker.getSurprise(), | ||||
|       surpriseDefenseur: this.defender.getSurprise(), | ||||
|       surprise: this.attacker.getSurprise(true), | ||||
|       surpriseDefenseur: this.defender.getSurprise(true), | ||||
|       essais: {} | ||||
|     }; | ||||
|     rollData.diviseurSignificative = this._getDiviseurSignificative(rollData); | ||||
|  | ||||
|     if (this.attacker.isCreature()) { | ||||
|       RdDItemCompetence.setRollDataCreature(rollData); | ||||
| @@ -456,7 +457,8 @@ export class RdDCombat { | ||||
|     const paramDemandeDefense = { | ||||
|       passeArme: attackerRoll.passeArme, | ||||
|       essais: attackerRoll.essais, | ||||
|       surprise: this.defender.getSurprise(), | ||||
|       // surprise: this.defender.getSurprise(true), | ||||
|       // surprise: attackerRoll.ajustements.attaqueDefenseurSurpris.used, | ||||
|       defender: this.defender, | ||||
|       attackerId: this.attackerId, | ||||
|       defenderTokenId: this.defenderTokenId, | ||||
| @@ -557,10 +559,9 @@ export class RdDCombat { | ||||
|   } | ||||
|  | ||||
|   _prepareParade(attackerRoll, armeParade) { | ||||
|     const isCreature = this.defender.isCreature(); | ||||
|     const compName = armeParade.data.competence; | ||||
|     const armeAttaque = attackerRoll.arme; | ||||
|  | ||||
|      | ||||
|     let rollData = { | ||||
|       passeArme: attackerRoll.passeArme, | ||||
|       forceValue: this.defender.getForceValue(), | ||||
| @@ -568,14 +569,15 @@ export class RdDCombat { | ||||
|       attackerRoll: attackerRoll, | ||||
|       competence: this.defender.getCompetence(compName), | ||||
|       arme: armeParade, | ||||
|       surprise: this.defender.getSurprise(), | ||||
|       surprise: this.defender.getSurprise(true), | ||||
|       needParadeSignificative: RdDItemArme.needParadeSignificative(armeAttaque, armeParade), | ||||
|       needResist: RdDItemArme.needArmeResist(armeAttaque, armeParade), | ||||
|       carac: this.defender.data.data.carac, | ||||
|       show: {} | ||||
|     }; | ||||
|     rollData.diviseur = this._getDiviseurSignificative(rollData); | ||||
|     if (isCreature) { | ||||
|     rollData.diviseurSignificative = this._getDiviseurSignificative(rollData); | ||||
|  | ||||
|     if (this.defender.isCreature()) { | ||||
|       RdDItemCompetence.setRollDataCreature(rollData); | ||||
|     } | ||||
|     return rollData; | ||||
| @@ -583,7 +585,13 @@ export class RdDCombat { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   _getDiviseurSignificative(defenderRoll) { | ||||
|     let facteurSign = (this.defender.isDemiSurprise() || defenderRoll.needParadeSignificative) ? 2 : 1; | ||||
|     let facteurSign = 1; | ||||
|     if (defenderRoll.surprise == 'demi'){ | ||||
|       facteurSign *= 2; | ||||
|     }  | ||||
|     if (defenderRoll.needParadeSignificative) { | ||||
|       facteurSign *= 2; | ||||
|     } | ||||
|     if (RdDBonus.isDefenseAttaqueFinesse(defenderRoll)) { | ||||
|       facteurSign *= 2; | ||||
|     } | ||||
| @@ -656,12 +664,12 @@ export class RdDCombat { | ||||
|       diffLibre: attackerRoll.diffLibre, | ||||
|       attackerRoll: attackerRoll, | ||||
|       competence: competence, | ||||
|       surprise: this.defender.getSurprise(), | ||||
|       surpriseDefenseur: this.defender.getSurprise(), | ||||
|       surprise: this.defender.getSurprise(true), | ||||
|       surpriseDefenseur: this.defender.getSurprise(true), | ||||
|       carac: this.defender.data.data.carac, | ||||
|       show: {} | ||||
|     }; | ||||
|     rollData.diviseur = this._getDiviseurSignificative(rollData); | ||||
|     rollData.diviseurSignificative = this._getDiviseurSignificative(rollData); | ||||
|  | ||||
|     if (this.defender.isCreature()) { | ||||
|       RdDItemCompetence.setRollDataCreature(rollData); | ||||
| @@ -678,21 +686,21 @@ export class RdDCombat { | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async _onEsquiveNormale(rollData) { | ||||
|     console.log("RdDCombat._onEsquiveNormal >>>", rollData); | ||||
|     this._consumeDefense(rollData.passeArme); | ||||
|     await RdDResolutionTable.displayRollData(rollData, this.defender, 'chat-resultat-esquive.html'); | ||||
|   async _onEsquiveNormale(defenderRoll) { | ||||
|     console.log("RdDCombat._onEsquiveNormal >>>", defenderRoll); | ||||
|     this._consumeDefense(defenderRoll.passeArme); | ||||
|     await RdDResolutionTable.displayRollData(defenderRoll, this.defender, 'chat-resultat-esquive.html'); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async _onEsquiveEchec(rollData) { | ||||
|     console.log("RdDCombat._onEsquiveEchec >>>", rollData); | ||||
|   async _onEsquiveEchec(defenderRoll) { | ||||
|     console.log("RdDCombat._onEsquiveEchec >>>", defenderRoll); | ||||
|  | ||||
|     await RdDResolutionTable.displayRollData(rollData, this.defender, 'chat-resultat-esquive.html'); | ||||
|     await RdDResolutionTable.displayRollData(defenderRoll, this.defender, 'chat-resultat-esquive.html'); | ||||
|  | ||||
|     this.removeChatMessageActionsPasseArme(rollData.passeArme); | ||||
|     this._sendMessageDefense(rollData.attackerRoll, { defense: true }) | ||||
|     this._storeDefense(rollData); | ||||
|     this.removeChatMessageActionsPasseArme(defenderRoll.passeArme); | ||||
|     this._sendMessageDefense(defenderRoll.attackerRoll, { defense: true }) | ||||
|     this._storeDefense(defenderRoll); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -776,12 +784,6 @@ export class RdDCombat { | ||||
|     return Misc.toInt(this.defender.data.data.carac.taille.value) - (attaque.forceValue + attaque.arme.data.dommagesReels); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   _sendMessageEncaisser(rollData) { | ||||
|     let message = "<strong>" + this.defender.name + "</strong> doit:" + this._buildMessageEncaisser(rollData); | ||||
|     RdDCombat._sendRollMessage(this.attacker, this.defender, this.defenderTokenId, "msg_encaisser", message, rollData); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async encaisser(attackerRoll, defenderTokenId) { | ||||
|     defenderTokenId = defenderTokenId || this.defenderTokenId; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user