-- Knock Knock! -- A level for Enigma -- Copyright (c) 2002 Nat Pryce -- License: GPL v2.0 or above function send_message( obj_name, message ) obj = enigma.GetNamedObject( obj_name ) enigma.SendMessage( obj, message, nil ) end function noop() -- do nothing end function trigger( x, y ) set_item( "it-trigger", x, y, {target="callback",action="noop"} ) end -- An island with a sandy beach create_world(20,13) fill_floor( "fl-water", 0, 0, level_width, level_height ) fill_floor( "fl-sand", 1, 1, level_width-2, level_height-2 ) fill_floor( "fl-leaves", 2, 2, level_width-4, level_height-4 ) fill_floor( "fl-gray", 10,3, 7, 7 ) -- A castle on the east side of the island function toggle_door( toggle_on ) if toggle_on == 1 then send_message( "door", "close" ) else send_message( "door", "open" ) end end draw_stones( "st-greenbrown", {11,3}, {1,0}, 5 ) draw_stones( "st-greenbrown", {11,9}, {1,0}, 5 ) set_stone( "st-greenbrown", 10, 4 ) set_stone( "st-greenbrown", 10, 5 ) doorv( 10, 6, {name="door"} ) set_stone( "st-greenbrown", 10, 7 ) set_stone( "st-greenbrown", 10, 8 ) draw_stones( "st-greenbrown", {16,4}, {0,1}, 5 ) y = random(5,7) set_item( "it-trigger", 16, y, {action="callback",target="toggle_door"} ) set_stone( "st-greenbrown_move", 16, y ) oxyd_default_flavor = "a" -- Default flavor for oxyd stones. oxyd(10,3) oxyd(11,4) oxyd(16,3) oxyd(15,4) oxyd(10,9) oxyd(11,8) oxyd(16,9) oxyd(15,8) -- The puzzle to open the front door. trigger(4,4) trigger(5,5) trigger(7,7) trigger(8,8) trigger(8,4) trigger(7,5) trigger(5,7) trigger(4,8) set_stone( "st-brownie", 3, 6 ) set_stone( "st-brownie", 6, 3 ) set_stone( "st-brownie", 6, 9 ) set_stone( "st-brownie", 9, 6 ) set_actor("ac-blackball", 6.5, 6.5, {player=0})