Parcourir la source

Add a hypnotize action that changes the target's side

vintage
Fen Dweller il y a 5 ans
Parent
révision
b69f5ab3fa
1 fichiers modifiés avec 29 ajouts et 0 suppressions
  1. +29
    -0
      src/game/creatures/withers.ts

+ 29
- 0
src/game/creatures/withers.ts Voir le fichier

@@ -9,6 +9,33 @@ import { InstantKill } from '../combat/effects'
import * as Words from '../words' import * as Words from '../words'
import { StatVigorTest } from '../combat/tests' import { StatVigorTest } from '../combat/tests'


class HypnotizeAction extends Action {
lines = new POVPair<Creature, Creature>([
[[POV.First, POV.Third], (user, target) => new LogLine(`Your hypnotic gaze enthralls ${target.name}, putting ${target.pronouns.objective} under your control!`)],
[[POV.Third, POV.First], (user, target) => new LogLine(`${user.name.capital}'s hypnotic gaze enthralls you, putting you under ${user.pronouns.possessive} control!`)],
[[POV.Third, POV.Third], (user, target) => new LogLine(`${user.name.capital}'s hypnotic gaze enthralls ${target.name}, putting ${target.pronouns.objective} under ${user.pronouns.possessive} control!`)]
])

execute (user: Creature, target: Creature): LogEntry {
target.side = user.side
return this.lines.run(user, target)
}

describe (user: Creature, target: Creature): LogEntry {
return new LogLine(`Force your target to fight by your side`)
}

constructor () {
super(
`Hypnotize`,
`Change their mind!`,
[
new TogetherCondition(),
new EnemyCondition()
]
)
}
}
class MawContainer extends NormalContainer { class MawContainer extends NormalContainer {
consumeVerb = new Verb('grab', 'grabs', 'grabbing', 'grabbed') consumeVerb = new Verb('grab', 'grabs', 'grabbing', 'grabbed')
releaseVerb = new Verb('release') releaseVerb = new Verb('release')
@@ -342,5 +369,7 @@ export class Withers extends Creature {
new Verb('stomp') new Verb('stomp')
) )
) )

this.actions.push(new HypnotizeAction())
} }
} }

Chargement…
Annuler
Enregistrer