packs + disguise
This commit is contained in:
@@ -424,6 +424,23 @@ class DarksightEffect extends TargetedPowerEffect {
|
||||
}
|
||||
}
|
||||
|
||||
class DisguiseEffect extends TargetedPowerEffect {
|
||||
get name () { return 'Disguise' }
|
||||
get baseDurationRounds () { return 100 }
|
||||
|
||||
async prepResult () {
|
||||
const raise = this.buttons === 'raise'
|
||||
const icon = 'icons/skills/social/diplomacy-peace-alliance.webp'
|
||||
this.effectDocs.push(
|
||||
shim.createEffectDocument(
|
||||
icon,
|
||||
`${raise ? 'major' : 'minor'} ${this.name}`,
|
||||
this.durationRounds,
|
||||
[])
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
class DeflectionEffect extends TargetedPowerEffect {
|
||||
get name () {
|
||||
return 'Deflection'
|
||||
@@ -449,6 +466,38 @@ class DeflectionEffect extends TargetedPowerEffect {
|
||||
}
|
||||
}
|
||||
|
||||
class DetectConcealArcanaEffect extends TargetedPowerEffect {
|
||||
get name () { return 'Detect/Conceal Arcana' }
|
||||
|
||||
get baseDurationRounds () {
|
||||
if (this.inputs?.[this.inputIndex + 2] === true) {
|
||||
return 600
|
||||
}
|
||||
return 5
|
||||
}
|
||||
|
||||
async prepMenu () {
|
||||
this.menuData.inputs = this.menuData.inputs.concat(
|
||||
{ type: 'info', label: 'Detect or Conceal?' },
|
||||
{ type: 'radio', label: 'Detect', options: ['isDetect', true] },
|
||||
{ type: 'radio', label: 'Conceal', options: ['isDetect', false] },
|
||||
{ type: 'checkbox', label: 'Strong (+1, conceal only)', options: false }
|
||||
)
|
||||
}
|
||||
|
||||
async prepResult () {
|
||||
const raise = (this.buttons === 'raise')
|
||||
const isDetect = this.inputs[this.inputIndex + 1] === true
|
||||
const strong = !isDetect && !!this.inputs[this.inputIndex + 3]
|
||||
const icon = (isDetect
|
||||
? 'icons/magic/perception/third-eye-blue-red.webp'
|
||||
: 'icons/magic/perception/silhouette-stealth-shadow.webp')
|
||||
const name = `${raise ? 'major ' : ''}${isDetect ? 'Detect' : 'Conceal'} Arcana${strong ? ' (strong)' : ''}`
|
||||
const effect = shim.createEffectDocument(icon, name, this.durationRounds, [])
|
||||
this.effectDocs.push(effect)
|
||||
}
|
||||
}
|
||||
|
||||
class EntangleEffect extends TargetedPowerEffect {
|
||||
get name () {
|
||||
return 'Entangle'
|
||||
@@ -1290,9 +1339,13 @@ const PowerClasses = {
|
||||
'boost trait': BoostLowerTraitEffect,
|
||||
burrow: BurrowEffect,
|
||||
burst: BurstEffect,
|
||||
'conceal arcana': DetectConcealArcanaEffect,
|
||||
confusion: ConfusionEffect,
|
||||
darksight: DarksightEffect,
|
||||
deflection: DeflectionEffect,
|
||||
'detect arcana': DetectConcealArcanaEffect,
|
||||
'detect/conceal aracana': DetectConcealArcanaEffect,
|
||||
disguise: DisguiseEffect,
|
||||
entangle: EntangleEffect,
|
||||
intangibility: IntangibilityEffect,
|
||||
invisibility: InvisibilityEffect,
|
||||
|
||||
Reference in New Issue
Block a user