|  |  | @@ -39,16 +39,37 @@ export abstract class Vore implements Mortal { | 
		
	
		
			
			|  |  |  | [[POV.First], (target: Vore) => new LogLine('You die!')], | 
		
	
		
			
			|  |  |  | [[POV.Third], (target: Vore) => new LogLine(`${target.name.capital} dies!`)] | 
		
	
		
			
			|  |  |  | ]) | 
		
	
		
			
			|  |  |  | this.containers.map(container => { | 
		
	
		
			
			|  |  |  | container.contents.map(prey => { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const released: Array<Vore> = this.containers.flatMap(container => { | 
		
	
		
			
			|  |  |  | return container.contents.map(prey => { | 
		
	
		
			
			|  |  |  | prey.containedIn = this.containedIn | 
		
	
		
			
			|  |  |  | if (this.containedIn !== null) { | 
		
	
		
			
			|  |  |  | this.containedIn.contents.push(prey) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | return prey | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return lines.run(this) | 
		
	
		
			
			|  |  |  | console.log(released) | 
		
	
		
			
			|  |  |  | console.log(released.reduce((list: Array<string>, prey: Vore) => list.concat([prey.name.toString()]), [])) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const names = released.reduce((list: Array<string>, prey: Vore) => list.concat([prey.name.toString()]), []).joinGeneral(", ", " and ").join("") | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (released.length > 0) { | 
		
	
		
			
			|  |  |  | if (this.containedIn === null) { | 
		
	
		
			
			|  |  |  | return new LogLines( | 
		
	
		
			
			|  |  |  | lines.run(this), | 
		
	
		
			
			|  |  |  | new LogLine(names + ` spill out!`) | 
		
	
		
			
			|  |  |  | ) | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | return new LogLines( | 
		
	
		
			
			|  |  |  | lines.run(this), | 
		
	
		
			
			|  |  |  | new LogLine(names + ` spill out into ${this.containedIn.owner.name}'s ${this.containedIn.name}!`) | 
		
	
		
			
			|  |  |  | ) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | return lines.run(this) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -98,6 +119,9 @@ export abstract class NormalContainer implements Container { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | consume (prey: Vore): LogEntry { | 
		
	
		
			
			|  |  |  | if (prey.containedIn !== null) { | 
		
	
		
			
			|  |  |  | prey.containedIn.contents = prey.containedIn.contents.filter(item => prey !== item) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | this.contents.push(prey) | 
		
	
		
			
			|  |  |  | prey.containedIn = this | 
		
	
		
			
			|  |  |  | return this.consumeLines.run(this.owner, prey) | 
		
	
	
		
			
				|  |  | @@ -161,6 +185,9 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor | 
		
	
		
			
			|  |  |  | const scaled = this.damage.scale(dt / 60) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const damageResults: Array<LogEntry> = [] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const tickedEntries = new LogLines(...this.contents.map(prey => this.tickLines.run(this.owner, prey, { damage: scaled }))) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.contents.forEach(prey => { | 
		
	
		
			
			|  |  |  | damageResults.push(prey.takeDamage(scaled)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -171,7 +198,6 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const tickedEntries = new LogLines(...this.contents.map(prey => this.tickLines.run(this.owner, prey, { damage: scaled }))) | 
		
	
		
			
			|  |  |  | const digestedEntries = this.digest(justDigested) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.contents = this.contents.filter(prey => { | 
		
	
	
		
			
				|  |  | 
 |