Init, competences de base, fix creation de perso, etc
This commit is contained in:
@ -50,6 +50,60 @@ export class TeDeumActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async prepareData() {
|
||||
super.prepareData()
|
||||
|
||||
let updates = []
|
||||
let memoriser = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mémoriser")
|
||||
let newScore = this.getCommonBaseValue(this.system.caracteristiques.adresse.value)
|
||||
if (memoriser && memoriser?.system.score != newScore) {
|
||||
updates.push({ _id: memoriser.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let perception = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "perception")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.sensibilite.value)
|
||||
if (perception && perception.system.score != newScore) {
|
||||
updates.push({ _id: perception.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let charme = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "charme")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.entregent.value)
|
||||
if (charme && charme?.system.score != newScore) {
|
||||
updates.push({ _id: charme.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let endurance = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "endurance")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.complexion.value)
|
||||
if (endurance && endurance?.system.score != newScore) {
|
||||
updates.push({ _id: endurance.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let course = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "course")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.adresse.value)
|
||||
if (course && course?.system.score != newScore) {
|
||||
updates.push({ _id: course.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let initiative = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "initiative")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.adresse.value)
|
||||
if (initiative && initiative?.system.score != newScore) {
|
||||
updates.push({ _id: initiative.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let actionsTour = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "actions/tour")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.adresse.value)
|
||||
if (actionsTour && actionsTour?.system.score != newScore) {
|
||||
updates.push({ _id: actionsTour.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
let effort = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "effort")
|
||||
newScore = this.getCommonBaseValue(this.system.caracteristiques.puissance.value)
|
||||
if (effort && effort?.system.score != newScore) {
|
||||
updates.push({ _id: effort.id, "system.score": Number(newScore) })
|
||||
}
|
||||
|
||||
if (updates.length > 0) {
|
||||
await this.updateEmbeddedDocuments('Item', updates)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -75,6 +129,13 @@ export class TeDeumActor extends Actor {
|
||||
this.updateSource({ prototypeToken });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonBaseValue(value) {
|
||||
return game.system.tedeum.config.COMMON_VALUE[value]?.value || 0
|
||||
}
|
||||
getInitiative() {
|
||||
return game.system.tedeum.config.COMMON_VALUE[this.system.caracteristiques.adresse.value]?.value || 0
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getBonusDegats() {
|
||||
return game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value]
|
||||
@ -86,6 +147,9 @@ export class TeDeumActor extends Actor {
|
||||
getNbActions() {
|
||||
return game.system.tedeum.config.ACTIONS_PAR_TOUR[this.system.caracteristiques.adresse.value]
|
||||
}
|
||||
getInitiative() {
|
||||
return game.system.tedeum.config.ACTIONS_PAR_TOUR[this.system.caracteristiques.adresse.value]
|
||||
}
|
||||
getNbArmuresLourdesActuel() {
|
||||
let armures = this.getArmures()
|
||||
let nb = 0
|
||||
@ -503,6 +567,28 @@ export class TeDeumActor extends Actor {
|
||||
this.startRoll(rollData).catch("Error on startRoll")
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollDegatsArme(armeId) {
|
||||
let weapon = this.items.get(armeId)
|
||||
if (weapon) {
|
||||
let bDegats = this.getBonusDegats()
|
||||
let formula = weapon.system.degats + "+" + bDegats.value
|
||||
let degatsRoll = await new Roll(formula).roll()
|
||||
await TeDeumUtility.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode") )
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.mode = "degats"
|
||||
rollData.formula = formula
|
||||
rollData.arme = foundry.utils.duplicate(weapon)
|
||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||
rollData.degats = degatsRoll.total
|
||||
|
||||
let msg = await TeDeumUtility.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-degats-result.hbs`, rollData)
|
||||
})
|
||||
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
||||
console.log("Rolldata result", rollData)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
rollArme(armeId, compName = undefined) {
|
||||
|
Reference in New Issue
Block a user