Sync with gitlab

This commit is contained in:
2020-06-17 20:31:43 +02:00
parent 3962f33e84
commit 259a7577e8
8 changed files with 135 additions and 54 deletions

View File

@ -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"

View File

@ -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;

View File

@ -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 => {