Cloak of Darkness - 1999




For comparison purposes, here is a port of the hello-world-esque reference text-adventure "game" Cloak of Darkness (by Roger Firth) to Adventuron. Apologies for the poor "art".

A playthrough follows after the source.

Source:
start_at       = foyer
intro_graphic  = cod

setup    / dark_expression = is_dark
themes   / theme layout = "H LG D O" ; // We customize the layout to remove automatic exit listing
integers / message_tidyness : integer "3" min="0" ;
booleans / is_dark : boolean_dynamic {(is_at "bar" && is_present "cloak" )} // dark if at bar with cloak present (worn or unworn)

rooms {
   foyer     : room "You stand in the foyer. Exits lead north, south, and west." header="Foyer" ;
   cloakroom : room "You see a hook.\nThe foyer lies to the east." header="Cloakroom" ;
   bar       : room "You see a message scrawled in sawdust." header="Bar" ;
}

navigation {
   from, direction, to = [
      foyer, south, bar, 
      foyer, west, cloakroom, 
   ]
}

objects {
   cloak   : wearable  "a black velvet cloak" start_at="inventory" initially_worn="true" examine_message="The cloak appears to be light absorbent." ;
   hook    : scenery "a hook" conspicuous="false" start_at="cloakroom" ;
   sawdust : scenery "sawdust" conspicuous="false" start_at="bar" ;
}

on_command {
   : if (is_at "bar") {
      : match "n _"  {
         : goto "foyer" ;
         : redescribe ;
      }
      : match "examine sawdust; read sawdust; examine message; read message" {
         : if (message_tidyness == 0) {
            : print "The message seems to have been disrupted, you read, \"You have lost!\"." ;
         }
         : else {
            : print "The message reads ... you have won the game !" ;
         }
         : end_game ;
      }
      : if (is_dark) {
         : print "You disturb something in the dark" ;
         : decrement "message_tidyness" ;
      }
   }
   : else_if (is_at "foyer") {
     : match "n _"  {
        : print "You only just arrived, no need to leave now !" ; : done ;
     }
   }
   : else_if (is_at "cloakroom" && is_exists "cloak") {
      : match "hang cloak"  {
         : print "You hang the cloak on the hook." ;
         : destroy "cloak" ;
         : done;
      }
   }
}

assets {
   graphics {
      cod : base64_png "iVBORw0KGgoAAAANSUhEUgAAAQAAAACgCAIAAABseyVrAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAiOSURBVHhe7dhLluWoDgXQHMhr1vxnVnN4XinFKYKPEDLGNj570chAH4ytW436Q0RERERERERERERERERERERERERERERERERERETq3//9012aSrSNbMRPLm1K9HzZ7B5LA21Zvr20huiBLprUtC2Wxoie4+rRxPRffRBRBOeSvus5/2Hm75Bu8Jyx4w+AbsAfAH0afwD0afwB0KfxB0Cfxh/ARBtc4XOe8802mB65wttv8SGP+mB7jM4et/iKR32tPUZnj1t8xaO+1h6jI7fY4CKf8KhPtc3cbHOR/cmnesLXes6TnLfNRT7hIV9rp6HZ6S77e8jX2mlodrrL/h7ytXYaGrnLNtfZ3EO+1mYTs9l1NveEr7XZxFx3nZ3e0lPI17r3zc59gNtvdNHpt99rW2tea+sU2T/5AGiSLQ2vNf10NJzYk/6z5uW2jjhztBRKh3Rh82/WDWadLn2wdJemu/oVG/3D5xo9D5626JAtDZ9wvg8e5nwrcrn0RRvNw+dKYawtartLCwaFa3Eulgboate9cbtz+FC70IhKyJnQyrGNFuKsdGmMlrno1ds9wyeG29qFB0mwc2z+cpyFpQG6xdxvgI9q9LSjhlhb2e8WdtNs3Vr0x9IA3ev8J0k7YGmsppvQYhe2onbVAQndTEOrVvazpbG/yh1aDR9m9GNkhbI01uZMy3T7t6J21QEJ3UxDWSs76dJAwgjRDfA9RpfW+xglsZBoJfgLu5mGrEm6JKGqm0A3wJfzLK0ZYRTGQgeJVhPswgMSupkGqc2WxtqcabSV1ny09oUROnQLPdH036NQO1QeKKEd4MNXlyb9ZoQOnmg1IdtvpXWdLIzV0lvhq2dLwzVGjhEC5FSXJv2k6R8jwoWHM7X0ITIo5aw4Bwjl2dLwX9VNj1iVOFNL31LOiuxMHKBYtzPPILXhcvoQzEq2NDxDrOfJx4gdSl+EWcHSwDyBzuefJHAo0VVGx3HK7E5pQjSHjGM6keUOtPaHGP2JboCJTJfGfjNCQ+xTiFbDRNpz2U3wm9iKroVPVS7NOG1iq6tNvPjcd0iXkI/kXFrjk9UeSwPPNvFR33XxL+p+ISRkS8MNWbIsjT3e3Kd9190/Z/TzSL5RlSa0ch5u7pO/+lVsCN+jujSpp5WP/TL0ItOf/+0v5PXkA4wuLW4oc5yFzzf9Fnu8lleSV58tjZlDXIYyZUK35C2mX0Qa7vFyXgMv3Xj1RshWti13KMX3sxRet/3GuwktZWG41XfwFS0iL/rSd132v/rEDfAVrSBv+eoXXR6x4FCiDpnCBYNYnrLmXCLLsiksD1p2NFHTmimUU7KD1hxNZFkzhdVT1hxNZFkzhdVT1hxNZFkzhdVTZDNbGiNaY8HYtYYb+2eW9iKKWTBJrf7Vo7HpX1pJFHPpJNnNrzuXaIA9pmFo2+pshIiWmjuL0q3bs5tAtIhnXp3QqtvNk0O0CKY2MJRprSwNtPkzidbBXBrTmeWUS/NM/kyi1TDK/qWVPrEqotUwqdnScMisPkSvxNGn7+J/+4mIiIiIiIiI1uP/k6GPwuhnS8NEGysnPt3BJtGejCnHb6CVQPR63fnGb8BOI3of/2Qj05NM9A5DM41kZz7RC4wONH8DtJXANPM3QJsIjzJ/ALQD/gDouzD9gVEOFxI9BYY4NsfhQqJHwPTH5jhcSHQ/jH54jsOFRDdL5z48x+FCopulsxue43Ah0c3S2Q3PcbiQ6E4yuJjd8ByHCy/1zKeiB8lGJDwx4cJLzXqqB16N5shGJDwx4cJLOZ/KzpEmWLo71awjzneoQtvpne+X3Sp2SakKFF7Nfio89lBadWnquKxPujTDLSs/lgZOyBrK0tge0lul/x4Sq1rAeDAJYeluAvtZgvxZXZrhkBUeSwO/Q7rlk5bEOqTQIe2T/bkJXCl8t3Dh1eTBymdr7aeQ0808eHIAPY0qO1qV5Q/VZqRV1nBbuGf4wuHCBarP5nlgyfFkHu7NFEPJtomtXkBui6W7buHCNcpncz4w0rqZwpM51PBwXbJB+kxp9Q64cOzOrcKsZyutBeWjhZms3N8QmZ7kgyfZ300M5Y82r5Im5/u8zJlrl4XoVl2aZMpKqktTe5CMQvmzazT/YOfb0aqh/NHmVVOavI9cO3DzshA72Ex3ZMl+SzUNm9nScFuWL0tjptF8YeTHWvlLRvuXRk/cR+zmZVW5k7Kj4Mk5oJudn+Wk/7Yh05MMRr6zlaSlSwM9o/mlk+UvFnt3WYmniT9H/zChW6ukGi13qpDWzUwZJQj5l1a6hQvFmdrXG7q8JGcl2Z9VZVXJ08ev2s1zhOR000pGFXraS7NDzjQ5f/qL+S8vmWV+uVPVTXP2cap2k037FE9OlVEV7jkEp4weFCjZh/PyklbNPN/hYEcDWt26p0iCnVNlV8V6BshBQ8eN5m+le3O8nVaaEUp5mrSiAa1u3YO6CS0XtRWj5ch3VjnTNmTcXEJYuluwo4A+1WQ7GmC0sk+RqJHQ0q0KdEZJujTm4C/05Oypem28jmo048k5oFsr2Y6OCh9kRw2eKjS3M9M0rGxfMp08Vcix03aDC+Py6ZIcmzMZaWly+W/8eZLdzYgaVTajZwppzqVlCTvakpVUa5FTje4pvXO6NOzjKUQUmVhpAv48z+429yzh7ymZxtK8hqFkyKqwNPzDju5m1lXTPsaqJmeb8ud5dre5Z4krehrkuKFD02TUYieVRqsJm5h7Pbyv6tKkNmeak91t7lniip5dcqjz6DKz3MkgwU6jx1n/wW4cETna8wDVnG4tEowcojulMypLA7+1QnaVQI6dRnSbdEZlaeBHdVO0SjKeHKKbYZqrS5MK/hz9g+jhMNBYGmjIko+lgR/VTaKtYPpbS/OItpeN/rE0QERERERERERERERERERERERENOTPn/8DBNss8j34718AAAAASUVORK5CYII=";
   }
}

Playthrough:


Comments

Popular Posts