Golden Goose

This is a simple game done in ScottKit as a basic prototype for my Text Adventure Construction Kit (TACK). Comments welcome. I’m especially looking for commands that is relevant to modern IF gaming.

About 2 hours design on paper and 1.5 hours ScottKit coding and testing.

start rockypath
treasury victory

room limbo "Limbo"

room rockypath "Rocky Path"
  exit north grassyplain
  item rock "rock" called "rock"

room grassyplain "Grassy Plain"
  exit north sandybeach
  exit west cactuspatch
  exit south rockypath
  exit east grassyhill

room cactuspatch "Cactus Patch"
  exit east grassyplain
  item lion "Lion" called "lion"

occur
  select_counter 2
occur when counter_le 1
  set_counter 2

occur 25% 
  dec_counter 

occur when counter_eq 2 and exists lion
  put lion grassyplain

occur when counter_eq 1 and exists lion
  put lion cactuspatch

occur 50% when counter_eq 2 and exists lion and here lion
  print "The lion roars across the plain."

occur 50% when counter_eq 2 and exists lion and at rockypath
  print "You hear a lion roars"

occur 70% when here lion
  print "The lion stares at you."

occur 10% when here lion
  print "The lion eats you!"
  game_over
  print "Throw rock to scare the lion."

action throw rock when carried rock and here lion
  print "The lion runs away!"
  destroy lion
  drop rock

action get lion when here lion
  print "The lion eats you!"
  game_over
  print "Throw rock to scare the lion."

action cut lion when here lion
  print "The lion eats you!"
  game_over
  print "Throw rock to scare the lion."

action throw lion when here lion
  print "The lion eats you!"
  game_over
  print "Throw rock to scare the lion."

room grassyhill "Grassy Hill"
  exit west grassyplain
  item grass "Clump of grass" called "grass"

action get grass
  when present grass and !flag 2
    print "You need to cut the grass first"
    
action cut grass
  when present grass and carried rock and !flag 2
    print "You cut the grass"
    set_flag 2

action cut grass
  when present grass and !flag 2
    print "You need a sharp rock"

action cut grass
  when present grass and flag 2
    print "You already cut the grass"

room sandybeach "Sandy Beach"
  exit north nearsidepond
  exit south grassyplain

room nearsidepond "Nearside Pond"
  exit north middlepond
  exit south sandybeach

occur 
  when at nearsidepond and !carried grass
  print "You sink to the bottom of the pond."
  goto underwater

room underwater "Underwater"
  exit south sandybeach

room middlepond "Middle of Pond"
  exit north farendpond
  exit south nearsidepond

room farendpond "Far End Pond"
  item goose "*Golden Goose*" called "goose"

action throw rock when carried rock and here goose
  print "The goose is annoyed at you."
  put rock underwater

action cut goose when here goose
  print "Don't kill the goose!"
  game_over
  print "You did the very opposite of what you're supposed to do!"

action throw goose when here goose
  print "Let's not annoy the goose."

occur 25% when here goose
  print "The goose honks happily."

occur 75% when here goose
  print "The goose swims peacefully."

occur 
  when carried goose
  print "You get the golden goose!"
  print "Type SCORE to win the game."
  goto victory
  drop goose

room victory "Victory Room"

occur when at nearsidepond and !carried grass
  goto underwater

occur when at middlepond and !carried grass
  goto underwater

occur when at farendpond and !carried grass
  goto underwater

action throw rock when at nearsidepond and carried rock
  put rock underwater
  
action throw rock when at middlepond and carried rock
  put rock underwater

action throw rock when at farendpond and carried rock
  put rock underwater

action throw rock when carried rock
  drop rock

action score: score
action inventory: inventory
action look: look
action save game: save_game

action quit game
  print "Good bye!"
  game_over

action quit:
  print "type QUIT GAME to quit."

action cut:
  print "You can't cut that."

action wear:
  print "You can't wear that."

action throw:
  print "You can't throw that."

verbgroup look Examine x 
verbgroup get take g
verbgroup drop leave 
verbgroup cut slice trim
verbgroup wear don
verbgroup throw lop cast swing 

1 Like

Sorry, a bit slow here. Are you saying you have a prototype in SK that you’re planning to implement in TACK and want to expand the prototype first, or are you asking what should be expanded upon in the TACK version?

I don’t think I can expand it in SK, so any expansion will be done on TACK. In fact, the design has elements that is cut down on SK version. HTH.

I like it! The text has the “terseness” typical of the text in old Scott Adams style adventures. This is a matter of taste of course.

I’d probably add an introduction text that is shown once when you start the game as a less abrupt introduction for the player. Something like:

occur 100% when !flag 1
    set_flag 1
    print "Welcome to Golden Goose Adventure. Your goal is to get the golden goose and not to be eaten by a lion. Happy Adventuring!"

I think SK can be more capable than people initially think, even though some things may be somewhat harder to accomplish.

1 Like

relevant to modern IF:

I think a major feature of modern IF is the lack of random elements, outside text RPG and randomised ambient purple prose.

so, the 10% of the adventurer becoming lion food is rather early old school…

I suggest a reading of the player’s bill of right and Zarf’s rating scale, for a sort of guidance…

Best regards from Italy,
dott. Piergorgio.

2 Likes

Hmmm. The lion is designed as Antagonist to your Protagonist. It creates dramatic tension. I’m not about to eliminate the lion for no good reason whatsoever.

Maybe the solution is to create some kind of timer so that the lion won’t kill you outright? But it’s already balanced by you being able to hear it roars from afar, when it’s at a location where it can be a danger to you.

Also, regarding Zarf’s rating: it’s possible to get stuck if you drop the grass while on water. Should I just drown the player outright?

And here we are again, debating whether IF works are puzzles or games ? :thinking:

Falls foul of the “bug” described here, whereby in ADVENTUR/CMD (and in BeebScott currently) you can’t GET GRASS even after it’s been cut because the AUTOGET/AUTODROP routine isn’t called (because there’s a VERB-NOUN match with an action that blocks GET GRASS when the grass is uncut, but there’s no complementary action that allows GET GRASS after cutting).

2 Likes