Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: data/branches/single_player_map/scripts/prisoner.lua @ 4056

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

spaceship.lua implemented

File size: 9.5 KB
Line 
1-- Get objects from orxonox
2thisscript:addObject("GenericNPC", "prisoner")
3thisscript:addObject("FPSPlayer", "Player")
4thisscript:addObject("GenericNPC", "secondguard")
5
6
7cellDoorOpened = false
8walkinCellFinished = false
9cellExitReached = false
10exitReached = false
11hangarReached = false
12spaceShipReached = false
13spaceShipEntered = false
14playerInLock = false
15
16randTime = 0
17height = 80
18
19
20function dist( x1,x2,x3, y1,y2,y3 )
21
22return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 )
23
24end
25
26function observeGuard()
27guardX = secondguard:getAbsCoorX()
28guardY = secondguard:getAbsCoorY()
29guardZ = secondguard:getAbsCoorZ()
30
31if dist( guardX,guardY,guardZ, 43.406876, 29, 179.517303) < 60 then
32cellDoorOpened = true
33end
34
35end
36
37function observePlayer()
38playerX = Player:getAbsCoorX()
39playerY = Player:getAbsCoorY()
40playerZ = Player:getAbsCoorZ()
41
42if dist( playerX,playerY,playerZ,161.76,49,358.87 ) < 60 then
43playerInLock = true
44end
45
46end
47
48
49
50walkProgrammed = false
51exitProgrammed = false
52function walkInCell(timestep)
53
54
55if not walkProgrammed then
56prisoner:walkTo( -66.454849, height, 62.363449)
57prisoner:walkTo( -66.454849, height, 62.363449)
58prisoner:walkTo( -63.214821, height, 62.429710)
59prisoner:walkTo( -56.661182, height, 62.563740)
60prisoner:walkTo( -46.779755, height, 62.765827)
61prisoner:walkTo( -41.634224, height, 71.319214)
62prisoner:walkTo( -38.168526, height, 79.655807)
63prisoner:walkTo( -40.782196, height, 101.285233)
64prisoner:walkTo( -47.722874, height, 114.314980)
65prisoner:walkTo( -54.593349, height, 118.605423)
66prisoner:walkTo( -62.802982, height, 117.947144)
67prisoner:walkTo( -73.180130, height, 116.720863)
68prisoner:walkTo( -85.028603, height, 114.952316)
69prisoner:walkTo( -113.125824, height, 96.362946)
70prisoner:walkTo( -118.218887, height, 87.702599)
71prisoner:walkTo( -120.596275, height, 80.304184)
72prisoner:walkTo( -114.928169, height, 68.971840)
73prisoner:walkTo( -108.606766, height, 62.085098)
74prisoner:walkTo( -90.078171, height, 59.558804)
75prisoner:walkTo( -83.558510, height, 60.516567)
76prisoner:walkTo( -71.352402, height, 63.920750)
77walkProgrammed = true
78end
79
80
81if prisoner:finalGoalReached() and not cellDoorOpened then
82 walkProgrammed = false
83end
84
85
86if cellDoorOpened then
87
88  if not exitProgrammed then
89prisoner:walkTo( -61.875267, height, 158.254517)
90prisoner:walkTo( -62.335995, height, 170.318756)
91prisoner:walkTo( -62.358681, height, 179.232559)
92prisoner:walkTo( -55.998741, height, 189.289749)
93prisoner:walkTo( -49.237957, height, 195.076263)
94prisoner:walkTo( -39.007496, height, 195.889221)
95prisoner:walkTo( -24.234095, height, 195.547043)
96prisoner:walkTo( -11.409116, height, 196.236069)
97prisoner:walkTo( 2.545602, height, 196.805954)
98prisoner:walkTo( 13.875313, height, 196.377563)
99prisoner:walkTo( 28.379402, height, 195.829132)
100prisoner:walkTo( 41.672989, height, 195.326477)
101prisoner:walkTo( 57.125935, height, 194.742126)
102prisoner:walkTo( 70.114609, height, 194.251007)
103prisoner:walkTo( 81.857407, height, 193.806961)
104prisoner:walkTo( 97.840607, height, 193.974030)
105prisoner:walkTo( 107.569641, height, 196.299652)
106prisoner:walkTo( 120.975266, height, 202.754532)
107prisoner:walkTo( 129.063812, height, 207.099640)
108prisoner:walkTo( 140.468765, height, 214.389191)
109prisoner:walkTo( 145.902267, height, 224.194229)
110prisoner:walkTo( 148.106079, height, 233.095215)
111prisoner:walkTo( 150.907532, height, 244.410049)
112prisoner:walkTo( 153.191757, height, 253.635788)
113prisoner:walkTo( 153.191757, height, 253.635788)
114   exitProgrammed = true
115  end
116
117  if prisoner:finalGoalReached() then
118   return true
119  end
120
121end 
122
123return false
124
125end
126
127
128hangarRouteProgrammed = false
129function goToHangar(timestep)
130
131if not hangarRouteProgrammed and playerInLock then
132prisoner:walkTo( 153.801224, height, 253.259750)
133prisoner:walkTo( 156.047333, height, 263.016998)
134prisoner:walkTo( 158.592575, height, 275.126709)
135prisoner:walkTo( 160.208252, height, 284.592896)
136prisoner:walkTo( 161.436462, height, 293.934601)
137prisoner:walkTo( 162.154053, height, 299.829407)
138prisoner:walkTo( 162.288696, height, 307.149750)
139prisoner:walkTo( 161.846405, height, 314.288727)
140prisoner:walkTo( 161.481949, height, 320.171295)
141prisoner:walkTo( 161.149612, height, 331.675751)
142prisoner:walkTo( 160.959152, height, 344.682129)
143prisoner:walkTo( 161.191635, height, 359.230835)
144prisoner:walkTo( 161.436386, height, 364.404175)
145prisoner:walkTo( 161.829483, height, 372.712799)
146prisoner:walkTo( 162.251343, height, 382.889465)
147prisoner:walkTo( 162.375793, height, 391.746979)
148prisoner:walkTo( 162.433640, height, 399.580994)
149prisoner:walkTo( 162.492249, height, 407.515991)
150prisoner:walkTo( 162.624390, height, 425.402435)
151prisoner:walkTo( 162.666931, height, 431.160980)
152prisoner:walkTo( 162.708481, height, 436.786591)
153prisoner:walkTo( 162.789124, height, 447.704620)
154prisoner:walkTo( 162.863098, height, 457.719055)
155prisoner:walkTo( 162.916428, height, 464.939545)
156prisoner:walkTo( 162.975830, height, 472.982452)
157prisoner:walkTo( 163.028259, height, 480.078857)
158prisoner:walkTo( 164.319611, height, 491.340607)
159prisoner:walkTo( 168.597382, height, 497.577728)
160prisoner:walkTo( 186.090088, height, 506.772766)
161prisoner:walkTo( 205.179825, height, 510.814911)
162prisoner:walkTo( 210.280609, height, 511.704041)
163prisoner:walkTo( 216.508865, height, 512.518982)
164prisoner:walkTo( 224.820663, height, 513.199585)
165prisoner:walkTo( 233.553589, height, 513.803711)
166prisoner:walkTo( 275.363922, height, 514.931763)
167prisoner:walkTo( 325.490265, height, 515.918945)
168prisoner:walkTo( 365.214355, height, 516.691833)
169prisoner:walkTo( 403.109619, height, 515.911804)
170prisoner:walkTo( 464.696991, height, 514.644348)
171prisoner:walkTo( 524.817627, height, 513.407104)
172prisoner:walkTo( 565.836670, height, 512.870239)
173prisoner:walkTo( 608.300232, height, 512.717957)
174prisoner:walkTo( 634.151794, height, 512.625183)
175prisoner:walkTo( 656.115234, height, 512.546570)
176prisoner:walkTo( 679.420166, height, 512.462708)
177prisoner:walkTo( 696.694702, height, 512.400635)
178prisoner:walkTo( 712.425781, height, 512.344299)
179prisoner:walkTo( 720.998474, height, 512.273193)
180prisoner:walkTo( 733.098389, height, 512.028137)
181prisoner:walkTo( 755.905273, height, 493.950714)
182prisoner:walkTo( 758.626648, height, 472.345520)
183prisoner:walkTo( 758.944458, height, 464.883545)
184prisoner:walkTo( 760.426208, height, 404.809967)
185prisoner:walkTo( 761.147827, height, 370.829987)
186prisoner:walkTo( 761.848511, height, 337.836395)
187prisoner:walkTo( 762.567932, height, 303.964020)
188prisoner:walkTo( 763.293335, height, 269.808380)
189prisoner:walkTo( 764.076294, height, 232.951477)
190prisoner:walkTo( 765.114441, height, 184.070221)
191prisoner:walkTo( 765.890076, height, 147.545258)
192prisoner:walkTo( 766.753296, height, 106.902954)
193prisoner:walkTo( 767.115967, height, 76.410255)
194prisoner:walkTo( 766.648621, height, 39.034630)
195prisoner:walkTo( 766.501282, height, 3.641552)
196prisoner:walkTo( 766.630615, height, -25.998037)
197prisoner:walkTo( 766.773560, height, -58.753052)
198prisoner:walkTo( 766.897766, height, -87.277809)
199prisoner:walkTo( 766.534546, height, -107.109718)
200prisoner:walkTo( 764.282104, height, -135.666809)
201prisoner:walkTo( 761.187439, height, -155.214981)
202prisoner:walkTo( 756.769043, height, -180.015106)
203prisoner:walkTo( 748.603821, height, -224.832336)
204prisoner:walkTo( 741.901978, height, -259.153870)
205prisoner:walkTo( 735.091492, height, -293.963196)
206prisoner:walkTo( 726.579651, height, -329.477051)
207prisoner:walkTo( 716.802002, height, -367.452911)
208prisoner:walkTo( 706.963806, height, -402.515228)
209prisoner:walkTo( 697.003357, height, -438.013824)
210prisoner:walkTo( 688.261230, height, -471.035400)
211prisoner:walkTo( 683.497986, height, -504.091461)
212prisoner:walkTo( 681.250732, height, -528.006287)
213prisoner:walkTo( 679.264771, height, -554.841125)
214prisoner:walkTo( 678.647949, height, -582.533508)
215prisoner:walkTo( 678.731018, height, -612.342407)
216prisoner:walkTo( 678.873230, height, -663.699585)
217prisoner:walkTo( 683.213135, height, -824.669922)
218prisoner:walkTo( 691.796326, height, -993.215332)
219prisoner:walkTo( 696.237244, height, -1045.909302)
220prisoner:walkTo( 702.897461, height, -1072.645020)
221prisoner:walkTo( 710.501160, height, -1095.735107)
222prisoner:walkTo( 715.637573, height, -1111.740845)
223prisoner:walkTo( 725.408020, height, -1144.843506)
224prisoner:walkTo( 747.384888, height, -1223.670410)
225prisoner:walkTo( 751.330872, height, -1238.939941)
226prisoner:walkTo( 757.179504, height, -1262.104980)
227prisoner:walkTo( 761.473145, height, -1287.161133)
228prisoner:walkTo( 764.180298, height, -1311.035767)
229prisoner:walkTo( 765.995178, height, -1339.139648)
230prisoner:walkTo( 767.811340, height, -1381.138428)
231prisoner:walkTo( 769.017273, height, -1409.277344)
232prisoner:walkTo( 769.463684, height, -1430.375244)
233prisoner:walkTo( 769.351685, height, -1451.503418)
234hangarRouteProgrammed = true
235end
236
237thisX = prisoner:getAbsCoorX()
238thisY = prisoner:getAbsCoorY()
239thisZ = prisoner:getAbsCoorZ()
240
241if dist( thisX,thisY,thisZ, 3.175952, 29, -1610.220093) < 60 then
242return true
243end
244
245
246return false
247
248end
249
250spaceshipRouteProgrammed = false
251function goToSpaceship(timestep)
252
253if not spaceshipRouteProgrammed then
254
255
256spaceshipRouteProgrammed = true
257end
258
259if prisoner:finalGoalReached() then
260   return true
261end
262
263return false
264
265end
266
267
268function enterSpaceship(timestep)
269
270return false
271end
272
273
274
275function tick(timestep)
276
277 observeGuard()
278 observePlayer()
279
280
281if not walkinCellFinished then
282walkinCellFinished = walkInCell(timestep)
283end
284
285
286if walkinCellFinished and not hangarReached then
287hangarReached = goToHangar(timestep)
288end
289
290if hangarReached and not spaceShipReached then 
291spaceShipReached = goToSpaceship(timestep)
292end
293
294if spaceShipReached and not spaceShipEntered then
295spaceShipEntered = enterSpaceship(timestep)
296end
297
298if spaceShipEntered then
299return true
300end
301
302return false
303end
Note: See TracBrowser for help on using the repository browser.