Various fixes and ehnagcements

This commit is contained in:
2022-08-01 21:39:17 +02:00
parent e7faf7937b
commit 277cf7075c
13 changed files with 128 additions and 66 deletions

View File

@ -166,6 +166,9 @@ export class CrucibleActor extends Actor {
/* -------------------------------------------- */
getSkills() {
let comp = duplicate(this.data.items.filter(item => item.type == 'skill') || [])
for (let skill of comp) {
CrucibleUtility.updateSkill(skill)
}
CrucibleUtility.sortArrayObjectsByName(comp)
return comp
}
@ -403,12 +406,12 @@ export class CrucibleActor extends Actor {
}
ChatMessage.create(chatData)
if (skill.data.data.exp >= 25) {
await this.updateEmbeddedDocuments('Item', [{ _id: skill.id, 'data.exp': 0, 'data.level': skill.data.data.level + 1 }])
await this.updateEmbeddedDocuments('Item', [{ _id: skill.id, 'data.exp': 0, 'data.explevel': skill.data.data.explevel + 1 }])
let chatData = {
user: game.user.id,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
content: `<div>${this.name} has gained 1 SL in the skill ${skill.name} (new SL : ${skill.data.data.level}) !</div`
content: `<div>${this.name} has gained 1 exp SL in the skill ${skill.name} (new exp SL : ${skill.data.data.explevel}) !</div`
}
ChatMessage.create(chatData)
}
@ -445,10 +448,12 @@ export class CrucibleActor extends Actor {
rollData.img = this.img
rollData.featsDie = this.getFeatsWithDie()
rollData.featsSL = this.getFeatsWithSL()
rollData.armors = this.getArmors()
rollData.featDieName = "none"
rollData.featSLName = "none"
rollData.rollAdvantage = "none"
rollData.advantage = "none"
rollData.disadvantage = "none"
if (abilityKey) {
rollData.ability = this.getAbility(abilityKey)
@ -477,6 +482,7 @@ export class CrucibleActor extends Actor {
return
}
skill = duplicate(skill)
CrucibleUtility.updateSkill(skill)
let abilityKey = skill.data.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "skill"
@ -487,6 +493,29 @@ export class CrucibleActor extends Actor {
}
}
/* -------------------------------------------- */
rollWeapon(weaponId) {
let weapon = this.data.items.get(weaponId)
if (weapon) {
weapon = duplicate(weapon)
let skill = this.data.items.find( item => item.name.toLowerCase() == weapon.data.skill.toLowerCase())
if (skill) {
skill = duplicate(skill)
CrucibleUtility.updateSkill(skill)
let abilityKey = skill.data.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "weapon"
rollData.skill = skill
rollData.weapon = weapon
rollData.img = weapon.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
}
}
}
/* -------------------------------------------- */
async startRoll(rollData) {
this.syncRoll(rollData)