DAtaModels + Appv2 migration : OK
This commit is contained in:
@@ -767,6 +767,15 @@ export class MournbladeCYD2Utility {
|
||||
this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions, rollData)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getActorAlignment(actor) {
|
||||
const loi = actor.system?.balance?.loi ?? 0
|
||||
const chaos = actor.system?.balance?.chaos ?? 0
|
||||
if (loi > chaos) return 'loyal'
|
||||
if (chaos > loi) return 'chaotique'
|
||||
return 'neutre'
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static applyBonneAventureRoll(li, changed, addedBonus) {
|
||||
let msgId = $(li).data("message-id")
|
||||
@@ -808,42 +817,67 @@ export class MournbladeCYD2Utility {
|
||||
/* -------------------------------------------- */
|
||||
static chatRollMenu(html, options) {
|
||||
let canApply = li => canvas.tokens.controlled.length && li.find(".mournblade-cyd2-roll").length
|
||||
let canApplyBA = function (li) {
|
||||
let getActor = function (li) {
|
||||
let message = game.messages.get($(li).attr("data-message-id"))
|
||||
let rollData = message.getFlag("world", "mournblade-cyd2-roll")
|
||||
return MournbladeCYD2Utility.getActorFromRollData(rollData)
|
||||
}
|
||||
let getRollData = function (li) {
|
||||
let message = game.messages.get($(li).attr("data-message-id"))
|
||||
return message.getFlag("world", "mournblade-cyd2-roll")
|
||||
}
|
||||
let canApplyBA = function (li) {
|
||||
let rollData = getRollData(li)
|
||||
let actor = MournbladeCYD2Utility.getActorFromRollData(rollData)
|
||||
return (!rollData.isReroll && actor.getBonneAventure() > 0)
|
||||
}
|
||||
let canApplyPE = function (li) {
|
||||
let message = game.messages.get($(li).attr("data-message-id"))
|
||||
let rollData = message.getFlag("world", "mournblade-cyd2-roll")
|
||||
let rollData = getRollData(li)
|
||||
let actor = MournbladeCYD2Utility.getActorFromRollData(rollData)
|
||||
return (!rollData.isReroll && actor.getEclat() > 0)
|
||||
}
|
||||
options.push(
|
||||
{
|
||||
name: "Ajouer +3 (1 point de Bonne Aventure)",
|
||||
icon: "<i class='fas fa-user-plus'></i>",
|
||||
condition: canApply && canApplyBA,
|
||||
callback: li => MournbladeCYD2Utility.applyBonneAventureRoll(li, -1, "+3")
|
||||
}
|
||||
)
|
||||
options.push(
|
||||
{
|
||||
name: "Ajouter +10 (1 Point d'Eclat)",
|
||||
icon: "<i class='fas fa-user-plus'></i>",
|
||||
condition: canApply && canApplyPE,
|
||||
callback: li => MournbladeCYD2Utility.applyEclatRoll(li, -1, "+10")
|
||||
}
|
||||
)
|
||||
options.push(
|
||||
{
|
||||
name: "Relancer le dé (1 point d'Eclat)",
|
||||
icon: "<i class='fas fa-user-plus'></i>",
|
||||
condition: canApply && canApplyPE,
|
||||
callback: li => MournbladeCYD2Utility.applyEclatRoll(li, -1, "reroll")
|
||||
}
|
||||
)
|
||||
let isLoyal = function (li) {
|
||||
return MournbladeCYD2Utility.getActorAlignment(getActor(li)) === 'loyal'
|
||||
}
|
||||
let isChaotique = function (li) {
|
||||
return MournbladeCYD2Utility.getActorAlignment(getActor(li)) === 'chaotique'
|
||||
}
|
||||
|
||||
// Bonne Aventure — loyal : +3 fixe
|
||||
options.push({
|
||||
name: "Ajouter +3 (1 point de Bonne Aventure — Loyal)",
|
||||
icon: "<i class='fas fa-balance-scale'></i>",
|
||||
condition: li => canApply(li) && canApplyBA(li) && !isChaotique(li),
|
||||
callback: li => MournbladeCYD2Utility.applyBonneAventureRoll(li, -1, "+3")
|
||||
})
|
||||
// Bonne Aventure — chaotique : +1d6
|
||||
options.push({
|
||||
name: "Ajouter +1d6 (1 point de Bonne Aventure — Chaotique)",
|
||||
icon: "<i class='fas fa-dice'></i>",
|
||||
condition: li => canApply(li) && canApplyBA(li) && !isLoyal(li),
|
||||
callback: li => MournbladeCYD2Utility.applyBonneAventureRoll(li, -1, "+1d6")
|
||||
})
|
||||
// Éclat — loyal : +10
|
||||
options.push({
|
||||
name: "Ajouter +10 (1 point d'Éclat — Loyal)",
|
||||
icon: "<i class='fas fa-star'></i>",
|
||||
condition: li => canApply(li) && canApplyPE(li) && !isChaotique(li),
|
||||
callback: li => MournbladeCYD2Utility.applyEclatRoll(li, -1, "+10")
|
||||
})
|
||||
// Éclat — chaotique : +1d20
|
||||
options.push({
|
||||
name: "Ajouter +1d20 (1 point d'Éclat — Chaotique)",
|
||||
icon: "<i class='fas fa-dice-d20'></i>",
|
||||
condition: li => canApply(li) && canApplyPE(li) && !isLoyal(li),
|
||||
callback: li => MournbladeCYD2Utility.applyEclatRoll(li, -1, "+1d20")
|
||||
})
|
||||
// Éclat — relancer (tous)
|
||||
options.push({
|
||||
name: "Relancer le dé (1 point d'Éclat)",
|
||||
icon: "<i class='fas fa-redo'></i>",
|
||||
condition: li => canApply(li) && canApplyPE(li),
|
||||
callback: li => MournbladeCYD2Utility.applyEclatRoll(li, -1, "reroll")
|
||||
})
|
||||
return options
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user