|  | @@ -248,9 +248,14 @@ | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | }, |  |  | }, | 
														
													
														
															
																|  |  | "sounds": [ |  |  | "sounds": [ | 
														
													
														
															
																|  |  |  |  |  | "loop/heartbeat.ogg", | 
														
													
														
															
																|  |  | "loop/stomach.ogg", |  |  | "loop/stomach.ogg", | 
														
													
														
															
																|  |  | "sfx/absorb.ogg", |  |  | "sfx/absorb.ogg", | 
														
													
														
															
																|  |  |  |  |  | "sfx/big-gulp.ogg", | 
														
													
														
															
																|  |  | "sfx/digest.ogg", |  |  | "sfx/digest.ogg", | 
														
													
														
															
																|  |  |  |  |  | "sfx/gulp-1.ogg", | 
														
													
														
															
																|  |  |  |  |  | "sfx/gulp-2.ogg", | 
														
													
														
															
																|  |  |  |  |  | "sfx/gulp-3.ogg", | 
														
													
														
															
																|  |  | "sfx/swallow.ogg" |  |  | "sfx/swallow.ogg" | 
														
													
														
															
																|  |  | ], |  |  | ], | 
														
													
														
															
																|  |  | "preload": [ |  |  | "preload": [ | 
														
													
												
													
														
															
																|  | @@ -724,7 +729,7 @@ | 
														
													
														
															
																|  |  | delay: 4000, |  |  | delay: 4000, | 
														
													
														
															
																|  |  | loop: false, |  |  | loop: false, | 
														
													
														
															
																|  |  | classes: [ |  |  | classes: [ | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | "maw-struggle" | 
														
													
														
															
																|  |  | ] |  |  | ] | 
														
													
														
															
																|  |  | }); |  |  | }); | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
												
													
														
															
																|  | @@ -849,6 +854,7 @@ | 
														
													
														
															
																|  |  | "enter": (room) => { |  |  | "enter": (room) => { | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | playSfx("sfx/swallow.ogg"); |  |  | playSfx("sfx/swallow.ogg"); | 
														
													
														
															
																|  |  |  |  |  | playLoop("loop/stomach.ogg", 0.3); | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | state.player.stats.stamina.hidden = false; |  |  | state.player.stats.stamina.hidden = false; | 
														
													
														
															
																|  |  | state.player.stats.throatPos.hidden = false; |  |  | state.player.stats.throatPos.hidden = false; | 
														
													
												
													
														
															
																|  | @@ -865,7 +871,38 @@ | 
														
													
														
															
																|  |  | "throat-struggle" |  |  | "throat-struggle" | 
														
													
														
															
																|  |  | ] |  |  | ] | 
														
													
														
															
																|  |  | }); |  |  | }); | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | state.geta.throatStage = 1; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | startTimer({ | 
														
													
														
															
																|  |  |  |  |  | id: "throat-stages", | 
														
													
														
															
																|  |  |  |  |  | func: () => { | 
														
													
														
															
																|  |  |  |  |  | if (state.geta.throatStage / 5 < getStat("throatPos")) { | 
														
													
														
															
																|  |  |  |  |  | state.geta.throatStage = Math.ceil(getStat("throatPos") * 5); | 
														
													
														
															
																|  |  |  |  |  | switch (state.geta.throatStage) { | 
														
													
														
															
																|  |  |  |  |  | case 3: | 
														
													
														
															
																|  |  |  |  |  | print(["You're sinking into the fox's chest..."]); | 
														
													
														
															
																|  |  |  |  |  | break; | 
														
													
														
															
																|  |  |  |  |  | case 4: | 
														
													
														
															
																|  |  |  |  |  | print(["Deeper, deeper still..."]); | 
														
													
														
															
																|  |  |  |  |  | break; | 
														
													
														
															
																|  |  |  |  |  | case 5: | 
														
													
														
															
																|  |  |  |  |  | print(["Your grave is just a swallow or two away."]); | 
														
													
														
															
																|  |  |  |  |  | break; | 
														
													
														
															
																|  |  |  |  |  | default: | 
														
													
														
															
																|  |  |  |  |  | break; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | return true; | 
														
													
														
															
																|  |  |  |  |  | }, | 
														
													
														
															
																|  |  |  |  |  | delay: 1000, | 
														
													
														
															
																|  |  |  |  |  | loop: true, | 
														
													
														
															
																|  |  |  |  |  | classes: [ | 
														
													
														
															
																|  |  |  |  |  | "throat-struggle" | 
														
													
														
															
																|  |  |  |  |  | ] | 
														
													
														
															
																|  |  |  |  |  | }); | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  | startTimer({ |  |  | startTimer({ | 
														
													
														
															
																|  |  | id: "throat-descent", |  |  | id: "throat-descent", | 
														
													
														
															
																|  |  | func: () => { |  |  | func: () => { | 
														
													
												
													
														
															
																|  | @@ -879,6 +916,7 @@ | 
														
													
														
															
																|  |  | return false; |  |  | return false; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | changeStat("throatPos", state.player.flags.throatSurrender ? 0.0005 : 0.0001); |  |  | changeStat("throatPos", state.player.flags.throatSurrender ? 0.0005 : 0.0001); | 
														
													
														
															
																|  |  |  |  |  | playLoop("loop/heartbeat.ogg", 0.3 + getStat("throatPos") * 0.7); | 
														
													
														
															
																|  |  | return true; |  |  | return true; | 
														
													
														
															
																|  |  | }, |  |  | }, | 
														
													
														
															
																|  |  | delay: 1000 / 60, |  |  | delay: 1000 / 60, | 
														
													
												
													
														
															
																|  | @@ -891,9 +929,34 @@ | 
														
													
														
															
																|  |  | startTimer({ |  |  | startTimer({ | 
														
													
														
															
																|  |  | id: "throat-swallows", |  |  | id: "throat-swallows", | 
														
													
														
															
																|  |  | func: () => { |  |  | func: () => { | 
														
													
														
															
																|  |  | print(["Geta's throat pumps you deeper"]); |  |  |  | 
														
													
														
															
																|  |  | statLerp("throatPos", 0.1, 1250); |  |  |  | 
														
													
														
															
																|  |  | return Math.random() * 2000 + 2000; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | const choice = Math.random(); | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | if (choice < 0.7 ) { | 
														
													
														
															
																|  |  |  |  |  | print(["Geta's throat pumps you deeper"]); | 
														
													
														
															
																|  |  |  |  |  | playSfx(pickRandom([ | 
														
													
														
															
																|  |  |  |  |  | "sfx/gulp-1.ogg", | 
														
													
														
															
																|  |  |  |  |  | "sfx/gulp-2.ogg", | 
														
													
														
															
																|  |  |  |  |  | "sfx/gulp-3.ogg" | 
														
													
														
															
																|  |  |  |  |  | ])); | 
														
													
														
															
																|  |  |  |  |  | statLerp("throatPos", 0.1, 1250); | 
														
													
														
															
																|  |  |  |  |  | return Math.random() * 2000 + 2000; | 
														
													
														
															
																|  |  |  |  |  | } else if (choice < 0.85) { | 
														
													
														
															
																|  |  |  |  |  | if (getStat("throatPos") < 0.4) { | 
														
													
														
															
																|  |  |  |  |  | print(["A finger presses in on you from the outside. Your captor is enjoying himself...but at least it slows your descent a little."]); | 
														
													
														
															
																|  |  |  |  |  | statLerp("throatPos", 0.05, 2000); | 
														
													
														
															
																|  |  |  |  |  | return Math.random() * 4000 + 2000; | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | return Math.random() * 200 + 200; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | print(["A crushing swallow grips your body and crams you down deep."]); | 
														
													
														
															
																|  |  |  |  |  | playSfx("sfx/big-gulp.ogg"); | 
														
													
														
															
																|  |  |  |  |  | statLerp("throatPos", 0.3, 1500); | 
														
													
														
															
																|  |  |  |  |  | return Math.random() * 2000 + 2000; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | }, |  |  | }, | 
														
													
														
															
																|  |  | delay: 2000, |  |  | delay: 2000, | 
														
													
														
															
																|  |  | loop: true, |  |  | loop: true, | 
														
													
												
													
														
															
																|  | @@ -970,6 +1033,7 @@ | 
														
													
														
															
																|  |  | }, |  |  | }, | 
														
													
														
															
																|  |  | "enter": (room) => { |  |  | "enter": (room) => { | 
														
													
														
															
																|  |  | playLoop("loop/stomach.ogg"); |  |  | playLoop("loop/stomach.ogg"); | 
														
													
														
															
																|  |  |  |  |  | stopLoop("loop/heartbeat.ogg"); | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | state.geta.digestionStage = 0; |  |  | state.geta.digestionStage = 0; | 
														
													
														
															
																|  |  | state.geta.acidStrength = 1; |  |  | state.geta.acidStrength = 1; | 
														
													
												
													
														
															
																|  | 
 |