[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Enigma-devel] New Level
From: |
Raoul |
Subject: |
[Enigma-devel] New Level |
Date: |
Sat, 02 Dec 2006 23:16:34 +0100 |
User-agent: |
IceDove 1.5.0.8 (X11/20061116) |
Hi,
Here is a new, not too easy, level from Ronald and me.
Please report any security holes (shortcuts).
Have fun
-- Raoul
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<el:level xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://enigma-game.org/schema/level/1 level.xsd"
xmlns:el="http://enigma-game.org/schema/level/1">
<el:protected>
<el:info el:type="level">
<el:identity el:title="Puzzle Puzzles" el:subtitle="look forward!"
el:id="raoul26"/>
<el:version el:score="1" el:release="1" el:revision="22"
el:status="released"/>
<el:author el:name="Raoul Bourquin" el:email="" el:homepage=""/>
<el:copyright>Copyright © 2006 Raoul Bourquin</el:copyright>
<el:license el:type="GPL v2.0 or above" el:open="true"/>
<el:compatibility el:enigma="1.0">
<el:dependency el:path="lib/libpuzzle" el:id="lib/libpuzzle"
el:release="1" el:preload="true"/>
</el:compatibility>
<el:modes el:easy="true" el:single="true" el:network="false"/>
<el:comments>
<el:credits el:showinfo="true " el:showstart="false ">Thanks to Ronald
for developing and debugging this level.</el:credits>
</el:comments>
<el:score el:easy="-" el:difficult="-"/>
</el:info>
<el:luamain><![CDATA[
-- GENERAL --
levelw = 40
levelh = 37
create_world(levelw, levelh)
oxyd_default_flavor="d"
fill_floor("fl-rough")
function renderLine( line, pattern)
for i=1, strlen(pattern) do
local c = strsub( pattern, i, i)
if c=="O" then
oxyd(i-1,line)
elseif c=="#" then
set_stone("st-rock1",i-1,line)
set_floor("fl-black",i-1,line,{friction="7.0", mousefactor="2.0"})
elseif c=="G" then
set_stone("st-glass",i-1,line)
elseif c=="H" then
set_stone("st-glass",i-1,line)
set_floor("fl-water",i-1,line)
elseif c=="J" then
set_stone("st-glass",i-1,line)
set_floor("fl-black",i-1,line,{friction="7.0", mousefactor="2.0"})
elseif c=="D" then
set_stone("st-death",i-1,line)
elseif c=="S" then
set_stone("st-blue-sand",i-1,line)
elseif c=="P" then
set_stone("st-polarswitch",i-1,line)
elseif c=="L" then
set_stone("st-laser",i-1,line,{dir=SOUTH,on=true})
elseif c=="." then
set_stone("st-stoneimpulse-hollow",i-1,line)
set_floor("fl-water",i-1,line)
elseif c=="o" then
set_stone("st-stoneimpulse",i-1,line)
set_floor("fl-water",i-1,line)
elseif c=="E" then
set_stone("st-oneway_black-e",i-1,line)
set_floor("fl-thief",i-1,line,{friction="7.0", mousefactor="2.0"})
elseif c=="B" then
set_stone("st-black1",i-1,line)
elseif c=="X" then
set_stone("st-grate1",i-1,line)
elseif c=="x" then
set_stone("st-grate1",i-1,line)
set_floor("fl-water",i-1,line)
elseif c=="Y" then
set_stone("st-grate1",i-1,line)
set_floor("fl-black",i-1,line,{friction="7.0", mousefactor="2.0"})
elseif c=="W" then
set_stone("st-wood",i-1,line)
elseif c=="K" then
set_stone("st-door_b",i-1,line,{name="door1"})
elseif c=="k" then
set_stone("st-coinslot",i-1,line,{action="openclose",
target="door1"})
elseif c=="F" then
set_stone("st-stone_break",i-1,line)
set_floor("fl-rough",i-1,line)
elseif c=="f" then
set_stone("st-stone_break",i-1,line)
set_floor("fl-water",i-1,line)
elseif c=="-" then
set_floor("fl-rough",i-1,line)
elseif c=="+" then
set_floor("fl-rough_slow",i-1,line)
elseif c=="~" then
set_floor("fl-water",i-1,line)
elseif c=="l" then
set_floor("fl-rough",i-1,line)
set_item("it-extralife",i-1,line)
elseif c=="t" then
set_floor("fl-thief",i-1,line,{friction="7.0", mousefactor="2.0"})
elseif c=="=" then
set_floor("fl-black",i-1,line,{friction="7.0", mousefactor="2.0"})
elseif c=="@" then
set_floor("fl-water",i-1,line)
set_item("it-booze-broken",i-1,line)
elseif c=="8" then
set_floor("fl-water",i-1,line)
set_item("it-booze",i-1,line)
elseif c=="&" then
set_floor("fl-rough",i-1,line)
set_item("it-coin2",i-1,line)
elseif c=="U" then
set_stone("st-glass",i-1,line)
set_floor("fl-rough",i-1,line)
set_item("it-coin2",i-1,line)
elseif c=="u" then
set_stone("st-glass_move",i-1,line)
set_floor("fl-rough",i-1,line)
set_item("it-coin2",i-1,line)
elseif c=="^" then
set_floor("fl-gradient2",i-1,line)
elseif c==">" then
set_floor("fl-gradient3",i-1,line)
elseif c=="v" then
set_floor("fl-gradient1",i-1,line)
elseif c=="<" then
set_floor("fl-gradient4",i-1,line)
elseif c=="!" then
set_floor("fl-gradient2",i-1,line)
set_stone("st-glass",i-1,line)
elseif c=="1" then
set_floor("fl-gradient6",i-1,line)
elseif c=="2" then
set_floor("fl-gradient8",i-1,line)
elseif c=="3" then
set_floor("fl-gradient7",i-1,line)
elseif c=="4" then
set_floor("fl-gradient5",i-1,line)
elseif c=="a" then
set_floor("fl-gradient10",i-1,line)
elseif c=="b" then
set_floor("fl-gradient9",i-1,line)
elseif c=="c" then
set_floor("fl-gradient11",i-1,line)
elseif c=="d" then
set_floor("fl-gradient12",i-1,line)
end
end
end
if not difficult then
renderLine(00 , "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
renderLine(01 , "~~~~~~~~~~~~~~~~~~~~GG~~~~~~GG~~~~L~~~~~")
renderLine(02 , "~~~~~~~~~~~~~~~~~~~~G-------lG~~M-GGM~~~")
renderLine(03 , "~~#####~~~~~~~~~~~~~~-SSSXSS-~~~G----~~~")
renderLine(04 , "~##OvO##~~~~~###^a~~~-S----S-~~~G-P-X~~~")
renderLine(05 , "~#O4v1O##DDD##===3a~~-S------~~~G-G-M.o.")
renderLine(06 , "~#>>~<<======Y====>--------S-~~~MGM-G~H.")
renderLine(07 , "~#O3^2O##DDD##===4b~~~S----S-~~~~~~-~~~.")
renderLine(08 , "~##O^O##~~~~~#HJvb~~~~S-S-SS-~~~-------.")
renderLine(09 , "~~#####~~~~~~~~~~~~~~~~~~----G~~-~~~~~~.")
renderLine(10 , "~~~~~~~~~~~~~~~~~~~~~~~~~-~~GG~~-~~~~...")
renderLine(11 , "~~~~~~~~~~~~~~~~~~~~~H~~~-~~~~~~-~~~H~~~")
renderLine(12 , "~~~~~~~~~~~~~~~~~~~~HMH~P-------l~~HMH~~")
renderLine(13 , "~~~~~~~~~~~~~~~~~~~~~H~~~-~~~~~~S~~~H~~~")
renderLine(14 , "~~G~~~~~~~~~~~H~~~~~~~~~~-~~SSSSS~~~SS~~")
renderLine(15 , "~U------------PH~~~~~~~~~-~~S--------S~~")
renderLine(16 , "~~-G~~~~~~~~~--~~~~~~~~~~-~~S-SSXSSS-S~~")
renderLine(17 , "~~-~~~~~~~~~~~-~~~~~~~~~S-S~S-SX---X-S~~")
renderLine(18 , "~~-G~~~~G~~~~~-~~~~~~H~SS-SSS-X----SSS~~")
renderLine(19 , "~G-------u~~~~-~~~~~HMHGG----------S~~~~")
renderLine(20 , "~~G~~~~G-~~~~~-~~~~~~~~l-X-GSSS---GS~~~~")
renderLine(21 , "~~~~~~~~-~~~~~-~~~~~~~~SS-SSS~SSS-SS~~~~")
renderLine(22 , "~~~~~~~~-~~~~~--~~~~~-~~~&--KSS~~-~--S~~")
renderLine(23 , "~~~~~~~~-~~~~HM-----------fm--------SS~~")
renderLine(24 , "~~~~~~~~-~~~~~H~~~~~HGH~~---k~~~~-~~H~~~")
renderLine(25 , "~~~~~~~~-~~~~~~~~~~~~G~~~-~~HHHHHtHHH~~~")
renderLine(26 , "address@hidden@HtH~~~~~")
renderLine(27 , "address@hidden")
renderLine(28 , "address@hidden")
renderLine(29 , "address@hidden")
renderLine(30 , "address@hidden<==ttt==>~~")
renderLine(31 , "address@hidden<==t=t==>~~")
renderLine(32 , "~~~~~~~~~~~~~~~~-~~~~~~~H-HtH<==ttt==>~~")
renderLine(33 , "GGGG~~~~~~~~~~~G-~~~~~~~H-EtHc1Y===Y4b~~")
renderLine(34 , "G41--------------G~~~~~~HHHHH~c1===4b~~~")
renderLine(35 , "G32G~~~~~~~~~~~~G~~~~~~~~~H~~~~cvvvb~~~~")
renderLine(36 , "GGGG~~~~~~~~~~~~~~~~~~~~~~H~~~~~~~~~~~~~")
else
renderLine(00 , "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
renderLine(01 , "~~~~~~~~~~~~~~~~~~~~GG~~~~~~GG~~~~L~~~~~")
renderLine(02 , "~~~~~~~~~~~~~~~~~~~~G--------G~~M-GGM~~~")
renderLine(03 , "~~#####~~~~~~~~~~~~~~-SSSXSS-~~~G----~~~")
renderLine(04 , "~##OvO##~~~~~###^a~~~-S----S-~~~G-P-X~~~")
renderLine(05 , "~#O4v1O##DDD##===3a~~-S------~~~G-G-Mo..")
renderLine(06 , "~#>>~<<======Y====>-l------S-~~~MGM-G~H.")
renderLine(07 , "~#O3^2O##DDD##===4b~~~S----S-~~~~~~-~~~.")
renderLine(08 , "~##O^O##~~~~~#HGvb~~~~S-S-SS-~~~-------.")
renderLine(09 , "~~#####~~~~~~~~~~~~~~~~~~----G~~-~~~~~~.")
renderLine(10 , "~~~~~~~~~~~~~~~~~~~~~~~~~-~~GG~~-~~~~...")
renderLine(11 , "~~~~~~~~~~~~~~~~~~~~~H~~~-~~~~~~-~~~H~~~")
renderLine(12 , "~~~~~~~~~~~~~~~~~~~~HMH~P--------~~HMH~~")
renderLine(13 , "~~~~~~~~~~~~~~~~~~~~~H~~~-~~~~~~S~~~H~~~")
renderLine(14 , "~~G~~~~~~~~~~~H~~~~~~~~~~-~~SSSSS~~~SS~~")
renderLine(15 , "~U------------PH~~~~~~~~~-~~S--------S~~")
renderLine(16 , "~~-G~~~~~~~~~--~~~~~~~~~~-~~S-SSXSSS-S~~")
renderLine(17 , "~~-~~~~~~~~~~~-~~~~~~~~~S-S~S-SX---X-S~~")
renderLine(18 , "~~-G~~~~G~~~~~-~~~~~~H~SS-SSS-X----SSS~~")
renderLine(19 , "~G-------u~~~~-~~~~~HMHGG--FF------S~~~~")
renderLine(20 , "~~G~~~~G-~~~~~-~~~~~~~~l-X-GSSS---GS~~~~")
renderLine(21 , "~~~~~~~~-~~~~~-~~~~~~~~SS-SSS~SSS-SS~~~~")
renderLine(22 , "~~~~~~~~-~~~~~--~~~~~-~~~&--KSS~~-S~~~~~")
renderLine(23 , "~~~~~~~~-~~~~HM-----------~m------SS~~~~")
renderLine(24 , "~~~~~~~~-~~~~~H~~~~~HGH~~---kSSS---SSSSS")
renderLine(25 , "address@hidden")
renderLine(26 , "address@hidden")
renderLine(27 , "address@hidden")
renderLine(28 , "~~~~~~~G---------G~~---~~~-@@xd2===3a~~~")
renderLine(29 , "~~~~~~~~G~~~~~~G-~~~---~~~-@@d2=====3a~~")
renderLine(30 , "~~~~~~~~~~~~~~~~-~~~---~~~t@@<=======>~~")
renderLine(31 , "~~~~~~~~~~~~~~~~-~~~~~~~~~t@@<=======>~~")
renderLine(32 , "~~~~~~~~~~~~~~~~-~~~~~~~~~EBE<=======>~~")
renderLine(33 , "GGGG~~~~~~~~~~~G-~~~~~~~~~HHHc1=====4b~~")
renderLine(34 , "G41--------------G~~~~~~~~H~~~c1===4b~~~")
renderLine(35 , "G32G~~~~~~~~~~~~G~~~~~~~~~H~~~~cvvvb~~~~")
renderLine(36 , "GGGG~~~~~~~~~~~~~~~~~~~~HHH~~~~~~~~~~~~~")
end
---- FUNCTIONS ----
function set_random_mirror(x,y,m)
r=random(1,3)
strg={"|","/","-"}
kind=strg[r]
set_stone("st-mirror-p"..kind..m,x,y)
end
function set_lock()
kind=random(1,2)
if kind==1 then -- upper part missing
set_stone("st-puzzle2-s",33,31)
set_stone("st-puzzle2-n",14,6)
set_stone("st-puzzle2-ns",14,5)
set_stone("st-rock1",15,6)
set_stone("st-rock1",15,5)
set_item("it-seed",14,7)
else -- lower part missing
set_stone("st-puzzle2-s",14,6)
set_stone("st-puzzle2-n",33,31)
set_stone("st-puzzle2-ns",14,7)
set_stone("st-glass",15,6)
set_stone("st-glass",15,7)
set_item("it-seed",14,5)
end
end
function set_water_1()
-- close way from the north
set_stone("st-oneway_black-n",33,27)
enigma.NameObject(enigma.GetStone(26,33), "a1")
SendMessage("a1","flip")
SendMessage("b3","close")
SendMessage("b4","close")
enigma.KillItem(33,24)
end
function set_water_2()
-- close way from the north
set_stone("st-oneway_black-n",33,27)
enigma.NameObject(enigma.GetStone(28,32), "a1")
SendMessage("a1","flip")
set_floor("fl-rough",26,30)
set_floor("fl-rough",26,31)
set_floor("fl-rough",26,32)
enigma.KillItem(33,24)
end
---- PUZZLES ----
-- W
puzzle({{0,1,1},{1,1,0},{1,0,0}},23,6,"blue","no")
-- Z
puzzle({{0,1,1},{0,2,0},{1,1,0}},32,18,"blue","no")
set_stone("st-puzzle-hollow",33,19)
-- shell_lower_part
shuffle_method="permutation"
puzzle({{1,1,0,1,1},{0,1,1,1,0},{0,0,1,0,0}},31,31,"blue","yes")
-- shell_upper_part
puzzle({{0,1,0},{1,1,1}},32,29,"blue","yes")
-- -
puzzle({{1,2,1}},34,3,"blue","no")
set_stone("st-puzzle-hollow",35,3)
-- |
puzzle({{1},{2},{1}},33,2,"blue","no")
set_stone("st-puzzle-hollow",33,3)
-- T
puzzle({{0,0,1},{1,2,1},{0,0,1}},33,7,"blue","no")
set_stone("st-puzzle-hollow",34,8)
---- ITEMS ----
set_item("it-magicwand",33,28)
set_item("it-banana",33,5)
set_item("it-cherry",25,20)
set_item("it-cherry",33,3)
set_item("it-cherry",21,29)
set_item("it-cross",14,6)
set_item("it-seed",13,6)
set_item("it-cross",25,21)
set_item("it-spoon",33,34)
if not difficult then
set_item("it-puller-n",35,8)
set_item("it-hammer",36,22)
set_item("it-booze",26,32)
else
set_item("it-hammer",34, 24)
end
---- MIRRORS ----
set_stone("st-mirror-p/",21,12)
set_stone("st-mirror-p/",36,12)
set_stone("st-mirror-p/",21,19)
set_stone("st-mirror-p/",32,2)
set_random_mirror(36,2,"")
set_random_mirror(32,6,"")
set_random_mirror(34,6,"")
set_random_mirror(14,23,"")
set_stone("st-mirror-p-tm",36,5)
set_random_mirror(25,22,"m")
set_random_mirror(27,23,"m")
set_lock()
---- BRIDGES ----
if not difficult then
set_floor("fl-bridge-open",27,19,{name="b3", type="a"})
set_floor("fl-bridge-open",28,19,{name="b4", type="a"})
set_item("it-trigger",33,24,{action="callback", target="set_water_1"})
else
set_item("it-trigger", 33, 24, {action="callback", target="set_water_2"})
end
------ ACTOR ----
set_actor("ac-blackball", 2,35, {player=0})
oxyd_shuffle()
]]></el:luamain>
<el:i18n>
<el:string el:key="title">
<el:english el:translate="false"/>
</el:string>
</el:i18n>
</el:protected>
</el:level>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Enigma-devel] New Level,
Raoul <=