|
|
|
@ -46,6 +46,17 @@ export class MournbladeUtility {
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static getActorFromRollData(rollData) {
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
if (rollData.tokenId) {
|
|
|
|
|
let token = canvas.tokens.placeables.find(t => t.id == rollData.tokenId)
|
|
|
|
|
if (token) {
|
|
|
|
|
actor = token.actor
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return actor
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static getModificateurOptions() {
|
|
|
|
@ -108,7 +119,7 @@ export class MournbladeUtility {
|
|
|
|
|
let messageId = MournbladeUtility.findChatMessageId(event.currentTarget)
|
|
|
|
|
let message = game.messages.get(messageId)
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
|
|
|
|
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
|
|
|
|
|
MournbladeUtility.rollMournblade(rollData)
|
|
|
|
@ -183,11 +194,6 @@ export class MournbladeUtility {
|
|
|
|
|
return undefined;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static getDefenseState(actorId) {
|
|
|
|
|
return this.defenderStore[actorId];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static updateRollData(rollData) {
|
|
|
|
|
|
|
|
|
@ -292,7 +298,7 @@ export class MournbladeUtility {
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static async rollMournblade(rollData) {
|
|
|
|
|
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
if (rollData.attrKey == "tochoose") { // No attr selected, force address
|
|
|
|
|
rollData.attrKey = "adr"
|
|
|
|
|
}
|
|
|
|
@ -473,7 +479,7 @@ export class MournbladeUtility {
|
|
|
|
|
rollData.defenderTokenId = target.id
|
|
|
|
|
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
|
|
|
|
rollData.armeDefense = defender.getBestDefenseValue()
|
|
|
|
|
if ( rollData.armeDefense) {
|
|
|
|
|
if (rollData.armeDefense) {
|
|
|
|
|
rollData.difficulte = rollData.armeDefense.system.totalDefensif
|
|
|
|
|
} else {
|
|
|
|
|
ui.notifications.warn("Aucune arme de défense équipée, difficulté manuelle à positionner.")
|
|
|
|
@ -492,7 +498,7 @@ export class MournbladeUtility {
|
|
|
|
|
let msg = game.messages.get(msgId)
|
|
|
|
|
if (msg) {
|
|
|
|
|
let rollData = msg.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
actor.changeBonneAventure(changed)
|
|
|
|
|
rollData.isReroll = true
|
|
|
|
|
rollData.textBonus = "Bonus de Points d'Aventure"
|
|
|
|
@ -511,7 +517,7 @@ export class MournbladeUtility {
|
|
|
|
|
let msg = game.messages.get(msgId)
|
|
|
|
|
if (msg) {
|
|
|
|
|
let rollData = msg.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
actor.changeEclat(changed)
|
|
|
|
|
rollData.isReroll = true
|
|
|
|
|
rollData.textBonus = "Bonus d'Eclat"
|
|
|
|
@ -526,37 +532,37 @@ export class MournbladeUtility {
|
|
|
|
|
let canApplyBALoyal = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "loyal")
|
|
|
|
|
}
|
|
|
|
|
let canApplyPELoyal = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "loyal")
|
|
|
|
|
}
|
|
|
|
|
let canApplyBAChaotique = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "chaotique")
|
|
|
|
|
}
|
|
|
|
|
let canApplyBAChaotique3 = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
return (!rollData.isReroll && actor.getBonneAventure() > 2 && actor.getAlignement() == "chaotique")
|
|
|
|
|
}
|
|
|
|
|
let canApplyPEChaotique = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "chaotique")
|
|
|
|
|
}
|
|
|
|
|
let hasPredilection = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
if (rollData.competence) {
|
|
|
|
|
let nbPred = rollData.competence.data.predilections.filter(pred => !pred.used).length
|
|
|
|
|
return (!rollData.isReroll && rollData.competence && nbPred > 0)
|
|
|
|
@ -566,7 +572,7 @@ export class MournbladeUtility {
|
|
|
|
|
let canCompetenceDouble = function (li) {
|
|
|
|
|
let message = game.messages.get(li.attr("data-message-id"))
|
|
|
|
|
let rollData = message.getFlag("world", "mournblade-roll")
|
|
|
|
|
let actor = game.actors.get(rollData.actorId)
|
|
|
|
|
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
|
|
|
|
if (rollData.competence) {
|
|
|
|
|
return rollData.competence.data.doublebonus
|
|
|
|
|
}
|
|
|
|
|