@@ -1,6 +1,6 @@  
		
	
		
			
			import { Damage, DamageType, Actionable, Action, Vigor, DamageInstance, DamageFormula } from './combat'  
		
	
		
			
			import { LogLines, LogEntry, LogLine, nilLog, RandomEntry } from './interface'  
		
	
		
			
			import { Noun, ImproperNoun, Verb, RandomWord } from './language'  
		
	
		
			
			import { Noun, ImproperNoun, Verb, RandomWord, Word  } from './language'  
		
	
		
			
			import { RubAction, DevourAction, ReleaseAction, StruggleAction, TransferAction } from './combat/actions'  
		
	
		
			
			import * as Words from './words'  
		
	
		
			
			import { Creature } from './creature'  
		
	
	
		
			
				
				
					 
			
			@@ -160,6 +160,7 @@ export interface VoreContainer extends Container {  
		
	
		
			
			  tick: (dt: number) => LogEntry;  
		
	
		
			
			  digest: (preys: Creature[]) => LogEntry;  
		
	
		
			
			  absorb: (preys: Creature[]) => LogEntry;  
		
	
		
			
			  fluidName: Word;  
		
	
		
			
			  fluidColor: string;  
		
	
		
			
			 
		
	
		
			
			  onDigest: (prey: Creature) => LogEntry;  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -175,6 +176,8 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor  
		
	
		
			
			  digested: Array<Creature> = []  
		
	
		
			
			  absorbed: Array<Creature> = []  
		
	
		
			
			 
		
	
		
			
			  abstract fluidName: Word  
		
	
		
			
			 
		
	
		
			
			  constructor (name: Noun, owner: Creature, voreTypes: Set<VoreType>, capacity: number, private damage: DamageFormula) {  
		
	
		
			
			    super(name, owner, voreTypes, capacity)  
		
	
		
			
			 
		
	
	
		
			
				
				
					 
			
			@@ -203,11 +206,11 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  digestLine (user: Creature, target: Creature): LogEntry {  
		
	
		
			
			    return new LogLine(`${user.name.capital.possessive} ${this.name} ${this.name.conjugate(new Verb('finish', 'finishes'))} ${Words.Digests .present} ${target.name.objective} down, ${target.pronouns.possessive} ${Words.Struggles .singular} fading away.`)  
		
	
		
			
			    return new LogLine(`${user.name.capital.possessive} ${this.name} ${this.name.conjugate(new Verb('finish', 'finishes'))} ${Words.Digest.present} ${target.name.objective} down, ${target.pronouns.possessive} ${Words.Struggle.singular} fading away as ${target.pronouns.subjective} ${target.pronouns.conjugate(Words.Succumb)} and ${target.pronouns.conjugate(Words.Digest)} into ${this.fluidName} .`)  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  absorbLine (user: Creature, target: Creature): LogEntry {  
		
	
		
			
			    return new LogLine(`${user.name.capital.possessive} ${this.name} ${this.name.conjugate(new Verb('finish', 'finishes'))} ${Words.Absorbs .present} ${target.name.objective}, fully claiming ${target.pronouns.objective}.`)  
		
	
		
			
			    return new LogLine(`${user.name.capital.possessive} ${this.name} ${this.name.conjugate(new Verb('finish', 'finishes'))} ${Words.Absorb.present} ${target.name.objective}, fully claiming ${target.pronouns.objective}.`)  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  tick (dt: number): LogEntry {  
		
	
	
		
			
				
				
					 
			
			@@ -303,6 +306,8 @@ export abstract class InnerVoreContainer extends NormalVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Stomach extends NormalVoreContainer {  
		
	
		
			
			  fluidName = new Noun("chyme")  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula) {  
		
	
		
			
			    super(new ImproperNoun('stomach', 'stomachs').all, owner, new Set([VoreType.Oral]), capacity, damage)  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -328,6 +333,8 @@ export class Stomach extends NormalVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class InnerStomach extends InnerVoreContainer {  
		
	
		
			
			  fluidName = new Noun("chyme")  
		
	
		
			
			 
		
	
		
			
			  consumeVerb = new Verb('swallow')  
		
	
		
			
			  releaseVerb = new Verb('hork')  
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: VoreContainer) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -336,6 +343,8 @@ export class InnerStomach extends InnerVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Bowels extends NormalVoreContainer {  
		
	
		
			
			  fluidName = new Noun("chyme")  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula) {  
		
	
		
			
			    super(new ImproperNoun('bowel', 'bowels').plural.all, owner, new Set([VoreType.Anal]), capacity, damage)  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -349,6 +358,8 @@ export class Bowels extends NormalVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Cock extends NormalVoreContainer {  
		
	
		
			
			  fluidName = new Noun("cum")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#eeeeee66";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -367,6 +378,8 @@ export class Cock extends NormalVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Balls extends InnerVoreContainer {  
		
	
		
			
			  fluidName = new Noun("cum")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#eeeeeecc";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: Container) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -382,6 +395,8 @@ export class Balls extends InnerVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Slit extends NormalVoreContainer {  
		
	
		
			
			  fluidName = new Noun("femcum")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#cccccc99";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -395,6 +410,8 @@ export class Slit extends NormalVoreContainer {  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			export class Womb extends InnerVoreContainer {  
		
	
		
			
			  fluidName = new Noun("femcum")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#ddddddbb";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: Container) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -410,6 +427,8 @@ export class Womb extends InnerVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Breasts extends NormalVoreContainer {  
		
	
		
			
			  fluidName = new Noun("milk")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#eeeeeecc";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -424,6 +443,8 @@ export class Breasts extends NormalVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class Bladder extends NormalVoreContainer {  
		
	
		
			
			  fluidName = new Noun("piss")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#eeee3399";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -438,6 +459,8 @@ export class Bladder extends NormalVoreContainer {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export class InnerBladder extends InnerVoreContainer {  
		
	
		
			
			  fluidName = new Noun("piss")  
		
	
		
			
			 
		
	
		
			
			  fluidColor = "#eeee3399";  
		
	
		
			
			 
		
	
		
			
			  constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: Container) {