home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Geschicklichkeit / Enigma / Enigma-081.exe / data / levels / jc02.lua < prev    next >
Text File  |  2003-06-26  |  4KB  |  141 lines

  1. -- Rollercoaster
  2. -- by Jens-Christian Korth
  3. -- 2003-06-24: [ant]: changes in AddConstantForce
  4.  
  5. Force = 10
  6.  
  7. CurrentCheckPoint = 4
  8. LastCheckPoint = 0
  9.  
  10. function SetForce(x,y)
  11.    enigma.AddConstantForce(x,y)
  12. end
  13.  
  14. function CheckPoint(CP)
  15.    if (not (CurrentCheckPoint == CP)) then
  16.       LastCheckPoint = CurrentCheckPoint
  17.       CurrentCheckPoint = CP
  18.       Force = Force + 1
  19.    end
  20. end
  21.  
  22. function sw1()
  23.    CheckPoint(1)
  24.    if (LastCheckPoint == 4) then
  25.       SetForce(0, -Force)
  26.    elseif (LastCheckPoint == 6) then
  27.       SetForce(Force, 0)
  28.    end
  29. end
  30.  
  31. function sw2()
  32.    CheckPoint(2)
  33.    if (LastCheckPoint == 3) then
  34.       SetForce(0, Force)
  35.       enigma.SendMessage(enigma.GetNamedObject("doorL1"), "open", nil)
  36.       enigma.SendMessage(enigma.GetNamedObject("doorL2"), "close", nil)
  37.       enigma.SendMessage(enigma.GetNamedObject("doorL3"), "open", nil)
  38.    else
  39.       SetForce(Force, 0)
  40.    end
  41. end
  42.  
  43. function sw3()
  44.    CheckPoint(3)
  45.    if (LastCheckPoint == 4) then
  46.       SetForce(-Force, 0)
  47.    else
  48.       SetForce(0, Force)
  49.       enigma.SendMessage(enigma.GetNamedObject("doorR1"), "open", nil)
  50.       enigma.SendMessage(enigma.GetNamedObject("doorR2"), "close", nil)
  51.       enigma.SendMessage(enigma.GetNamedObject("doorR3"), "open", nil)
  52.    end
  53. end
  54.  
  55. function sw4()
  56.    CheckPoint(4)
  57.    if (LastCheckPoint == 1) then
  58.       SetForce(0, -Force)
  59.    elseif (LastCheckPoint == 5) then
  60.       SetForce(-Force, 0)
  61.    end
  62. end
  63.  
  64. function sw5()
  65.    CheckPoint(5)
  66.    if (LastCheckPoint == 4) then
  67.       SetForce(-Force, 0)
  68.    else
  69.       SetForce(0, -Force)
  70.       enigma.SendMessage(enigma.GetNamedObject("doorL1"), "open", nil)
  71.       enigma.SendMessage(enigma.GetNamedObject("doorL2"), "open", nil)
  72.       enigma.SendMessage(enigma.GetNamedObject("doorL3"), "close", nil)
  73.       enigma.SendMessage(enigma.GetNamedObject("doorR1"), "close", nil)
  74.       enigma.SendMessage(enigma.GetNamedObject("doorR2"), "open", nil)
  75.       enigma.SendMessage(enigma.GetNamedObject("doorR3"), "open", nil)
  76.    end
  77. end
  78.  
  79. function sw6()
  80.    CheckPoint(6)
  81.    if (LastCheckPoint == 5) then
  82.       SetForce(0, -Force)
  83.       enigma.SendMessage(enigma.GetNamedObject("doorL1"), "close", nil)
  84.       enigma.SendMessage(enigma.GetNamedObject("doorL2"), "open", nil)
  85.       enigma.SendMessage(enigma.GetNamedObject("doorL3"), "open", nil)
  86.       enigma.SendMessage(enigma.GetNamedObject("doorR1"), "open", nil)
  87.       enigma.SendMessage(enigma.GetNamedObject("doorR2"), "open", nil)
  88.       enigma.SendMessage(enigma.GetNamedObject("doorR3"), "close", nil)
  89.    else
  90.       SetForce(Force, 0)
  91.    end
  92. end
  93.  
  94. create_world(20, 13) 
  95. draw_border("st-rock1")
  96. fill_floor("fl-stone", 0,0, level_width,level_height)
  97.  
  98. draw_stones("st-rock1", {2,2}, {1,0}, 16)
  99. draw_stones("st-rock1", {2,5}, {1,0}, 16)
  100. draw_stones("st-rock1", {2,7}, {1,0}, 16)
  101. draw_stones("st-rock1", {2,10}, {1,0}, 16)
  102. draw_stones("st-rock1", {2,2}, {0,1}, 9)
  103. draw_stones("st-rock1", {17,2}, {0,1}, 9)
  104.  
  105. doorh( 1, 5, {name="doorL1"})
  106. doorv( 2, 6, {name="doorL2"})
  107. doorh( 1, 7, {name="doorL3"})
  108. doorh(18, 5, {name="doorR1"})
  109. doorv(17, 6, {name="doorR2"})
  110. doorh(18, 7, {name="doorR3"})
  111.  
  112. set_item("it-trigger",  1,  6, {action="callback", target="sw1"})
  113. set_item("it-trigger",  1,  1, {action="callback", target="sw2"})
  114. set_item("it-trigger", 18,  1, {action="callback", target="sw3"})
  115. set_item("it-trigger", 18,  6, {action="callback", target="sw4"})
  116. set_item("it-trigger", 18, 11, {action="callback", target="sw5"})
  117. set_item("it-trigger",  1, 11, {action="callback", target="sw6"})
  118.  
  119. oxyd( 2, 2)
  120. oxyd( 7, 2)
  121. oxyd(12, 2)
  122. oxyd(17, 2)
  123. oxyd( 2, 5)
  124. fakeoxyd( 7, 5)
  125. fakeoxyd(12, 5)
  126. oxyd(17, 5)
  127. oxyd( 2, 7)
  128. fakeoxyd( 7, 7)
  129. fakeoxyd(12, 7)
  130. oxyd(17, 7)
  131. oxyd( 2,10)
  132. oxyd( 7,10)
  133. oxyd(12,10)
  134. oxyd(17,10)
  135. oxyd_shuffle() 
  136.  
  137. set_actor("ac-blackball", 10,6.5, {player=0})
  138.  
  139. enigma.SendMessage(enigma.GetNamedObject("doorL1"), "open", nil)
  140. enigma.SendMessage(enigma.GetNamedObject("doorL2"), "open", nil)
  141.