|  |  | @@ -7,7 +7,7 @@ function Creature(name = "Creature") { | 
		
	
		
			
			|  |  |  | this.health = 100; | 
		
	
		
			
			|  |  |  | this.maxHealth = 100; | 
		
	
		
			
			|  |  |  | this.mass = 80; | 
		
	
		
			
			|  |  |  | this.stomach = Stomach(); | 
		
	
		
			
			|  |  |  | this.stomach = new Stomach(); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function Player(name = "Player") { | 
		
	
	
		
			
				|  |  | @@ -18,28 +18,75 @@ function Player(name = "Player") { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function Anthro() { | 
		
	
		
			
			|  |  |  | let species = pick(["dog","cat","lizard","deer","wolf","fox"]); | 
		
	
		
			
			|  |  |  | this.mass = 80 * (Math.random()/2 - 0.25 + 1); | 
		
	
		
			
			|  |  |  | this.build = "ordinary"; | 
		
	
		
			
			|  |  |  | if (this.mass < 70) { | 
		
	
		
			
			|  |  |  | this.build = "skinny"; | 
		
	
		
			
			|  |  |  | } else if (this.mass > 90) { | 
		
	
		
			
			|  |  |  | this.build = "fat"; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.species = pick(["dog","cat","lizard","deer","wolf","fox"]); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Creature.call(this, name); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.description = function() { | 
		
	
		
			
			|  |  |  | return this.build + " " + this.species; | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // vore stuff here | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function Container(name = "stomach") { | 
		
	
		
			
			|  |  |  | this.name = name; | 
		
	
		
			
			|  |  |  | this.contents = []; | 
		
	
		
			
			|  |  |  | this.digest = function() { | 
		
	
		
			
			|  |  |  | this.digested = []; | 
		
	
		
			
			|  |  |  | this.digest = function(time) { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.feed = function(prey) { | 
		
	
		
			
			|  |  |  | this.contents.push(prey); | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | function Stomach() { | 
		
	
		
			
			|  |  |  | Container.call(this, "stomach"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.digest = function() { | 
		
	
		
			
			|  |  |  | // health/sec | 
		
	
		
			
			|  |  |  | this.damageRate = 15*100/86400; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // kg/sec | 
		
	
		
			
			|  |  |  | this.digestRate = 80/8640; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.digest = function(time) { | 
		
	
		
			
			|  |  |  | let lines = []; | 
		
	
		
			
			|  |  |  | this.contents.forEach(function (prey) { | 
		
	
		
			
			|  |  |  | lines.push("Something is digesting!"); | 
		
	
		
			
			|  |  |  | this.contents.forEach(function(prey) { | 
		
	
		
			
			|  |  |  | if (prey.health > 0) { | 
		
	
		
			
			|  |  |  | let damage = Math.min(prey.health, this.damageRate * time); | 
		
	
		
			
			|  |  |  | prey.health -= damage; | 
		
	
		
			
			|  |  |  | time -= damage / this.damageRate; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (prey.health <= 0) { | 
		
	
		
			
			|  |  |  | let digested = Math.min(prey.mass, this.digestRate * time); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | prey.mass -= digested; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (prey.mass <= 0) { | 
		
	
		
			
			|  |  |  | lines.push("Your churning guts have reduced a " + prey.description() + " to meaty chyme."); | 
		
	
		
			
			|  |  |  | this.digested.push(prey); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | }, this); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | this.contents.filter(function(prey) { | 
		
	
		
			
			|  |  |  | return prey.mass > 0; | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return lines; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | } |