home *** CD-ROM | disk | FTP | other *** search
- -- A level for Enigma
- -- Name: Khun Phan
- -- Filename: ralf10.lua
- -- Copyright: (C) May 2003 Ralf Westram
- -- Contact: amgine@reallysoft.de
- -- License: GPL v2.0 or above
-
- dofile(enigma.FindDataFile("levels/ralf.lua"))
-
- --debug_mode()
-
- level={
- "*************************",
- "o bbbbbbbbbbbbbbbbbbbbbb*",
- "* *********************b*",
- "* *b*",
- "* ################# *b*",
- "* # ^ ^ ^ ^ # *b*",
- "* #<+=-+> <+=-+># *b*",
- "* # v v v v # *b*",
- "* # ^ ^ ^ ^ ^ # *b*",
- "* #<] <+><+><+><+># *b*",
- "* # |a = | v v # *b*",
- "* # = | = ^ ^ # *b*",
- "* #<+-=+><+><+><+># *b*",
- "* # v v v v v # *b*",
- "* # ^ ^ ^ ^ # *b*",
- "* #<+=-+> <+=-+># *b*",
- "* # v v v v # * o",
- "* ################# ***",
- "* *",
- "* ! t",
- "* *",
- "*************************",
- }
-
- switchpad={
- " x x ",
- "xx xxx",
- " x x ",
- " x x ",
- "xxxxxx",
- " x x ",
- }
-
- bridges=0
- function set_bridge(x,y)
- bridges = bridges+1
- set_floor("fl-bridge",x,y,{name="bridge"..bridges})
- end
-
- switches=0
- function set_switch(x,y,toggle)
- switches=switches+1
- set_item("it-trigger",x,y,{action="openclose",target="bridge"..switches})
- if (toggle==1) then
- enigma.SendMessage(enigma.GetNamedObject("bridge"..switches), "openclose", nil)
- end
- end
-
- function set_pad(pad,x,y)
- padw,padh = get_map_size(pad)
- for py=1,padh do
- for px=1,padw do
- local col = strsub(pad[py],px,px)
- if (col == "x") then
- set_switch(x+px,y+py,0)
- else
- set_switch(x+px,y+py,1)
- end
- end
- end
- end
-
- docx = 0
- docy = 0
- hints = 0
-
- function hint()
- hints = hints+1
-
- if (hints<=2) then
- enigma.PlaySound(enigma.GetNamedObject("soundstone"), "st-magic")
- end
-
- if hints==1 then
- document(docx, docy, "One of the puzzle stones needs to be placed onto the trigger field. Guess which.. :)");
- elseif hints==2 then
- document(docx, docy, "The level preview might help..");
- end
- end
-
- function store_doc_pos(x,y)
- docx,docy=x,y
- end
-
- cells={}
-
-
- cells[" "] = cell{floor="fl-tigris"}
- cells["#"] = cell{parent=cells[" "],stone="st-grate1"}
- cells["*"] = cell{parent=cells[" "],stone="st-rock1"}
- cells["a"] = cell{parent=cells[" "],actor={"ac-blackball", {player=0}}}
- cells["o"] = cell{oxyd}
-
- cells["i"] = cell{parent=cells[" "],stone="st-stoneimpulse"}
- cells["I"] = cell{parent=cells[" "],stone="st-stoneimpulse_movable"}
-
- cells["-"]=cell{{{puzzle, PUZ_0101}}}
- cells[">"]=cell{{{puzzle, PUZ_0001}}}
- cells["<"]=cell{{{puzzle, PUZ_0100}}}
-
- cells["|"]=cell{{{puzzle, PUZ_1010}}}
- cells["^"]=cell{{{puzzle, PUZ_0010}}}
- cells["v"]=cell{{{puzzle, PUZ_1000}}}
-
- cells["+"]=cell{{{puzzle, PUZ_1111}}}
- cells["]"]=cell{{{puzzle, PUZ_1011}}}
- cells["="]=cell{{{puzzle, PUZ_0000}}}
- cells["/"]=cell{{{puzzle, PUZ_0110}}}
- cells["`"]=cell{{{puzzle, PUZ_0011}}}
- cells["."]=cell{{{puzzle, PUZ_1100}}}
- cells[","]=cell{{{puzzle, PUZ_1001}}}
-
- cells["b"]=cell{parent={set_bridge}}
-
- cells["!"] = cell{floor="fl-sahara",parent={store_doc_pos}}
- cells["t"] = cell{parent=cells[" "],stone={face="st-timer",attr={action="callback", target="hint", interval=180, name="soundstone"}}}
-
- rs_create_world(level,cells)
-
- set_pad(switchpad,xlo+13,ylo+7)
-
- display.SetFollowMode(display.FOLLOW_SCROLLING)
- oxyd_shuffle()
-