Arme à distance

This commit is contained in:
2024-07-10 22:59:38 +02:00
parent 37d8957448
commit 9c93134d1c
24 changed files with 88 additions and 243 deletions

View File

@ -209,6 +209,7 @@ export class TeDeumActor extends Actor {
for (let key in combatLoc) {
combatLoc[key] = foundry.utils.mergeObject(combatLoc[key], game.system.tedeum.config.LOCALISATION[key])
combatLoc[key].armures = []
combatLoc[key].blessures = []
combatLoc[key].protectionTotal = 0
let armures = this.getArmures()
for (let armure of armures) {
@ -217,6 +218,12 @@ export class TeDeumActor extends Actor {
combatLoc[key].protectionTotal += armure.system.protection
}
}
let blessures = this.getBlessures()
for (let blessure of blessures) {
if (blessure.system.localisation == key) {
combatLoc[key].blessures.push(blessure)
}
}
let endurance = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "endurance")
combatLoc[key].endurance = endurance.system.score + game.system.tedeum.config.LOCALISATION[key].locMod
combatLoc[key].touche = combatLoc[key].endurance + combatLoc[key].protectionTotal
@ -272,24 +279,8 @@ export class TeDeumActor extends Actor {
/* -------------------------------------------- */
async equipItem(itemId) {
let item = this.items.find(item => item.id == itemId)
if (item?.system) {
if (item.type == "armure") {
let armor = this.items.find(item => item.id != itemId && item.type == "armor" && item.system.equipped)
if (armor) {
ui.notifications.warn("You already have an armor equipped!")
return
}
}
if (item.type == "shield") {
let shield = this.items.find(item => item.id != itemId && item.type == "shield" && item.system.equipped)
if (shield) {
ui.notifications.warn("You already have a shield equipped!")
return
}
}
let update = { _id: item.id, "system.equipped": !item.system.equipped };
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
}
let update = { _id: item.id, "system.equipe": !item.system.equipe };
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
}
/* ------------------------------------------- */

View File

@ -31,7 +31,6 @@ export const TEDEUM_CONFIG = {
"coupassomant": { label: "Coup assomant", id: "coupassomant", melee: true, tir: false},
"peutlancer": { label: "Peut être lancée", id: "peutlancer", melee: true, tir: false},
"pasboutportant": { label: "Inutilisable à bout portant", id: "pasboutportant", melee: false, tir: true},
"rechargearquebusade": { label: "Retrancher l'Arquebusade au temps de recharge", id: "rechargearquebusade", melee: false, tir: true },
"mitraille": { label: "Mitraille", id: "mitraille", melee: false, tir: true },
"degatscharge": { label: "Dégâts accrus à la charge", id: "degatscharge", melee: true, tir: false },
"crochecavalier": { label: "Croche-cavalier", id: "crochecavalier", melee: true, tir: false },
@ -117,14 +116,19 @@ export const TEDEUM_CONFIG = {
archerie: { label: "Archerie", value: "archerie" },
arquebusade: { label: "Arquebusade", value: "arquebusade" }
},
competencesRecharge: {
aucune: { label: "Aucune", value: "aucune" },
archerie: { label: "Archerie", value: "archerie" },
arquebusade: { label: "Arquebusade", value: "arquebusade" }
},
difficulte: {
routine: { label: "Routine", value: 3 },
facile: { label: "Facile", value: 5 },
pardefaut: { label: "Par Défaut", value: 7 },
malaise: { label: "Malaisé", value: 9 },
difficile: { label: "Difficile", value: 11 },
perilleux: { label: "Perilleux", value: 13 },
desespere: { label: "Désespéré", value: 15 }
routine: { label: "Routine", key: "routine", value: 3 },
facile: { label: "Facile", key: "facile",value: 5 },
pardefaut: { label: "Par Défaut", key: "pardefaut", value: 7 },
malaise: { label: "Malaisé", key: "malaise", value: 9 },
difficile: { label: "Difficile", key: "difficile", value: 11 },
perilleux: { label: "Perilleux", key: "perilleux", value: 13 },
desespere: { label: "Désespéré", key: "desespere", value: 15 }
},
monnaie: {
denier: { label: "Deniers", id: "denier", value: 1 },

View File

@ -392,7 +392,7 @@ export class TeDeumUtility {
let actor = game.actors.get(rollData.actorId)
// Fix difficulty
if (!rollData.difficulty || rollData.difficulty == "-") {
rollData.difficulty = 7
rollData.difficulty = "pardefaut"
}
rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value
let diceFormula = this.computeRollFormula(rollData, actor)

View File

@ -34,6 +34,7 @@ export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
});
schema.tempsRecharge = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
schema.competenceRecharge = new fields.StringField({ required: false, choices:["aucune", "archerie", "arquebusade"], initial: "aucune", blank: true });
schema.valeurEchecCritique = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 });
schema.initiativeBonus = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });