@@ -202,6 +202,9 @@ let macro =  
		
	
		
			
			      --count;  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			    if (container.count == 0)  
		
	
		
			
			      return;  
		
	
		
			
			 
		
	
		
			
			    let digested = container.sum();  
		
	
		
			
			 
		
	
		
			
			    for (let key in victims[organ.name]) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -213,13 +216,26 @@ let macro =  
		
	
		
			
			 
		
	
		
			
			    let line = organ.describeDigestion(container);  
		
	
		
			
			    organ.fill(this,container);  
		
	
		
			
			    let summary = summarize(container.sum());  
		
	
		
			
			    let lethal = macro.brutality != 0 && (!macro.soulVoreEnabled || organ.name === "souls");  
		
	
		
			
			    let summary = summarize(container.sum(),lethal);  
		
	
		
			
			 
		
	
		
			
			    if (organ.contents.length > 0) {  
		
	
		
			
			      setTimeout(function() { owner.digest(owner,organ); }, 15000);  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			    update([line,summary,newline]);  
		
	
		
			
			    if (macro.soulVoreEnabled && organ.name != "souls") {  
		
	
		
			
			      owner.souls.feed(container);  
		
	
		
			
			      let soulCount = container.sum()["Person"];  
		
	
		
			
			      let soulLine = "";  
		
	
		
			
			      if (soulCount > 0)  
		
	
		
			
			        soulLine = "Their " + (soulCount == 1 ? "soul is" : "souls are") + " trapped in your depths!";  
		
	
		
			
			      else  
		
	
		
			
			        soulLine = "No souls, though...";  
		
	
		
			
			      update([line,summary,soulLine,newline]);  
		
	
		
			
			    } else {  
		
	
		
			
			      update([line,summary,newline]);  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			  },  
		
	
		
			
			 
		
	
		
			
			  "stomach": {  
		
	
	
		
			
				
				
					 
			
			@@ -309,7 +325,7 @@ let macro =  
		
	
		
			
			    },  
		
	
		
			
			    "feedFunc": function(prey,self,owner) {  
		
	
		
			
			      if (self.contents.length == 0)  
		
	
		
			
			        setTimeout(function() { owner.digest(owner,self); }, 1500);  
		
	
		
			
			        setTimeout(function() { owner.digest(owner,self); }, 15000 );  
		
	
		
			
			      this.contents.push(prey);  
		
	
		
			
			    },  
		
	
		
			
			    "describeDigestion": function(container) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -324,6 +340,28 @@ let macro =  
		
	
		
			
			    "maxDigest" : 1  
		
	
		
			
			  },  
		
	
		
			
			 
		
	
		
			
			  soulVoreEnabled: true,  
		
	
		
			
			 
		
	
		
			
			  "souls": {  
		
	
		
			
			    "name" : "souls",  
		
	
		
			
			    "feed": function(prey) {  
		
	
		
			
			      this.feedFunc(prey,this,this.owner);  
		
	
		
			
			    },  
		
	
		
			
			    "feedFunc": function(prey,self,owner) {  
		
	
		
			
			      if (self.contents.length == 0)  
		
	
		
			
			        setTimeout(function() { owner.digest(owner,self); }, 15000);  
		
	
		
			
			      this.contents.push(prey);  
		
	
		
			
			    },  
		
	
		
			
			    "describeDigestion": function(container) {  
		
	
		
			
			      return describe("soul-digest",container,this.owner,verbose);  
		
	
		
			
			    },  
		
	
		
			
			    "fill": function(owner,container) {  
		
	
		
			
			      //no-op  
		
	
		
			
			    },  
		
	
		
			
			    "contents" : [],  
		
	
		
			
			    "maxDigest" : 5  
		
	
		
			
			  },  
		
	
		
			
			 
		
	
		
			
			  // holding spots  
		
	
		
			
			 
		
	
		
			
			  hasPouch: true,  
		
	
	
		
			
				
				
					 
			
			@@ -377,6 +415,7 @@ let macro =  
		
	
		
			
			    this.womb.owner = this;  
		
	
		
			
			    this.balls.owner = this;  
		
	
		
			
			    this.breasts.owner = this;  
		
	
		
			
			    this.souls.owner = this;  
		
	
		
			
			    this.cumStorage.owner = this;  
		
	
		
			
			    this.femcumStorage.owner = this;  
		
	
		
			
			    this.milkStorage.owner = this;  
		
	
	
		
			
				
				
					 
			
			@@ -899,9 +938,9 @@ function getPrey(region, area)  
		
	
		
			
			  }  
		
	
		
			
			  else if (macro.height > 1e6) {  
		
	
		
			
			    weights = {  
		
	
		
			
			      "Town": 0.1,  
		
	
		
			
			      "City": 0.05,  
		
	
		
			
			      "Continent": 0.005,  
		
	
		
			
			      "Town": 0.0000 1,  
		
	
		
			
			      "City": 0.0000 5,  
		
	
		
			
			      "Continent": 0.000 5,  
		
	
		
			
			      "Planet": 0.0001  
		
	
		
			
			    };  
		
	
		
			
			  }  
		
	
	
		
			
				
				
					 
			
			@@ -1980,6 +2019,78 @@ function pouch_eat()  
		
	
		
			
			  update([sound,line,linesummary,newline]);  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function soul_vore()  
		
	
		
			
			{  
		
	
		
			
			  let area = macro.height * macro.height;  
		
	
		
			
			  let prey = getPrey(biome,area);  
		
	
		
			
			 
		
	
		
			
			  let line = describe("soul-vore", prey, macro, verbose);  
		
	
		
			
			  let linesummary = summarize(prey.sum(), false);  
		
	
		
			
			 
		
	
		
			
			  let people = get_living_prey(prey.sum());  
		
	
		
			
			  let sound = "";  
		
	
		
			
			  if (people == 0) {  
		
	
		
			
			    sound = "";  
		
	
		
			
			  } else if (people < 3) {  
		
	
		
			
			    sound = "Ulp.";  
		
	
		
			
			  } else if (people < 10) {  
		
	
		
			
			    sound = "Gulp.";  
		
	
		
			
			  } else if (people < 50) {  
		
	
		
			
			    sound = "Glrrp.";  
		
	
		
			
			  } else if (people < 500) {  
		
	
		
			
			    sound = "Glrrrpkh!";  
		
	
		
			
			  } else if (people < 5000) {  
		
	
		
			
			    sound = "GLRRKPKH!";  
		
	
		
			
			  } else {  
		
	
		
			
			    sound = "Oh the humanity!";  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  let preyMass = prey.sum_property("mass");  
		
	
		
			
			 
		
	
		
			
			  macro.addGrowthPoints(preyMass);  
		
	
		
			
			 
		
	
		
			
			  macro.souls.feed(prey);  
		
	
		
			
			 
		
	
		
			
			  macro.arouse(15);  
		
	
		
			
			 
		
	
		
			
			  updateVictims("soulvore",prey);  
		
	
		
			
			  update([sound,line,linesummary,newline]);  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function soul_absorb_paw()  
		
	
		
			
			{  
		
	
		
			
			  let prey = getPrey(biome,macro.pawArea);  
		
	
		
			
			 
		
	
		
			
			  let line = describe("soul-absorb-paw", prey, macro, verbose);  
		
	
		
			
			  let linesummary = summarize(prey.sum(), true);  
		
	
		
			
			 
		
	
		
			
			  let people = get_living_prey(prey.sum());  
		
	
		
			
			  let sound = "";  
		
	
		
			
			 
		
	
		
			
			  if (people < 3) {  
		
	
		
			
			    sound = "Thump!";  
		
	
		
			
			  } else if (people < 10) {  
		
	
		
			
			    sound = "Squish!";  
		
	
		
			
			  } else if (people < 50) {  
		
	
		
			
			    sound = "Crunch!";  
		
	
		
			
			  } else if (people < 500) {  
		
	
		
			
			    sound = "CRUNCH!";  
		
	
		
			
			  } else if (people < 5000) {  
		
	
		
			
			    sound = "CRRUUUNCH!!";  
		
	
		
			
			  } else {  
		
	
		
			
			    sound = "Oh the humanity!";  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  let preyMass = prey.sum_property("mass");  
		
	
		
			
			 
		
	
		
			
			  macro.addGrowthPoints(preyMass);  
		
	
		
			
			 
		
	
		
			
			  macro.arouse(25);  
		
	
		
			
			 
		
	
		
			
			  updateVictims("soulpaw",prey);  
		
	
		
			
			  update([sound,line,linesummary,newline]);  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function transformNumbers(line)  
		
	
		
			
			{  
		
	
		
			
			  return line.toString().replace(/[0-9]+(\.[0-9]+)?(e\+[0-9]+)?/g, function(text) { return number(text, numbers); });  
		
	
	
		
			
				
				
					 
			
			@@ -2297,12 +2408,12 @@ function startGame(e) {  
		
	
		
			
			    if (macro.tailMaw) {  
		
	
		
			
			      victimTypes = victimTypes.concat(["tailmaw'd"]);  
		
	
		
			
			    } else {  
		
	
		
			
			      document.getElementById("button-tail_vore").style.display = 'none';  
		
	
		
			
			      document.getElementById("button-action- tail_vore").style.display = 'none';  
		
	
		
			
			    }  
		
	
		
			
			  } else {  
		
	
		
			
			    document.getElementById("action-part-tails").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-tail_slap").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-tail_vore").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- tail_slap").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- tail_vore").style.display = 'none';  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  if (macro.maleParts) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -2310,28 +2421,28 @@ function startGame(e) {  
		
	
		
			
			    if (macro.hasSheath) {  
		
	
		
			
			      victimTypes.push("sheath");  
		
	
		
			
			    } else {  
		
	
		
			
			      document.getElementById("button-sheath_stuff").style.display = 'none';  
		
	
		
			
			      document.getElementById("button-sheath_squeeze").style.display = 'none';  
		
	
		
			
			      document.getElementById("button-action- sheath_stuff").style.display = 'none';  
		
	
		
			
			      document.getElementById("button-action- sheath_squeeze").style.display = 'none';  
		
	
		
			
			    }  
		
	
		
			
			  } else {  
		
	
		
			
			    document.getElementById("action-part-dick").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-cockslap").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-cock_vore").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-ball_smother").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- cockslap").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- cock_vore").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- ball_smother").style.display = 'none';  
		
	
		
			
			    document.getElementById("cum").style.display = 'none';  
		
	
		
			
			    document.getElementById("cumPercent").style.display = 'none';  
		
	
		
			
			    document.querySelector("#part-balls+label").style.display = 'none';  
		
	
		
			
			    document.querySelector("#part-dick+label").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-sheath_stuff").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-sheath_squeeze").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-sheath_absorb").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- sheath_stuff").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- sheath_squeeze").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- sheath_absorb").style.display = 'none';  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  if (macro.femaleParts) {  
		
	
		
			
			    victimTypes = victimTypes.concat(["womb"]);  
		
	
		
			
			  } else {  
		
	
		
			
			    document.getElementById("action-part-vagina").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-unbirth").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- unbirth").style.display = 'none';  
		
	
		
			
			    document.getElementById("femcum").style.display = 'none';  
		
	
		
			
			    document.getElementById("femcumPercent").style.display = 'none';  
		
	
		
			
			    document.querySelector("#part-vagina+label").style.display = 'none';  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -2342,26 +2453,26 @@ function startGame(e) {  
		
	
		
			
			    if (macro.lactationEnabled) {  
		
	
		
			
			      victimTypes = victimTypes.concat(["flooded"]);  
		
	
		
			
			    } else {  
		
	
		
			
			      document.getElementById("button-breast_milk").style.display = 'none';  
		
	
		
			
			      document.getElementById("button-action- breast_milk").style.display = 'none';  
		
	
		
			
			      document.getElementById("milk").style.display = 'none';  
		
	
		
			
			      document.getElementById("milkPercent").style.display = 'none';  
		
	
		
			
			    }  
		
	
		
			
			    if (macro.breastVore) {  
		
	
		
			
			      victimTypes = victimTypes.concat(["breastvored"]);  
		
	
		
			
			    } else {  
		
	
		
			
			      document.getElementById("button-breast_vore").style.display = 'none';  
		
	
		
			
			      document.getElementById("button-action- breast_vore").style.display = 'none';  
		
	
		
			
			    }  
		
	
		
			
			  } else {  
		
	
		
			
			    document.getElementById("action-part-breasts").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-cleavage_stuff").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-cleavage_crush").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-cleavage_drop").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-cleavage_absorb").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-breast_vore").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-breast_milk").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- cleavage_stuff").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- cleavage_crush").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- cleavage_drop").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- cleavage_absorb").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- breast_vore").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- breast_milk").style.display = 'none';  
		
	
		
			
			    document.getElementById("milk").style.display = 'none';  
		
	
		
			
			    document.getElementById("milkPercent").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-breast_crush").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- breast_crush").style.display = 'none';  
		
	
		
			
			    document.querySelector("#part-breasts+label").style.display = 'none';  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
	
		
			
				
				
				
				
					 
			
			@@ -2373,12 +2484,21 @@ function startGame(e) {  
		
	
		
			
			    victimTypes.push("pouched");  
		
	
		
			
			  } else {  
		
	
		
			
			    document.getElementById("action-part-misc").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-pouch_stuff").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-pouch_eat").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action-pouch_stuff").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action-pouch_eat").style.display = 'none';  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  if (macro.soulVoreEnabled) {  
		
	
		
			
			    victimTypes.push("soulvore");  
		
	
		
			
			    victimTypes.push("soulpaws");  
		
	
		
			
			  } else {  
		
	
		
			
			    document.getElementById("action-part-souls").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action-soul_vore").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action-soul_absorb_paw").style.display = 'none';  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  if (macro.brutality < 1) {  
		
	
		
			
			    document.getElementById("button-chew").style.display = 'none';  
		
	
		
			
			    document.getElementById("button-action- chew").style.display = 'none';  
		
	
		
			
			  }  
		
	
		
			
			  let table = document.getElementById("victim-table");  
		
	
		
			
			 
		
	
	
		
			
				
				
					 
			
			@@ -2496,6 +2616,8 @@ window.addEventListener('load', function(event) {  
		
	
		
			
			  victims["splooged"] = initVictims();  
		
	
		
			
			  victims["ground"] = initVictims();  
		
	
		
			
			  victims["pouched"] = initVictims();  
		
	
		
			
			  victims["soulvore"] = initVictims();  
		
	
		
			
			  victims["soulpaw"] = initVictims();  
		
	
		
			
			 
		
	
		
			
			  document.querySelectorAll(".action-part-button").forEach(function (element) {  
		
	
		
			
			    element.addEventListener("click",actionTab);  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -2503,7 +2625,7 @@ window.addEventListener('load', function(event) {  
		
	
		
			
			 
		
	
		
			
			  registerActions();  
		
	
		
			
			 
		
	
		
			
			  document.getElementById("button-look").addEventListener("loo k",look);  
		
	
		
			
			  document.getElementById("button-look").addEventListener("clic k",look);  
		
	
		
			
			  document.getElementById("button-stroll").addEventListener("click",toggle_auto);  
		
	
		
			
			  document.getElementById("button-location").addEventListener("click",change_location);  
		
	
		
			
			  document.getElementById("button-numbers").addEventListener("click",toggle_numbers);