|
|
|
@@ -248,9 +248,14 @@ |
|
|
|
} |
|
|
|
}, |
|
|
|
"sounds": [ |
|
|
|
"loop/heartbeat.ogg", |
|
|
|
"loop/stomach.ogg", |
|
|
|
"sfx/absorb.ogg", |
|
|
|
"sfx/big-gulp.ogg", |
|
|
|
"sfx/digest.ogg", |
|
|
|
"sfx/gulp-1.ogg", |
|
|
|
"sfx/gulp-2.ogg", |
|
|
|
"sfx/gulp-3.ogg", |
|
|
|
"sfx/swallow.ogg" |
|
|
|
], |
|
|
|
"preload": [ |
|
|
|
@@ -724,7 +729,7 @@ |
|
|
|
delay: 4000, |
|
|
|
loop: false, |
|
|
|
classes: [ |
|
|
|
|
|
|
|
"maw-struggle" |
|
|
|
] |
|
|
|
}); |
|
|
|
|
|
|
|
@@ -849,6 +854,7 @@ |
|
|
|
"enter": (room) => { |
|
|
|
|
|
|
|
playSfx("sfx/swallow.ogg"); |
|
|
|
playLoop("loop/stomach.ogg", 0.3); |
|
|
|
|
|
|
|
state.player.stats.stamina.hidden = false; |
|
|
|
state.player.stats.throatPos.hidden = false; |
|
|
|
@@ -865,7 +871,38 @@ |
|
|
|
"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({ |
|
|
|
id: "throat-descent", |
|
|
|
func: () => { |
|
|
|
@@ -879,6 +916,7 @@ |
|
|
|
return false; |
|
|
|
} |
|
|
|
changeStat("throatPos", state.player.flags.throatSurrender ? 0.0005 : 0.0001); |
|
|
|
playLoop("loop/heartbeat.ogg", 0.3 + getStat("throatPos") * 0.7); |
|
|
|
return true; |
|
|
|
}, |
|
|
|
delay: 1000 / 60, |
|
|
|
@@ -891,9 +929,34 @@ |
|
|
|
startTimer({ |
|
|
|
id: "throat-swallows", |
|
|
|
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, |
|
|
|
loop: true, |
|
|
|
@@ -970,6 +1033,7 @@ |
|
|
|
}, |
|
|
|
"enter": (room) => { |
|
|
|
playLoop("loop/stomach.ogg"); |
|
|
|
stopLoop("loop/heartbeat.ogg"); |
|
|
|
|
|
|
|
state.geta.digestionStage = 0; |
|
|
|
state.geta.acidStrength = 1; |
|
|
|
|