import { Creature } from "../creature" import { Damage, DamageType, ConstantDamageFormula, Vigor, Side, StatDamageFormula, Stat } from '../combat' import { MalePronouns, ImproperNoun, ProperNoun, ObjectPronouns, FemalePronouns, TheyPronouns, Verb } from '../language' import { VoreType, Stomach, Bowels, Cock, Balls, anyVore, Slit, Womb, biconnectContainers } from '../vore' import { AttackAction, TransferAction, FeedAction } from '../combat/actions' import { Human } from '../creatures' export class Wolf extends Creature { constructor () { super( new ImproperNoun('wolf', 'wolves'), new ImproperNoun('wolf', 'wolves'), [MalePronouns, FemalePronouns, TheyPronouns][Math.floor(Math.random() * 3)], { Toughness: 20, Power: 20, Speed: 20, Willpower: 20, Charm: 20 }, anyVore, anyVore, 25 ) 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.side = Side.Monsters const stomach = new Stomach(this, 2, 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 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 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 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) const slit = new Slit(this, 2, 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 womb = new Womb(this, 2, 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 } ), slit) this.containers.push(balls) this.containers.push(cock) this.containers.push(womb) this.containers.push(slit) biconnectContainers(cock, balls) biconnectContainers(slit, womb) } }