add damage field
This commit is contained in:
parent
69bea4e77d
commit
312f2a88fc
@ -633,6 +633,7 @@ class CurseEffect extends PowerEffect {
|
||||
get duration () { return 500*24*60*6 }
|
||||
get isTargeted () { return true }
|
||||
get oneTarget () { return true }
|
||||
get isRaisable () { return false }
|
||||
get basePowerPoints () { return 5 }
|
||||
get modifiers () {
|
||||
const mods = super.modifiers
|
||||
@ -662,6 +663,59 @@ class CurseEffect extends PowerEffect {
|
||||
}
|
||||
}
|
||||
|
||||
class DamageFieldEffect extends PowerEffect {
|
||||
get name () { return 'Damage Field' }
|
||||
get icon () { return 'icons/magic/defensive/shield-barrier-blades-teal.webp' }
|
||||
get duration () { return 5 }
|
||||
get basePowerPoints () { return 4 }
|
||||
get isTargeted () { return true }
|
||||
get oneTarget () { return true }
|
||||
get isRaisable () { return false }
|
||||
get modifiers () {
|
||||
const mods = super.modifiers
|
||||
mods.push({ name: 'Area of Effect', value: 2, id: 'aoe', epic: false, effect: false })
|
||||
mods.push({ name: 'Damage', value: 2, id: 'damage', epic: false, effect: false })
|
||||
mods.push({ name: 'Greater Damage Field', value: 4, id: 'greater', epic: true, effect: false })
|
||||
mods.push({ name: 'Mobile', value: 2, id: 'mobile', epic: false, effect: false })
|
||||
return mods
|
||||
}
|
||||
get description () {
|
||||
let desc = super.description
|
||||
let area = 'all adjacent creatures'
|
||||
let damage = '2d4'
|
||||
if (this.data.mods.has('greater')) {
|
||||
damage = '3d6 (heavy weapon)'
|
||||
} else if (this.data.mods.has('damage')) {
|
||||
damage = '2d6'
|
||||
}
|
||||
if (this.data.mods.has('aoe')) {
|
||||
area = 'all creatures within a MBT'
|
||||
}
|
||||
desc += `<p>At the end of the recipient's turn, ${area}
|
||||
automatically take ${damage} damage.`
|
||||
if (this.data.mods.has('mobile')) {
|
||||
desc += `The caster may detach the damage field from the recipient and
|
||||
move it up to his Smarts die type each round, as a limited free action.`
|
||||
}
|
||||
desc += '</p>'
|
||||
return desc
|
||||
}
|
||||
getPrimaryEffectChanges () {
|
||||
const base = 'flags.swade.auras.damagefield'
|
||||
const priority = 0
|
||||
const mode = foundry.CONST.ACTIVE_EFFECT_MODES.OVERRIDE
|
||||
const changes = [
|
||||
{ key: `${base}.enabled`, value: true, priority, mode },
|
||||
{ key: `${base}.walls`, value: true, priority, mode },
|
||||
{ key: `${base}.color`, value: '#ffcc00', priority, mode },
|
||||
{ key: `${base}.alpha`, value: 0.1, priority, mode },
|
||||
{ key: `${base}.radius`, value: (this.data.mods.has('aoe') ? 1.5 : 0.5), priority, mode },
|
||||
{ key: `${base}.visibleTo`, value: [-1, 0, 1], priority, mode },
|
||||
]
|
||||
return changes
|
||||
}
|
||||
}
|
||||
|
||||
const PowerClasses = {
|
||||
"arcane-protection": ArcaneProtectionEffect,
|
||||
banish: BanishEffect,
|
||||
@ -676,6 +730,7 @@ const PowerClasses = {
|
||||
burst: BurstEffect,
|
||||
confusion: ConfusionEffect,
|
||||
curse: CurseEffect,
|
||||
"damage-field": DamageFieldEffect,
|
||||
"lower-trait": BoostLowerTraitEffect,
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user