Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

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

File size: 1.8 KB
RevLine 
[4202]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
[4114]11thisscript:addObject("GameWorld", "Ambush_at_Uranus")
[4094]12thisscript:addObject("Spacecraft2D", "SPACE_CRAFT")
[4202]13thisscript:addObject("Gate", "Hypergate")
14thisscript:addObject("SpaceShip", "TerranCruizer")
15-- Global Variables
16horizontalmode = false
17gateReached = false
18terrancriuseratgate = false
[3905]19
20
[4202]21function dist( x1,x2,x3, y1,y2,y3 )
[4328]22  return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 )
[4202]23end
[3905]24
[4202]25
26function observeSpaceCraft()
[4328]27  SPACE_CRAFTX = SPACE_CRAFT:getAbsCoorX()
28  SPACE_CRAFTY = SPACE_CRAFT:getAbsCoorY()
29  SPACE_CRAFTZ = SPACE_CRAFT:getAbsCoorZ()
[4202]30
[4328]31  distance = dist(SPACE_CRAFTX,SPACE_CRAFTY,SPACE_CRAFTZ,6053.186035, -2.306574, -1704.989624)
[4202]32
[4328]33  if distance < 100 then
34    Hypergate:destroy()
35  end
[4202]36
37end
38
[3919]39function tick(timestep)
[4328]40  observeSpaceCraft()
[3919]41
[4328]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
[3919]48
[4328]49  if not terrancriuseratgate then
50    dx = 70 * timestep
51    dy = 0 * timestep
52    dz = 0 * timestep
[4202]53
[4328]54    TerranCruizerX = TerranCruizer:getAbsCoorX()
55    TerranCruizerY = TerranCruizer:getAbsCoorY()
56    TerranCruizerZ = TerranCruizer:getAbsCoorZ()
[4202]57
[4328]58    distance = dist(TerranCruizerX,TerranCruizerY,TerranCruizerZ,6053.186035, -2.306574, -1704.989624)
[4202]59
[4328]60    if distance < 100  then
61      TerranCruizer:hide()
62      dx = 5000
63      terrancriuseratgate = true
64    end
[4202]65
[4328]66    TerranCruizer:setAbsCoor(TerranCruizerX + dx, TerranCruizerY + dy, TerranCruizerZ + dz)
[4202]67
[4328]68  end
[4202]69
70 return false
71end
Note: See TracBrowser for help on using the repository browser.