Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ai2/data/levels/missionOne.oxw @ 8878

Last change on this file since 8878 was 8878, checked in by jo, 13 years ago

Trying to add quests.

File size: 47.1 KB
Line 
1<LevelInfo
2 name = "Mission One"
3 description = "First guided steps in the orxonoxian universe."
4 tags = "singleplayer"
5/>
6
7<?lua
8  include("stats.oxo")
9  include("HUDTemplates3.oxo")
10  include("templates/lodInformation.oxt")
11  include("templates/spaceshipAssff.oxt")
12  include("templates/spaceshipPirate.oxt")
13  include("templates/spaceshipSpacecruiser.oxt")
14  include("templates/spaceshipTransporter.oxt")
15?>
16
17<?lua
18include("templates/pickupRepresentationTemplates.oxt")
19?>
20
21<Level
22 name         = "Mission One"
23 description  = "How to steer a spaceship."
24>
25  <templates>
26    <Template link=lodtemplate_default />
27  </templates>
28  <?lua include("includes/notifications.oxi") ?>
29
30  <NotificationQueueCEGUI
31    name="narrative"
32    targets="simpleNotification"
33    size=3
34    displayTime=3.9
35    position="0.2, 0, 0.1, 0"
36    fontSize="23"
37    fontColor="0.3, 1, 0.2, 0.8"
38    alignment="HorzCentred"
39    displaySize="0.6, 0, 0, 0"
40    />
41  <Scene
42    ambientlight = "0.8, 0.8, 0.8"
43    skybox       = "Orxonox/Starbox"
44  >
45    <?lua
46      include("includes/pickups.oxi")
47    ?>
48
49    <WorldAmbientSound source="Mars.ogg" looping="true" playOnLoad="true" /> <!-- AlphaCentauri.ogg-->
50
51    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
52    <TeamSpawnPoint team=0 position="800,700,600" direction="-1,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
53
54
55<!-- END OF INCLUDES & NECESSARITIES -->
56
57    <LocalQuest id="missionOne.basicFlying">
58        <QuestDescription title="Flying" description="INSERT STORY HERE. The first thing you have to learn is flying. Use 'W' to accelerate and steer with your mouse. In order to know where to fly there are two detection systems. The navigation markers highlite important objects directly in the level. If you can't directly see those objects, there are arrows which indicate how you have to steer. The second device is the radar. There you get an overview of all objects near you. In order to find an object that you spotted on radar, you have to steer in a way that the corresponding dot is in the center of the radar. Now you can find the corresponding object straight ahead. Your goal is to fly to the first waypoint. It's that orange dot on the radar." failmessage="" completeMessage="Well done." />
59        <complete-effects>
60            <AddQuest questId="missionOne.weaponsystem" />
61        </complete-effects>
62    </LocalQuest>
63
64    <LocalQuest id="missionOne.weaponsystem">
65        <QuestDescription title="Weaponsystem" description="INSERT STORY HERE." failmessage="" completeMessage="All right." />
66        <subquests>
67            <LocalQuest id ="missionOne.weaponsystemI">
68                <QuestDescription title="Destroy Boxes" description="Test your four different weapons on the four boxes. The four weapons are laser (left click), plasma (right click), self targeting rockets (middle click) and manual rockets (press 'T'). Attention if you use manual rockets: Press 'T' only once to start the rocket. If you miss your target you can get out of the rocket, by clicking or pressing 'T' once more." failmessage="" completeMessage="" />
69                <complete-effects>
70                    <AddQuest questId="missionOne.weaponsystemII" />
71                </complete-effects>
72            </LocalQuest>
73            <LocalQuest id="missionOne.weaponsystemII">
74                <QuestDescription title="" description="" failmessage="" completeMessage="" />
75                <complete-effects>
76                    <AddQuest questId="missionOne.DuballStation" />
77                </complete-effects>
78            </LocalQuest>
79        </subquests>
80        <hints>
81            <QuestHint id="missionOne.weaponsystem.laser">
82              <QuestDescription title="Laser" description="The laser is a standard weapon. It is fast and precise but does not deal much damage." />
83            </QuestHint>
84            <QuestHint id="missionOne.weaponsystem.lightningGun">
85              <QuestDescription title="Lightninggun" description="That was the lightning gun. Its plasma munition is quite slow, but a normal spaceship can't take more than three hits of such a strong weapon. That could be your favourite weapon for close range combat or if you want to hit a really slow enemy." />
86            </QuestHint>
87            <QuestHint id="missionOne.weaponsystem.targetSeekingRocket">
88              <QuestDescription title="Target Seeking Rocket" description="The target seeking rockets follow slow targets on their own." />
89            </QuestHint>
90            <QuestHint id="missionOne.weaponsystem.manualrocket">
91              <QuestDescription title="Manual Rocket" description="Manual rockets are your most powerful weapon. But since you have to steer it to your target yourself, you will leave your spaceship unprotected for a while. The total amount of both manual and target seeking rockets is limited to 10." />
92            </QuestHint>
93        </hints>
94        <complete-effects>
95        </complete-effects>
96    </LocalQuest>
97
98    <LocalQuest id="missionOne.DuballStation">
99        <QuestDescription title="Duball Space Station" description="Fly towards the Duball Space Station. The grey radar marker will lead you to its position." failmessage="" completeMessage="Well done." />
100        <complete-effects>
101            <AddQuest questId="missionOne.getHelp" />
102        </complete-effects>
103    </LocalQuest>
104
105    <LocalQuest id="missionOne.getHelp">
106        <QuestDescription title="Get Help" description="There are enemies approaching. You can't handle it on your own. Fortunately there's a shortcut to the next friendly unit. Use the portal (grey dot) to get near the Hydrogen Farmer. There you might get help - as far as we know there should be a stronger spaceship docked to the Hydrogen Farmer. In order to be able to use that stronger spaceship you have to dock to the Hydrogen Farmer. Simply fly to the center of the Hydrogen Farmer, which is between its three legs." failmessage="" completeMessage="Well done." />
107        <complete-effects>
108            <AddQuest questId="missionOne.getHome" />
109        </complete-effects>
110    </LocalQuest>
111
112    <LocalQuest id="missionOne.getHome">
113        <QuestDescription title="Return ASAP" description="" failmessage="" completeMessage="Well done." />
114        <complete-effects>
115            <AddQuest questId="missionOne.defence" />
116        </complete-effects>
117    </LocalQuest>
118
119    <LocalQuest id="missionOne.defence">
120        <QuestDescription title="Defence" description="" failmessage="" completeMessage="Well done." />
121    </LocalQuest>
122
123
124        <QuestEffectBeacon position="800,700,600" times="1">
125            <effects>
126                <AddQuest questId="missionOne.basicFlying" />
127            </effects>
128            <events>
129                <execute>
130                    <EventListener event="questStart"/>
131                </execute>
132            </events>
133            <attached>
134                <DistanceTrigger name="questStart" position="0,0,0" distance="50" target="Pawn" beaconMode="identify" targetname="PlayerDistanceTrigger" delay="2" />
135            </attached>
136        </QuestEffectBeacon>
137
138
139<!-- TUTORIAL-TODO: -->
140<!-- 1. Flying & manoeuvring (basic flying, using pickups, forcefields, docks & portals) --> <!-- "W","S","SPACE"-->
141<!-- 2. Aiming & Weapons (static targets, moving targets, dangerous targets)--> <!-- 3 Mouse buttons + "T"-->
142<!-- 3. Game handling (quests, knowing when a game is over :-), pausing, chat, ... ) --> <!--"F3", "F2", "ESC" -->
143<!-- 4. Extras (other things to discover) --> <!-- "Q","E","A","D","C", "CTRL", "", ... -->
144
145<!--
146
147"Lets start flying. Use W to accelerate and S to brake. The goal is to reach the spacestation which is displayed on the radar. If you want to be faster you can temporarily boost by hitting additionally the space button. If you use too much boost your engine heats up and you won't be able to use boost for a while. By the way boost could be useful during combat .."
148
149-->
150
151    <DistanceTrigger name="spawndelaytrigger0" position="800,700,600" target="Pawn" distance=10 stayActive="true"/>
152    <SimpleNotification message="Welcome to the Orxonox Tutorial.">
153        <events>
154            <trigger>
155                <EventListener event="spawndelaytrigger0" />
156            </trigger>
157        </events>
158    </SimpleNotification>
159<!-------------------------------------- PART ZERO: How to fly --------------------------------------->
160
161
162
163
164
165
166
167
168
169
170
171<!-------------------------------------- PART ONE : Destroy boxes --------------------------------------->
172    <DistanceTrigger name="spawndelaytrigger1" position="-200,0,0" target="Pawn" distance=10 stayActive="true" delay=4 />
173    <SimpleNotification message="Destroy those four boxes.">
174        <events>
175            <trigger>
176                <EventListener event="spawndelaytrigger1" />
177            </trigger>
178        </events>
179    </SimpleNotification>
180
181    <DistanceTrigger name="spawndelaytrigger2" position="-200,0,0" target="Pawn" distance=10 stayActive="true" delay=8.1 />
182    <SimpleNotification message=" 1. Aim the a the red cycle.">
183        <events>
184            <trigger>
185                <EventListener event="spawndelaytrigger2" />
186            </trigger>
187        </events>
188    </SimpleNotification>
189
190    <DistanceTrigger name="spawndelaytrigger3" position="-200,0,0" target="Pawn" distance=10 stayActive="true" delay=12.2 />
191    <SimpleNotification message="2. Click! (hold the left mouse button)">
192        <events>
193            <trigger>
194                <EventListener event="spawndelaytrigger3" />
195            </trigger>
196        </events>
197    </SimpleNotification>
198                <BlinkingBillboard position="-200,0,0" frequency=0.2 amplitude=1 material="Flares/lensflare" colour="0,0,1"/>
199<!-- @Objects: 4 boxes (uncontrolled pawns) -->
200                <Pawn health=30 position="0,0,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box >
201                    <attached>
202                        <BlinkingBillboard frequency=0.2 amplitude=1.2 material="Flares/lensflare" colour="0,0,1"/>
203                        <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
204                    </attached>
205                    <collisionShapes>
206                        <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
207                    </collisionShapes>
208                </Pawn>
209
210                <Pawn health=30 position="0,100,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box visible="true">
211                    <attached>
212                        <BlinkingBillboard frequency=0.2 amplitude=1.2 material="Flares/lensflare" colour="0,0,1"/>
213                        <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
214                    </attached>
215                    <collisionShapes>
216                        <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
217                    </collisionShapes>
218                </Pawn>
219                <Pawn health=30 position="0,200,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box >
220                    <attached>
221                        <BlinkingBillboard frequency=0.2 amplitude=1.2 material="Flares/lensflare" colour="0,0,1"/>
222                        <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
223                    </attached>
224                    <collisionShapes>
225                        <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
226                    </collisionShapes>
227                </Pawn>
228                <Pawn health=30 position="0,300,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box >
229                    <attached>
230                        <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
231                        <BlinkingBillboard frequency=0.2 amplitude=1.2 material="Flares/lensflare" colour="0,0,1"/>
232                    </attached>
233                    <collisionShapes>
234                        <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
235                    </collisionShapes>
236                </Pawn>
237
238<!-- @Triggers: boxtrigger1 <-> one   box   destroyed
239                boxtrigger2 <-> two   boxes destroyed
240                boxtrigger3 <-> three boxes destroyed
241                boxtrigger4 <-> four  boxes destroyed  -->
242    <EventTrigger name="boxtrigger4" activations="1" stayactive="true" delay=0.1>
243      <events>
244        <trigger>
245          <EventListener event="box" />
246        </trigger>
247      </events>
248      <EventTrigger name="boxtrigger3" activations="1" stayactive="true" delay=0.1>
249        <events>
250          <trigger>
251            <EventListener event="box" />
252          </trigger>
253        </events>
254        <EventTrigger name="boxtrigger2" activations="1" stayactive="true" delay=0.1>
255          <events>
256            <trigger>
257              <EventListener event="box" />
258            </trigger>
259          </events>
260          <EventTrigger name="boxtrigger1" activations="1" stayactive="true" delay=0.1>
261            <events>
262              <trigger>
263                <EventListener event="box" />
264              </trigger>
265            </events>
266          </EventTrigger>
267        </EventTrigger>
268      </EventTrigger>
269    </EventTrigger>
270
271
272  <SimpleNotification message="Right click on the next target." broadcast="true">
273        <events>
274            <trigger>
275                <EventListener event="boxtrigger1" />
276            </trigger>
277        </events>
278    </SimpleNotification>
279
280  <SimpleNotification message="Middle click on the next target." broadcast="true">
281        <events>
282            <trigger>
283                <EventListener event="boxtrigger2" />
284            </trigger>
285        </events>
286    </SimpleNotification>
287
288
289  <SimpleNotification message="Aim at the last target and press 'T'." broadcast="true">
290        <events>
291            <trigger>
292                <EventListener event="boxtrigger3" />
293            </trigger>
294        </events>
295    </SimpleNotification>
296
297  <SimpleNotification message="Fly towards the pirates. Press 'W'." broadcast="true">
298        <events>
299            <trigger>
300                <EventListener event="boxtrigger4" />
301            </trigger>
302        </events>
303    </SimpleNotification>
304
305
306<!--------------------------------------PART TWO: Moving targets --------------------------------------->
307    <DistanceTrigger name="movingtargets" position="0,500,0" target="Pawn" distance=180 stayActive="true" delay=2 />
308    <Billboard position="0,500,0" material="Examples/Flare" colour="0.5,0,0" scale=3/><!-- TODO: hide. -->
309    <SimpleNotification message="Try to hit the pirates while you are flying.">
310        <events>
311            <trigger>
312                <EventListener event=movingtargets />
313            </trigger>
314        </events>
315    </SimpleNotification>
316
317<!-- @Objects: 2 pirates moving in squares, nolethal -->
318                <SpaceShip position="0,2000,200" lookat="0,0,0" name="movingtarget" >
319                    <attached>
320                        <BlinkingBillboard frequency=0.2 amplitude=1.2 material="Flares/lensflare" colour="0,0,1">
321                            <events>
322                                <visibility>
323                                    <EventListener event="boxtrigger4" />
324                                </visibility>
325                            </events>
326                        </BlinkingBillboard>
327                    </attached>
328                    <templates>
329                      <Template link=spaceshippirate />
330                    </templates>
331                    <controller>
332                      <WaypointController>
333                         <waypoints>
334                          <Model mesh="cube.mesh" scale=8 position="  0,1700,-200" />
335                          <Model mesh="cube.mesh" scale=8 position="  0,1700,-700" />
336                          <Model mesh="cube.mesh" scale=8 position="500,1700,-700" />
337                          <Model mesh="cube.mesh" scale=8 position="500,1700,-200" />
338                       </waypoints>
339                    </WaypointController>
340                  </controller>
341                </SpaceShip>
342
343                <SpaceShip position="0,2000,400" lookat="0,0,0" name="movingtarget">
344                    <attached>
345                        <BlinkingBillboard frequency=0.2 amplitude=1.2 material="Flares/lensflare" colour="0,0,1">
346                            <events>
347                                <visibility>
348                                    <EventListener event="boxtrigger4" />
349                                </visibility>
350                            </events>
351                        </BlinkingBillboard>
352                    </attached>
353                  <templates>
354                    <Template link=spaceshippirate />
355                  </templates>
356                  <controller>
357                    <WaypointController>
358                      <waypoints>
359                        <Model mesh="cube.mesh" scale=8 position="  0,2400,1000" />
360                        <Model mesh="cube.mesh" scale=8 position="  0,2400, 500" />
361                        <Model mesh="cube.mesh" scale=8 position="500,2400, 500" />
362                        <Model mesh="cube.mesh" scale=8 position="500,2400,1000" />
363                      </waypoints>
364                    </WaypointController>
365                  </controller>
366                </SpaceShip>
367
368<!-- @Triggers: movingpirates1 <-> one  pirate  dead
369                movingpirates2 <-> both pirates dead  -->
370    <EventTrigger name="movingpirates2" activations="1" stayactive="true" delay=0.1>
371      <events>
372        <trigger>
373          <EventListener event="movingtarget" />
374        </trigger>
375      </events>
376      <EventTrigger name="movingpirates1" activations="1" stayactive="true" delay=0.1>
377        <events>
378          <trigger>
379            <EventListener event="movingtarget" />
380          </trigger>
381        </events>
382      </EventTrigger>
383    </EventTrigger>
384
385
386    <SimpleNotification message="Now get the other one."  broadcast="true">
387        <events>
388            <trigger>
389                <EventListener event="movingpirates1" />
390            </trigger>
391        </events>
392    </SimpleNotification>
393
394    <SimpleNotification message="Fly towards the space station (grey dot)."  broadcast="true">
395        <events>
396            <trigger>
397                <EventListener event="movingpirates2" />
398            </trigger>
399        </events>
400    </SimpleNotification>
401
402
403
404<!--------------------------------------PART THREE: the space station --------------------------------------->
405    <DistanceTrigger name="duball1" position="-1000,-300,700" target="Pawn" distance=700 stayActive="true" delay=1 />
406    <SimpleNotification message="Welcome to the Duball Space Station!">
407        <events>
408            <trigger>
409                <EventListener event=duball1 />
410            </trigger>
411        </events>
412    </SimpleNotification>
413
414    <DistanceTrigger name="duball2" position="-1000,-300,700" target="Pawn" distance=700 stayActive="true" delay=5 />
415    <SimpleNotification message="Warning: Something big is coming.">
416        <events>
417            <trigger>
418                <EventListener event=duball2 />
419            </trigger>
420        </events>
421    </SimpleNotification>
422
423    <!--DistanceTrigger name="duball3" position="-1000,-300,700" target="Pawn" distance=700 stayActive="true" delay=9 />
424    <SimpleNotification message="Get some help,  before it is too late.">
425        <events>
426            <trigger>
427                <EventListener event=duball3 />
428            </trigger>
429        </events>
430    </SimpleNotification-->
431
432    <DistanceTrigger name="duball4" position="-1000,-300,700" target="Pawn" distance=700 stayActive="true" delay=10 />
433    <SimpleNotification message="Use the portals to get help. (grey dot)">
434        <events>
435            <trigger>
436                <EventListener event=duball4 />
437            </trigger>
438        </events>
439    </SimpleNotification>
440
441
442<!-- @Objects: DuBall Space Station, (no pawn!) -->
443    <StaticEntity position="-1000,-300,700" collisionType=static>
444      <attached>
445        <Model scale=13 mesh="DuBall1.mesh" position = "-100,0,0"/>
446        <Model scale=13 mesh="DuBall2.mesh" position = "100,0,0"/>
447        <Billboard scale=7 material="Examples/Flare" colour="0.5,0.5,0.5" position = "-100,0,0"/>
448        <Billboard scale=7 material="Examples/Flare" colour="0.5,0.5,0.5" position = "100,0,0"/>       
449      </attached>
450      <collisionShapes>
451        <SphereCollisionShape radius="80"            position = "-100,0,0" />
452        <SphereCollisionShape radius="120"           position = "100,0,0" />
453        <BoxCollisionShape    halfExtents="90,25,45" position = "-155,0,40" />
454      </collisionShapes>
455    </StaticEntity>
456
457
458<!-- @Objects: PORTAL: from DuBall to HydroHarvester  -->
459    <Template name=PortalDefault>
460        <PortalEndPoint>
461            <attached>
462                <Billboard material="Portals/Default" />
463            </attached>
464        </PortalEndPoint>
465    </Template>
466
467    <PortalEndPoint position="-1400,-500,800" id="1" distance="50" target="MobileEntity" design="PortalDefault">
468          <events>
469            <activity>
470              <Trigger mode="or" activations="2">
471                <Trigger mode="and" activations="1">
472                  <EventTrigger>
473                    <events>
474                      <trigger>
475                        <EventListener event="movingpirates2" />
476                      </trigger>
477                    </events>
478                  </EventTrigger>
479                  <EventTrigger invert=true>
480                    <events>
481                      <trigger>
482                        <EventListener event="toHydroFarmer" />
483                      </trigger>
484                    </events>
485                  </EventTrigger>
486                </Trigger>
487                <Trigger mode="and" activations="1">
488                  <EventTrigger>
489                    <events>
490                      <trigger>
491                        <EventListener event="ondock" />
492                      </trigger>
493                    </events>
494                  </EventTrigger>
495                  <EventTrigger invert=true>
496                    <events>
497                      <trigger>
498                        <EventListener event="attack" />
499                      </trigger>
500                    </events>
501                  </EventTrigger>
502                </Trigger>
503                <EventTrigger>
504                  <events>
505                    <trigger>
506                      <EventListener event="HydroFarmer" />
507                    </trigger>
508                  </events>
509                </EventTrigger>
510              </Trigger>
511            </activity>
512          </events>
513    </PortalEndPoint>
514
515    <PortalEndPoint position="-47000,-1000,1300" id="2" distance="70" target="MobileEntity" design="PortalDefault">
516          <events>
517            <activity>
518              <Trigger mode="or" activations="3">
519                <Trigger mode="and" activations="1">
520                  <EventTrigger>
521                    <events>
522                      <trigger>
523                        <EventListener event="movingpirates2" />
524                      </trigger>
525                    </events>
526                  </EventTrigger>
527                  <EventTrigger invert=true>
528                    <events>
529                      <trigger>
530                        <EventListener event="toHydroFarmer" />
531                      </trigger>
532                    </events>
533                  </EventTrigger>
534                </Trigger>
535                <Trigger mode="and" activations="1">
536                  <EventTrigger>
537                    <events>
538                      <trigger>
539                        <EventListener event="ondock" />
540                      </trigger>
541                    </events>
542                  </EventTrigger>
543                  <EventTrigger invert=true>
544                    <events>
545                      <trigger>
546                        <EventListener event="attack" />
547                      </trigger>
548                    </events>
549                  </EventTrigger>
550                </Trigger>
551                <EventTrigger>
552                  <events>
553                    <trigger>
554                      <EventListener event="HydroFarmer" />
555                    </trigger>
556                  </events>
557                </EventTrigger>
558              </Trigger>
559            </activity>
560          </events>
561    </PortalEndPoint>
562    <PortalLink fromID="1" toID="2" />
563    <PortalLink fromID="2" toID="1" />
564<!-- ????????????????????????????????????????????????????? why does this NOT work ??
565                <Trigger mode="and" activations="1">
566                  <EventTrigger>
567                    <events>
568                      <trigger>
569                        <EventListener event="HydroFarmer" />
570                      </trigger>
571                    </events>
572                  </EventTrigger>
573                  <EventTrigger invert=true>
574                    <events>
575                      <trigger>
576                        <EventListener event="attack" />
577                      </trigger>
578                    </events>
579                  </EventTrigger>
580                </Trigger>
581-->
582<!-- PORTALS END-->
583
584
585    <SimpleNotification message="Dock to the Hydrogen Farmer.">
586        <events>
587            <trigger>
588                <EventListener event=toHydroFarmer />
589            </trigger>
590        </events>
591    </SimpleNotification>
592
593<!-------------------------------------- PART FOUR : Get Help --------------------------------------->   
594    <DistanceTrigger name="famer1" position="-48200,100,0" target="Pawn" distance=650 stayActive="true" delay=0 />
595    <SimpleNotification message="We just received a message from DuBall.">
596        <events>
597            <trigger>
598                <EventListener event=famer1 />
599            </trigger>
600        </events>
601    </SimpleNotification>
602
603    <DistanceTrigger name="famer2" position="-48200,100,0" target="Pawn" distance=650 stayActive="true" delay=4 />
604    <SimpleNotification message="We will lend you our strongest ship.">
605        <events>
606            <trigger>
607                <EventListener event=famer2 />
608            </trigger>
609        </events>
610    </SimpleNotification>
611
612
613<!-- @Objects: HYDROGEN FARMER & DOCKING -->
614    <SpaceShip position="-48900,100,0" roll=90 yaw=0 pitch=20 mass=10000 health=100000 name="HydroFarmer">
615      <attached>
616        <!-- Docking -->
617        <DistanceTriggerBeacon name="bcnDestroyer" />
618        <DockingTarget name="destroyer" />
619
620        <Model mesh="HydroHarvester.mesh" mass=10 position="0,0,0" scale=50 />
621   <!-- <Model mesh="cube.mesh" mass=10 position="-560,0,0" scale3D="115,100,245"  />
622        <Model mesh="cube.mesh" mass=10 position="290,0,-480" scale3D="115,100,245" yaw=-120 />
623        <Model mesh="cube.mesh" mass=10 position="290,0,480" scale3D="115,100,245" yaw=-240 />
624        <Model mesh="cube.mesh" mass=10 position="-280,0,0" scale3D="163,50,50" />
625        <Model mesh="cube.mesh" mass=10 position="140,0,-240" scale3D="163,50,50"  yaw=-120/>
626        <Model mesh="cube.mesh" mass=10 position="140,0,240" scale3D="163,50,50" yaw=-240/>
627        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" />
628        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" yaw=-120/>
629        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" yaw=-240/>
630        <Model mesh="cube.mesh" mass=10 position="0,400,0" scale3D="43,110,26" yaw=-30 />
631        <Model mesh="cube.mesh" mass=10 position="-200,100,0" scale3D="26,50,43" />
632        <Model mesh="cube.mesh" mass=10 position="100,100,-173" scale3D="43,50,26" yaw=-30/>
633        <Model mesh="cube.mesh" mass=10 position="100,100,173" scale3D="43,50,26" yaw=30/>
634        <Model mesh="cube.mesh" mass=10 position="-100,264,0" scale3D="26,105,43" roll=-49/>
635        <Model mesh="cube.mesh" mass=10 position="50,264,-87" scale3D="26,105,43" roll=-49 yaw=-120/>
636        <Model mesh="cube.mesh" mass=10 position="50,264,87" scale3D="26,105,43" roll=-49 yaw=-240/>     -->
637      </attached>
638      <collisionShapes>
639        <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
640        <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
641        <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
642        <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
643        <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
644        <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
645        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
646        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
647        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
648        <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
649        <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
650        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
651        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
652        <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
653        <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
654        <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
655      </collisionShapes>
656    </SpaceShip>
657
658    <Billboard position="-48900,0,0" material="Examples/Flare" colour="0.6,0,0" scale=3/>
659    <Dock position="-48900,0,0" roll=90 yaw=180 >
660        <animations>
661            <MoveToDockingTarget target="destroyer" />
662        </animations>
663        <effects>
664            <DockToShip target="spaceShip" />
665        </effects>
666        <events>
667            <execute>
668                <EventListener event="dockMe" />
669            </execute>
670        </events>
671        <attached>
672            <DistanceTrigger position="10,-202, -42" distance="800" target="Pawn"
673                beaconMode="exclude" targetname="bcnDestroyer" name="dockMe"
674            />
675        </attached>
676    </Dock>
677
678    <SpaceShip template="spaceshipspacecruiser" position="-48900,800,0" orientation="-0.14, 0.68, 0.68, 0.223" health="300" maxhealth="400" initialhealth="300" name="cruiser" >
679      <attached>
680        <DockingTarget name="spaceShip" />
681      </attached>
682    </SpaceShip>
683
684
685          <Trigger name="cruiserFriendlyFire" mode="and" activations="2">
686            <EventTrigger>
687              <events>
688                <trigger>
689                  <EventListener event="cruiser" />
690                </trigger>
691              </events>
692            </EventTrigger>
693            <EventTrigger invert=true>
694              <events>
695                <trigger>
696                  <EventListener event="ondock" />
697                </trigger>
698              </events>
699            </EventTrigger>
700          </Trigger>
701
702
703    <SimpleNotification message="Oh no! You killed the Hydrogen Farmer!" broadcast="true">
704        <events>
705            <trigger>
706                <EventListener event="HydroFarmer" />
707            </trigger>
708        </events>
709    </SimpleNotification>
710
711    <SimpleNotification message="Oh no! You killed the SpaceCruiser!" broadcast="true">
712        <events>
713            <trigger>
714                <EventListener event="cruiserFriendlyFire" /><!--cruiserFriendlyFire-->
715            </trigger>
716        </events>
717    </SimpleNotification>
718
719
720
721<!-- hydrogen farmer & docking END -->
722
723
724<!-- @Objects: Pickup - find better place !! -->
725    <PickupSpawner position="-48650,700,100" triggerDistance="70" respawnTime="30" maxSpawnedItems="1">
726      <pickup>
727        <ShieldPickup template=hugeshieldpickup />
728      </pickup>
729    </PickupSpawner>
730
731
732    <DistanceTrigger name="pickup" position="-48650,700,100" target="Pawn" distance=60 stayActive="true" delay=0 />
733    <SimpleNotification message="This pickup protects your spaceship.">
734        <events>
735            <trigger>
736                <EventListener event=pickup />
737            </trigger>
738        </events>
739    </SimpleNotification>
740<!-- Pickup-->
741
742
743<!-- @Objects: planet && spaceboundaries  -->
744    <Planet
745      position="-44000,0,0"
746      scale="2500"
747      collisionType="dynamic"
748      linearDamping="0.8"
749      angularDamping="0"
750      mass="10000000"
751      pitch="0"
752      mesh="planets/muunilinst.mesh"
753      atmosphere="atmosphere1"
754      rotationaxis="1,0,0"
755      rotationrate="1.0"
756      atmospheresize="80.0f"
757      imagesize="1024.0f"
758      collisiondamage = "2"
759      enablecollisiondamage = "false"
760    >
761      <!--attached>
762        <ForceField position="0,0,0" mode="sphere" diameter="10000" velocity="-50" />
763      </attached-->  <!-- Forcefield kills HYDROGEN FARMER-->
764      <collisionShapes>
765        <SphereCollisionShape radius="2500" position="0,0,0" />
766      </collisionShapes>
767    </Planet>
768
769
770<!-------------------------------------- The attack --------------------------------------->
771
772<!-- TODO:
773     - update spaceshipTransporter
774     - bots do friendly fire (is drone function reusable?)
775-->
776
777<!-- @Triggers: toHydroFamer <-> first  portal usage
778                ondock       <-> successfull docking
779                attack       <-> second portal usage -->
780
781    <DistanceTrigger name="attack" position="-1400,-500,800" target="Pawn" distance=100 stayActive="true" >
782        <EventTrigger name="ondock" activations="1" stayactive="true" delay=6>
783          <events>
784            <trigger>
785              <EventListener event="dockMe" />
786            </trigger>
787          </events>
788            <DistanceTrigger name="toHydroFarmer" position="-47000,-1000,1300" target="Pawn" distance=100 stayActive="true" />
789        </EventTrigger>
790    </DistanceTrigger>
791
792    <SimpleNotification message="Return before it's too late. Boost with 'Space'." broadcast="true">
793        <events>
794            <trigger>
795                <EventListener event=ondock />
796            </trigger>
797        </events>
798    </SimpleNotification>
799
800    <SimpleNotification message="Several serious enemies are approaching!">
801        <events>
802            <trigger>
803                <EventListener event=attack />
804            </trigger>
805        </events>
806    </SimpleNotification>
807
808
809
810<!-- @Objects: 6 pirates, heading towards DuBall, attacking  -->
811<!-- 1 -->
812    <SpaceShip position="3000,-4000,4000" lookat="-1300,-600,900" name="attacker"visible="true">
813        <events>
814            <visibility>
815                <EventListener event="ondock" />
816            </visibility>
817        </events>
818        <templates>
819            <Template link=spaceshippirate /> <!--spaceshipTransporter -->
820        </templates>
821        <controller>
822            <WaypointPatrolController alertnessradius=3129 team=1 active=false>
823                <waypoints>
824                    <Model mesh="cube.mesh" scale=0 position="-1300,-600,900" />
825                    <Model mesh="cube.mesh" scale=0 position="0,0,0" />
826                </waypoints>
827                <events>
828                    <activity>
829                        <EventListener event="attack" /> <!-- activates enemies-->
830                     </activity>
831                </events>
832            </WaypointPatrolController>
833        </controller>
834    </SpaceShip>
835<!-- 2 -->
836    <SpaceShip position="3000,-4000,-4000" lookat="-1300,-600,900" name="attacker" visible="true">
837        <events>
838            <visibility>
839                <EventListener event="ondock" />
840            </visibility>
841        </events>
842        <templates>
843            <Template link=spaceshippirate /> <!--spaceshipTransporter -->
844        </templates>
845        <controller>
846            <WaypointPatrolController alertnessradius=3129 team=1 active=false>
847                <waypoints>
848                    <Model mesh="cube.mesh" scale=0 position="-1300,-600,900" />
849                    <Model mesh="cube.mesh" scale=0 position="0,0,0" />
850                </waypoints>
851                <events>
852                    <activity>
853                        <EventListener event="attack" /> <!-- activates enemies-->
854                     </activity>
855                </events>
856            </WaypointPatrolController>
857        </controller>
858    </SpaceShip>
859<!-- 3 -->
860    <SpaceShip position="-4000,-3000,4000" lookat="-1300,-600,900" name="attacker" visible="true">
861        <events>
862            <visibility>
863                <EventListener event="ondock" />
864            </visibility>
865        </events>
866        <templates>
867            <Template link=spaceshippirate /> <!--spaceshipTransporter -->
868        </templates>
869        <controller>
870            <WaypointPatrolController alertnessradius=3129 team=1 active=false>
871                <waypoints>
872                    <Model mesh="cube.mesh" scale=0 position="-1300,-600,900" />
873                    <Model mesh="cube.mesh" scale=0 position="0,0,0" />
874                </waypoints>
875                <events>
876                    <activity>
877                        <EventListener event="attack" /> <!-- activates enemies-->
878                     </activity>
879                </events>
880            </WaypointPatrolController>
881        </controller>
882    </SpaceShip>
883<!-- 4 -->
884    <SpaceShip position="-3000,-3000,-5000" lookat="-1300,-600,900" name="attacker" visible="true">
885        <events>
886            <visibility>
887                <EventListener event="ondock" />
888            </visibility>
889        </events>
890        <templates>
891            <Template link=spaceshippirate /> <!--spaceshipTransporter -->
892        </templates>
893        <controller>
894            <WaypointPatrolController alertnessradius=3129 team=1 active=false>
895                <waypoints>
896                    <Model mesh="cube.mesh" scale=0 position="-1300,-600,900" />
897                    <Model mesh="cube.mesh" scale=0 position="0,0,0" />
898                </waypoints>
899                <events>
900                    <activity>
901                        <EventListener event="attack" /> <!-- activates enemies-->
902                     </activity>
903                </events>
904            </WaypointPatrolController>
905        </controller>
906    </SpaceShip>
907<!-- 5 -->
908    <SpaceShip position="4000,4000,3000" lookat="-1300,-600,900" name="attacker"visible="true">
909        <events>
910            <visibility>
911                <EventListener event="ondock" />
912            </visibility>
913        </events>
914        <templates>
915            <Template link=spaceshippirate /> <!--spaceshipTransporter -->
916        </templates>
917        <controller>
918            <WaypointPatrolController alertnessradius=3129 team=1 active=false>
919                <waypoints>
920                    <Model mesh="cube.mesh" scale=0 position="-1300,-600,900" />
921                    <Model mesh="cube.mesh" scale=0 position="0,0,0" />
922                </waypoints>
923                <events>
924                    <activity>
925                        <EventListener event="attack" /> <!-- activates enemies-->
926                     </activity>
927                </events>
928            </WaypointPatrolController>
929        </controller>
930    </SpaceShip>
931<!-- 6 -->
932    <SpaceShip position="2000,-4000,5000" lookat="-1300,-600,900" name="attacker" visible="true">
933        <events>
934            <visibility>
935                <EventListener event="ondock" />
936            </visibility>
937        </events>
938        <templates>
939            <Template link=spaceshippirate /> <!--spaceshipTransporter -->
940        </templates>
941        <controller>
942            <WaypointPatrolController alertnessradius=3129 team=1 active=false>
943                <waypoints>
944                    <Model mesh="cube.mesh" scale=0 position="-1300,-600,900" />
945                    <Model mesh="cube.mesh" scale=0 position="0,0,0" />
946                </waypoints>
947                <events>
948                    <activity>
949                        <EventListener event="attack" /> <!-- activates enemies-->
950                     </activity>
951                </events>
952            </WaypointPatrolController>
953        </controller>
954    </SpaceShip>
955
956<!-- @Triggers: attacktriggerX <-> X enemies destroyed , X is an element of [1,6] -->
957    <EventTrigger name="attacktrigger6" activations="1" stayactive="true">
958      <events>
959        <trigger>
960          <EventListener event="attacker" />
961        </trigger>
962      </events>
963      <EventTrigger name="attacktrigger5" activations="1" stayactive="true" delay=0.1>
964        <events>
965          <trigger>
966            <EventListener event="attacker" />
967          </trigger>
968        </events>
969        <EventTrigger name="attacktrigger4" activations="1" stayactive="true" delay=0.1>
970          <events>
971            <trigger>
972              <EventListener event="attacker" />
973            </trigger>
974          </events>
975          <EventTrigger name="attacktrigger3" activations="1" stayactive="true" delay=0.1>
976            <events>
977              <trigger>
978                <EventListener event="attacker" />
979              </trigger>
980            </events>
981            <EventTrigger name="attacktrigger2" activations="1" stayactive="true" delay=0.1>
982              <events>
983                <trigger>
984                  <EventListener event="attacker" />
985                </trigger>
986              </events>
987              <EventTrigger name="attacktrigger1" activations="1" stayactive="true" delay=0.1>
988                <events>
989                  <trigger>
990                    <EventListener event="attacker" />
991                  </trigger>
992                </events>
993              </EventTrigger>
994            </EventTrigger>
995          </EventTrigger>
996        </EventTrigger>
997      </EventTrigger>
998    </EventTrigger>
999
1000
1001    <SimpleNotification message="5 enemies left!" broadcast="true">
1002      <events>
1003        <trigger>
1004          <EventListener event="attacktrigger1" />
1005        </trigger>
1006      </events>
1007    </SimpleNotification>
1008
1009    <SimpleNotification message="4 enemies left!" broadcast="true">
1010      <events>
1011        <trigger>
1012          <EventListener event="attacktrigger2" />
1013        </trigger>
1014      </events>
1015    </SimpleNotification>
1016
1017    <SimpleNotification message="3 enemies left!" broadcast="true">
1018      <events>
1019        <trigger>
1020          <EventListener event="attacktrigger3" />
1021        </trigger>
1022      </events>
1023    </SimpleNotification>
1024
1025    <SimpleNotification message="2 enemies left!" broadcast="true">
1026      <events>
1027        <trigger>
1028          <EventListener event="attacktrigger4" />
1029        </trigger>
1030      </events>
1031    </SimpleNotification>
1032    <SimpleNotification message="One enemy left!" broadcast="true">
1033      <events>
1034        <trigger>
1035          <EventListener event="attacktrigger5" />
1036        </trigger>
1037      </events>
1038    </SimpleNotification>
1039    <SimpleNotification message="Well done. You finished this tutorial." broadcast="true">
1040      <events>
1041        <trigger>
1042          <EventListener event="attacktrigger6" />
1043        </trigger>
1044      </events>
1045    </SimpleNotification>
1046
1047<!-- @Triggers: postAttack <-> delayed attacktrigger6 -->
1048    <EventTrigger name="postAttack1" activations="1" stayactive="true" delay=3>
1049      <events>
1050        <trigger>
1051          <EventListener event="attacktrigger6" />
1052        </trigger>
1053      </events>
1054    </EventTrigger>
1055
1056    <EventTrigger name="postAttack2" activations="1" stayactive="true" delay=6>
1057      <events>
1058        <trigger>
1059          <EventListener event="attacktrigger6" />
1060        </trigger>
1061      </events>
1062    </EventTrigger>
1063
1064    <SimpleNotification message="Either quit by pressing 'Esc' or ..." broadcast="true">
1065      <events>
1066        <trigger>
1067          <EventListener event="postAttack1" />
1068        </trigger>
1069      </events>
1070    </SimpleNotification>
1071
1072    <SimpleNotification message="... stay here to learn some tricks." broadcast="true">
1073      <events>
1074        <trigger>
1075          <EventListener event="postAttack2" />
1076        </trigger>
1077      </events>
1078    </SimpleNotification>
1079
1080<!-------------------------------------- |Bonus Part| --------------------------------------->
1081<!-- @Triggers: "bonusX" <->  delayed "attacktrigger6" -->
1082    <EventTrigger name="bonus1" activations="1" stayactive="true" delay=10>
1083      <events>
1084        <trigger>
1085          <EventListener event="attacktrigger6" />
1086        </trigger>
1087      </events>
1088    </EventTrigger>
1089    <EventTrigger name="bonus2" activations="1" stayactive="true" delay=16>
1090      <events>
1091        <trigger>
1092          <EventListener event="attacktrigger6" />
1093        </trigger>
1094      </events>
1095    </EventTrigger>
1096    <EventTrigger name="bonus3" activations="1" stayactive="true" delay=22>
1097      <events>
1098        <trigger>
1099          <EventListener event="attacktrigger6" />
1100        </trigger>
1101      </events>
1102    </EventTrigger>
1103    <EventTrigger name="bonus4" activations="1" stayactive="true" delay=28>
1104      <events>
1105        <trigger>
1106          <EventListener event="attacktrigger6" />
1107        </trigger>
1108      </events>
1109    </EventTrigger>
1110    <EventTrigger name="bonus5" activations="1" stayactive="true" delay=32.1>
1111      <events>
1112        <trigger>
1113          <EventListener event="attacktrigger6" />
1114        </trigger>
1115      </events>
1116    </EventTrigger>
1117    <EventTrigger name="bonus6" activations="1" stayactive="true" delay=36.2>
1118      <events>
1119        <trigger>
1120          <EventListener event="attacktrigger6" />
1121        </trigger>
1122      </events>
1123    </EventTrigger>
1124    <EventTrigger name="bonus7" activations="1" stayactive="true" delay=4>
1125      <events>
1126        <trigger>
1127          <EventListener event="bonus6" />
1128        </trigger>
1129      </events>
1130    </EventTrigger>
1131
1132
1133
1134    <SimpleNotification message="Rotate your ship. Press 'Q' or 'E'. "  broadcast="true">
1135        <events>
1136            <trigger>
1137                <EventListener event=bonus1 />
1138            </trigger>
1139        </events>
1140    </SimpleNotification>
1141
1142    <SimpleNotification message="Switch the camera's position. Press 'C'. "  broadcast="true">
1143        <events>
1144            <trigger>
1145                <EventListener event=bonus2 />
1146            </trigger>
1147        </events>
1148    </SimpleNotification>
1149
1150    <SimpleNotification message="360° view: press 'Ctrl' + use the mouse "  broadcast="true">
1151        <events>
1152            <trigger>
1153                <EventListener event=bonus3 />
1154            </trigger>
1155        </events>
1156    </SimpleNotification>
1157
1158    <SimpleNotification message="Have a look at the main menu's settings."  broadcast="true">
1159        <events>
1160            <trigger>
1161                <EventListener event=bonus4 />
1162            </trigger>
1163        </events>
1164    </SimpleNotification>
1165
1166    <SimpleNotification message="E.g: Settings > Miscellaneous > Nr. of bots"  broadcast="true">
1167        <events>
1168            <trigger>
1169                <EventListener event=bonus5 />
1170            </trigger>
1171        </events>
1172    </SimpleNotification>
1173
1174    <SimpleNotification message="You successfully finished Mission One!"  broadcast="true">
1175        <events>
1176            <trigger>
1177                <EventListener event=bonus6 />
1178            </trigger>
1179        </events>
1180    </SimpleNotification>
1181
1182    <SimpleNotification message="Press 'Esc' and return to the main menu."  broadcast="true">
1183        <events>
1184            <trigger>
1185                <EventListener event=bonus7 />
1186            </trigger>
1187        </events>
1188    </SimpleNotification>
1189
1190
1191    <!--Script code="addBots 3" onLoad="false">
1192        <events>
1193            <trigger>
1194                <EventListener event=bonus6 />
1195            </trigger>
1196        </events>
1197    </Script>
1198
1199    <Script code="artificialcontroller setbotlevel 0.1" onLoad="false">
1200        <events>
1201            <trigger>
1202                <EventListener event=bonus6 />
1203            </trigger>
1204        </events>
1205    </Script-->
1206    <!-- Script code="artificialcontroller setbotlevel 0.1" /-->
1207  </Scene>
1208</Level>
1209<!-- TODO:
1210! Quest Interface
1211- Foolproof text messages (e.g. verspätete Nachrichten unterdrücken)
1212- Radar visibility & Hud Markers
1213- End Tutorial, if either the Hydrogen Farmer or the SpaceCruiser gets destroyed.
1214
1215 -->
Note: See TracBrowser for help on using the repository browser.