[world] name = "Dark Maze" start = "cave" [scripts] # An always-talking object. Placed behind a wall so it starts out of the player's # field of view — its bubble should draw with NO tail until you can see it. hidden = """ fn tick(me, dt) { if !me.waiting { say("Who's there?"); delay(2); } } """ # A talker placed in the open near the player, so its bubble keeps its tail. lantern = """ fn init(me) { say("A warm light\\nflickers here."); } fn bump(me, _dir) { say("The lantern\\nglows steadily."); } """ [boards.cave.map] name = "The Cave" width = 40 height = 15 dark = true floor = { generator = "stone" } # A room the player stands in, with a wall dividing it. The 'H' object sits in # the far chamber behind the wall (out of sight until you walk around); the 'L' # lantern sits in the open with the player. [boards.cave.grid] content = """ ######################################## # # # # # ########### # # # # # # @ # H # L # # # # # # #### ###### # # # # # # # # # # # # # ######################################## """ [boards.cave.grid.palette] "#" = { kind = "wall", tile = "#", fg = "#808080", bg = "#404040" } "@" = { kind = "player" } "H" = { kind = "object", tile = 2, fg = "#cc66cc", bg = "#000000", solid = true, name = "hidden", script_name = "hidden" } "L" = { kind = "object", tile = 15, fg = "#ffdd88", bg = "#000000", solid = true, name = "lantern", script_name = "lantern" }