changing how effect descriptions work

This commit is contained in:
Mike Bloy 2024-05-03 17:13:14 -05:00
parent 5dfce6cbcc
commit ca7acd7e9d

View File

@ -19,10 +19,19 @@ class ArcaneProtectionEffect extends PowerEffect {
})
return mods
}
get _penaltyAmount () {
return (this.data.raise ? -4 : -2) + (this.data.mods.has('greater') ? -2 : 0)
}
getPrimaryEffectDescription () {
let text = super.getPrimaryEffectDescription()
text += `<p>Hostile powers are at ${this._penaltyAmount}
targeting or damaging this character.</p>`
return text
}
get effectName () {
const greater = this.data.mods.has('greater')
const raise = this.data.raise
const amount = (raise ? -4 : -2) + (greater ? -2 : 0)
const amount = this._penaltyAmount
return `${greater ? 'Greater ' : ''}Arcane Protection (${raise ? 'major, ' : ''}${amount})`
}
}
@ -69,12 +78,10 @@ class BanishEffect extends PowerEffect {
list.push("If target incapacitated by this, banishment to home plane")
return list
}
async parseValues () {
await super.parseValues()
this.data.aoe = this.data.values.shift()
}
}
class BarrierEffect extends PowerEffect {
@ -96,15 +103,41 @@ class BarrierEffect extends PowerEffect {
mods.push({ name: 'Size', id: 'size', value: 1, epic: false, effect: false })
return mods
}
get _length () {
let height = 10
if (this.data.raise) { height *= 2 }
if (this.data.mods.has('size')) { height *= 2}
return `${height}" (${height*2} yards)`
}
get _height () {
return `${this.data.mods.has('size') ? '2" (4' : '1" (2'} yards`
}
get _hardness () {
return (this.data.raise ? 12 : 10) + (this.data.mods.has('hardened') ? 2 : 0)
}
getPrimaryEffectDescription () {
let text = super.getPrimaryEffectDescription()
text += `<p>A barrier ${this._height} tall and ${this._length} long, of hardness ${this._hardness}.`
if (this.data.mods.has('deadly')) {
text += 'It does 2d6 damage to anyone who contacts it.'
} else if (this.data.mods.has('damage')) {
text += 'It does 2d4 damage to anyone who contacts it.'
}
if (this.data.mods.has('shaped')) {
text += 'It was shaped into a circle, square, or rectangle.'
}
text += '</p>'
return text
}
get chatMessageEffects () {
const list = []
const hardness = (this.data.raise ? 12 : 10) + (this.data.mods.has('hardened') ? 2 : 0)
list.push(`The Barrier is hardness ${hardness}`)
if (this.data.mods.has('damage')) {
list.push('Damage: 2d4 to anyone who contacts')
}
list.push(
`The Barrier is ${this._height} tall and ${this._length} long, of hardness ${this._hardness}.`
)
if (this.data.mods.has('deadly')) {
list.push('Deadly: 2d6 to anyone who contacts')
} else if (this.data.mods.has('damage')) {
list.push('Damage: 2d4 to anyone who contacts')
}
if (this.data.mods.has('shaped')) {
list.push('Shaped (circle, square, or rectangle)')
@ -133,6 +166,18 @@ class BeastFriendEffect extends PowerEffect {
)
return mods
}
getPrimaryEffectDescription () {
let text = super.getPrimaryEffectDescription()
if (this.data.raise) {
text += '<p>Creatures will overcome instincts to follow orders.'
} else {
text += '<p>Creatures obey simple commands, subject to their insticts.'
}
if (this.data.mods('bestiarium')) {
text += ' The caster may even effect magical beasts.'
}
return text
}
get chatMessageEffects () {
const list = []
if (this.data.mods.has('bestiarium')) {
@ -299,6 +344,21 @@ class BurrowEffect extends PowerEffect {
return `${this.name} ${this.data.mods.has('power') ? '[Power] ' : ''}` +
`(${this.data.raise ? 'full' : 'half'} pace)`
}
getPrimaryEffectDescription() {
let text = super.getPrimaryEffectDescription() +
`<p>Meld into the ground. Move at ${this.data.raise ? 'full' : 'half'} pace. May not run.</p>`
if (this.data.mods.has('power')) {
text += `<p>Can <em>burrow</em> through solid stone, concrete, etc</p>`
}
return text
}
get chatMessageEffects () {
const list = super.chatMessageEffects
if (this.data.mods.has('Power')) {
list.push('Power: Burrow through solid stone, concrete')
}
return list
}
}
const PowerClasses = {