Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: data/trunk/scripts/ambush_at_uranus/spaceship_flight.lua @ 4448

Last change on this file since 4448 was 4448, checked in by snellen, 17 years ago

reorganized scripts (put them in folders), implemented levelchange by script, put some npcs in spaceshiptower

File size: 1.8 KB
Line 
1-- Create the trigger
2trigger = ScriptTrigger()
3trigger:setName("spaceship_flight_trigger")
4trigger:setScript("spaceship_flight.lua")
5trigger:setFunction("tick")
6trigger:setAbsCoor(2500, 0, -1695)
7trigger:setTarget("SPACE_CRAFT")
8trigger:setRadius(150)
9
10-- Add Objects
11thisscript:addObject("GameWorld", "Ambush_at_Uranus")
12thisscript:addObject("Spacecraft2D", "SPACE_CRAFT")
13thisscript:addObject("Gate", "Hypergate")
14thisscript:addObject("SpaceShip", "TerranCruizer")
15-- Global Variables
16horizontalmode = false
17gateReached = false
18terrancriuseratgate = false
19
20
21function dist( x1,x2,x3, y1,y2,y3 )
22  return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 )
23end
24
25
26function observeSpaceCraft()
27  SPACE_CRAFTX = SPACE_CRAFT:getAbsCoorX()
28  SPACE_CRAFTY = SPACE_CRAFT:getAbsCoorY()
29  SPACE_CRAFTZ = SPACE_CRAFT:getAbsCoorZ()
30
31  distance = dist(SPACE_CRAFTX,SPACE_CRAFTY,SPACE_CRAFTZ,6053.186035, -2.306574, -1704.989624)
32
33  if distance < 100 then
34    Hypergate:destroy()
35  end
36
37end
38
39function tick(timestep)
40  observeSpaceCraft()
41
42  if not horizontalmode then
43    Ambush_at_Uranus:setPlaymode("Horizontal")
44    Ambush_at_Uranus:setSoundtrack("sound/music/00-luke_grey_-_hypermode.ogg")
45    SPACE_CRAFT:setAirFriction(3.0)
46    horizontalmode = true
47  end
48
49  if not terrancriuseratgate then
50    dx = 70 * timestep
51    dy = 0 * timestep
52    dz = 0 * timestep
53
54    TerranCruizerX = TerranCruizer:getAbsCoorX()
55    TerranCruizerY = TerranCruizer:getAbsCoorY()
56    TerranCruizerZ = TerranCruizer:getAbsCoorZ()
57
58    distance = dist(TerranCruizerX,TerranCruizerY,TerranCruizerZ,6053.186035, -2.306574, -1704.989624)
59
60    if distance < 100  then
61      TerranCruizer:hide()
62      dx = 5000
63      terrancriuseratgate = true
64    end
65
66    TerranCruizer:setAbsCoor(TerranCruizerX + dx, TerranCruizerY + dy, TerranCruizerZ + dz)
67
68  end
69
70 return false
71end
Note: See TracBrowser for help on using the repository browser.