Correction initiative et meilleur affichage sur jet D20
All checks were successful
Release Creation / build (release) Successful in 51s
All checks were successful
Release Creation / build (release) Successful in 51s
This commit is contained in:
@@ -34,7 +34,7 @@ export default class HawkmoonActorSheet extends HandlebarsApplicationMixin(found
|
||||
},
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: "form" }],
|
||||
actions: {
|
||||
editImage: HawkmoonActorSheet.#onEditImage,
|
||||
//editImage: HawkmoonActorSheet.#onEditImage,
|
||||
toggleSheet: HawkmoonActorSheet.#onToggleSheet,
|
||||
editItem: HawkmoonActorSheet.#onEditItem,
|
||||
deleteItem: HawkmoonActorSheet.#onDeleteItem,
|
||||
@@ -335,7 +335,7 @@ export default class HawkmoonActorSheet extends HandlebarsApplicationMixin(found
|
||||
* @private
|
||||
*/
|
||||
static async #onEditImage(event, target) {
|
||||
const fp = new FilePicker({
|
||||
const fp = new foundry.applications.apps.FilePicker.implementation({
|
||||
type: "image",
|
||||
current: this.actor.img,
|
||||
callback: (path) => {
|
||||
|
||||
@@ -75,7 +75,7 @@ export class HawkmoonActor extends Actor {
|
||||
let combat = this.getCombatValues()
|
||||
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
||||
let bonusDefense = this.getBonusDefenseFromTalents()
|
||||
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée") ?? {system:{niveau:0}})
|
||||
arme.system.attrKey = "pui"
|
||||
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
|
||||
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0)
|
||||
@@ -86,7 +86,7 @@ export class HawkmoonActor extends Actor {
|
||||
arme.system.isDistance = false
|
||||
}
|
||||
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
|
||||
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
||||
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance") ?? {system:{niveau:0}})
|
||||
arme.system.attrKey = "adr"
|
||||
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
||||
arme.system.totalDegats = arme.system.degats
|
||||
@@ -188,7 +188,8 @@ export class HawkmoonActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getVitesseBase() {
|
||||
return 5 + __vitesseBonus[this.system.attributs.adr.value]
|
||||
const idx = Math.min(this.system.attributs.adr.value, __vitesseBonus.length - 1)
|
||||
return 5 + (__vitesseBonus[idx] ?? 0)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getProtection() {
|
||||
@@ -305,7 +306,7 @@ export class HawkmoonActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
checkAttribut(attribut, minLevel) {
|
||||
let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase())
|
||||
let attr = Object.values(this.system.attributs).find(at => at.labelnorm == attribut.toLowerCase())
|
||||
if (attr && attr.value >= minLevel) {
|
||||
return { isValid: true, attr: foundry.utils.duplicate(attr) }
|
||||
}
|
||||
@@ -403,12 +404,13 @@ export class HawkmoonActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getAttribute(attrKey) {
|
||||
return this.system.attributes[attrKey]
|
||||
return this.system.attributs[attrKey]
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getBonusDegats() {
|
||||
return 0;
|
||||
const idx = Math.min(this.system.attributs.pui.value, __degatsBonus.length - 1)
|
||||
return __degatsBonus[idx] ?? 0
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -655,6 +657,9 @@ export class HawkmoonActor extends Actor {
|
||||
let rollData = this.getCommonRollData(attrKey)
|
||||
rollData.multiplier = (isInit) ? 1 : 2
|
||||
rollData.isInit = isInit
|
||||
if (isInit) {
|
||||
rollData.initbonus = this.system.combat.initbonus ?? 0
|
||||
}
|
||||
await HawkmoonRollDialog.create(this, rollData)
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,14 @@ export class HawkmoonCombat extends Combat {
|
||||
const c = this.combatants.get(cId);
|
||||
console.log("Init for combattant", c, ids)
|
||||
let id = c._id || c.id
|
||||
let initValue = c.actor ? c.actor.getInitiativeScore() : 0
|
||||
let initValue = 0
|
||||
if (c.actor) {
|
||||
const combat = c.actor.getCombatValues()
|
||||
const roll = await new Roll(`1d10 + ${combat.initTotal}`).roll()
|
||||
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
|
||||
initValue = roll.total
|
||||
await c.actor.setFlag("world", "last-initiative", initValue)
|
||||
}
|
||||
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]);
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ export class HawkmoonCommands {
|
||||
if (command && command.func) {
|
||||
const result = command.func(content, msg, params);
|
||||
if (result == false) {
|
||||
RdDCommands._chatAnswer(msg, command.descr);
|
||||
HawkmoonCommands._chatAnswer(msg, command.descr);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -98,8 +98,8 @@ export class HawkmoonCommands {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async createChar(msg) {
|
||||
game.system.Hawkmoon.creator = new HawkmoonActorCreate();
|
||||
game.system.Hawkmoon.creator.start();
|
||||
game.system.hawkmoon.creator = new HawkmoonActorCreate();
|
||||
game.system.hawkmoon.creator.start();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
@@ -199,7 +199,7 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
||||
if (content[0] == '/') {
|
||||
let regExp = /(\S+)/g;
|
||||
let commands = content.match(regExp);
|
||||
if (game.system.mournblade.commands.processChatCommand(commands, content, msg)) {
|
||||
if (game.system.hawkmoon.commands.processChatCommand(commands, content, msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,7 +370,7 @@ export class HawkmoonUtility {
|
||||
if (rollData.mainDice.includes("d20")) {
|
||||
let diceValue = rollData.roll.terms[0].results[0].result
|
||||
if (diceValue % 2 == 1) {
|
||||
//console.log("PAIR/IMP2", diceValue)
|
||||
rollData.isD20Impair = true
|
||||
rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value
|
||||
if (diceValue == 1 || diceValue == 11) {
|
||||
rollData.isDramatique = true
|
||||
@@ -395,8 +395,8 @@ export class HawkmoonUtility {
|
||||
/* -------------------------------------------- */
|
||||
static applyCombativite(rollData, value) {
|
||||
if (game.user.isGM) {
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||
defender.changeEtatCombativite(value)
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId)?.actor
|
||||
defender?.changeEtatCombativite(value)
|
||||
} else {
|
||||
game.socket.emit("system.fvtt-hawkmoon-cyd", { msg: "msg_apply_combativite", data: { defenderTokenId: rollData.defenderTokenId, value } });
|
||||
}
|
||||
@@ -450,6 +450,9 @@ export class HawkmoonUtility {
|
||||
rollData.diceFormula += `+${rollData.attr.value}+${rollData.attr2.value}+${rollData.modificateur}`
|
||||
} else {
|
||||
rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}`
|
||||
if (rollData.isInit && rollData.initbonus) {
|
||||
rollData.diceFormula += `+${rollData.initbonus}`
|
||||
}
|
||||
}
|
||||
|
||||
// Bonus arme naturelle en défense
|
||||
@@ -535,8 +538,8 @@ export class HawkmoonUtility {
|
||||
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
|
||||
}
|
||||
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||
defender.incDecAdversite("bleue", -2)
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId)?.actor
|
||||
defender?.incDecAdversite("bleue", -2)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -705,7 +708,8 @@ export class HawkmoonUtility {
|
||||
}
|
||||
// Utiliser la cible déjà enregistrée si aucune cible n'est actuellement sélectionnée
|
||||
if (rollData.defenderTokenId) {
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId)?.actor
|
||||
if (!defender) return
|
||||
console.log("updateWithTarget - Defender actor:", defender.name)
|
||||
rollData.armeDefense = defender.getBestDefenseValue()
|
||||
console.log("updateWithTarget - armeDefense:", rollData.armeDefense)
|
||||
|
||||
Reference in New Issue
Block a user