Various fixes and ehnagcements
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user