Implementations diverses
This commit is contained in:
@@ -86,30 +86,45 @@ export class VadentisUtility extends Entity {
|
||||
let attacker = game.actors.get(combatData.attackerActorId);
|
||||
let defender = game.actors.get(combatData.targetActorId);
|
||||
if( attacker && defender) {
|
||||
let defense = defender.getDefenseScore();
|
||||
let defense = defender.getDefenseScore();
|
||||
let attaque = attacker.getAttaqueScore();
|
||||
|
||||
let myRoll = await this.processRoll("1d20+"+attaque);
|
||||
let msgData = {
|
||||
alias: this.name,
|
||||
title: `${attacker.name} attaque ${defender.name}`
|
||||
}
|
||||
|
||||
let formulaTouche = "1d20+"+attaque;
|
||||
let formulaFull = attacker.buildTexteFormula( attacker.data.data.combat.attaque );
|
||||
let myRoll = await this.processRoll(formulaTouche);
|
||||
if (myRoll.results[0] > 1 && myRoll.total >= defense) { // Success !
|
||||
let degats = `normaux : ${combatData.arme.data.damage}`;
|
||||
let formula = combatData.arme.data.damage.toLowerCase();
|
||||
msgData.msg = `${attacker.name} a réussi son attaque sur ${defender.name} (${formulaFull} => ${myRoll.total} / ${defense}) !<br> Les dégâts sont ${degats}.`;
|
||||
|
||||
if ( myRoll.results[0] == 20) {
|
||||
degats = `critiques : ${combatData.arme.data.criticaldamage}`;
|
||||
formula = combatData.arme.data.criticaldamage.toLowerCase();
|
||||
msgData.msg += `<br>C'est une <strong>réussite critique</strong> !`;
|
||||
}
|
||||
ChatMessage.create( { content: `${attacker.name} a réussi son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !<br> Les dégâts sont ${degats}`});
|
||||
msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_attaque_réussie.webp'
|
||||
|
||||
formula = this.processDamageString( formula, attacker );
|
||||
let degatsRoll = await this.processRoll(formula);
|
||||
ChatMessage.create( { content: `Et les dégats infligés sont de ${degatsRoll.total} (${formula}) à appliquer à ${defender.name}`});
|
||||
msgData.msg +=`<br>Les dégats infligés sont de <strong>${degatsRoll.total}</strong> (${formula}).`;
|
||||
defender.applyDamage( degatsRoll.total );
|
||||
} else { //Echec
|
||||
msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_attaque_échouée.webp';
|
||||
if ( myRoll.results[0] == 1) {
|
||||
ChatMessage.create( { content: `${attacker.name} a fait un <strong>échec critique</strong> et a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !` });
|
||||
msgData.msg = `${attacker.name} a fait un <strong>échec critique</strong> et a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !`;
|
||||
} else {
|
||||
ChatMessage.create( { content: `${attacker.name} a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !` });
|
||||
msgData.msg = `${attacker.name} a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !`;
|
||||
}
|
||||
}
|
||||
ChatMessage.create({
|
||||
//whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
|
||||
content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData)
|
||||
});
|
||||
} else {
|
||||
ui.notifications.warn("Impossible de trouver l'attaquant et le défenseur.")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user