forked from public/foundryvtt-reve-de-dragon
#13 - Fight management update
This commit is contained in:
@ -151,7 +151,7 @@ export class RdDActor extends Actor {
|
||||
// Fight management !
|
||||
let defenseMsg;
|
||||
let encaisser = false;
|
||||
if (rollData.arme) {
|
||||
if (rollData.arme || rollData.competence.name.toLowerCase() == 'esquive' ) {
|
||||
// In case of fight, replace the message per dommages + localization. it indicates if result is OK or not
|
||||
if (rollData.attackerRoll) { // Defense case !
|
||||
if (rolled.isSuccess) {
|
||||
@ -231,8 +231,10 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
// Save it for fight in the flags area
|
||||
console.log("Saving Flag", this);
|
||||
await this.setFlag('world', 'rollData', null);
|
||||
await this.setFlag('world', 'rollData', rollData);
|
||||
game.system.rdd.rollDataHandler[this.data._id] = duplicate(rollData);
|
||||
|
||||
// Final chat message
|
||||
let chatOptions = {
|
||||
@ -246,6 +248,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
// This an attack, generate the defense message
|
||||
if (defenseMsg) {
|
||||
defenseMsg.rollData = duplicate(rollData);
|
||||
if (defenseMsg.toSocket) {
|
||||
game.socket.emit("system.foundryvtt-reve-de-dragon", {
|
||||
msg: "msg_defense",
|
||||
@ -714,49 +717,35 @@ export class RdDActor extends Actor {
|
||||
this.rollCompetence( armeName ); //Bypass mode!
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCreatureCompetence( compName, armeItem=undefined, attackerRoll=undefined )
|
||||
{
|
||||
let compItem = RdDUtility.findCompetence( this.data.items, compName);
|
||||
if ( compItem.data.iscombat ) {
|
||||
armeItem = { name: compName, data: { dommages: compItem.data.dommages} };
|
||||
}
|
||||
compItem.data.defaut_carac = "carac_creature"; // Fake default competence
|
||||
let rollData = {
|
||||
"competence": compItem,
|
||||
"arme": armeItem,
|
||||
"carac": { carac_creature: { label: compName, value: compItem.data.carac_value } },
|
||||
"bonusmalusTable": CONFIG.RDD.bonusmalus,
|
||||
"etat": this.data.data.compteurs.etat.value,
|
||||
"bmValue": (attackerRoll) ? attackerRoll.bmValue : 0,
|
||||
"attackerRoll": attackerRoll,
|
||||
"finalLevel": 0
|
||||
}
|
||||
|
||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html', rollData);
|
||||
if (armeItem) {
|
||||
new RdDRollDialog("arme", html, rollData, this ).render(true);
|
||||
} else {
|
||||
new RdDRollDialog("competence", html, rollData, this ).render(true);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCompetence( compName, armeItem=undefined, attackerRoll=undefined )
|
||||
{
|
||||
console.log("!!!!!!", compName, armeItem);
|
||||
let compItem = RdDUtility.findCompetence( this.data.items, compName);
|
||||
console.log("!!!!!!", compName, this.data.items, compItem);
|
||||
// Common rollData values
|
||||
let rollData = {
|
||||
"competence": compItem,
|
||||
"arme": armeItem,
|
||||
"carac": this.data.data.carac,
|
||||
"bonusmalusTable": CONFIG.RDD.bonusmalus,
|
||||
"etat": this.data.data.compteurs.etat.value,
|
||||
"bmValue": (attackerRoll) ? attackerRoll.bmValue : 0,
|
||||
"attackerRoll": attackerRoll,
|
||||
"finalLevel": 0
|
||||
}
|
||||
bonusmalusTable: CONFIG.RDD.bonusmalus,
|
||||
etat: this.data.data.compteurs.etat.value,
|
||||
bmValue: (attackerRoll) ? attackerRoll.bmValue : 0,
|
||||
attackerRoll: attackerRoll,
|
||||
finalLevel: 0
|
||||
}
|
||||
|
||||
if ( compItem.type == 'competencecreature') { // Specific case for Creatures
|
||||
if ( compItem.data.iscombat ) {
|
||||
armeItem = { name: compName, data: { dommages: compItem.data.dommages} };
|
||||
}
|
||||
compItem.data.defaut_carac = "carac_creature"; // Fake default competence
|
||||
compItem.data.categorie = "creature"; // Fake default competence
|
||||
rollData.competence = compItem;
|
||||
rollData.arme = armeItem;
|
||||
rollData.carac = { carac_creature: { label: compName, value: compItem.data.carac_value } };
|
||||
} else { // Usual competence
|
||||
rollData.competence = compItem;
|
||||
rollData.arme = armeItem;
|
||||
rollData.carac = this.data.data.carac;
|
||||
}
|
||||
|
||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html', rollData);
|
||||
if (armeItem) {
|
||||
new RdDRollDialog("arme", html, rollData, this ).render(true);
|
||||
@ -844,7 +833,6 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
esquiverAttaque( attackerRoll )
|
||||
{
|
||||
console.log("Going to DODGE !!!!!!!!!", attackerRoll.bmValue);
|
||||
this.rollCompetence( "esquive", undefined, attackerRoll );
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user