ソースを参照

Add stamina during the maw struggle

Low stamina prevents you from moving forwards, and also makes it possible to slide
back far further than you wanted to.
geta
Fen Dweller 5年前
コミット
1f0fdb3f55
1個のファイルの変更30行の追加5行の削除
  1. +30
    -5
      stories/geta-unaware.js

+ 30
- 5
stories/geta-unaware.js ファイルの表示

@@ -119,6 +119,7 @@
state.geta = {};

state.player.stats.health = { name: "Health", type: "meter", value: 100, min: 0, max: 100, color: "rgb(255,55,55)" };
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.info.time.value = 60 * 60 * 7 + 60 * 17;
@@ -546,6 +547,7 @@
state.player.stats.suspicion.hidden = true;
stopClassTimers("free");

state.player.stats.stamina.hidden = false;
state.player.stats.mawPos.hidden = false;

state.geta.slurps = 0;
@@ -555,6 +557,19 @@

print(["You slip into Geta's maw. He'll swallow you like the snack you are if you slip too far back, but crawl too far forward, and you'll meet his fangs..."])

startTimer({
id: "maw-stamina",
func: () => {
changeStat("stamina", 0.1);
return true;
},
delay: 1000 / 60,
loop: true,
classes: [
"maw-struggle"
]
});

startTimer({
id: "maw-random-movement",
func: () => {
@@ -742,15 +757,21 @@

},
"exit": (room) => {
state.player.stats.stamina.hidden = true;
},
"actions": [
{
name: "Struggle",
desc: "Pull yourself away from the fox's throat! Just don't go too far forward...",
execute: (room) => {
print(["You drag yourself forward"]);
statLerp("mawPos", 0.15 + Math.random() * 0.05, 250);
if (getStat("stamina") < 25) {
print(["You're too tired..."]);
} else {
print(["You drag yourself forward"]);
changeStat("stamina", -25);
statLerp("mawPos", 0.15 + Math.random() * 0.05, 250);
}
},
show: [

@@ -763,7 +784,11 @@
name: "Slip Back",
desc: "Slide back towards Geta's gullet",
execute: (room) => {
if (Math.random() < 0.9) {
if (Math.random() * 25 > getStat("stamina")) {
print(["You try to shimmy back an inch or two, but your sore muscles give way; you slide back perilously far!"]);
statLerp("mawPos", -0.3 - Math.random() * 0.25, 250);
}
else if (Math.random() < 0.9) {
print(["You let yourself slip back."]);
statLerp("mawPos", -0.2 - Math.random() * 0.1, 250);
} else {
@@ -898,7 +923,7 @@
startTimer({
id: "digest-stages",
func: () => {
if (100 - state.geta.digestionStage * 25 - 25> getStat("health")) {
if (100 - state.geta.digestionStage * 25 - 25 > getStat("health")) {
state.geta.digestionStage = Math.floor((100 - getStat("health")) / 25);
console.log(state.geta.digestionStage);
switch (state.geta.digestionStage) {


読み込み中…
キャンセル
保存