Przeglądaj źródła

Add some more absorption and struggle content

geta
Fen Dweller 5 lat temu
rodzic
commit
0b3cc3a627
1 zmienionych plików z 103 dodań i 15 usunięć
  1. +103
    -15
      stories/geta-unaware.js

+ 103
- 15
stories/geta-unaware.js Wyświetl plik

@@ -42,7 +42,10 @@
get disgusting() { return pickRandom(["disgusting", "abhorrent", "rank", "horrific", "nauseating", "sickening", "wretched"]) }, get disgusting() { return pickRandom(["disgusting", "abhorrent", "rank", "horrific", "nauseating", "sickening", "wretched"]) },
get foul() { return pickRandom(["foul", "rank", "gross"]) }, get foul() { return pickRandom(["foul", "rank", "gross"]) },
get fatal() { return pickRandom(["fatal", "deadly"]) }, 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) { function statLerp(stat, change, duration) {
@@ -998,6 +1001,7 @@
func: () => { func: () => {


const choice = Math.random(); const choice = Math.random();
const bonus = state.player.flags.throatSurrender ? 3 : 1


if (choice < 0.7) { if (choice < 0.7) {
print(["Geta's throat pumps you deeper"]); print(["Geta's throat pumps you deeper"]);
@@ -1006,12 +1010,12 @@
"sfx/gulp-2.ogg", "sfx/gulp-2.ogg",
"sfx/gulp-3.ogg" "sfx/gulp-3.ogg"
])); ]));
statLerp("throatPos", 0.1, 1250);
statLerp("throatPos", bonus*0.1, 1250);
return Math.random() * 2000 + 2000; return Math.random() * 2000 + 2000;
} else if (choice < 0.85) { } else if (choice < 0.85) {
if (getStat("throatPos") < 0.4) { 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."]); 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; return Math.random() * 4000 + 2000;
} else { } else {
return Math.random() * 200 + 200; return Math.random() * 200 + 200;
@@ -1020,7 +1024,7 @@
} else { } else {
print(["A crushing swallow grips your body and crams you down deep."]); print(["A crushing swallow grips your body and crams you down deep."]);
playSfx("sfx/big-gulp.ogg"); playSfx("sfx/big-gulp.ogg");
statLerp("throatPos", 0.3, 1500);
statLerp("throatPos", bonus*0.3, 1500);
return Math.random() * 2000 + 2000; return Math.random() * 2000 + 2000;
} }


@@ -1264,12 +1268,49 @@
["A powerful churn grabs hold of you, stifling any attempts at struggling"], ["A powerful churn grabs hold of you, stifling any attempts at struggling"],
["Your little thumps and kicks do little to faze your captor"] ["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: [ show: [


], ],
conditions: [ conditions: [

(room) => {
return !state.player.flags.stunned;
}
] ]
}, },
{ {
@@ -1287,15 +1328,33 @@
} else { } else {
printRandom([ printRandom([
["\"Shhhh,\" growls Geta, \"you're going to die in me. Stop whimpering.\""], ["\"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?\""],
["<i>\"No.\"</i>"],
["\"You're going to die in there &mdash; 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: [ show: [


], ],
conditions: [ 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."]); print(["Geta doesn't notice."]);
} else { } else {
print(["A booming chuckle rocks your body."]); print(["A booming chuckle rocks your body."]);
printRandom([ printRandom([
["\"I hope you're suffering in there.\""], ["\"I hope you're suffering in there.\""],
["\"Pathetic little snack.\""], ["\"Pathetic little snack.\""],
["\"Ready to die?\""]
["\"Ready to die?\""],
["\"Don't suffocate too soon &mdash; I want you to <i>burn</i>.\""],
["\"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: [ show: [


], ],
conditions: [ conditions: [

(room) => {
return !state.player.flags.stunned;
}
] ]
}, },
], ],
@@ -1396,16 +1476,24 @@
func: () => { func: () => {
const result = pickRandom([ 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); 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); 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"); stopTimer("clock");
stopClassTimers("absorption"); stopClassTimers("absorption");
state.player.stats.absorption.hidden = true; 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) => { "exit": (room) => {




Ładowanie…
Anuluj
Zapisz