(() => { function checkSuspicion(state, add=0) { state.player.stats.suspicion.value += add; if (state.player.stats.suspicion.value >= 100) { print(["Geta spots you!", "You're snatched up and tossed into the fox's bowl of cereal."]); goToRoom("in-bowl", state); return false; } return true; } stories.push({ "id": "unaware-geta", "name": "Geta's Breakfast", "tags": [ "Player Prey", "Digestion", "Macro/Micro" ], "intro": { "start": "pepper-grinder", "setup": state => { state.player.stats.suspicion = {name: "Suspicion", type: "meter", value: 0, min: 0, max: 100, color: "rgb(100,100,100)"}; }, "intro": state => { print(["Game started"]); } }, "sounds": [ ], "preload": [ ], "world": { "pepper-grinder": { "id": "pepper-grinder", "name": "Pepper Grinder", "desc": "You're hiding behind a pepper grinder", "move": (room, state) => { print(["You dart over to the pepper grinder, which looms over you like a greatwood."]); }, "enter": (room, state) => { }, "exit": (room, state) => { }, "actions": [ { name: "Tap", desc: "Bang on the pepper shaker", execute: (room, state) => { print(["You thump the pepper shaker, making a dull thud."]); checkSuspicion(state, 25); }, show: [ ], conditions: [ ] }, ], "exits": { "up": { "target": "bowl", "desc": "Walk up to the cereal bowl", "show": [ ], "conditions": [ ], "hooks": [ (room, exit, state) => { return checkSuspicion(state, 10); } ] }, }, "hooks": [ ], "data": { "stats": { } } }, "bowl": { "id": "bowl", "name": "Behind the Bowl", "desc": "You're crouched behind Geta's bowl of cereal", "move": (room, state) => { print(["You scurry up to the looming bowl, staying low and out of Geta's sight."]); }, "enter": (room, state) => { }, "exit": (room, state) => { }, "actions": [ ], "exits": { "ascend": { "target": "in-bowl", "desc": "Climb into Geta's cereal", "show": [ ], "conditions": [ ], "hooks": [ ] }, "down": { "target": "pepper-grinder", "desc": "Run back behind the pepper grinder", "show": [ ], "conditions": [ ], "hooks": [ ] }, }, "hooks": [ ], "data": { "stats": { } } }, "in-bowl": { "id": "in-bowl", "name": "Bowl", "desc": "You're in the cereal bowl...", "move": (room, state) => { print(["Why did you do that?"]); }, "enter": (room, state) => { startTimer({ id: "geta-eat", func: state => { if (Math.random() < 0.6) { print(["Geta scoops up a spoonful of cereal; you narrowly avoid being caught."]); return true; } else { print(["Geta scoops you up and slurps you into his maw."]); goToRoom("maw", state); return false; } }, delay: 3000, loop: true, classes: [ ] }, state); }, "exit": (room, state) => { }, "actions": [ ], "exits": { }, "hooks": [ ], "data": { "stats": { } } }, "maw": { "id": "maw", "name": "Geta's Maw", "desc": "You've been slurped up into the fox's jaws", "move": (room, state) => { }, "enter": (room, state) => { startTimer({ id: "swallow", func: state => { print(["It's too late to escape. You're swallowed down."]); goToRoom("throat", state); return true; }, delay: 5000, loop: false, classes: [ ] }, state); }, "exit": (room, state) => { }, "actions": [ ], "exits": { }, "hooks": [ ], "data": { "stats": { } } }, "throat": { "id": "throat", "name": "Geta's Gullet", "desc": "GULP!", "move": (room, state) => { }, "enter": (room, state) => { startTimer({ id: "gut", func: state => { print(["You slush down into Geta's stomach"]); goToRoom("stomach", state); return true; }, delay: 7000, loop: false, classes: [ ] }, state); }, "exit": (room, state) => { }, "actions": [ ], "exits": { }, "hooks": [ ], "data": { "stats": { } } }, "stomach": { "id": "stomach", "name": "Geta's Stomach", "desc": "Glorp", "move": (room, state) => { }, "enter": (room, state) => { startTimer({ id: "digest", func: state => { print(["You're digested before too long."]); goToRoom("digested", state); return true; }, delay: 10000, loop: false, classes: [ ] }, state); }, "exit": (room, state) => { }, "actions": [ { name: "Squirm", desc: "Rub at the walls of the fox's churning stomach", execute: (room, state) => { printRandom([ ["You punch and kick at the walls"], ["A powerful churn grabs hold of you, stifling any attempts at struggling"], ["Your little thumps and kicks do little to faze your captor"] ]); }, show: [ ], conditions: [ ] }, ], "exits": { }, "hooks": [ ], "data": { "stats": { } } }, "digested": { "id": "digested", "name": "Fat", "desc": "You're just fat now", "move": (room, state) => { }, "enter": (room, state) => { }, "exit": (room, state) => { }, "actions": [ { name: "Gurgle", desc: "Glorp", execute: (room, state) => { printRandom([ ["Grrrrgle"], ["Glorp"], ["Glrrrrrrnnnnnn..."], ["Gwoooooorgle"] ]); }, show: [ ], conditions: [ ] }, ], "exits": { }, "hooks": [ ], "data": { "stats": { } } }, } }); })();