Procházet zdrojové kódy

Add a throat struggle

Similar to the maw struggle -- and inescapable, of course.
geta
Fen Dweller před 5 roky
rodič
revize
d1dea1e0a6
1 změnil soubory, kde provedl 64 přidání a 15 odebrání
  1. +64
    -15
      stories/geta-unaware.js

+ 64
- 15
stories/geta-unaware.js Zobrazit soubor

@@ -122,6 +122,8 @@
state.player.stats.stamina = { name: "Stamina", type: "meter", value: 100, min: 0, max: 100, color: "rgb(55,255,55)", hidden: true };
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.player.stats.throatPos = { "name": "Descent", "type": "meter", "value": 0.25, "min": 0, "max": 1, "color": "rgb(155,0,0)", hidden: true }

state.info.time.value = 60 * 60 * 7 + 60 * 17;

state.player.limbs = {};
@@ -758,6 +760,8 @@
},
"exit": (room) => {
state.player.stats.stamina.hidden = true;
state.player.stats.mawPos.hidden = true;
stopClassTimers("maw-struggle");
},
"actions": [
{
@@ -771,7 +775,7 @@
changeStat("stamina", -25);
statLerp("mawPos", 0.15 + Math.random() * 0.05, 250);
}
},
show: [

@@ -842,34 +846,79 @@

playSfx("sfx/swallow.ogg");

state.player.stats.mawPos.hidden = true;
stopClassTimers("maw-struggle");
state.player.flags.throatSurrender = false;
state.player.stats.stamina.hidden = false;
state.player.stats.throatPos.hidden = false;

startTimer({
id: "throat-swallow",
id: "throat-stamina",
func: () => {
changeStat("stamina", 0.03);
return true;
},
delay: 1000/60,
loop: true,
classes: [
"throat-struggle"
]
});
startTimer({
id: "throat-descent",
func: () => {
print(["You slush down into Geta's stomach"]);
goToRoom("stomach");
if (getStat("throatPos") <= 0.01) {
print(["Geta swallows HARD, cramming you back down like the food you are."]);
changeStat("throatPos", 0.1);
statLerp("throatPos", 0.5, 1000);
}
if (getStat("throatPos") >= 0.99) {
goToRoom("stomach");
return false;
}
changeStat("throatPos", state.player.flags.throatSurrender ? 0.0005 : 0.0001);
return true;
},
delay: 7000,
loop: false,
delay: 1000 / 60,
loop: true,
classes: [
"throat-struggle"
]
});

startTimer({
id: "throat-swallows",
func: () => {
print(["Geta's throat pumps you deeper"]);
statLerp("throatPos", 0.1, 1250);
return Math.random() * 2000 + 2000;
},
delay: 2000,
loop: true,
classes: [
"throat-struggle"
]
});


},
"exit": (room) => {

state.player.stats.stamina.hidden = true;
state.player.stats.throatPos.hidden = true;
print(["You slush down into Geta's stomach"]);
stopClassTimers("throat-struggle");
},
"actions": [
{
name: "Struggle",
desc: "Try to climb back out!",
execute: (room) => {
print(["Nope"]);
if (Math.random() * 50 > getStat("stamina")) {
print(["You try your best, but your sore muscles are no match."]);
} else {
print(["Your valiant struggles drag you a little closer to freedom."]);
statLerp("throatPos", -0.15, 1000);
changeStat("stamina", -20);
}
},
show: [

@@ -883,11 +932,12 @@
desc: "Dive down into Geta's stomach",
execute: (room) => {
print(["You submit to your predator."]);
goToRoom("stomach");
stopTimer("throat-swallow");
state.player.flags.throatSurrender = true;
},
show: [

(room) => {
return !state.player.flags.throatSurrender;
}
],
conditions: [

@@ -915,7 +965,6 @@
},
"enter": (room) => {
playLoop("loop/stomach.ogg");
stopClassTimers("maw-struggle");

state.geta.digestionStage = 0;
state.geta.acidStrength = 1;


Načítá se…
Zrušit
Uložit