| @@ -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()) | |||||
| } | } | ||||
| } | } | ||||