forked from public/foundryvtt-reve-de-dragon
Sync with gitlab
This commit is contained in:
@ -133,11 +133,19 @@ export class RdDActor extends Actor {
|
||||
specialStr = "<br><strong>Esquive/Parade échouée, encaissement !</strong>";
|
||||
encaisser = true;
|
||||
}
|
||||
} else {
|
||||
} else { // This is the attack roll!
|
||||
if ( rollData.pointsDeTache > 0 ) {
|
||||
let myroll = new Roll("2d10");
|
||||
myroll.roll();
|
||||
rollData.degats = parseInt(myroll.result) + parseInt(rollData.arme.data.dommages) + parseInt(this.data.data.attributs.plusdom.value);
|
||||
rollData.degats = parseInt(myroll.result) + parseInt(rollData.arme.data.dommages);
|
||||
if ( rollData.selectedCarac.label == "Mêlée" ) // +dom only for Melee
|
||||
rollData.degats += parseInt(this.data.data.attributs.plusdom.value);
|
||||
if ( rollData.selectedCarac.label == "Lancer" ) { // +dom only for Melee/Lancer
|
||||
let bdom = parseInt(this.data.data.attributs.plusdom.value);
|
||||
if ( bdom > parseInt(rollData.arme.data.dommages)*2 )
|
||||
bdom = parseInt(rollData.arme.data.dommages)*2;
|
||||
rollData.degats += bdom
|
||||
}
|
||||
rollData.loc = RdDUtility.getLocalisation();
|
||||
for (let target of game.user.targets) {
|
||||
defenseMsg = RdDUtility.buildDefenseChatCard(this, target, rollData );
|
||||
@ -156,7 +164,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
let lvl = (rollData.competence) ? rollData.competence.name : rollData.bmValue;
|
||||
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>" + myroll.total + "<br>" +
|
||||
rollData.selectedCarac.value + " / " + rollData.finalLevelStr + " -> " + rollData.rollTarget.score + "%<br><strong>Résutat : </strong>" + myroll.total + "<br>" +
|
||||
"<strong>" + quality + "</strong>" + specialStr + xpmsg,
|
||||
user: game.user._id,
|
||||
title: "Résultat du test"
|
||||
|
@ -31,6 +31,10 @@ Hooks.once("init", async function() {
|
||||
formula: "1d20",
|
||||
decimals: 2
|
||||
};
|
||||
|
||||
game.socket.on("system.foundryvtt-reve-de-dragon", data => {
|
||||
RdDUtility.performSocketMesssage( data );
|
||||
});
|
||||
|
||||
// Define custom Entity classes
|
||||
CONFIG.Actor.entityClass = RdDActor;
|
||||
|
@ -435,22 +435,52 @@ export class RdDUtility {
|
||||
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='esquiver-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "'>Esquiver</a></span>";
|
||||
}
|
||||
// TODO - Tir + Lancer
|
||||
|
||||
if ( rollData.competence.data.categorie == "tir" ) {
|
||||
for (const arme of target.actor.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>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( rollData.competence.data.categorie == "lancer" ) {
|
||||
for (const arme of target.actor.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='esquiver-button' data-attackerid='"+attacker.data._id + "' data-defenderid='" + target.actor.data._id + "'>Esquiver</a></span>";
|
||||
}
|
||||
|
||||
return defenseMsg;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static performSocketMesssage( data )
|
||||
{
|
||||
console.log(">>>>> MSG RECV", data);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async chatListeners( html )
|
||||
{
|
||||
html.on("click", '#encaisser-button', event => {
|
||||
event.preventDefault();
|
||||
console.log("Encaisser button", event);
|
||||
let attackerActor = game.actors.get(event.currentTarget.attributes['data-attackerid'].value );
|
||||
let defenderActor = game.actors.get(event.currentTarget.attributes['data-defenderid'].value );
|
||||
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("foundryvtt-reve-de-dragon", "rollData");
|
||||
defenderActor.encaisserDommages( rollData );
|
||||
rollData.attackerid = event.currentTarget.attributes['data-attackerid'].value;
|
||||
rollData.defenderid = event.currentTarget.attributes['data-defenderid'].value;
|
||||
game.socket.emit("system.foundryvtt-reve-de-dragon", {
|
||||
msg: "msg_encaisser",
|
||||
data: rollData
|
||||
} );
|
||||
console.log("-> MSG SENT");
|
||||
//defenderActor.encaisserDommages( rollData );
|
||||
});
|
||||
|
||||
html.on("click", '#parer-button', event => {
|
||||
|
Reference in New Issue
Block a user