Add spells rolls and enhance CSS styling
This commit is contained in:
+18
-39
@@ -1,4 +1,6 @@
|
||||
import PrismRPGUtils from "../utils.mjs"
|
||||
import PrismRPGRoll from "./roll.mjs"
|
||||
|
||||
export default class PrismRPGActor extends Actor {
|
||||
|
||||
static async create(data, options) {
|
||||
@@ -42,31 +44,12 @@ export default class PrismRPGActor extends Actor {
|
||||
}
|
||||
|
||||
/* *************************************************/
|
||||
// This method is no longer needed in D&D 5e style system
|
||||
// Weapon proficiency is handled through character class/race features
|
||||
getBestWeaponClassSkill(skills, rollType, multiplier = 1.0) {
|
||||
let maxValue = 0
|
||||
let goodSkill = skills[0]
|
||||
for (let s of skills) {
|
||||
if (rollType === "weapon-attack") {
|
||||
if (s.system.weaponBonus.attack > maxValue) {
|
||||
maxValue = Number(s.system.weaponBonus.attack)
|
||||
goodSkill = s
|
||||
}
|
||||
}
|
||||
if (rollType === "weapon-defense") {
|
||||
if (s.system.weaponBonus.defense > maxValue) {
|
||||
maxValue = Number(s.system.weaponBonus.defense)
|
||||
goodSkill = s
|
||||
}
|
||||
}
|
||||
if (rollType.includes("weapon-damage")) {
|
||||
if (s.system.weaponBonus.damage > maxValue) {
|
||||
maxValue = Number(s.system.weaponBonus.damage)
|
||||
goodSkill = s
|
||||
}
|
||||
}
|
||||
}
|
||||
goodSkill.weaponSkillModifier = maxValue * multiplier
|
||||
return goodSkill
|
||||
// In D&D 5e, we don't need weapon skills with bonuses
|
||||
// Just return the first skill (or could be removed entirely)
|
||||
return skills[0]
|
||||
}
|
||||
|
||||
/* *************************************************/
|
||||
@@ -150,6 +133,7 @@ export default class PrismRPGActor extends Actor {
|
||||
break
|
||||
case "spell-attack":
|
||||
case "spell-power":
|
||||
case "spell-cast":
|
||||
case "miracle-attack":
|
||||
case "miracle-power":
|
||||
rollTarget = this.items.find((i) => (i.type === "miracle" || i.type === "spell") && i.id === rollKey)
|
||||
@@ -164,8 +148,7 @@ export default class PrismRPGActor extends Actor {
|
||||
break;
|
||||
case "weapon-damage-small":
|
||||
case "weapon-damage-medium":
|
||||
case "weapon-attack":
|
||||
case "weapon-defense": {
|
||||
case "weapon-attack": {
|
||||
let weapon = this.items.find((i) => i.type === "weapon" && i.id === rollKey)
|
||||
let skill
|
||||
let skills = this.items.filter((i) => i.type === "skill" && i.name.toLowerCase() === weapon.name.toLowerCase())
|
||||
@@ -195,19 +178,15 @@ export default class PrismRPGActor extends Actor {
|
||||
ui.notifications.warn(game.i18n.localize("PRISMRPG.Notifications.skillNotFound"))
|
||||
return
|
||||
}
|
||||
rollTarget = skill
|
||||
rollTarget.weapon = weapon
|
||||
rollTarget.weaponSkillModifier = skill.weaponSkillModifier
|
||||
rollTarget.rollKey = rollKey
|
||||
rollTarget.combat = foundry.utils.duplicate(this.system.combat)
|
||||
if (rollType === "weapon-damage-small" || rollType === "weapon-damage-medium") {
|
||||
rollTarget.grantedDice = this.system.granted.damageDice
|
||||
}
|
||||
if (rollType === "weapon-attack") {
|
||||
rollTarget.grantedDice = this.system.granted.attackDice
|
||||
}
|
||||
if (rollType === "weapon-defense") {
|
||||
rollTarget.grantedDice = this.system.granted.defenseDice
|
||||
|
||||
// Create a plain object for rollTarget to ensure weapon data is preserved
|
||||
rollTarget = {
|
||||
...skill.toObject(),
|
||||
weapon: weapon.toObject(),
|
||||
rollKey: rollKey,
|
||||
combat: foundry.utils.duplicate(this.system.combat),
|
||||
strMod: PrismRPGRoll.getAbilityModifier(this.system.characteristics.str.value),
|
||||
dexMod: PrismRPGRoll.getAbilityModifier(this.system.characteristics.dex.value)
|
||||
}
|
||||
}
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user