|
- import { Creature } from "../creature"
- import { Damage, DamageType, ConstantDamageFormula, Vigor, Side, StatDamageFormula, Stat } from '../combat'
- import { MalePronouns, ImproperNoun, Verb } from '../language'
- import { Stomach, Bowels, Cock, Balls, anyVore, biconnectContainers } from '../vore'
- import { AttackAction, TransferAction, FeedAction } from '../combat/actions'
- import { VoreAI } from '../ai'
-
- export class Werewolf extends Creature {
- constructor () {
- super(
- new ImproperNoun('werewolf', 'werewolves'),
- new ImproperNoun('werewolf', 'werewolves'),
- MalePronouns,
- { Toughness: 40, Power: 50, Reflexes: 40, Agility: 30, Willpower: 20, Charm: 50 },
- anyVore,
- anyVore,
- 100
- )
- this.actions.push(
- new AttackAction(
- new StatDamageFormula([
- { fraction: 1, stat: Stat.Power, target: Vigor.Health, type: DamageType.Pierce },
- { fraction: 0.5, stat: Stat.Power, target: Vigor.Health, type: DamageType.Crush }
- ]),
- new Verb("bite")
- )
- )
-
- this.ai = new VoreAI()
- this.side = Side.Monsters
-
- const stomach = new Stomach(this, 2, new ConstantDamageFormula(new Damage(
- { amount: 60, type: DamageType.Acid, target: Vigor.Health },
- { amount: 30, type: DamageType.Crush, target: Vigor.Stamina },
- { amount: 30, type: DamageType.Dominance, target: Vigor.Resolve }
- )))
- this.containers.push(stomach)
-
- const bowels = new Bowels(this, 2, new ConstantDamageFormula(new Damage(
- { amount: 30, type: DamageType.Crush, target: Vigor.Health },
- { amount: 60, type: DamageType.Crush, target: Vigor.Stamina },
- { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve }
- )))
-
- this.containers.push(bowels)
-
- this.actions.push(new TransferAction(bowels, stomach))
-
- this.otherActions.push(new FeedAction(stomach))
-
- const cock = new Cock(this, 2, new ConstantDamageFormula(new Damage(
- { amount: 30, type: DamageType.Crush, target: Vigor.Health },
- { amount: 60, type: DamageType.Crush, target: Vigor.Stamina },
- { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve }
- )))
-
- const balls = new Balls(this, 2, new ConstantDamageFormula(new Damage(
- { amount: 30, type: DamageType.Crush, target: Vigor.Health },
- { amount: 60, type: DamageType.Crush, target: Vigor.Stamina },
- { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve }
- )), cock)
-
- this.containers.push(balls)
- this.containers.push(cock)
-
- biconnectContainers(cock, balls)
- }
- }
|