#53 : Gestion des détériorations et du recul
This commit is contained in:
parent
7d2257435b
commit
f9f3f6dafb
@ -172,32 +172,32 @@ export class RdDActor extends Actor {
|
|||||||
&& !rollData.rolled.isPart ) {
|
&& !rollData.rolled.isPart ) {
|
||||||
// Jet de résistance de l'arme de parade (p.132)
|
// Jet de résistance de l'arme de parade (p.132)
|
||||||
let resist = RdDResolutionTable.roll( rollData.arme.data.resistance, rollData.attackerRoll.domArmePlusDom );
|
let resist = RdDResolutionTable.roll( rollData.arme.data.resistance, rollData.attackerRoll.domArmePlusDom );
|
||||||
if (!resist.isSuccess) { // Perte de résistance
|
let msg = "";
|
||||||
|
if (resist.isSuccess) { // Perte de résistance
|
||||||
|
msg = "Jet de résistance de votre arme réussit !"
|
||||||
|
} else {
|
||||||
rollData.arme.data.resistance -= rollData.attackerRoll.domArmePlusDom;
|
rollData.arme.data.resistance -= rollData.attackerRoll.domArmePlusDom;
|
||||||
if ( rollData.arme.data.resistance <= 0 ) {
|
if ( rollData.arme.data.resistance <= 0 ) {
|
||||||
this.deleteEmbeddedEntity("OwnedItem", rollData.arme._id);
|
this.deleteEmbeddedEntity("OwnedItem", rollData.arme._id);
|
||||||
ChatMessage.create( { content: "Votre arme s'est brisée sous le coup de la parade : " + rollData.arme.name,
|
msg = "Votre arme s'est brisée sous le coup de la parade : " + rollData.arme.name;
|
||||||
user: game.user._id,
|
|
||||||
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
|
||||||
} else {
|
} else {
|
||||||
this.updateEmbeddedEntity("OwnedItem", {_id: rollData.arme._id, 'data.resistance': rollData.arme.data.resistance });
|
this.updateEmbeddedEntity("OwnedItem", {_id: rollData.arme._id, 'data.resistance': rollData.arme.data.resistance });
|
||||||
ChatMessage.create( { content: "Votre arme a perdu de la résistance : " + rollData.arme.name + " - " + rollData.arme.data.resistance,
|
msg = "Votre arme a perdu de la résistance : " + rollData.arme.name + " - " + rollData.arme.data.resistance;
|
||||||
user: game.user._id,
|
|
||||||
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Jet de désarmement
|
// Jet de désarmement
|
||||||
if ( !rollData.arme.includes('Bouclier') ) { // Si l'arme de parade n'est pas un bouclier, jet de désarmement (p.132)
|
if ( !rollData.arme.includes('Bouclier') ) { // Si l'arme de parade n'est pas un bouclier, jet de désarmement (p.132)
|
||||||
let desarme = RdDResolutionTable.roll( this.data.data.carac.force.value, Number(rollData.competence.data.niveau) + Number(rollData.attackerRoll.domArmePlusDom) );
|
let desarme = RdDResolutionTable.roll( this.data.data.carac.force.value, Number(rollData.competence.data.niveau) + Number(rollData.attackerRoll.domArmePlusDom) );
|
||||||
if ( !desarme.isSucess) {
|
if ( !desarme.isSucess) {
|
||||||
ChatMessage.create( { content: "Vous êtes désarmé ! Votre arme " + rollData.arme.name + "tombe au sol à vos pieds",
|
msg += "<br>De plus, vous êtes désarmé ! Votre arme " + rollData.arme.name + "tombe au sol à vos pieds";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ChatMessage.create( { content: msg,
|
||||||
user: game.user._id,
|
user: game.user._id,
|
||||||
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
computeRecul( rollData ) { // Calcul du recul (p. 132)
|
computeRecul( rollData ) { // Calcul du recul (p. 132)
|
||||||
@ -205,21 +205,23 @@ export class RdDActor extends Actor {
|
|||||||
if ( (rollData.attackerRoll.particuliereAttaque && rollData.attackerRoll.particuliereAttaque == 'force') || rollData.attackerRoll.isCharge) {
|
if ( (rollData.attackerRoll.particuliereAttaque && rollData.attackerRoll.particuliereAttaque == 'force') || rollData.attackerRoll.isCharge) {
|
||||||
let reculNiveau = this.data.data.taille.value - (rollData.attackerRoll.forceValue+rollData.attackerRoll.arme.dommages);
|
let reculNiveau = this.data.data.taille.value - (rollData.attackerRoll.forceValue+rollData.attackerRoll.arme.dommages);
|
||||||
let recul = RdDResolutionTable.roll( 10, reculNiveau );
|
let recul = RdDResolutionTable.roll( 10, reculNiveau );
|
||||||
if (!recul.isSuccess) {
|
let msg = "";
|
||||||
|
if (recul.isSuccess) {
|
||||||
|
msg = "Jet de Recul réussit, aucun effet !";
|
||||||
|
} else {
|
||||||
let chute = RdDResolutionTable.roll( this.data.data.carac.agilite.value, reculNiveau );
|
let chute = RdDResolutionTable.roll( this.data.data.carac.agilite.value, reculNiveau );
|
||||||
if ( !chute.isSuccess || recul.isETotal ) {
|
if ( !chute.isSuccess || recul.isETotal ) {
|
||||||
ChatMessage( {content:"Vous subissez le recul du coup, et vous chutez au sol ! Vous ne pouvez plus attaquer ce round.",
|
msg = "Jet de Recul : Vous subissez le recul du coup, et vous chutez au sol ! Vous ne pouvez plus attaquer ce round.";
|
||||||
user: game.user._id,
|
|
||||||
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
|
||||||
} else {
|
} else {
|
||||||
ChatMessage( {content:"Vous subissez le recul du coup, et vous reculez de quelques mètres ! Vous ne pouvez plus attaquer ce round.",
|
msg = "Jet de Recul : Vous subissez le recul du coup, et vous reculez de quelques mètres ! Vous ne pouvez plus attaquer ce round.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ChatMessage( {content: msg,
|
||||||
user: game.user._id,
|
user: game.user._id,
|
||||||
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
whisper: [game.user._id, ChatMessage.getWhisperRecipients("GM") ] } );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async continueRoll(rollData, attacker = undefined) {
|
async continueRoll(rollData, attacker = undefined) {
|
||||||
|
Loading…
Reference in New Issue
Block a user