Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: data/branches/single_player_map/scripts/hangar.lua @ 4073

Last change on this file since 4073 was 4070, checked in by snellen, 18 years ago

continued implementation

File size: 6.3 KB
RevLine 
[4051]1-- Get objects from orxonox
2thisscript:addObject("Claw", "spaceshipclaw")
3thisscript:addObject("RepairStation", "repair")
4thisscript:addObject("FPSPlayer", "Player")
5thisscript:addObject("SpaceShip", "spaceship")
[4070]6thisscript:addObject("GenericNPC", "mechanic")
[3947]7
[4056]8-- Global Variables
9playerEnteredSpaceShip = false
10playerReachedTrigger = false
11spaceshipOnPad = false
12spaceshipLaunchReady = false
13
14
15-- Returns the distance between (x1,x2,x3) and (y1,y2,y3)
16function dist( x1,x2,x3, y1,y2,y3 )
17
18return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 )
19
20end
21
22
23
24function observePlayer()
25
[4070]26--playerEnteredSpaceShip = spaceship:hasPlayer()
[4056]27
28playerX = Player:getAbsCoorX()
29playerY = Player:getAbsCoorY()
30playerZ = Player:getAbsCoorZ()
31
[4070]32if dist( playerX,playerY,playerZ,678.946838, -11.959779, -920.512634 ) < 200 then
[4056]33playerReachedTrigger = true
34end
35
36end
37
38
[4070]39
40
41
42programRoute = true
43mheight = 5
44function mechanicMove(timestep)
45if programRoute then
46
47mechanic:walkTo( 991.192261, mheight, -1878.394287)
48mechanic:walkTo( 976.976685, mheight, -1879.182129)
49mechanic:walkTo( 963.752625, mheight, -1880.202881)
50mechanic:walkTo( 948.094543, mheight, -1880.980713)
51mechanic:walkTo( 931.008606, mheight, -1880.974854)
52mechanic:walkTo( 917.888428, mheight, -1880.832764)
53mechanic:walkTo( 901.552368, mheight, -1880.655762)
54mechanic:walkTo( 886.475220, mheight, -1880.522949)
55mechanic:walkTo( 872.041504, mheight, -1880.545410)
56mechanic:walkTo( 851.380249, mheight, -1880.577637)
57mechanic:walkTo( 840.637512, mheight, -1880.594238)
58mechanic:walkTo( 828.564941, mheight, -1880.489868)
59mechanic:walkTo( 811.580322, mheight, -1880.085205)
60mechanic:walkTo( 801.953003, mheight, -1880.036377)
61mechanic:walkTo( 784.801086, mheight, -1880.280762)
62mechanic:walkTo( 774.514343, mheight, -1880.380005)
63mechanic:walkTo( 762.351746, mheight, -1880.248779)
64mechanic:walkTo( 750.737549, mheight, -1880.123413)
65mechanic:walkTo( 739.186890, mheight, -1879.999023)
66mechanic:walkTo( 728.210022, mheight, -1879.880371)
67mechanic:walkTo( 717.243835, mheight, -1879.761719)
68mechanic:walkTo( 708.253235, mheight, -1879.649048)
69mechanic:walkTo( 695.825867, mheight, -1877.611938)
70mechanic:walkTo( 687.077820, mheight, -1869.800659)
71mechanic:walkTo( 683.886963, mheight, -1859.888062)
72mechanic:walkTo( 685.589905, mheight, -1844.102051)
73mechanic:walkTo( 686.333069, mheight, -1837.212524)
74mechanic:walkTo( 687.256042, mheight, -1828.656860)
75mechanic:walkTo( 688.759583, mheight, -1820.024048)
76mechanic:walkTo( 690.621216, mheight, -1809.834595)
77mechanic:walkTo( 692.045593, mheight, -1803.566772)
78mechanic:walkTo( 695.021851, mheight, -1795.320923)
79mechanic:walkTo( 703.956360, mheight, -1789.028931)
80mechanic:walkTo( 711.400574, mheight, -1785.378418)
81mechanic:walkTo( 720.236267, mheight, -1782.750977)
82mechanic:walkTo( 741.346130, mheight, -1786.131836)
83mechanic:walkTo( 744.505798, mheight, -1788.214111)
84mechanic:walkTo( 753.788513, mheight, -1796.320557)
85mechanic:walkTo( 760.480408, mheight, -1804.107788)
86mechanic:walkTo( 765.918274, mheight, -1811.952393)
87mechanic:walkTo( 772.114990, mheight, -1823.565674)
88mechanic:walkTo( 776.130737, mheight, -1830.713989)
89mechanic:walkTo( 781.833313, mheight, -1836.770996)
90mechanic:walkTo( 796.051880, mheight, -1843.499512)
91mechanic:walkTo( 805.178101, mheight, -1844.844116)
92mechanic:walkTo( 816.733154, mheight, -1846.198608)
93mechanic:walkTo( 830.296326, mheight, -1844.374146)
94mechanic:walkTo( 841.234680, mheight, -1841.184814)
95mechanic:walkTo( 853.356201, mheight, -1837.650391)
96mechanic:walkTo( 866.242981, mheight, -1833.892944)
97mechanic:walkTo( 877.006836, mheight, -1830.820923)
98mechanic:walkTo( 889.236816, mheight, -1828.092773)
99mechanic:walkTo( 897.856689, mheight, -1826.204346)
100mechanic:walkTo( 909.685486, mheight, -1823.613037)
101mechanic:walkTo( 922.058777, mheight, -1819.907227)
102mechanic:walkTo( 933.861328, mheight, -1814.044800)
103mechanic:walkTo( 943.290588, mheight, -1809.960205)
104mechanic:walkTo( 952.188293, mheight, -1806.317261)
105mechanic:walkTo( 985.450745, mheight, -1800.297729)
106mechanic:walkTo( 1000.339722, mheight, -1800.916626)
107mechanic:walkTo( 1013.447937, mheight, -1802.642090)
108mechanic:walkTo( 1022.703430, mheight, -1808.694946)
109mechanic:walkTo( 1030.242554, mheight, -1821.859253)
110mechanic:walkTo( 1030.063354, mheight, -1839.935547)
111mechanic:walkTo( 1025.804932, mheight, -1864.135986)
112mechanic:walkTo( 1019.079651, mheight, -1878.196777)
113
114programRoute = false
115end
116
117if mechanic:finalGoalReached() then
118programRoute = true
119end
120
121end
122
123
124
125
126
127
128
129
130
[4056]131positionReached = false
132spaceShipReleased = false
133function moveToLaunchSite(timestep)
134
135if not positionReached then
[4070]136dx = 10 * timestep
[4056]137dy = 0 * timestep
[4070]138dz = 0* timestep
[4056]139end
140
141if not spaceShipReleased and positionReached then 
142dx = 0 * timestep
[4070]143dy = 10 * timestep
[4056]144dz = 0 * timestep
145end
146
147if positionReached and spaceShipReleased then
148dx = 0 * timestep
149dy = 1 * timestep
150dz = 0 * timestep
151end
152
153
154if spaceshipOnPad then
155
156if not spaceShipReleased then
[4070]157--spaceshipclaw:playAnimation(1,1)
158io.write("release spaceship\n")
[4056]159spaceShipReleased = true
[4070]160playerEnteredSpaceShip = true
[4056]161end
162
[4070]163--if clawY > 100 then
[4056]164spaceshipLaunchReady = true
[4070]165--end
[4056]166
167end
168
169
170-- set new coordinates
[4070]171--clawX = claw:getAbsCoorX()
172--clawY = claw:getAbsCoorY()
173--clawZ = claw:getAbsCoorZ()
[4056]174
[4070]175--claw:setAbsCoor(clawX + dx, clawY + dy, clawZ + dz)
176spaceshipX = spaceship:getAbsCoorX()
177spaceshipY = spaceship:getAbsCoorY()
178spaceshipZ = spaceship:getAbsCoorZ()
[4056]179
[4070]180spaceship:setAbsCoor(spaceshipX + dx, spaceshipY + dy, spaceshipZ + dz)
[4056]181
182
[4070]183
184--if dist( clawX,clawY,clawZ,1020.025024, -11.959781, -1721.614380 ) < 60 then
185if dist( spaceshipX,spaceshipY,spaceshipZ,1020.025024, -11.959781, -1721.614380 ) < 60 then
[4056]186positionReached = true
187end
188
189
[4070]190--if dist( clawX,clawY,clawZ,167.361526,29,483.163818 ) < 60 then
191if  spaceshipY > 10 then
[4056]192spaceshipOnPad = true
193end
194
195
[4070]196end
[4056]197
198hoverPosReached = false
199function launchSpaceShip(timestep)
200
201if not hoverPosReached then
202dx = 0 * timestep
203dy = 1 * timestep
204dz = 0 * timestep
205else
[4070]206dx = 200 * timestep
[4056]207dy = 0 * timestep
[4070]208dz = 0 * timestep
[4056]209end
210
211spaceshipX = spaceship:getAbsCoorX()
212spaceshipY = spaceship:getAbsCoorY()
213spaceshipZ = spaceship:getAbsCoorZ()
214
215spaceship:setAbsCoor(spaceshipX + dx, spaceshipY + dy, spaceshipZ + dz)
216
[4070]217if spaceshipY > 15 then
[4056]218hoverPosReached = true
219end
220
221end
222
223
[3947]224function tick(timestep)
[4070]225
[4056]226observePlayer()
[4070]227mechanicMove(timestep)
[4056]228
[4070]229if playerReachedTrigger and not spaceshipLaunchReady then
230moveToLaunchSite(timestep)
[4056]231end
232
233if spaceshipLaunchReady then
[4070]234launchSpaceShip(timestep)
[4056]235end
236
237
[3947]238return false
239end
Note: See TracBrowser for help on using the repository browser.