diff --git a/stories/geta-unaware.js b/stories/geta-unaware.js
index 909d2d9..69c074b 100644
--- a/stories/geta-unaware.js
+++ b/stories/geta-unaware.js
@@ -42,7 +42,10 @@
get disgusting() { return pickRandom(["disgusting", "abhorrent", "rank", "horrific", "nauseating", "sickening", "wretched"]) },
get foul() { return pickRandom(["foul", "rank", "gross"]) },
get fatal() { return pickRandom(["fatal", "deadly"]) },
- get painful() { return pickRandom(["painful", "agonizing", "unbearable"]) }
+ get painful() { return pickRandom(["painful", "agonizing", "unbearable"]) },
+ get wet() { return pickRandom(["wet", "damp", "soaking-wet", "drenched", "soaked"]) },
+ get hot() { return pickRandom(["hot", "sweltering"]) },
+ get choking() { return pickRandom(["choking", "suffocating", "unbreathable", "thick", "asphyxiating"]) }
}
function statLerp(stat, change, duration) {
@@ -998,6 +1001,7 @@
func: () => {
const choice = Math.random();
+ const bonus = state.player.flags.throatSurrender ? 3 : 1
if (choice < 0.7) {
print(["Geta's throat pumps you deeper"]);
@@ -1006,12 +1010,12 @@
"sfx/gulp-2.ogg",
"sfx/gulp-3.ogg"
]));
- statLerp("throatPos", 0.1, 1250);
+ statLerp("throatPos", bonus*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);
+ statLerp("throatPos", bonus*0.05, 2000);
return Math.random() * 4000 + 2000;
} else {
return Math.random() * 200 + 200;
@@ -1020,7 +1024,7 @@
} else {
print(["A crushing swallow grips your body and crams you down deep."]);
playSfx("sfx/big-gulp.ogg");
- statLerp("throatPos", 0.3, 1500);
+ statLerp("throatPos", bonus*0.3, 1500);
return Math.random() * 2000 + 2000;
}
@@ -1264,12 +1268,49 @@
["A powerful churn grabs hold of you, stifling any attempts at struggling"],
["Your little thumps and kicks do little to faze your captor"]
]);
+
+ if (Math.random() < 0.05) {
+ print(["Geta slaps his stomach, slamming your head and throwing you back."]);
+ state.player.flags.stunned = true;
+ stopTimer("stomach-stun");
+ startTimer({
+ id: "stomach-stun",
+ func: () => {
+ state.player.flags.stunned = false;
+ return false;
+ },
+ delay: 3000,
+ loop: false,
+ classes: [
+ "digestion"
+ ]
+ });
+
+ } else {
+
+ state.player.flags.stunned = true;
+ stopTimer("stomach-stun");
+ startTimer({
+ id: "stomach-stun",
+ func: () => {
+ state.player.flags.stunned = false;
+ return false;
+ },
+ delay: 2000,
+ loop: false,
+ classes: [
+ "digestion"
+ ]
+ });
+ }
},
show: [
],
conditions: [
-
+ (room) => {
+ return !state.player.flags.stunned;
+ }
]
},
{
@@ -1287,15 +1328,33 @@
} else {
printRandom([
["\"Shhhh,\" growls Geta, \"you're going to die in me. Stop whimpering.\""],
- ["A long moment passes. \"Poor thing,\" says your captor."]
+ ["A long moment passes. \"Poor thing,\" says your captor. \"Shouldn't have gotten so nosy, hmm?\""],
+ ["\"No.\""],
+ ["\"You're going to die in there — and I'm going to enjoy it.\""]
])
}
+ state.player.flags.stunned = true;
+ stopTimer("stomach-stun");
+ startTimer({
+ id: "stomach-stun",
+ func: () => {
+ state.player.flags.stunned = false;
+ return false;
+ },
+ delay: 1000,
+ loop: false,
+ classes: [
+ "digestion"
+ ]
+ });
},
show: [
],
conditions: [
-
+ (room) => {
+ return !state.player.flags.stunned;
+ }
]
},
{
@@ -1314,22 +1373,43 @@
]
]);
- if (Math.random() < 0.5) {
+ if (Math.random() < 0.6) {
print(["Geta doesn't notice."]);
} else {
print(["A booming chuckle rocks your body."]);
printRandom([
["\"I hope you're suffering in there.\""],
["\"Pathetic little snack.\""],
- ["\"Ready to die?\""]
+ ["\"Ready to die?\""],
+ ["\"Don't suffocate too soon — I want you to burn.\""],
+ ["\"You get what you deserve.\""],
+ ["\"So weak.\""],
+ ["\"Enjoy your death.\""]
]);
}
+
+ state.player.flags.stunned = true;
+ stopTimer("stomach-stun");
+ startTimer({
+ id: "stomach-stun",
+ func: () => {
+ state.player.flags.stunned = false;
+ return false;
+ },
+ delay: 1500,
+ loop: false,
+ classes: [
+ "digestion"
+ ]
+ });
},
show: [
],
conditions: [
-
+ (room) => {
+ return !state.player.flags.stunned;
+ }
]
},
],
@@ -1396,16 +1476,24 @@
func: () => {
const result = pickRandom([
() => {
- print(["The fox kneads on his flattening belly"]);
+ print(["A " + word.foul + " belch pours from Geta's maw."]);
+ statLerp("absorption", 0.05, 1000);
+ },
+ () => {
+ print(["Powerful muscle grinds down your softening remains."]);
statLerp("absorption", 0.1, 1000);
},
() => {
- print(["A crass belch pours from Geta's maw"]);
- statLerp("absorption", 0.05, 1000);
+ print(["The fox kneads on his flattening belly."]);
+ statLerp("absorption", 0.1, 1000);
},
() => {
- print(["Geta's guts writhe and squeeze, soaking up your digested body and crushing your acid-pitted bones"]);
+ print(["Geta's guts writhe and squeeze, soaking up your digested body and crushing your acid-pitted bones."]);
statLerp("absorption", 0.2, 1000);
+ },
+ () => {
+ print(["A brutal clench shreds your melting flesh, sealing your fox-fuel fate in seconds."]);
+ statLerp("absorption", 1, 2000);
}
])();
@@ -1469,7 +1557,7 @@
stopTimer("clock");
stopClassTimers("absorption");
state.player.stats.absorption.hidden = true;
- print(["Your erasure is completed with a dull, slimy gurgle. Geta has destroyed you."]);
+ print(["Your erasure is completed with a deep, drawn-out gurgle; with flesh stripped from bone and life utterly extinguished, there is room left no doubt: Geta has destroyed you. Perhaps your meager contribution to his body will be remembered...but you won't even take long to burn off."]);
},
"exit": (room) => {