Derniers fix de sécurité et assimilé
This commit is contained in:
@@ -326,7 +326,7 @@ export class MournbladeCYD2Actor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
editItemField(itemId, itemType, itemField, dataType, value) {
|
async editItemField(itemId, itemType, itemField, dataType, value) {
|
||||||
let item = this.items.find(item => item.id == itemId)
|
let item = this.items.find(item => item.id == itemId)
|
||||||
if (item) {
|
if (item) {
|
||||||
console.log("Item ", item, itemField, dataType, value)
|
console.log("Item ", item, itemField, dataType, value)
|
||||||
@@ -336,7 +336,7 @@ export class MournbladeCYD2Actor extends Actor {
|
|||||||
value = String(value)
|
value = String(value)
|
||||||
}
|
}
|
||||||
let update = { _id: item.id, [`system.${itemField}`]: value };
|
let update = { _id: item.id, [`system.${itemField}`]: value };
|
||||||
this.updateEmbeddedDocuments("Item", [update])
|
await this.updateEmbeddedDocuments("Item", [update])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,7 +465,15 @@ export class MournbladeCYD2Actor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getAttribute(attrKey) {
|
getAttribute(attrKey) {
|
||||||
return this.system.attributes[attrKey]
|
return this.system.attributs[attrKey]
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
hasTalent(nameOrPattern) {
|
||||||
|
if (nameOrPattern instanceof RegExp) {
|
||||||
|
return !!this.items.find(i => i.type === "talent" && nameOrPattern.test(i.name.toLowerCase()))
|
||||||
|
}
|
||||||
|
return !!this.items.find(i => i.type === "talent" && i.name.toLowerCase() === nameOrPattern.toLowerCase())
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -521,7 +529,7 @@ export class MournbladeCYD2Actor extends Actor {
|
|||||||
const passedTresAffaibli = curr >= tresAffaibli && prev < tresAffaibli
|
const passedTresAffaibli = curr >= tresAffaibli && prev < tresAffaibli
|
||||||
|
|
||||||
if (passedAffaibli) {
|
if (passedAffaibli) {
|
||||||
if (this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
|
if (this.hasTalent("encaissement")) {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge (Affaibli) grâce à Encaissement. Pensez à les ajouter à la fin de la scène !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge (Affaibli) grâce à Encaissement. Pensez à les ajouter à la fin de la scène !</strong>` })
|
||||||
} else {
|
} else {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} est Affaibli et subit 2 adversités rouge !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} est Affaibli et subit 2 adversités rouge !</strong>` })
|
||||||
@@ -529,7 +537,7 @@ export class MournbladeCYD2Actor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (passedTresAffaibli) {
|
if (passedTresAffaibli) {
|
||||||
if (this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
|
if (this.hasTalent(/vaillant/)) {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge (Très Affaibli) grâce à Vaillant. Pensez à les ajouter à la fin de la scène !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge (Très Affaibli) grâce à Vaillant. Pensez à les ajouter à la fin de la scène !</strong>` })
|
||||||
} else {
|
} else {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} est Très Affaibli et subit 2 adversités rouge supplémentaires !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} est Très Affaibli et subit 2 adversités rouge supplémentaires !</strong>` })
|
||||||
|
|||||||
@@ -88,8 +88,8 @@ export class MournbladeCYD2Commands {
|
|||||||
}
|
}
|
||||||
if (command && command.func) {
|
if (command && command.func) {
|
||||||
const result = command.func(content, msg, params);
|
const result = command.func(content, msg, params);
|
||||||
if (result == false) {
|
if (result === false) {
|
||||||
RdDCommands._chatAnswer(msg, command.descr);
|
MournbladeCYD2Commands._chatAnswer(msg, command.descr);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -98,8 +98,7 @@ export class MournbladeCYD2Commands {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async createChar(msg) {
|
async createChar(msg) {
|
||||||
game.system.MournbladeCYD2.creator = new MournbladeCYD2ActorCreate();
|
ui.notifications.warn("La création automatique de personnage n'est pas disponible dans cette version.")
|
||||||
game.system.MournbladeCYD2.creator.start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -17,6 +17,10 @@ export class MournbladeCYD2TokenHud {
|
|||||||
static async addExtensionHud(app, html, tokenId) {
|
static async addExtensionHud(app, html, tokenId) {
|
||||||
|
|
||||||
let token = canvas.tokens.get(tokenId)
|
let token = canvas.tokens.get(tokenId)
|
||||||
|
if (!token) {
|
||||||
|
console.warn("MournbladeCYD2TokenHud.addExtensionHud : token introuvable", tokenId)
|
||||||
|
return
|
||||||
|
}
|
||||||
let actor = token.actor
|
let actor = token.actor
|
||||||
app.hasExtension = true
|
app.hasExtension = true
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Hooks.once("init", async function () {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
game.socket.on("system.fvtt-mournblade-cyd-2-0", data => {
|
game.socket.on("system.fvtt-mournblade-cyd-2-0", data => {
|
||||||
MournbladeCYD2Utility.onSocketMesssage(data)
|
MournbladeCYD2Utility.onSocketMessage(data)
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -229,15 +229,6 @@ export class MournbladeCYD2Utility {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static createDirectOptionList(min, max) {
|
|
||||||
let options = {};
|
|
||||||
for (let i = min; i <= max; i++) {
|
|
||||||
options[`${i}`] = `${i}`;
|
|
||||||
}
|
|
||||||
return options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static buildListOptions(min, max) {
|
static buildListOptions(min, max) {
|
||||||
let options = ""
|
let options = ""
|
||||||
@@ -279,13 +270,13 @@ export class MournbladeCYD2Utility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static onSocketMesssage(msg) {
|
static onSocketMessage(msg) {
|
||||||
if (msg.msg == "msg_apply_combativite") {
|
if (msg.msg == "msg_apply_combativite") {
|
||||||
let defender = game.canvas.tokens.get(msg.data.defenderTokenId)?.actor
|
let defender = game.canvas.tokens.get(msg.data.defenderTokenId)?.actor
|
||||||
if (defender) {
|
if (defender) {
|
||||||
defender.changeEtatCombativite(msg.data.value)
|
defender.changeEtatCombativite(msg.data.value)
|
||||||
} else {
|
} else {
|
||||||
console.warn("MournbladeCYD2Utility.onSocketMesssage : Impossible de trouver le token pour appliquer la combativité", msg.defenderTokenId)
|
console.warn("MournbladeCYD2Utility.onSocketMessage : Impossible de trouver le token pour appliquer la combativité", msg.defenderTokenId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -347,9 +338,9 @@ export class MournbladeCYD2Utility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static computeResult(rollData) {
|
static computeResult(rollData) {
|
||||||
rollData.diceResult = rollData.roll.terms[0].results[0].result
|
rollData.diceResult = rollData.roll?.terms?.[0]?.results?.[0]?.result ?? 0
|
||||||
if (rollData.mainDice.includes("d20")) {
|
if (rollData.mainDice.includes("d20")) {
|
||||||
let diceValue = rollData.roll.terms[0].results[0].result
|
let diceValue = rollData.roll?.terms?.[0]?.results?.[0]?.result ?? 0
|
||||||
if (diceValue % 2 == 1) {
|
if (diceValue % 2 == 1) {
|
||||||
rollData.isD20Impair = true
|
rollData.isD20Impair = true
|
||||||
rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value
|
rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value
|
||||||
@@ -376,7 +367,12 @@ export class MournbladeCYD2Utility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyCombativite(rollData, value) {
|
static applyCombativite(rollData, value) {
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
const token = game.canvas.tokens.get(rollData.defenderTokenId)
|
||||||
|
const defender = token?.actor
|
||||||
|
if (!defender) {
|
||||||
|
console.warn("MournbladeCYD2Utility.applyCombativite : token défenseur introuvable", rollData.defenderTokenId)
|
||||||
|
return
|
||||||
|
}
|
||||||
defender.changeEtatCombativite(value)
|
defender.changeEtatCombativite(value)
|
||||||
} else {
|
} else {
|
||||||
game.socket.emit("system.fvtt-mournblade-cyd-2-0", { msg: "msg_apply_combativite", data: { defenderTokenId: rollData.defenderTokenId, value } });
|
game.socket.emit("system.fvtt-mournblade-cyd-2-0", { msg: "msg_apply_combativite", data: { defenderTokenId: rollData.defenderTokenId, value } });
|
||||||
@@ -533,8 +529,11 @@ export class MournbladeCYD2Utility {
|
|||||||
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
|
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
|
||||||
}
|
}
|
||||||
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
|
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
const token = game.canvas.tokens.get(rollData.defenderTokenId)
|
||||||
defender.incDecAdversite("bleue", -2)
|
const defender = token?.actor
|
||||||
|
if (defender) {
|
||||||
|
defender.incDecAdversite("bleue", -2)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -620,7 +619,7 @@ export class MournbladeCYD2Utility {
|
|||||||
rollData.bonusFormula = rollData.addedBonus
|
rollData.bonusFormula = rollData.addedBonus
|
||||||
console.log("Bonus Roll MournbladeCYD2", rollData.bonusFormula)
|
console.log("Bonus Roll MournbladeCYD2", rollData.bonusFormula)
|
||||||
|
|
||||||
if (!Number(rollData.bonusFormula)) {
|
if (isNaN(Number(rollData.bonusFormula))) {
|
||||||
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
||||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||||
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
||||||
|
|||||||
Reference in New Issue
Block a user