|  |  | @@ -28,7 +28,7 @@ | 
		
	
		
			
			|  |  |  | "intro": { | 
		
	
		
			
			|  |  |  | "start": "pepper-grinder", | 
		
	
		
			
			|  |  |  | "setup": state => { | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | state.info.awareness = { | 
		
	
		
			
			|  |  |  | id: "awareness", | 
		
	
		
			
			|  |  |  | name: "Geta's Awareness", | 
		
	
	
		
			
				|  |  | @@ -45,8 +45,11 @@ | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | state.geta = {}; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | state.player.stats.health = { name: "Health", type: "meter", value: 100, min: 0, max: 100, color: "rgb(255,55,55)" }; | 
		
	
		
			
			|  |  |  | state.player.stats.suspicion = { name: "Suspicion", type: "meter", value: 0, min: 0, max: 100, color: "rgb(100,100,100)" }; | 
		
	
		
			
			|  |  |  | state.player.stats.mawPos = { "name": "Struggle", "type": "meter", "value": 0.5, "min": 0, "max": 1, "color": "rgb(0,255,0)", hidden: true } | 
		
	
		
			
			|  |  |  | state.info.time.value = 60 * 60 * 7 + 60 * 17; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | startTimer({ | 
		
	
	
		
			
				|  |  | @@ -456,45 +459,94 @@ | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | "enter": (room, state) => { | 
		
	
		
			
			|  |  |  | stopClassTimers("free", state); | 
		
	
		
			
			|  |  |  | startTimer({ | 
		
	
		
			
			|  |  |  | id: "swallow", | 
		
	
		
			
			|  |  |  | func: state => { | 
		
	
		
			
			|  |  |  | print(["It's too late to escape. You're swallowed down."]); | 
		
	
		
			
			|  |  |  | stopTimer("maw-tease", state); | 
		
	
		
			
			|  |  |  | goToRoom("throat", state); | 
		
	
		
			
			|  |  |  | return true; | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | delay: Math.random() * 5000 + 6000, | 
		
	
		
			
			|  |  |  | loop: false, | 
		
	
		
			
			|  |  |  | classes: [ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | }, state); | 
		
	
		
			
			|  |  |  | state.player.stats.mawPos.hidden = false; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | startTimer({ | 
		
	
		
			
			|  |  |  | id: "maw-tease", | 
		
	
		
			
			|  |  |  | id: "maw-struggle", | 
		
	
		
			
			|  |  |  | func: state => { | 
		
	
		
			
			|  |  |  | printRandom([ | 
		
	
		
			
			|  |  |  | ["Your captor teases you with a sharp, sloppy swallow, barely holding you back from plunging down that slick gullet."], | 
		
	
		
			
			|  |  |  | ["You're sloshed to and fro, battered against the fox's gums by his undulating tongue."], | 
		
	
		
			
			|  |  |  | ["Slobber drenches your body as you're smothered beneath Geta's hot tongue."] | 
		
	
		
			
			|  |  |  | ]); | 
		
	
		
			
			|  |  |  | return Math.random() * 2000 + 3000; | 
		
	
		
			
			|  |  |  | const choice = Math.random(); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (getStat("mawPos", state) <= 0) { | 
		
	
		
			
			|  |  |  | print(["Swallowed!"]); | 
		
	
		
			
			|  |  |  | goToRoom("throat", state); | 
		
	
		
			
			|  |  |  | return false; | 
		
	
		
			
			|  |  |  | } else if (getStat("mawPos", state) >= 1) { | 
		
	
		
			
			|  |  |  | print(["Chewed!"]); | 
		
	
		
			
			|  |  |  | changeStat("health", -90, state); | 
		
	
		
			
			|  |  |  | goToRoom("stomach", state); | 
		
	
		
			
			|  |  |  | return false; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (choice < 0.3) { | 
		
	
		
			
			|  |  |  | if (getStat("mawPos", state) < 0.3) { | 
		
	
		
			
			|  |  |  | print(["Swallowed!"]); | 
		
	
		
			
			|  |  |  | goToRoom("throat", state); | 
		
	
		
			
			|  |  |  | return false; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | print(["Swallows"]); | 
		
	
		
			
			|  |  |  | changeStat("mawPos", -0.25, state); | 
		
	
		
			
			|  |  |  | return Math.random() * 1500 + 2500; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | } else if (choice < 0.7) { | 
		
	
		
			
			|  |  |  | changeStat("mawPos", -0.1, state); | 
		
	
		
			
			|  |  |  | print(["Slurps"]); | 
		
	
		
			
			|  |  |  | return Math.random() * 1000 + 1500; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | if (getStat("mawPos", state) > 0.7) { | 
		
	
		
			
			|  |  |  | print(["Chewed!"]); | 
		
	
		
			
			|  |  |  | changeStat("health", -90, state); | 
		
	
		
			
			|  |  |  | goToRoom("stomach", state); | 
		
	
		
			
			|  |  |  | return false; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | print(["Chews"]); | 
		
	
		
			
			|  |  |  | return Math.random() * 500 + 1000; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | delay: 3000, | 
		
	
		
			
			|  |  |  | delay: 0, | 
		
	
		
			
			|  |  |  | loop: true, | 
		
	
		
			
			|  |  |  | classes: [ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | }, state); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | "exit": (room, state) => { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | "actions": [ | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | name: "Struggle", | 
		
	
		
			
			|  |  |  | desc: "Pull yourself away from the fox's throat! Just don't go too far forward...", | 
		
	
		
			
			|  |  |  | execute: (room, state) => { | 
		
	
		
			
			|  |  |  | print(["You drag yourself forward"]); | 
		
	
		
			
			|  |  |  | changeStat("mawPos", Math.random() * 0.1 + 0.15, state); | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | show: [ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ], | 
		
	
		
			
			|  |  |  | conditions: [ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | name: "Slip Back", | 
		
	
		
			
			|  |  |  | desc: "Slide back towards Geta's gullet", | 
		
	
		
			
			|  |  |  | execute: (room, state) => { | 
		
	
		
			
			|  |  |  | print(["You let yourself slip back"]); | 
		
	
		
			
			|  |  |  | changeStat("mawPos",  -Math.random() / 5 - 0.2, state); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | show: [ | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ], | 
		
	
		
			
			|  |  |  | conditions: [ | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | ], | 
		
	
		
			
			|  |  |  | "exits": { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -516,6 +568,9 @@ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | }, | 
		
	
		
			
			|  |  |  | "enter": (room, state) => { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | state.player.stats.mawPos.hidden = true; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | startTimer({ | 
		
	
		
			
			|  |  |  | id: "throat-swallow", | 
		
	
		
			
			|  |  |  | func: state => { | 
		
	
	
		
			
				|  |  | 
 |