|  |  | @@ -0,0 +1,68 @@ | 
		
	
		
			
			|  |  |  | 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) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } |