Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/campaignHS15/data/levels/shuttleRetaliation.oxw @ 10887

Last change on this file since 10887 was 10887, checked in by paulsc, 8 years ago

Almost finished retaliation level. Some things don't quite wanna work tho.

File size: 37.2 KB
Line 
1<!--TODO: Rename screenshot as soon as it is in data_extern branch -->
2<LevelInfo
3    name = "Retaliation"
4    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!"
5    tags = "mission"
6    screenshot = "missionOne.png"
7/>
8
9<?lua
10    include("stats.oxo")
11    include("HUDTemplates3.oxo")
12    include("templates/lodInformation.oxt")
13
14    include("templates/spaceshipAssff.oxt")
15    include("templates/spaceshipPirate.oxt")
16    include("templates/spaceshipEscort.oxt")
17    include("templates/spaceshipShuttle.oxt")
18    include("templates/FPS.oxt")
19    include("templates/pickupRepresentationTemplates.oxt")
20?>
21
22<Level gametype = "Mission">
23    <templates>
24        <Template link="lodtemplate_default" />
25    </templates>
26
27    <?lua include("includes/notifications.oxi") ?>
28
29    <NotificationQueueCEGUI
30        name="narrative"
31        targets="simpleNotification"
32        size=3
33        displayTime=3.9
34        position="0.15, 0, 0.1, 0"
35        fontSize="15"
36        fontColor="0.3, 1, 0.2, 0.8"
37        alignment="HorzCentred"
38        displaySize="0.7, 0, 0, 0"
39    />
40
41    <!-- GLOBAL LUA VARIABLES -->
42    <?lua
43
44        enemies = 4
45        allies = 4
46
47        radSector = 12000
48
49        --[[ Coordinates in (y,z,x). NOTE: Indexing starts at 1 in lua! Don´t forget to adapt the for loops, too! ]]--
50        cCenter = {0, 0, 0}
51        cSpawn = {1500, -2000, 900}
52        cSector = {-15000, -5500, -9000}
53        cSectorEntry = {-4710, -5500, -2826}
54        cPathToEntry = {{0, -2000, 0}}
55        cBeacon = {-6500, -5500, -4400}
56         cAllyWait = cBeacon
57
58        cAlly = cSpawn
59        cEnemy = {-9600, -5500, -6000}
60
61        rSection= {0, -200, 0}
62        rWingman1 = {0, -100, 100}
63        rWingman2 = {0, -100, -100}
64
65        cPlanet1 = {-9000, -8000, 14000}
66        cPlanet2 = {12000, -1500, -10000}
67
68        cEnemyBasePlanet = {-20000, -5500, -8000}
69
70        cField1 = {-5000, -4000, -3000}
71        cField2 = {4000, 2000, 4500}
72
73
74        --[[ Function to print Coordinates. Quotes not included! ]]--
75        function printC(coord)
76          print(coord[1] .. [[,]] .. coord[2] .. [[,]] .. coord[3])
77        end
78
79        --[[ Function to add Coordinates.]]--
80        function addC(coord1, coord2)
81            return {coord1[1]+coord2[1], coord1[2]+coord2[2], coord1[3]+coord2[3]}
82        end
83    ?>
84
85    <Scene
86        ambientlight = "0.8, 0.8, 0.8"
87        skybox = "Orxonox/skyBoxMoreNebula"
88        hasPhysics = true
89    >
90
91    <WorldAmbientSound source="Earth.ogg" looping="true" playOnLoad="true" />
92
93    <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"/>
94
95    <!--SPAWNING-->
96
97    <Template name=commander>
98        <SpaceShip
99            template            = "spaceshipassff"
100            team                = "0"
101            health              = "800"
102            initialhealth       = "800"
103            maxhealth           = "1500"
104            shieldhealth        = "80"
105            initialshieldhealth = "80"
106            maxshieldhealth     = "120"
107            shieldabsorption    = "0.8"
108            reloadrate          = "1"
109            reloadwaittime      = "1"
110            name                = "commander"
111            radarname           = "Commander"
112            >
113            <attached>
114                <DistanceTriggerBeacon name="Commander" />
115            </attached>
116        </SpaceShip>
117    </Template>
118
119    <Template name=ally>
120        <SpaceShip
121            template            = "spaceshipassff"
122            team                = "0"
123            radarname           = "Ally"
124            lookat              = "<?lua printC(cPathToEntry[1]) ?>"
125        >
126            <attached>
127                <DistanceTriggerBeacon name="Ally" />
128            </attached>
129        </SpaceShip>
130    </Template>
131
132    <Template name=enemy>
133        <SpaceShip
134            template            = "spaceshippirate"
135            team                = "1"
136            radarname           = "Invader"
137            lookat              = "<?lua printC(cBeacon) ?>"
138            active              = false
139            visible             = false
140        >
141            <attached>
142                <DistanceTriggerBeacon name="Enemy" />
143            </attached>
144        </SpaceShip>
145    </Template>
146
147    <TeamSpawnPoint active=false name="playerSpawn" team=0 position="<?lua printC(cSpawn) ?>" lookat="<?lua printC(cPathToEntry[1]) ?>" spawnclass=SpaceShip pawndesign=commander>
148        <events>
149            <activity>
150                <EventTrigger invert=true>
151                  <events>
152                    <trigger>
153                      <EventListener event="reachedSector" />
154                    </trigger>
155                  </events>
156                </EventTrigger>
157            </activity>
158        </events>
159    </TeamSpawnPoint>
160
161    <TeamSpawnPoint active=false name="altSpawn" team=0 position="<?lua printC(cBeacon) ?>" lookat="<?lua printC(cSector) ?>" spawnclass=SpaceShip pawndesign=commander>
162        <events>
163            <activity>
164                <EventListener event="reachedSector" />
165            </activity>
166        </events>
167    </TeamSpawnPoint>
168
169    <!--QUEST DEFINITIONS-->
170
171    <GlobalQuest id="quest1">
172        <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="" />
173        <hints>
174            <QuestHint id="quest1hint1">
175                <QuestDescription title="Markings" description="We have marked the bounds of Sector 5C in red lights, you can follow the green trail to get there." />
176            </QuestHint>
177        </hints>
178    </GlobalQuest>
179
180    <GlobalQuest id="quest2">
181        <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="" />
182        <hints>
183            <QuestHint id="quest2hint1">
184                <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!" />
185            </QuestHint>
186        </hints>
187    </GlobalQuest>
188
189    <GlobalQuest id="quest3">
190        <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="" />
191        <hints>
192        </hints>
193        <complete-effects>
194            <AddQuest questId="quest4" />
195            <AddQuest questId="quest4.1" />
196            <AddQuest questId="quest4.2" />
197            <AddQuestHint hintId="quest4.1hint1" />
198            <AddQuestHint hintId="quest4.2hint1" />
199        </complete-effects>
200    </GlobalQuest>
201
202    <GlobalQuest id="quest4">
203        <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="" />
204        <hints>
205        </hints>
206        <subquests>
207            <GlobalQuest id="quest4.1">
208                <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="" />
209                <hints>
210                    <QuestHint id="quest4.1hint1">
211                        <QuestDescription title="Choosing" description="To make this choice, kill one of the remaining enemy ships. The divisions will follow your decision." />
212                    </QuestHint>
213                </hints>
214            </GlobalQuest>
215            <GlobalQuest id="quest4.2">
216                <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="" />
217                <hints>
218                    <QuestHint id="quest4.2hint1">
219                        <QuestDescription title="Choosing" description="To make this choice, fly away from the remaining enemy ships. The divisions will follow your decision." />
220                    </QuestHint>
221                </hints>
222            </GlobalQuest>
223        </subquests>
224    </GlobalQuest>
225
226    <!--EVENTS AND TRIGGERS
227        Usable events and triggers:
228        spawntrigger
229    -->
230
231    <EventMultiTrigger name="spawntrigger" activations=1>
232        <events>
233            <trigger>
234                <EventListener event="playerSpawn" />
235            </trigger>
236        </events>
237    </EventMultiTrigger>
238
239    <DistanceTrigger name="reachedSector" position="<?lua printC(cSector) ?>" distance="<?lua print(radSector) ?>" target="SpaceShip" beaconMode="identify" targetname="Commander" stayactive=true />
240
241    <EventMultiTrigger name="addQuest2">
242        <events>
243            <trigger>
244                <EventTrigger stayactive="true" delay=10 >
245                   <events>
246                      <trigger>
247                         <EventListener event="reachedSector" />
248                      </trigger>
249                   </events>
250                </EventTrigger>
251            </trigger>
252        </events>
253    </EventMultiTrigger>
254
255    <DistanceTrigger name="alliesReachedWait" position="<?lua printC(cAllyWait) ?>" distance="1000" target="SpaceShip" beaconMode="identify" targetname="Ally" stayactive=true />
256
257    <!-- So the allies stall when they reached their position for negociation and don´t fire away... -->
258
259    <EventDispatcher name="allyControllerDispatcher">
260      <targets>
261        <EventTarget target="allyController" />
262      </targets>
263      <events>
264          <activity>
265              <Trigger mode=or>
266                  <EventTrigger invert=true>
267                      <events>
268                          <trigger>
269                              <EventListener event="alliesReachedWait" />
270                          </trigger>
271                      </events>
272                  </EventTrigger>
273                  <EventTrigger>
274                      <events>
275                          <trigger>
276                              <EventListener event="noMercy" />
277                          </trigger>
278                      </events>
279                  </EventTrigger>
280                  <Trigger mode=and>
281                      <EventTrigger>
282                          <events>
283                              <trigger>
284                                  <EventListener event="fightBegun" />
285                              </trigger>
286                          </events>
287                      </EventTrigger>
288                      <EventTrigger invert=true>
289                          <events>
290                              <trigger>
291                                  <EventListener event="oneUnitLeft" />
292                              </trigger>
293                          </events>
294                      </EventTrigger>
295                  </Trigger>
296              </Trigger>
297          </activity>
298      </events>
299    </EventDispatcher>
300
301    <EventMultiTrigger name="hintBeacon">
302        <events>
303            <trigger>
304                <EventTrigger stayactive="true" delay=70 >
305                   <events>
306                      <trigger>
307                         <EventListener event="reachedSector" />
308                      </trigger>
309                   </events>
310                </EventTrigger>
311            </trigger>
312        </events>
313    </EventMultiTrigger>
314
315    <DistanceTrigger name="cloakBeacon" position="<?lua printC(cBeacon) ?>" distance=100 target="SpaceShip" beaconMode="identify" targetname="Commander" stayactive=true />
316
317    <EventMultiTrigger name="fightBegun" stayactive=true>
318        <events>
319            <trigger>
320                <EventTrigger stayactive="true" delay=12>
321                   <events>
322                      <trigger>
323                         <EventListener event="cloakBeacon" />
324                      </trigger>
325                   </events>
326                </EventTrigger>
327            </trigger>
328        </events>
329    </EventMultiTrigger>
330
331    <EventDispatcher name="enemyControllerDispatcher">
332      <targets>
333        <EventTarget target="enemyController" />
334      </targets>
335      <events>
336          <activity>
337              <Trigger mode=and>
338                  <EventTrigger>
339                      <events>
340                          <trigger>
341                              <EventListener event="fightBegun" />
342                          </trigger>
343                      </events>
344                  </EventTrigger>
345                  <EventTrigger invert=true>
346                      <events>
347                          <trigger>
348                              <EventListener event="oneUnitLeft" />
349                          </trigger>
350                      </events>
351                  </EventTrigger>
352              </Trigger>
353          </activity>
354      </events>
355    </EventDispatcher>
356
357    <EventMultiTrigger name="noMercy" stayactive=true>
358        <events>
359            <trigger>
360                    <Trigger mode=or>
361                        <?lua
362                        for i = 1, enemies, 1
363                        do
364                        ?>
365                        <EventTrigger active=false>
366                            <events>
367                                <activity>
368                                    <EventTrigger>
369                                        <events>
370                                            <trigger>
371                                                <EventListener event="oneUnitLeft" />
372                                            </trigger>
373                                        </events>
374                                    </EventTrigger>
375                                </activity>
376                                <trigger>
377                                    <EventListener event="enemy<?lua print(i) ?>" />      <!--TODO: trigger this with something that comes up when an enemy dies WITHOUT breaking the rest -->
378                                </trigger>
379                            </events>
380                        </EventTrigger>
381                        <?lua end ?>
382                    </Trigger>
383            </trigger>
384        </events>
385    </EventMultiTrigger>
386
387    <!-- Recursive helper function for the event at the "end" of a Unit.-->
388    <?lua
389    function enemyTriggerRecursor(i, k)
390    if i > 0 then
391    return [[
392    <EventTrigger name=killedEnemy]] .. ((k-1)*4+i) .. [[ activations=1 stayactive=true delay=0.1>
393        <events>
394            <trigger>
395                <EventListener event=enemy]] .. k .. [[ />
396            </trigger>
397        </events>
398        ]] .. enemyTriggerRecursor(i-1, k) .. [[
399    </EventTrigger>
400    ]]
401    else return ""
402    end
403    end
404    ?>
405    <!-- Actual recursive Event(s) for the respective Units. (packs of 4 Enemies that is!) -->
406    <?lua
407    for k = 1, enemies, 1
408    do
409    print(enemyTriggerRecursor(4,k))
410    ?>
411    <EventMultiTrigger name="unit<?lua print(k) ?>Down" delay=0.1 stayactive=true>
412        <events>
413            <trigger>
414                <EventListener event="killedEnemy<?lua print(k*4) ?>" />
415            </trigger>
416        </events>
417    </EventMultiTrigger>
418    <?lua end ?>
419
420    <EventMultiTrigger name="oneUnitLeft" stayactive=true>
421        <events>
422            <trigger>
423                <Trigger mode=or>
424                    <?lua
425                    for k = 1, enemies, 1
426                    do
427                    ?>
428                        <Trigger mode=and>
429                            <EventTrigger invert=true>
430                                <events>
431                                    <trigger>
432                                        <EventListener event="unit<?lua print(k) ?>Down" />
433                                    </trigger>
434                                </events>
435                            </EventTrigger>
436                            <?lua
437                            for i = 1, enemies, 1
438                            do
439                            if not (i == k) then
440                            ?>
441                            <EventTrigger>
442                                <events>
443                                    <trigger>
444                                        <EventListener event="unit<?lua print(i) ?>Down" />
445                                    </trigger>
446                                </events>
447                            </EventTrigger>
448                            <?lua end end ?>
449                        </Trigger>
450                    <?lua end ?>
451                </Trigger>
452            </trigger>
453        </events>
454    </EventMultiTrigger>
455
456    <EventMultiTrigger name="AllUnitsDown" stayactive=true>
457        <events>
458            <trigger>
459                <Trigger mode=and>
460                    <?lua
461                    for k = 1, enemies, 1
462                    do
463                    ?>
464                    <EventTrigger>
465                        <events>
466                            <trigger>
467                                <EventListener event="unit<?lua print(i) ?>Down" />
468                            </trigger>
469                        </events>
470                    </EventTrigger>
471                    <?lua end ?>
472                </Trigger>
473            </trigger>
474        </events>
475    </EventMultiTrigger>
476
477    <!--TODO: Complete the DistanceTriggers for completing/succeeding correctly! -->
478
479    <DistanceTrigger active=false name="missionComplete" position="2000,0,0" distance=100 target="SpaceShip" stayactive=true>
480        <events>
481            <activity>
482                <EventListener event="missionCompletePrereq" />
483            </activity>
484        </events>
485    </DistanceTrigger>
486
487    <Script code="Mission endMission true" onLoad="false">
488        <events>
489            <trigger>
490                <EventListener event="missionComplete" />
491            </trigger>
492        </events>
493    </Script>
494
495    <DistanceTrigger active=false name="missionFailed" position="2000,0,0" distance=100 target="SpaceShip" stayactive=true>
496        <events>
497            <activity>
498                <EventListener event="missionFailedPrereq" />
499            </activity>
500        </events>
501    </DistanceTrigger>
502
503    <Script code="Mission endMission fail" onLoad="false">
504        <events>
505            <trigger>
506                <EventListener event="failMission" />
507            </trigger>
508        </events>
509    </Script>
510
511    <!--QUEST EFFECT BEACONS -->
512
513    <QuestEffectBeacon times=1>
514        <effects>
515            <AddQuest questId="quest1" />
516            <AddQuestHint HintId="quest1hint1" />
517        </effects>
518        <events>
519            <execute>
520                <EventListener event="spawntrigger" />
521            </execute>
522        </events>
523    </QuestEffectBeacon>
524
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>
538            <AddQuest questId="quest2" />
539        </effects>
540        <events>
541            <execute>
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>
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
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
606    <!--NOTIFICATIONS -->
607
608    <SimpleNotification broadcast="true" message="Welcome, Commander. It is time to retaliate!">
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
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>
635
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
650    <SimpleNotification broadcast="true" message="Stick to your objective, Commander. This is war.">
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
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>
677
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>
691
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>
699
700    <SimpleNotification broadcast="true" message="Divisions are standing by, Sir.">
701     <events>
702         <trigger>
703             <EventListener event="alliesReachedWait" />
704         </trigger>
705     </events>
706    </SimpleNotification>
707
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>
715
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>
729
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>
743
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>
757
758    <SimpleNotification broadcast="true" message="Unit 1 down!">
759     <events>
760         <trigger>
761             <EventListener event="unit1Down" />
762         </trigger>
763     </events>
764    </SimpleNotification>
765
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
798    <SimpleNotification broadcast="true" message="Well done, Commander. You got rid of the alien scum.">
799     <events>
800         <trigger>
801             <EventListener event="AllUnitsDown" />
802         </trigger>
803     </events>
804    </SimpleNotification>
805
806    <SimpleNotification broadcast="true" message="Roger that, Commander. We kill them.">
807     <events>
808         <trigger>
809             <EventListener event="noMercy" />
810         </trigger>
811     </events>
812    </SimpleNotification>
813
814    <!--ELEMENTS -->
815
816    <!-- Billboard Path to Sector 5C. Height changes in an atan shape -->
817
818    <?lua
819    for i = 1, 11, 1
820    do
821    heightNow = cPathToEntry[1][2] - (cPathToEntry[1][2]-cSectorEntry[2])*(math.atan(-1.6+0.3*i) + 1)/2
822    cBillNow = {(cSectorEntry[1]-cPathToEntry[1][1])*i/12, heightNow, (cSectorEntry[3]-cPathToEntry[1][3])*i/12}
823    cPathToEntry[i+1] = cBillNow
824    ?>
825    <Billboard position="<?lua printC(cBillNow) ?>"  scale=2 material="Flares/ringflare" colour="0.2,0.9,0.2"/>
826    <?lua
827    end
828    cPathToEntry[13] = cSectorEntry
829    ?>
830
831    <Billboard position="<?lua printC(cSectorEntry) ?>"  scale=5 material="Flares/ringflare" colour="0.2,0.9,0.2"/>
832
833    <!-- Circular Billboard Ring around Sector 5C -->
834
835    <?lua
836    for i = 1, 64, 1
837    do
838    rBillboard = {math.sin(i*math.pi/32)*radSector, 0, math.cos(i*math.pi/32)*radSector}
839    cBillNow = addC(cSector,rBillboard)
840    ?>
841    <Billboard position="<?lua printC(cBillNow) ?>"  scale=10 material="Flares/lensflare" colour="1,0.2,0.2"/>
842    <?lua end ?>
843
844    <!-- Cloaking Beacon -->
845
846    <BlinkingBillboard visible=false active=false scale=2 position="<?lua printC(cBeacon) ?>" material="Flares/lensflare" frequency=1 amplitude=3 colour="0.4,0.4,1">
847        <events>
848            <activity>
849                <EventListener event="addQuest2" />
850            </activity>
851            <visibility>
852                <EventListener event="addQuest2" />
853            </visibility>
854        </events>
855    </BlinkingBillboard>
856
857    <!-- Asteroids you have to fly through to get to the EnemyBase -->
858
859    <?lua
860        dofile("includes/asteroidField.lua")
861       asteroidField(cField1[1], cField1[2], cField1[3], 20, 30, 4500, 500, 0)
862    ?>
863
864    <!-- Other Asteroid-Fields -->
865
866    <?lua
867        dofile("includes/asteroidField.lua")
868       asteroidField(cField2[1], cField2[2], cField2[3], 20, 30, 4500, 500, 0)
869    ?>
870
871    <!-- Planets -->
872
873   <Planet
874        position="<?lua printC(cPlanet1) ?>"
875        scale="3000"
876        collisionType="dynamic"
877        linearDamping="0.8"
878        angularDamping="0"
879        mass="5000000"
880        pitch="0"
881        mesh="planets/muunilinst.mesh"
882        atmosphere="atmosphere1"
883        rotationaxis="1,0,0"
884        rotationrate="1.0"
885        atmospheresize="80.0f"
886        imagesize="1024.0f"
887        collisiondamage = 2
888        enablecollisiondamage = true
889    visible=true
890    active=true
891      >
892      <attached>
893        <ForceField position="0,0,0" mode="sphere" diameter="6000" velocity="-500" />
894        </attached>
895          <collisionShapes>
896            <SphereCollisionShape radius="3000" position="0,0,0" />
897      </collisionShapes>
898    </Planet>
899
900    <?lua
901        dofile("includes/asteroidField.lua")
902        asteroidBelt(cPlanet1[1], cPlanet1[2], cPlanet1[3], 30, 20, 100, 20, 40, 3400, 3700, 400, 1)
903    ?>
904
905    <Planet
906        position="<?lua printC(cPlanet2) ?>"
907        scale="2000"
908        collisionType="dynamic"
909        linearDamping="0.8"
910        angularDamping="0"
911        mass="5000000"
912        pitch="0"
913        mesh="planets/ganymede.mesh"
914        atmosphere="atmosphere1"
915        rotationaxis="1,0,0"
916        rotationrate="1.0"
917        atmospheresize="80.0f"
918        imagesize="1024.0f"
919        collisiondamage = 2
920        enablecollisiondamage = true
921        visible=true
922        active=true
923      >
924      <attached>
925        <ForceField position="0,0,0" mode="sphere" diameter="4000" velocity="-500" />
926        </attached>
927          <collisionShapes>
928            <SphereCollisionShape radius="2000" position="0,0,0" />
929      </collisionShapes>
930    </Planet>
931
932    <?lua
933        dofile("includes/asteroidField.lua")
934        asteroidBelt(cPlanet2[1], cPlanet2[2], cPlanet2[3], 30, 20, 100, 20, 40, 3400, 3700, 400, 1)
935    ?>
936
937    <!-- EnemyPlanet -->
938
939    <Planet
940        position="<?lua printC(cEnemyBasePlanet) ?>"
941        scale="5000"
942        collisionType="dynamic"
943        linearDamping="0.8"
944        angularDamping="0"
945        mass="5000000"
946        pitch="0"
947        mesh="planets/jupiter.mesh"
948        atmosphere="atmosphere1"
949        rotationaxis="1,0,0"
950        rotationrate="1.0"
951        atmospheresize="80.0f"
952        imagesize="1024.0f"
953        collisiondamage = 2
954        enablecollisiondamage = true
955        visible=false
956        active=false
957    >
958        <attached>
959           <ForceField position="0,0,0" mode="sphere" diameter="10000" velocity="-500" />
960        </attached>
961        <events>
962            <activity>
963                <EventListener event="cloakBeacon" />
964            </activity>
965            <visibility>
966                <EventListener event="cloakBeacon" />
967            </visibility>
968        </events>
969        <collisionShapes>
970            <SphereCollisionShape radius="5000" position="0,0,0" />
971        </collisionShapes>
972    </Planet>
973
974    <!-- Pawn that represents the planet during destruction -->
975
976    <Pawn active=false team=1 initialhealth=500 health=500 maxhealth=500 position="<?lua printC(cEnemyBasePlanet) ?>" radarname="Enemy Home Planet" name="enemyPlanet">
977        <events>
978            <activity>
979                <EventListener event="oneUnitLeft" />
980            </activity>
981        </events>
982        <collisionShapes>
983            <SphereCollisionShape radius="6000" position="0,0,0" />
984        </collisionShapes>
985    </Pawn>
986
987    <!--SHIPS -->
988
989    <!--Allied units-->
990
991    <?lua
992    for i = 1, allies, 1
993    do
994    rUnit = {-math.sin(math.pi*((i-1/2)/allies))*125, math.pow(-1,i)*80, math.cos(math.pi*((i-1/2)/allies))*800}
995    cAllyNow = addC(cAlly,rUnit)
996    ?>
997
998    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(cAllyNow) ?>" name="ally<?lua print(i) ?>.D">
999      <templates>
1000        <Template link=ally />
1001      </templates>
1002      <controller>
1003        <DivisionController name="allyController" team=0 formationMode="diamond" spread=100>
1004          <actionpoints>
1005              <?lua
1006              for i = 1, 13, 1
1007              do
1008              ?>
1009              <Actionpoint position="<?lua printC(addC(cPathToEntry[i], rUnit)) ?>" action="fly" />
1010              <?lua end ?>
1011           </actionpoints>
1012        </DivisionController>
1013      </controller>
1014    </SpaceShip>
1015
1016    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(addC(cAllyNow,rSection)) ?>" lookat="0,0,0" name="ally<?lua print(i) ?>.S">
1017      <templates>
1018        <Template link=ally />
1019      </templates>
1020      <controller>
1021        <SectionController name="allyController" team=0>
1022        </SectionController>
1023      </controller>
1024    </SpaceShip>
1025
1026    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(addC(cAllyNow,rWingman1)) ?>" lookat="0,0,0" name="ally<?lua print(i) ?>.W1">
1027      <templates>
1028        <Template link=ally />
1029      </templates>
1030      <controller>
1031        <WingmanController name="allyController" team=0>
1032        </WingmanController>
1033      </controller>
1034    </SpaceShip>
1035
1036    <SpaceShip health=600 initialhealth=600 maxhealth=600 position="<?lua printC(addC(cAllyNow,rWingman2)) ?>" lookat="0,0,0" name="ally<?lua print(i) ?>.W2">
1037      <templates>
1038        <Template link=ally />
1039      </templates>
1040      <controller>
1041        <WingmanController name="allyController" team=0>
1042        </WingmanController>
1043      </controller>
1044    </SpaceShip>
1045
1046    <?lua end ?>
1047
1048    <!-- Enemy Units -->
1049
1050    <?lua
1051    for k = 1, enemies, 1
1052    do
1053    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}
1054    cEnemyNow = addC(cEnemy,rUnit)
1055    ?>
1056
1057    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(cEnemyNow) ?>" name="enemy<?lua print(k) ?>">
1058      <templates>
1059        <Template link=enemy />
1060      </templates>
1061      <events>
1062          <activity>
1063              <EventListener event="cloakBeacon" />
1064          </activity>
1065          <visibility>
1066              <EventListener event="cloakBeacon" />
1067          </visibility>
1068      </events>
1069      <controller>
1070        <DivisionController name="enemyControll" active=false team=1 formationMode="diamond" spread=100>
1071          <actionpoints>
1072              <Actionpoint position="<?lua printC(cEnemyNow) ?>" action="fightall" />
1073          </actionpoints>
1074        </DivisionController>
1075      </controller>
1076    </SpaceShip>
1077
1078    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(addC(cEnemyNow,rSection)) ?>" name="enemy<?lua print(k) ?>">
1079      <templates>
1080        <Template link=enemy />
1081      </templates>
1082      <events>
1083          <activity>
1084              <EventListener event="cloakBeacon" />
1085          </activity>
1086          <visibility>
1087              <EventListener event="cloakBeacon" />
1088          </visibility>
1089      </events>
1090      <controller>
1091        <SectionController name="enemyControll" active=false team=1>
1092        </SectionController>
1093      </controller>
1094    </SpaceShip>
1095
1096    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(addC(cEnemyNow,rWingman1)) ?>" lookat="0,0,0" name="enemy<?lua print(k) ?>">
1097      <templates>
1098        <Template link=enemy />
1099      </templates>
1100      <events>
1101          <activity>
1102              <EventListener event="cloakBeacon" />
1103          </activity>
1104          <visibility>
1105              <EventListener event="cloakBeacon" />
1106          </visibility>
1107      </events>
1108      <controller>
1109        <WingmanController name="enemyControll" active=false team=1>
1110        </WingmanController>
1111      </controller>
1112    </SpaceShip>
1113
1114    <SpaceShip health=400 initialhealth=400 maxhealth=400 position="<?lua printC(addC(cEnemyNow,rWingman2)) ?>" name="enemy<?lua print(k) ?>">
1115      <templates>
1116        <Template link=enemy />
1117      </templates>
1118      <events>
1119          <activity>
1120              <EventListener event="cloakBeacon" />
1121          </activity>
1122          <visibility>
1123              <EventListener event="cloakBeacon" />
1124          </visibility>
1125      </events>
1126      <controller>
1127        <WingmanController name="enemyControll" active=false team=1>
1128        </WingmanController>
1129      </controller>
1130    </SpaceShip>
1131
1132    <?lua end ?>
1133
1134    </Scene>
1135</Level>
Note: See TracBrowser for help on using the repository browser.