Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/presentationHS15/data/levels/shuttleRetaliation.oxw @ 10974

Last change on this file since 10974 was 10970, checked in by maxima, 9 years ago

Merged campaign and presentation. Everything seems to work fine.

File size: 38.9 KB
RevLine 
[10823]1<LevelInfo
2    name = "Retaliation"
3    description = "This attack cannot be met with no consequences! Commander, we order you to get back to sector 5C and erradicate the alien menace at once!"
4    tags = "mission"
[10932]5    screenshot = "retailiation.png"
[10823]6/>
7
8<?lua
9    include("stats.oxo")
10    include("HUDTemplates3.oxo")
11    include("templates/lodInformation.oxt")
12
13    include("templates/spaceshipAssff.oxt")
14    include("templates/spaceshipPirate.oxt")
15    include("templates/spaceshipEscort.oxt")
16    include("templates/spaceshipShuttle.oxt")
17    include("templates/FPS.oxt")
18    include("templates/pickupRepresentationTemplates.oxt")
19?>
20
21<Level gametype = "Mission">
22    <templates>
23        <Template link="lodtemplate_default" />
24    </templates>
25
26    <?lua include("includes/notifications.oxi") ?>
27
28    <NotificationQueueCEGUI
29        name="narrative"
30        targets="simpleNotification"
31        size=3
32        displayTime=3.9
33        position="0.15, 0, 0.1, 0"
34        fontSize="15"
35        fontColor="0.3, 1, 0.2, 0.8"
36        alignment="HorzCentred"
37        displaySize="0.7, 0, 0, 0"
38    />
39
40    <!-- GLOBAL LUA VARIABLES -->
41    <?lua
42
[10906]43        enemies = 2
44        allies = 2
[10841]45
[10887]46        radSector = 12000
47
[10823]48        --[[ Coordinates in (y,z,x). NOTE: Indexing starts at 1 in lua! Don´t forget to adapt the for loops, too! ]]--
49        cCenter = {0, 0, 0}
[10887]50        cSpawn = {1500, -2000, 900}
51        cSector = {-15000, -5500, -9000}
52        cSectorEntry = {-4710, -5500, -2826}
53        cPathToEntry = {{0, -2000, 0}}
54        cBeacon = {-6500, -5500, -4400}
55         cAllyWait = cBeacon
[10823]56
[10887]57        cAlly = cSpawn
58        cEnemy = {-9600, -5500, -6000}
[10823]59
[10887]60        rSection= {0, -200, 0}
61        rWingman1 = {0, -100, 100}
62        rWingman2 = {0, -100, -100}
63
[10892]64        cPlanet1 = {20000, 0, 29000}
65        cPlanet2 = {-22000, 0, -29000}
[10841]66
[10892]67        cEnemyBasePlanet = {-20000, -8000, -10000}
[10841]68
69        cField1 = {-5000, -4000, -3000}
70        cField2 = {4000, 2000, 4500}
71
72
[10823]73        --[[ Function to print Coordinates. Quotes not included! ]]--
74        function printC(coord)
75          print(coord[1] .. [[,]] .. coord[2] .. [[,]] .. coord[3])
76        end
[10887]77
78        --[[ Function to add Coordinates.]]--
79        function addC(coord1, coord2)
80            return {coord1[1]+coord2[1], coord1[2]+coord2[2], coord1[3]+coord2[3]}
81        end
[10823]82    ?>
83
84    <Scene
85        ambientlight = "0.8, 0.8, 0.8"
86        skybox = "Orxonox/skyBoxMoreNebula"
87        hasPhysics = true
88    >
89
90    <WorldAmbientSound source="Earth.ogg" looping="true" playOnLoad="true" />
91
[10887]92    <Light type=directional position="<?lua printC(cSpawn) ?>" 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"/>
[10823]93
[10887]94    <!--SPAWNING-->
95
96    <Template name=commander>
97        <SpaceShip
98            template            = "spaceshipassff"
99            team                = "0"
100            health              = "800"
101            initialhealth       = "800"
102            maxhealth           = "1500"
103            shieldhealth        = "80"
104            initialshieldhealth = "80"
105            maxshieldhealth     = "120"
106            shieldabsorption    = "0.8"
107            reloadrate          = "1"
108            reloadwaittime      = "1"
109            name                = "commander"
110            radarname           = "Commander"
111            >
112            <attached>
113                <DistanceTriggerBeacon name="Commander" />
114            </attached>
115        </SpaceShip>
116    </Template>
117
118    <Template name=ally>
119        <SpaceShip
120            template            = "spaceshipassff"
121            team                = "0"
122            radarname           = "Ally"
123            lookat              = "<?lua printC(cPathToEntry[1]) ?>"
124        >
125            <attached>
126                <DistanceTriggerBeacon name="Ally" />
127            </attached>
128        </SpaceShip>
129    </Template>
130
131    <Template name=enemy>
132        <SpaceShip
133            template            = "spaceshippirate"
134            team                = "1"
135            radarname           = "Invader"
136            lookat              = "<?lua printC(cBeacon) ?>"
137            active              = false
138            visible             = false
139        >
140            <attached>
141                <DistanceTriggerBeacon name="Enemy" />
142            </attached>
143        </SpaceShip>
144    </Template>
145
146    <TeamSpawnPoint active=false name="playerSpawn" team=0 position="<?lua printC(cSpawn) ?>" lookat="<?lua printC(cPathToEntry[1]) ?>" spawnclass=SpaceShip pawndesign=commander>
147        <events>
148            <activity>
149                <EventTrigger invert=true>
150                  <events>
151                    <trigger>
152                      <EventListener event="reachedSector" />
153                    </trigger>
154                  </events>
155                </EventTrigger>
156            </activity>
157        </events>
158    </TeamSpawnPoint>
159
160    <TeamSpawnPoint active=false name="altSpawn" team=0 position="<?lua printC(cBeacon) ?>" lookat="<?lua printC(cSector) ?>" spawnclass=SpaceShip pawndesign=commander>
161        <events>
162            <activity>
163                <EventListener event="reachedSector" />
164            </activity>
165        </events>
166    </TeamSpawnPoint>
167
[10823]168    <!--QUEST DEFINITIONS-->
169
170    <GlobalQuest id="quest1">
[10887]171        <QuestDescription title="Enter Sector 5C" description="It is time to retaliate against the aggressors. Get back to Sector 5C to kill every last one of them! We have you covered with <?lua print(allies) ?> of our finest Divisions. They will guide, help and protect you if necessary." failMessage="" completeMessage="" />
[10823]172        <hints>
[10887]173            <QuestHint id="quest1hint1">
174                <QuestDescription title="Markings" description="We have marked the bounds of Sector 5C in red lights, you can follow the green trail to get there." />
175            </QuestHint>
[10823]176        </hints>
177    </GlobalQuest>
178
[10841]179    <GlobalQuest id="quest2">
[10887]180        <QuestDescription title="Find them" description="It seems they have hidden themselves, that is, their whole civilization, in fear of retaliation. Our scientists presume some cloaking technology to be in use. Look out for a way to make the aggressors visible!" failMessage="" completeMessage="" />
[10841]181        <hints>
182            <QuestHint id="quest2hint1">
[10887]183                <QuestDescription title="The detector beacon" description="Our scientists claim cloaking is generally toggled by a visible Switch called a detector beacon. Try to find a bright light in your Area and approach it!" />
[10841]184            </QuestHint>
185        </hints>
186    </GlobalQuest>
187
188    <GlobalQuest id="quest3">
189        <QuestDescription title="Fight their army" description="You have successfully uncovered their civilization and home planet, and it is much worse than we thought... they came prepared! You have to fight their army to fulfill your mission." failMessage="" completeMessage="" />
190        <hints>
191        </hints>
192        <complete-effects>
193            <AddQuest questId="quest4" />
[10887]194            <AddQuest questId="quest4.1" />
195            <AddQuest questId="quest4.2" />
196            <AddQuestHint hintId="quest4.1hint1" />
197            <AddQuestHint hintId="quest4.2hint1" />
[10841]198        </complete-effects>
199    </GlobalQuest>
200
201    <GlobalQuest id="quest4">
[10887]202        <QuestDescription title="Do the right thing" description="The aggressors have surrendered and seem to have had good reasons for their actions. Yet they did not talk to us beforehand and tried to kill us. What will you do?" failMessage="" completeMessage="" />
[10841]203        <hints>
204        </hints>
[10887]205        <subquests>
206            <GlobalQuest id="quest4.1">
207                <QuestDescription title="> Destroy their civilisation" description="Even if they had reasons, they are still murderers and can not be trusted anymore. This whole thing might even be a setup... We need to kill them and destroy their planet!" failMessage="" completeMessage="" />
208                <hints>
209                    <QuestHint id="quest4.1hint1">
[10907]210                        <QuestDescription title="Choosing" description="To make this choice, kill the remaining enemy ships. The divisions will follow your decision." />
[10887]211                    </QuestHint>
212                </hints>
213            </GlobalQuest>
214            <GlobalQuest id="quest4.2">
215                <QuestDescription title="> Spare them and leave" description="Military tension arising from a missunderstanding is no valid reasoning for a genocide. Nothing is. We should leave and talk this out later." failMessage="" completeMessage="" />
216                <hints>
217                    <QuestHint id="quest4.2hint1">
[10907]218                        <QuestDescription title="Choosing" description="To make this choice, fly out of the sector. The divisions will follow your decision." />
[10887]219                    </QuestHint>
220                </hints>
221            </GlobalQuest>
222        </subquests>
[10841]223    </GlobalQuest>
224
[10823]225    <!--EVENTS AND TRIGGERS
226        Usable events and triggers:
227        spawntrigger
228    -->
229
[10841]230    <EventMultiTrigger name="spawntrigger" activations=1>
[10823]231        <events>
232            <trigger>
233                <EventListener event="playerSpawn" />
234            </trigger>
235        </events>
236    </EventMultiTrigger>
237
[10904]238    <EventMultiTrigger name="spawned" stayactive=true activations=1>
239        <events>
240            <trigger>
241                <EventListener event="spawntrigger" />
242            </trigger>
243        </events>
244    </EventMultiTrigger>
245
[10887]246    <DistanceTrigger name="reachedSector" position="<?lua printC(cSector) ?>" distance="<?lua print(radSector) ?>" target="SpaceShip" beaconMode="identify" targetname="Commander" stayactive=true />
[10841]247
[10887]248    <EventMultiTrigger name="addQuest2">
249        <events>
250            <trigger>
251                <EventTrigger stayactive="true" delay=10 >
252                   <events>
253                      <trigger>
254                         <EventListener event="reachedSector" />
255                      </trigger>
256                   </events>
257                </EventTrigger>
258            </trigger>
259        </events>
260    </EventMultiTrigger>
261
262    <DistanceTrigger name="alliesReachedWait" position="<?lua printC(cAllyWait) ?>" distance="1000" target="SpaceShip" beaconMode="identify" targetname="Ally" stayactive=true />
263
264    <!-- So the allies stall when they reached their position for negociation and don´t fire away... -->
265
266    <EventDispatcher name="allyControllerDispatcher">
267      <targets>
268        <EventTarget target="allyController" />
269      </targets>
270      <events>
271          <activity>
[10904]272                <Trigger mode=or>
273                    <EventTrigger invert=true>
274                        <events>
275                            <trigger>
276                                <EventListener event="alliesReachedWait" />
277                            </trigger>
278                        </events>
279                    </EventTrigger>
280                    <EventTrigger>
281                        <events>
282                            <trigger>
283                                <EventListener event="noMercy" />
284                            </trigger>
285                        </events>
286                    </EventTrigger>
287                    <Trigger mode=and>
288                        <EventTrigger>
289                            <events>
290                                <trigger>
291                                    <EventListener event="fightBegun" />
292                                </trigger>
293                            </events>
294                        </EventTrigger>
295                        <EventTrigger invert=true>
296                            <events>
297                                <trigger>
298                                    <EventListener event="oneUnitLeft" />
299                                </trigger>
300                            </events>
301                        </EventTrigger>
302                    </Trigger>
[10907]303                </Trigger>
[10887]304          </activity>
305      </events>
306    </EventDispatcher>
307
[10841]308    <EventMultiTrigger name="hintBeacon">
309        <events>
310            <trigger>
[10887]311                <EventTrigger stayactive="true" delay=70 >
[10841]312                   <events>
313                      <trigger>
314                         <EventListener event="reachedSector" />
315                      </trigger>
316                   </events>
317                </EventTrigger>
318            </trigger>
319        </events>
320    </EventMultiTrigger>
321
[10887]322    <DistanceTrigger name="cloakBeacon" position="<?lua printC(cBeacon) ?>" distance=100 target="SpaceShip" beaconMode="identify" targetname="Commander" stayactive=true />
[10841]323
[10887]324    <EventMultiTrigger name="fightBegun" stayactive=true>
325        <events>
326            <trigger>
327                <EventTrigger stayactive="true" delay=12>
328                   <events>
329                      <trigger>
330                         <EventListener event="cloakBeacon" />
331                      </trigger>
332                   </events>
333                </EventTrigger>
334            </trigger>
335        </events>
336    </EventMultiTrigger>
337
338    <EventDispatcher name="enemyControllerDispatcher">
339      <targets>
340        <EventTarget target="enemyController" />
341      </targets>
342      <events>
343          <activity>
344              <Trigger mode=and>
345                  <EventTrigger>
346                      <events>
347                          <trigger>
348                              <EventListener event="fightBegun" />
349                          </trigger>
350                      </events>
351                  </EventTrigger>
352                  <EventTrigger invert=true>
353                      <events>
354                          <trigger>
355                              <EventListener event="oneUnitLeft" />
356                          </trigger>
357                      </events>
358                  </EventTrigger>
359              </Trigger>
360          </activity>
361      </events>
362    </EventDispatcher>
363
364    <EventMultiTrigger name="noMercy" stayactive=true>
365        <events>
366            <trigger>
[10907]367                <EventListener event="allUnitsDown" />
[10887]368            </trigger>
369        </events>
370    </EventMultiTrigger>
371
[10907]372    <EventMultiTrigger name="enemyPlanetMulti">
373     <events>
374         <trigger>
375             <EventListener event="enemyPlanet" />
376         </trigger>
377     </events>
378    </EventMultiTrigger>
379
[10887]380    <!-- Recursive helper function for the event at the "end" of a Unit.-->
381    <?lua
382    function enemyTriggerRecursor(i, k)
383    if i > 0 then
384    return [[
385    <EventTrigger name=killedEnemy]] .. ((k-1)*4+i) .. [[ activations=1 stayactive=true delay=0.1>
386        <events>
387            <trigger>
388                <EventListener event=enemy]] .. k .. [[ />
389            </trigger>
390        </events>
391        ]] .. enemyTriggerRecursor(i-1, k) .. [[
392    </EventTrigger>
393    ]]
394    else return ""
395    end
396    end
397    ?>
398    <!-- Actual recursive Event(s) for the respective Units. (packs of 4 Enemies that is!) -->
399    <?lua
400    for k = 1, enemies, 1
401    do
402    print(enemyTriggerRecursor(4,k))
403    ?>
404    <EventMultiTrigger name="unit<?lua print(k) ?>Down" delay=0.1 stayactive=true>
405        <events>
406            <trigger>
407                <EventListener event="killedEnemy<?lua print(k*4) ?>" />
408            </trigger>
409        </events>
410    </EventMultiTrigger>
411    <?lua end ?>
412
413    <EventMultiTrigger name="oneUnitLeft" stayactive=true>
414        <events>
415            <trigger>
416                <Trigger mode=or>
417                    <?lua
418                    for k = 1, enemies, 1
419                    do
420                    ?>
421                        <Trigger mode=and>
422                            <EventTrigger invert=true>
423                                <events>
424                                    <trigger>
425                                        <EventListener event="unit<?lua print(k) ?>Down" />
426                                    </trigger>
427                                </events>
428                            </EventTrigger>
429                            <?lua
430                            for i = 1, enemies, 1
431                            do
432                            if not (i == k) then
433                            ?>
434                            <EventTrigger>
435                                <events>
436                                    <trigger>
437                                        <EventListener event="unit<?lua print(i) ?>Down" />
438                                    </trigger>
439                                </events>
440                            </EventTrigger>
441                            <?lua end end ?>
442                        </Trigger>
443                    <?lua end ?>
444                </Trigger>
445            </trigger>
446        </events>
447    </EventMultiTrigger>
448
[10904]449    <EventMultiTrigger name="allUnitsDown" stayactive=true>
[10887]450        <events>
451            <trigger>
452                <Trigger mode=and>
453                    <?lua
454                    for k = 1, enemies, 1
455                    do
456                    ?>
457                    <EventTrigger>
458                        <events>
459                            <trigger>
[10907]460                                <EventListener event="unit<?lua print(k) ?>Down" />
[10887]461                            </trigger>
462                        </events>
463                    </EventTrigger>
464                    <?lua end ?>
465                </Trigger>
466            </trigger>
467        </events>
468    </EventMultiTrigger>
469
[10823]470    <!--TODO: Complete the DistanceTriggers for completing/succeeding correctly! -->
471
[10907]472    <DistanceTrigger active=false invert=true name="almostLeft" position="<?lua printC(cSector) ?>" distance="<?lua print(radSector-200) ?>" target="SpaceShip" beaconMode="identify" targetname="Commander" stayactive=true>
[10823]473        <events>
474            <activity>
[10907]475                <Trigger mode=and>
476                    <EventTrigger>
477                        <events>
478                            <trigger>
479                                <EventListener event="oneUnitLeft" />
480                            </trigger>
481                        </events>
482                    </EventTrigger>
483                    <EventTrigger invert=true>
484                        <events>
485                            <trigger>
486                                <EventListener event="enemyPlanetMulti" />
487                            </trigger>
488                        </events>
489                    </EventTrigger>
490                </Trigger>
[10823]491            </activity>
492        </events>
493    </DistanceTrigger>
494
[10907]495    <DistanceTrigger active=false invert=true name="leftSector" position="<?lua printC(cSector) ?>" distance="<?lua print(radSector) ?>" target="SpaceShip" beaconMode="identify" targetname="Commander" stayactive=true>
[10823]496        <events>
497            <activity>
[10907]498                <EventListener event="oneUnitLeft" />
[10823]499            </activity>
500        </events>
501    </DistanceTrigger>
502
[10907]503    <Script code="Mission endMission true" onLoad="false">
[10823]504        <events>
505            <trigger>
[10907]506                <EventListener event="leftSector" />
[10823]507            </trigger>
508        </events>
509    </Script>
510
511    <!--QUEST EFFECT BEACONS -->
512
513    <QuestEffectBeacon times=1>
514        <effects>
515            <AddQuest questId="quest1" />
[10887]516            <AddQuestHint HintId="quest1hint1" />
[10823]517        </effects>
518        <events>
519            <execute>
520                <EventListener event="spawntrigger" />
521            </execute>
522        </events>
523    </QuestEffectBeacon>
524
[10841]525    <QuestEffectBeacon times=1>
526        <effects>
527            <CompleteQuest questId="quest1" />
528        </effects>
529        <events>
530            <execute>
531                <EventListener event="reachedSector" />
532            </execute>
533        </events>
534    </QuestEffectBeacon>
535
536    <QuestEffectBeacon times=1>
537        <effects>
[10887]538            <AddQuest questId="quest2" />
[10841]539        </effects>
540        <events>
541            <execute>
[10887]542                <EventListener event="addQuest2" />
543            </execute>
544        </events>
545    </QuestEffectBeacon>
546
547    <QuestEffectBeacon times=1>
548        <effects>
549            <AddQuestHint hintId="quest2hint1
550                " />
551        </effects>
552        <events>
553            <execute>
[10841]554                <EventListener event="hintBeacon" />
555            </execute>
556        </events>
557    </QuestEffectBeacon>
558
559    <QuestEffectBeacon times=1>
560        <effects>
561            <CompleteQuest questId="quest2" />
562        </effects>
563        <events>
564            <execute>
565                <EventListener event="cloakBeacon" />
566            </execute>
567        </events>
568    </QuestEffectBeacon>
569
[10887]570    <QuestEffectBeacon times=1>
571        <effects>
572            <AddQuest questId="quest3" />
573        </effects>
574        <events>
575            <execute>
576                <EventListener event="fightBegun" />
577            </execute>
578        </events>
579    </QuestEffectBeacon>
580
581    <QuestEffectBeacon times=1>
582        <effects>
583            <CompleteQuest questId="quest3" />
584        </effects>
585        <events>
586            <execute>
587                <EventListener event="oneUnitLeft" />
588            </execute>
589        </events>
590    </QuestEffectBeacon>
591
592    <!--TODO: Include planet destruction and quitting -->
593
594    <QuestEffectBeacon times=1>
595        <effects>
596            <CompleteQuest questId="quest4" />
597        </effects>
598        <events>
599            <execute>
600                <EventListener event="enemyAllGone" />
601            </execute>
602        </events>
603    </QuestEffectBeacon>
604
605
[10823]606    <!--NOTIFICATIONS -->
607
[10841]608    <SimpleNotification broadcast="true" message="Welcome, Commander. It is time to retaliate!">
[10823]609        <events>
610            <trigger>
611                <EventTrigger stayactive="true" delay=4 >
612                   <events>
613                      <trigger>
614                         <EventListener event="spawntrigger" />
615                      </trigger>
616                   </events>
617                </EventTrigger>
618            </trigger>
619        </events>
620    </SimpleNotification>
621
[10841]622    <SimpleNotification broadcast="true" message="Get to section 5C and erradicate the aggressors!">
623        <events>
624            <trigger>
625                <EventTrigger stayactive="true" delay=8 >
626                   <events>
627                      <trigger>
628                         <EventListener event="spawntrigger" />
629                      </trigger>
630                   </events>
631                </EventTrigger>
632            </trigger>
633        </events>
634    </SimpleNotification>
[10823]635
[10841]636    <SimpleNotification broadcast="true" message="That seems extreme. Is there no way around it?">
637        <events>
638            <trigger>
639                <EventTrigger stayactive="true" delay=12 >
640                   <events>
641                      <trigger>
642                         <EventListener event="spawntrigger" />
643                      </trigger>
644                   </events>
645                </EventTrigger>
646            </trigger>
647        </events>
648    </SimpleNotification>
649
[10887]650    <SimpleNotification broadcast="true" message="Stick to your objective, Commander. This is war.">
[10841]651        <events>
652            <trigger>
653                <EventTrigger stayactive="true" delay=16 >
654                   <events>
655                      <trigger>
656                         <EventListener event="spawntrigger" />
657                      </trigger>
658                   </events>
659                </EventTrigger>
660            </trigger>
661        </events>
662    </SimpleNotification>
663
[10887]664    <SimpleNotification broadcast="true" message="Huh?! The sector is empty! where are they hiding?">
665       <events>
666           <trigger>
667               <EventTrigger stayactive="true" delay=2 >
668                  <events>
669                     <trigger>
670                        <EventListener event="reachedSector" />
671                     </trigger>
672                  </events>
673               </EventTrigger>
674           </trigger>
675       </events>
676    </SimpleNotification>
[10841]677
[10887]678    <SimpleNotification broadcast="true" message="They must be cloaking themselves! But we'll figure it out...">
679      <events>
680          <trigger>
681              <EventTrigger stayactive="true" delay=6 >
682                 <events>
683                    <trigger>
684                       <EventListener event="reachedSector" />
685                    </trigger>
686                 </events>
687              </EventTrigger>
688          </trigger>
689      </events>
690    </SimpleNotification>
[10841]691
[10887]692    <SimpleNotification broadcast="true" message="Got it! Look out for a bright light and touch it!">
693     <events>
694         <trigger>
695             <EventListener event="addQuest2" />
696         </trigger>
697     </events>
698    </SimpleNotification>
[10841]699
[10887]700    <SimpleNotification broadcast="true" message="Divisions are standing by, Sir.">
701     <events>
702         <trigger>
703             <EventListener event="alliesReachedWait" />
704         </trigger>
705     </events>
706    </SimpleNotification>
[10841]707
[10887]708    <SimpleNotification broadcast="true" message="Woah! what the hell! they boobytrapped us!">
709     <events>
710         <trigger>
711             <EventListener event="cloakBeacon" />
712         </trigger>
713     </events>
714    </SimpleNotification>
[10841]715
[10887]716    <SimpleNotification broadcast="true" message="Greetings, Humans. Are you here to resign to your menace and make amends?">
717     <events>
718         <trigger>
719             <EventTrigger stayactive="true" delay=4 >
720                <events>
721                   <trigger>
722                      <EventListener event="cloakBeacon" />
723                   </trigger>
724                </events>
725             </EventTrigger>
726         </trigger>
727     </events>
728    </SimpleNotification>
[10841]729
[10887]730    <SimpleNotification broadcast="true" message="Menace? What is he on about, General?">
731     <events>
732         <trigger>
733             <EventTrigger stayactive="true" delay=8 >
734                <events>
735                   <trigger>
736                      <EventListener event="cloakBeacon" />
737                   </trigger>
738                </events>
739             </EventTrigger>
740         </trigger>
741     </events>
742    </SimpleNotification>
[10841]743
[10887]744    <SimpleNotification broadcast="true" message="None of your concern, Commander. Launch the attack!">
745     <events>
746         <trigger>
747             <EventTrigger stayactive="true" delay=12 >
748                <events>
749                   <trigger>
750                      <EventListener event="cloakBeacon" />
751                   </trigger>
752                </events>
753             </EventTrigger>
754         </trigger>
755     </events>
756    </SimpleNotification>
[10841]757
[10887]758    <SimpleNotification broadcast="true" message="Unit 1 down!">
759     <events>
760         <trigger>
761             <EventListener event="unit1Down" />
762         </trigger>
763     </events>
764    </SimpleNotification>
[10841]765
[10887]766    <SimpleNotification broadcast="true" message="Unit 2 down!">
767     <events>
768         <trigger>
769             <EventListener event="unit2Down" />
770         </trigger>
771     </events>
772    </SimpleNotification>
773
774    <SimpleNotification broadcast="true" message="Unit 3 down!">
775     <events>
776         <trigger>
777             <EventListener event="unit3Down" />
778         </trigger>
779     </events>
780    </SimpleNotification>
781
782    <SimpleNotification broadcast="true" message="Unit 4 down!">
783     <events>
784         <trigger>
785             <EventListener event="unit4Down" />
786         </trigger>
787     </events>
788    </SimpleNotification>
789
790    <SimpleNotification broadcast="true" message="Please! No More! We surrender!">
791     <events>
792         <trigger>
793             <EventListener event="oneUnitLeft" />
794         </trigger>
795     </events>
796    </SimpleNotification>
797
[10907]798    <SimpleNotification broadcast="true" message="Roger that, Commander. We destroy their planet.">
[10887]799     <events>
800         <trigger>
[10904]801             <EventListener event="allUnitsDown" />
[10887]802         </trigger>
803     </events>
804    </SimpleNotification>
805
[10907]806    <SimpleNotification broadcast="true" message="Well done, Commander! Now exfiltrate the sector!">
[10887]807     <events>
808         <trigger>
[10907]809             <EventListener event="enemyPlanetMulti" />
[10887]810         </trigger>
811     </events>
812    </SimpleNotification>
813
[10907]814    <SimpleNotification broadcast="true" message="This will have dire consequences, Commander!">
815     <events>
816         <trigger>
817             <EventListener event="almostLeft" />
818         </trigger>
819     </events>
820    </SimpleNotification>
821
[10887]822    <!--ELEMENTS -->
823
824    <!-- Billboard Path to Sector 5C. Height changes in an atan shape -->
825
[10841]826    <?lua
[10887]827    for i = 1, 11, 1
[10841]828    do
[10887]829    heightNow = cPathToEntry[1][2] - (cPathToEntry[1][2]-cSectorEntry[2])*(math.atan(-1.6+0.3*i) + 1)/2
830    cBillNow = {(cSectorEntry[1]-cPathToEntry[1][1])*i/12, heightNow, (cSectorEntry[3]-cPathToEntry[1][3])*i/12}
831    cPathToEntry[i+1] = cBillNow
[10841]832    ?>
[10887]833    <Billboard position="<?lua printC(cBillNow) ?>"  scale=2 material="Flares/ringflare" colour="0.2,0.9,0.2"/>
834    <?lua
835    end
836    cPathToEntry[13] = cSectorEntry
837    ?>
[10841]838
[10887]839    <Billboard position="<?lua printC(cSectorEntry) ?>"  scale=5 material="Flares/ringflare" colour="0.2,0.9,0.2"/>
[10841]840
[10887]841    <!-- Circular Billboard Ring around Sector 5C -->
[10841]842
[10887]843    <?lua
844    for i = 1, 64, 1
845    do
846    rBillboard = {math.sin(i*math.pi/32)*radSector, 0, math.cos(i*math.pi/32)*radSector}
847    cBillNow = addC(cSector,rBillboard)
848    ?>
849    <Billboard position="<?lua printC(cBillNow) ?>"  scale=10 material="Flares/lensflare" colour="1,0.2,0.2"/>
850    <?lua end ?>
[10841]851
[10887]852    <!-- Cloaking Beacon -->
[10841]853
[10887]854    <BlinkingBillboard visible=false active=false scale=2 position="<?lua printC(cBeacon) ?>" material="Flares/lensflare" frequency=1 amplitude=3 colour="0.4,0.4,1">
855        <events>
856            <activity>
857                <EventListener event="addQuest2" />
858            </activity>
859            <visibility>
860                <EventListener event="addQuest2" />
861            </visibility>
862        </events>
863    </BlinkingBillboard>
[10823]864
[10841]865    <!-- Asteroids you have to fly through to get to the EnemyBase -->
[10887]866
[10841]867    <?lua
868        dofile("includes/asteroidField.lua")
869       asteroidField(cField1[1], cField1[2], cField1[3], 20, 30, 4500, 500, 0)
[10887]870    ?>
[10823]871
[10841]872    <!-- Other Asteroid-Fields -->
873
874    <?lua
875        dofile("includes/asteroidField.lua")
876       asteroidField(cField2[1], cField2[2], cField2[3], 20, 30, 4500, 500, 0)
[10887]877    ?>
[10841]878
879    <!-- Planets -->
880
881   <Planet
[10823]882        position="<?lua printC(cPlanet1) ?>"
[10841]883        scale="3000"
[10823]884        collisionType="dynamic"
885        linearDamping="0.8"
886        angularDamping="0"
887        mass="5000000"
888        pitch="0"
889        mesh="planets/muunilinst.mesh"
890        atmosphere="atmosphere1"
891        rotationaxis="1,0,0"
892        rotationrate="1.0"
893        atmospheresize="80.0f"
894        imagesize="1024.0f"
895        collisiondamage = 2
896        enablecollisiondamage = true
[10841]897    visible=true
898    active=true
[10823]899      >
900      <attached>
[10841]901        <ForceField position="0,0,0" mode="sphere" diameter="6000" velocity="-500" />
[10823]902        </attached>
[10907]903        <collisionShapes>
[10841]904            <SphereCollisionShape radius="3000" position="0,0,0" />
[10823]905      </collisionShapes>
906    </Planet>
907
908    <?lua
909        dofile("includes/asteroidField.lua")
[10841]910        asteroidBelt(cPlanet1[1], cPlanet1[2], cPlanet1[3], 30, 20, 100, 20, 40, 3400, 3700, 400, 1)
[10823]911    ?>
912
913    <Planet
914        position="<?lua printC(cPlanet2) ?>"
[10841]915        scale="2000"
[10823]916        collisionType="dynamic"
917        linearDamping="0.8"
918        angularDamping="0"
919        mass="5000000"
920        pitch="0"
[10841]921        mesh="planets/ganymede.mesh"
[10823]922        atmosphere="atmosphere1"
923        rotationaxis="1,0,0"
924        rotationrate="1.0"
925        atmospheresize="80.0f"
926        imagesize="1024.0f"
927        collisiondamage = 2
928        enablecollisiondamage = true
[10887]929        visible=true
930        active=true
[10823]931      >
932      <attached>
[10841]933        <ForceField position="0,0,0" mode="sphere" diameter="4000" velocity="-500" />
[10823]934        </attached>
935          <collisionShapes>
[10841]936            <SphereCollisionShape radius="2000" position="0,0,0" />
[10823]937      </collisionShapes>
938    </Planet>
939
940    <?lua
941        dofile("includes/asteroidField.lua")
942        asteroidBelt(cPlanet2[1], cPlanet2[2], cPlanet2[3], 30, 20, 100, 20, 40, 3400, 3700, 400, 1)
943    ?>
944
[10887]945    <!-- EnemyPlanet -->
[10841]946
947    <Planet
948        position="<?lua printC(cEnemyBasePlanet) ?>"
949        scale="5000"
950        collisionType="dynamic"
951        linearDamping="0.8"
952        angularDamping="0"
953        mass="5000000"
954        pitch="0"
955        mesh="planets/jupiter.mesh"
956        atmosphere="atmosphere1"
957        rotationaxis="1,0,0"
958        rotationrate="1.0"
959        atmospheresize="80.0f"
960        imagesize="1024.0f"
961        collisiondamage = 2
962        enablecollisiondamage = true
[10887]963        visible=false
964        active=false
965    >
966        <attached>
[10907]967           <ForceField position="0,0,0" rotationaxis="0.1,1,0.1"mode="sphere" diameter="10000" velocity="-500" />
[10841]968        </attached>
[10887]969        <events>
970            <activity>
[10907]971                <Trigger  name="enemyPlanetVisible" mode=and>
972                   <EventTrigger>
973                         <events>
974                             <trigger>
975                                 <EventListener event="cloakBeacon" />
976                             </trigger>
977                         </events>
978                     </EventTrigger>
979                     <EventTrigger invert=true>
980                         <events>
981                             <trigger>
982                                 <EventListener event="enemyPlanetMulti" />
983                             </trigger>
984                         </events>
985                     </EventTrigger>
986                 </Trigger>
[10887]987            </activity>
988            <visibility>
[10907]989                <Trigger  name="enemyPlanetVisible" mode=and>
990                   <EventTrigger>
991                         <events>
992                             <trigger>
993                                 <EventListener event="cloakBeacon" />
994                             </trigger>
995                         </events>
996                     </EventTrigger>
997                     <EventTrigger invert=true>
998                         <events>
999                             <trigger>
1000                                 <EventListener event="enemyPlanetMulti" />
1001                             </trigger>
1002                         </events>
1003                     </EventTrigger>
1004                 </Trigger>
[10887]1005            </visibility>
1006        </events>
[10907]1007        <collisionShapes>
1008          <SphereCollisionShape position="0,0,0" radius=5000/>
1009        </collisionShapes>
[10841]1010    </Planet>
1011
[10887]1012    <!-- Pawn that represents the planet during destruction -->
1013
[10907]1014    <Pawn team=1 visible=false active=false scale=5000 health=500 name="enemyPlanet" position="<?lua printC(cEnemyBasePlanet) ?>" collisionType=dynamic mass=5000000 radarname="Enemy home planet">
1015        <events>
1016            <activity>
1017                <EventListener event="allUnitsDown" />
1018            </activity>
1019            <visibility>
1020                <EventListener event="allUnitsDown" />
1021            </visibility>
1022        </events>
[10887]1023        <collisionShapes>
[10907]1024          <SphereCollisionShape position="0,0,0" radius=5005/>
[10887]1025        </collisionShapes>
1026    </Pawn>
1027    <!--SHIPS -->
[10953]1028    <!-- one Controller to rule them all -->
1029    <Pawn position = "100000, 100000, 100000">
1030      <controller>
1031        <MasterController>
1032        </MasterController>
1033      </controller>
1034    </Pawn>
[10887]1035    <!--Allied units-->
1036
1037    <?lua
1038    for i = 1, allies, 1
1039    do
1040    rUnit = {-math.sin(math.pi*((i-1/2)/allies))*125, math.pow(-1,i)*80, math.cos(math.pi*((i-1/2)/allies))*800}
1041    cAllyNow = addC(cAlly,rUnit)
1042    ?>
1043
1044    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(cAllyNow) ?>" name="ally<?lua print(i) ?>.D">
1045      <templates>
1046        <Template link=ally />
1047      </templates>
1048      <controller>
1049        <DivisionController name="allyController" team=0 formationMode="diamond" spread=100>
1050          <actionpoints>
1051              <?lua
1052              for i = 1, 13, 1
1053              do
1054              ?>
[10904]1055              <Actionpoint position="<?lua printC(addC(cPathToEntry[i], rUnit)) ?>" action="fly"/>
[10887]1056              <?lua end ?>
1057           </actionpoints>
1058        </DivisionController>
1059      </controller>
1060    </SpaceShip>
1061
1062    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(addC(cAllyNow,rSection)) ?>" lookat="0,0,0" name="ally<?lua print(i) ?>.S">
1063      <templates>
1064        <Template link=ally />
1065      </templates>
1066      <controller>
1067        <SectionController name="allyController" team=0>
1068        </SectionController>
1069      </controller>
1070    </SpaceShip>
1071
1072    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(addC(cAllyNow,rWingman1)) ?>" lookat="0,0,0" name="ally<?lua print(i) ?>.W1">
1073      <templates>
1074        <Template link=ally />
1075      </templates>
1076      <controller>
1077        <WingmanController name="allyController" team=0>
1078        </WingmanController>
1079      </controller>
1080    </SpaceShip>
1081
1082    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(addC(cAllyNow,rWingman2)) ?>" lookat="0,0,0" name="ally<?lua print(i) ?>.W2">
1083      <templates>
1084        <Template link=ally />
1085      </templates>
1086      <controller>
1087        <WingmanController name="allyController" team=0>
1088        </WingmanController>
1089      </controller>
1090    </SpaceShip>
1091
1092    <?lua end ?>
1093
1094    <!-- Enemy Units -->
1095
1096    <?lua
1097    for k = 1, enemies, 1
1098    do
1099    rUnit = {125 -math.sin(math.pi*((k-1/2)/enemies))*200, math.pow(-1,k)*300, math.cos(math.pi*((k-1/2)/enemies))*1000}
1100    cEnemyNow = addC(cEnemy,rUnit)
1101    ?>
1102
1103    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(cEnemyNow) ?>" name="enemy<?lua print(k) ?>">
1104      <templates>
1105        <Template link=enemy />
1106      </templates>
1107      <events>
1108          <activity>
1109              <EventListener event="cloakBeacon" />
1110          </activity>
1111          <visibility>
1112              <EventListener event="cloakBeacon" />
1113          </visibility>
1114      </events>
1115      <controller>
[10904]1116        <DivisionController name="enemyController" active=false team=1 formationMode="diamond" spread=100>
[10887]1117          <actionpoints>
1118              <Actionpoint position="<?lua printC(cEnemyNow) ?>" action="fightall" />
1119          </actionpoints>
1120        </DivisionController>
1121      </controller>
1122    </SpaceShip>
1123
1124    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(addC(cEnemyNow,rSection)) ?>" name="enemy<?lua print(k) ?>">
1125      <templates>
1126        <Template link=enemy />
1127      </templates>
1128      <events>
1129          <activity>
1130              <EventListener event="cloakBeacon" />
1131          </activity>
1132          <visibility>
1133              <EventListener event="cloakBeacon" />
1134          </visibility>
1135      </events>
1136      <controller>
[10904]1137        <SectionController name="enemyController" active=false team=1>
[10887]1138        </SectionController>
1139      </controller>
1140    </SpaceShip>
1141
1142    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(addC(cEnemyNow,rWingman1)) ?>" lookat="0,0,0" name="enemy<?lua print(k) ?>">
1143      <templates>
1144        <Template link=enemy />
1145      </templates>
1146      <events>
1147          <activity>
1148              <EventListener event="cloakBeacon" />
1149          </activity>
1150          <visibility>
1151              <EventListener event="cloakBeacon" />
1152          </visibility>
1153      </events>
1154      <controller>
[10904]1155        <WingmanController name="enemyController" active=false team=1>
[10887]1156        </WingmanController>
1157      </controller>
1158    </SpaceShip>
1159
1160    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(addC(cEnemyNow,rWingman2)) ?>" name="enemy<?lua print(k) ?>">
1161      <templates>
1162        <Template link=enemy />
1163      </templates>
1164      <events>
1165          <activity>
1166              <EventListener event="cloakBeacon" />
1167          </activity>
1168          <visibility>
1169              <EventListener event="cloakBeacon" />
1170          </visibility>
1171      </events>
1172      <controller>
[10904]1173        <WingmanController name="enemyController" active=false team=1>
[10887]1174        </WingmanController>
1175      </controller>
1176    </SpaceShip>
1177
1178    <?lua end ?>
1179
[10823]1180    </Scene>
1181</Level>
Note: See TracBrowser for help on using the repository browser.