forked from public/foundryvtt-reve-de-dragon
Test/debug combat
This commit is contained in:
@ -205,11 +205,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Save it for fight
|
||||
await this.setFlag( "foundryvtt-reve-de-dragon", "rollData", undefined );
|
||||
await this.setFlag( "foundryvtt-reve-de-dragon", "rollData", rollData );
|
||||
|
||||
|
||||
// Sort management
|
||||
let lvl = ""
|
||||
if ( rollData.selectedSort) { // Lancement de sort !
|
||||
@ -254,16 +250,20 @@ export class RdDActor extends Actor {
|
||||
} else {
|
||||
lvl = (rollData.competence) ? rollData.competence.name : rollData.bmValue;
|
||||
}
|
||||
|
||||
// Save it for fight in the flags area
|
||||
await this.setFlag( 'world', 'rollData', null );
|
||||
await this.setFlag( 'world', 'rollData', rollData );
|
||||
|
||||
// Final chat message
|
||||
let chatOptions = { content: "<strong>Test : " + rollData.selectedCarac.label + " / " + lvl + "</strong><br>Jet : " +
|
||||
rollData.selectedCarac.value + " / " + rollData.finalLevelStr + " -> " + rollData.rollTarget.score + "%<br><strong>Résutat : </strong>" + result + "<br>" +
|
||||
"<strong>" + quality + "</strong>" + specialStr + xpmsg,
|
||||
user: game.user._id,
|
||||
title: "Résultat du test"
|
||||
}
|
||||
rollData.selectedCarac.value + " / " + rollData.finalLevelStr + " -> " + rollData.rollTarget.score + "%<br><strong>Résutat : </strong>" + result + "<br>" +
|
||||
"<strong>" + quality + "</strong>" + specialStr + xpmsg,
|
||||
user: game.user._id,
|
||||
title: "Résultat du test"
|
||||
}
|
||||
ChatMessage.create( chatOptions );
|
||||
|
||||
|
||||
// This an attack, generate the defense message
|
||||
if ( defenseMsg ) { // target hit !
|
||||
ChatMessage.create( defenseMsg );
|
||||
@ -272,7 +272,7 @@ export class RdDActor extends Actor {
|
||||
if ( encaisser ) {
|
||||
this.encaisserDommages( rollData.attackerRoll );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
updateCarac( caracName, caracValue )
|
||||
@ -701,6 +701,13 @@ export class RdDActor extends Actor {
|
||||
this.rollCompetence( armeItem.data.data.competence, armeItem.data, attackerRoll );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
esquiverAttaque( attackerRoll )
|
||||
{
|
||||
console.log("Going to DODGE !!!!!!!!!", attackerRoll.bmValue);
|
||||
this.rollCompetence( "esquive", undefined, attackerRoll );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
getRollData() {
|
||||
|
@ -426,38 +426,38 @@ export class RdDUtility {
|
||||
/* -------------------------------------------- */
|
||||
static buildDefenseChatCard( attacker, target, rollData )
|
||||
{
|
||||
console.log("Target", target);
|
||||
let myTarget = target.actor;
|
||||
let defenseMsg = { title: "Défense en combat",
|
||||
content: "Action de défense en combat!<br><span class='chat-card-button-area'>" +
|
||||
"<a class='chat-card-button' id='encaisser-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "'>Encaisser !</a></span>",
|
||||
whisper: ChatMessage.getWhisperRecipients(target.actor.data.name) };
|
||||
content: "<strong>"+myTarget.name+"</strong> doit se défendre : <br><span class='chat-card-button-area'>" +
|
||||
"<a class='chat-card-button' id='encaisser-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + myTarget.data._id + "'>Encaisser !</a></span>",
|
||||
whisper: ChatMessage.getWhisperRecipients( myTarget.name ) };
|
||||
|
||||
if ( rollData.competence.data.categorie == "melee" ) { // Melee attack
|
||||
let defenderArmes = [];
|
||||
for (const arme of target.actor.data.items) {
|
||||
for (const arme of myTarget.data.items) {
|
||||
if (arme.type == "arme" && this.isArmeMelee(arme.data.competence)) {
|
||||
defenderArmes.push( arme );
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='parer-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "' data-armeid='"+arme._id+"'>Parer avec " + arme.name + "</a></span>";
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='parer-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + myTarget.data._id + "' data-armeid='"+arme._id+"'>Parer avec " + arme.name + "</a></span>";
|
||||
}
|
||||
}
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='esquiver-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "'>Esquiver</a></span>";
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='esquiver-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + myTarget.data._id + "'>Esquiver</a></span>";
|
||||
}
|
||||
if ( rollData.competence.data.categorie == "tir" ) {
|
||||
for (const arme of target.actor.data.items) { // Bouclier for parry
|
||||
for (const arme of myTarget.data.items) { // Bouclier for parry
|
||||
if ( arme.type == "arme" && arme.name.toLowerCase.match("bouclier") ) {
|
||||
defenderArmes.push( arme );
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='parer-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "' data-armeid='"+arme._id+"'>Parer avec " + arme.name + "</a></span>";
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='parer-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + myTarget.data._id + "' data-armeid='"+arme._id+"'>Parer avec " + arme.name + "</a></span>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( rollData.competence.data.categorie == "lancer" ) {
|
||||
for (const arme of target.actor.data.items) { // Bouclier for parry Dodge/Esquive
|
||||
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 += "<br><a class='chat-card-button' id='parer-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "' data-armeid='"+arme._id+"'>Parer avec " + arme.name + "</a></span>";
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='parer-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + myTarget.data._id + "' data-armeid='"+arme._id+"'>Parer avec " + arme.name + "</a></span>";
|
||||
}
|
||||
}
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='esquiver-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "'>Esquiver</a></span>";
|
||||
defenseMsg.content += "<br><a class='chat-card-button' id='esquiver-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + myTarget.data._id + "'>Esquiver</a></span>";
|
||||
}
|
||||
|
||||
return defenseMsg;
|
||||
@ -482,7 +482,7 @@ export class RdDUtility {
|
||||
html.on("click", '#encaisser-button', event => {
|
||||
event.preventDefault();
|
||||
let attackerActor = game.actors.get( event.currentTarget.attributes['data-attackerid'].value );
|
||||
let rollData = attackerActor.getFlag("foundryvtt-reve-de-dragon", "rollData");
|
||||
let rollData = attackerActor.getFlag( "world", "rollData" );
|
||||
rollData.attackerid = event.currentTarget.attributes['data-attackerid'].value;
|
||||
rollData.defenderid = event.currentTarget.attributes['data-defenderid'].value;
|
||||
let defenderActor = game.actors.get( rollData.defenderid );
|
||||
@ -495,15 +495,23 @@ export class RdDUtility {
|
||||
data: rollData
|
||||
} );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
html.on("click", '#parer-button', event => {
|
||||
event.preventDefault();
|
||||
let attackerActor = game.actors.get(event.currentTarget.attributes['data-attackerid'].value );
|
||||
let defenderActor = game.actors.get(event.currentTarget.attributes['data-defenderid'].value );
|
||||
let armeId = event.currentTarget.attributes['data-armeid'].value;
|
||||
let rollData = attackerActor.getFlag("foundryvtt-reve-de-dragon", "rollData");
|
||||
defenderActor.parerAttaque( rollData, armeId);
|
||||
let rollData = attackerActor.getFlag( "world", "rollData" );
|
||||
defenderActor.parerAttaque( rollData, armeId );
|
||||
});
|
||||
|
||||
html.on("click", '#esquiver-button', event => {
|
||||
event.preventDefault();
|
||||
let attackerActor = game.actors.get(event.currentTarget.attributes['data-attackerid'].value );
|
||||
let defenderActor = game.actors.get(event.currentTarget.attributes['data-defenderid'].value );
|
||||
let rollData = attackerActor.getFlag( "world", "rollData" );
|
||||
defenderActor.esquiverAttaque( rollData );
|
||||
});
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user