@@ -1,7 +1,7 @@  
		
	
		
			
			import { Entity, Mortal, POV, Creature } from './entity'  
		
	
		
			
			import { Damage, Actionable, Action, DevourAction, FeedAction, DigestAction, ReleaseAction, StruggleAction, Vigor } from './combat'  
		
	
		
			
			import { Damage, DamageType, Stats,  Actionable, Action, DevourAction, FeedAction, DigestAction, ReleaseAction, StruggleAction, Vigor } from './combat'  
		
	
		
			
			import { LogLines, LogEntry, CompositeLog, LogLine } from './interface'  
		
	
		
			
			import { Noun, POVPair, POVPairArgs, ImproperNoun } from './language'  
		
	
		
			
			import { Noun, Pronoun, P OVPair, POVPairArgs, ImproperNoun } from './language'  
		
	
		
			
			 
		
	
		
			
			export enum VoreType {  
		
	
		
			
			  Oral = "Oral Vore",  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -10,12 +10,32 @@ export enum VoreType {  
		
	
		
			
			  Unbirth = "Unbirthing"  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export interface Vore extends Mortal {  
		
	
		
			
			    preyPrefs: Set<VoreType>;  
		
	
		
			
			    bulk: number;  
		
	
		
			
			    containedIn: Container | null;  
		
	
		
			
			    predPrefs: Set<VoreType>;  
		
	
		
			
			    containers: Array<Container>;  
		
	
		
			
			export abstract class Vore implements Mortal {  
		
	
		
			
			  abstract name: Noun;  
		
	
		
			
			  abstract pronouns: Pronoun;  
		
	
		
			
			  abstract perspective: POV;  
		
	
		
			
			  abstract vigors: {[key in Vigor]: number};  
		
	
		
			
			  abstract maxVigors: {[key in Vigor]: number};  
		
	
		
			
			  abstract disabled: boolean;  
		
	
		
			
			  abstract resistances: Map<DamageType, number>;  
		
	
		
			
			  abstract takeDamage (damage: Damage): void;  
		
	
		
			
			  abstract stats: Stats;  
		
	
		
			
			  abstract status: string;  
		
	
		
			
			  abstract preyPrefs: Set<VoreType>;  
		
	
		
			
			  abstract bulk: number;  
		
	
		
			
			  abstract containedIn: Container | null;  
		
	
		
			
			  abstract predPrefs: Set<VoreType>;  
		
	
		
			
			  abstract containers: Array<Container>;  
		
	
		
			
			  destroy (): void {  
		
	
		
			
			    this.containers.map(container => {  
		
	
		
			
			      container.contents.map(prey => {  
		
	
		
			
			        prey.containedIn = this.containedIn  
		
	
		
			
			        if (this.containedIn !== null) {  
		
	
		
			
			          this.containedIn.contents.push(prey)  
		
	
		
			
			        }  
		
	
		
			
			      })  
		
	
		
			
			    })  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			export interface Container extends Actionable {