Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/campaignHS15/data/levels/Campaign1.oxw @ 10766

Last change on this file since 10766 was 10766, checked in by paulsc, 9 years ago

Corrected formatting, improved allies, introduced lua coordinates and switched spaceships from ASSFF2 to ASSFF to get rid of ogre exceptions.

File size: 28.8 KB
Line 
1<LevelInfo
2    name = "CampaignHS15 1"
3    description = "Protect the transporter!"
4    tags = "mission"
5    screenshot = "missionOne.png"
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/spaceshipTransporter.oxt")
17    include("templates/FPS.oxt")
18?>
19
20<Level gametype = "Mission">
21    <templates>
22        <Template link="lodtemplate_default" />
23    </templates>
24
25    <?lua include("includes/notifications.oxi") ?>
26
27    <NotificationQueueCEGUI
28        name="narrative"
29        targets="simpleNotification"
30        size=3
31        displayTime=3.9
32        position="0.15, 0, 0.1, 0"
33        fontSize="23"
34        fontColor="0.3, 1, 0.2, 0.8"
35        alignment="HorzCentred"
36        displaySize="0.7, 0, 0, 0"
37    />
38
39    <!-- GLOBAL LUA VARIABLES -->
40    <?lua
41        waves = 3
42        enemies = 5
43        allies = 3
44
45        --[[ Coordinates. NOTE: Indexing starts at 1 in lua! Don´t forget to adapt the for loops, too! ]]--
46        cCenter = {0, 0, 0}
47        cSpawn = {0, -50, 0}
48        cUnit = {3000, -2000, 0}
49        cA = {5000, -3000, 0}
50        cB = {-5000, -3000, 0}
51        cC = {0, -2300, 0}
52        dStation = {0, 1, 0}
53        cNewShip = {4100, -2100, 0}
54        cFPSGround = {0, -2300, 1200}
55        dFPSGround = {0, 0, -1}
56        cFPS = {0, -2300, 1201}
57        cField1 = {2500, 400, 0}
58        cField2 = {-2500, 400, 0}
59        cPlanet1 = {15000, 8000, -2000}
60        cPlanet2 = {-1000, -20000, 4000}
61        rAllies = {3000, -2000}         --[[ To be addressed directly, hence r ]]--
62
63        --[[ Function to print Coordinates. Quotes not included! ]]--
64        function printC(coord)
65          print(coord[1] .. [[,]] .. coord[2] .. [[,]] .. coord[3])
66        end
67    ?>
68
69    <Scene
70        ambientlight = "0.8, 0.8, 0.8"
71        skybox = "Orxonox/skyBoxMoreNebula"
72        hasPhysics = true
73    >
74
75    <SpawnPoint name="playerSpawn" team=0 position="<?lua printC(cSpawn) ?>" lookat="<?lua printC(cCenter) ?>" spawnclass=SpaceShip pawndesign=spaceshipescort />
76
77    <WorldAmbientSound source="Earth.ogg" looping="true" playOnLoad="true" />
78
79    <Light type=directional position="<?lua printC(cCenter) ?>" 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"/>
80
81    <!--QUEST DEFINITIONS-->
82
83    <GlobalQuest id="quest1">
84        <QuestDescription title="Reach the Station A!" description="" failMessage="" completeMessage="" />
85        <hints>
86            <QuestHint id="quest1hint1" />
87        </hints>
88        <complete-effects>
89            <AddQuest questId="quest2" />
90            <AddQuest questId="quest2.1" />
91        </complete-effects>
92    </GlobalQuest>
93
94    <GlobalQuest id="quest2">
95        <QuestDescription title="Prepare to fight the Enemy" description="" failMessage="" completeMessage="" />
96        <hints>
97        </hints>
98        <subquests>
99            <GlobalQuest id="quest2.1">
100                <QuestDescription title="> Get a better Spaceship" description="" failMessage="" completeMessage="" />
101                <complete-effects>
102                    <AddQuest questId="quest2.2" />
103                </complete-effects>
104            </GlobalQuest>
105            <GlobalQuest id="quest2.2">
106                <QuestDescription title="> Meet your Unit" description="" failMessage="" completeMessage="" />
107            </GlobalQuest>
108        </subquests>
109        <complete-effects>
110            <AddQuest questId="quest3" />
111        </complete-effects>
112    </GlobalQuest>
113
114    <GlobalQuest id="quest3">
115        <QuestDescription title="Fight the first Wave" description="" failMessage="" completeMessage="" />
116        <hints>
117        </hints>
118        <complete-effects>
119            <AddQuest questId="quest4" />
120            <AddQuest questId="quest4.1" />
121            <AddQuest questId="quest4.2" />
122        </complete-effects>
123    </GlobalQuest>
124
125    <GlobalQuest id="quest4">
126        <QuestDescription title="Prepare for the next Wave" description="" failMessage="" completeMessage="" />
127        <hints>
128        </hints>
129        <subquests>
130            <GlobalQuest id="quest4.1">
131                <QuestDescription title="> Get to the Defense Station" description="" failMessage="" completeMessage="" />
132            </GlobalQuest>
133            <GlobalQuest id="quest4.2">
134                <QuestDescription title="> Find the turret" description="" failMessage="" completeMessage="" />
135            </GlobalQuest>
136        </subquests>
137        <complete-effects>
138            <AddQuest questId="quest5" />
139        </complete-effects>
140    </GlobalQuest>
141
142    <GlobalQuest id="quest5">
143        <QuestDescription title="Fight the Hord!" description="" failMessage="" completeMessage="" />
144        <hints>
145        </hints>
146        <complete-effects>
147            <AddQuest questId="quest6" />
148            <AddQuest questId="quest6.1" />
149            <AddQuest questId="quest6.2" />
150        </complete-effects>
151    </GlobalQuest>
152
153    <GlobalQuest id="quest6">
154        <QuestDescription title="Get back to the Transporter" description="" failMessage="" completeMessage="" />
155        <hints>
156        </hints>
157        <subquests>
158            <GlobalQuest id="quest6.1">
159                <QuestDescription title="> Collect the local Pickups" description="" failMessage="" completeMessage="" />
160            </GlobalQuest>
161            <GlobalQuest id="quest6.2">
162                <QuestDescription title="> Use Portal to the Transporter" description="" failMessage="" completeMessage="" />
163            </GlobalQuest>
164        </subquests>
165        <complete-effects>
166            <AddQuest questId="quest7" />
167        </complete-effects>
168    </GlobalQuest>
169
170    <GlobalQuest id="quest7">
171        <QuestDescription title="Fight the final Wave" description="" failMessage="" completeMessage="" />
172        <hints>
173        </hints>
174        <subquests>
175        </subquests>
176    </GlobalQuest>
177
178    <!--EVENTS AND TRIGGERS
179        Usable events and triggers:
180        _spawntrigger
181        _reachedA
182        _dock<A|B|C>
183        _docked<A>      WIP; see below
184        -joinedUnit
185        _wave<k>
186        _killedEnemy<k>.<i>
187        _waveClear<k>
188    -->
189
190    <EventMultiTrigger name="spawntrigger">
191        <events>
192            <trigger>
193                <EventListener event="playerSpawn" />
194            </trigger>
195        </events>
196    </EventMultiTrigger>
197
198    <DistanceTrigger name="reachedA" position="<?lua printC(cA) ?>" distance=1000 target="SpaceShip" beaconMode="exclude" targetname="NPC" stayactive=true />
199
200    <!-- TODO: find out how to link an event to the COMPLETION of a dock. How is this not possible?? -->
201    <EventMultiTrigger name="dockedA" activations="1" stayactive="true" delay=3>
202        <events>
203            <trigger>
204                <EventListener event="dockA" />
205            </trigger>
206        </events>
207    </EventMultiTrigger>
208
209    <DistanceTrigger name="joinedUnit" active=false position="<?lua printC(cUnit) ?>" distance=100 target="SpaceShip" beaconMode="exclude" targetname="NPC" stayactive=true>
210        <events>
211            <activity>
212                    <EventListener event="dockedA" />
213            </activity>
214        </events>
215    </DistanceTrigger>
216
217    <EventMultiTrigger name="wave1" activations="1" delay=4>
218        <events>
219            <trigger>
220                <EventListener event="joinedUnit" />
221            </trigger>
222        </events>
223    </EventMultiTrigger>
224
225    <!-- Recursive helper function for the end-of-wave events. F*ck the event system, seriously. -->
226    <?lua
227    function enemyTriggerRecursor(i, k)
228    if i > 0 then
229    return [[
230    <EventTrigger name=killedEnemy]] .. k .. [[.]] .. i .. [[ activations=1 stayactive=true delay=0.1>
231        <events>
232            <trigger>
233                <EventListener event=attackers]] .. k .. [[ />
234            </trigger>
235        </events>
236        ]] .. enemyTriggerRecursor(i-1, k) .. [[
237    </EventTrigger>
238    ]]
239    else return ""
240    end
241    end
242    ?>
243    <!-- Actual recursive Event(s) for the respective waves. -->
244    <?lua
245    for k = 1, waves, 1
246    do
247    print(enemyTriggerRecursor(enemies,k))
248    ?>
249    <EventMultiTrigger name="waveClear<?lua print(k) ?>" delay=4.0>
250        <events>
251            <trigger>
252                <EventListener event="killedEnemy<?lua print(k .. [[.]] .. enemies) ?>" />
253            </trigger>
254        </events>
255    </EventMultiTrigger>
256    <?lua end ?>
257
258    <!-- This controls the ally AI controller so it is only active when active enemies are around!
259    TODO: Find a way to control the allies in another case (Multiple controllers are not allowed). -->
260    <EventDispatcher name="allyControllerDispatcher">
261      <targets>
262        <EventTarget target="allyController" />
263      </targets>
264      <events>
265          <activity>
266              <?lua
267              for k = 1, waves, 1 do
268              ?>
269              <Trigger mode=and>
270                  <EventTrigger>
271                      <events>
272                          <trigger>
273                              <EventListener event="wave<?lua print(k) ?>" />
274                          </trigger>
275                      </events>
276                  </EventTrigger>
277                  <EventTrigger invert=true>
278                      <events>
279                          <trigger>
280                              <EventListener event="waveClear<?lua print(k) ?>" />
281                          </trigger>
282                      </events>
283                  </EventTrigger>
284              </Trigger>
285              <?lua end ?>
286          </activity>
287      </events>
288    </EventDispatcher>
289
290    <!-- FIXME: This trigger needs fixing, as endMission can only be called by a Pawn Distance Trigger. Herpaderp.
291    Also, the fix proposed in MissionOne does not work anymore... -->
292   <EventMultiTrigger name="missionFailed" target="Pawn" stayActive="true" delay=1.5>
293       <events>
294           <trigger>
295               <EventListener event="transporter" />
296           </trigger>
297       </events>
298   </EventMultiTrigger>
299
300    <Script code="Mission endMission fail" onLoad="false">
301        <events>
302            <trigger>
303                <EventListener event="missionFailed" />
304            </trigger>
305        </events>
306    </Script>
307
308    <!--QUEST EFFECT BEACONS -->
309
310    <QuestEffectBeacon times=1>
311        <effects>
312            <AddQuest questId="quest1" />
313        </effects>
314        <events>
315            <execute>
316                <EventListener event="spawntrigger" />
317            </execute>
318        </events>
319    </QuestEffectBeacon>
320
321    <QuestEffectBeacon times=1>
322        <effects>
323            <CompleteQuest questId="quest1" />
324        </effects>
325        <events>
326            <execute>
327                <EventListener event="reachedA" />
328            </execute>
329        </events>
330    </QuestEffectBeacon>
331
332    <QuestEffectBeacon times=1>
333        <effects>
334            <CompleteQuest questId="quest2.1" />
335        </effects>
336        <events>
337            <execute>
338                <EventListener event="dockedA" />
339            </execute>
340        </events>
341    </QuestEffectBeacon>
342
343    <QuestEffectBeacon times=1>
344        <effects>
345            <CompleteQuest questId="quest2.2" />
346            <CompleteQuest questId="quest2" />
347        </effects>
348        <events>
349            <execute>
350                <EventListener event="joinedUnit" />
351            </execute>
352        </events>
353    </QuestEffectBeacon>
354
355    <QuestEffectBeacon times=1>
356        <effects>
357            <CompleteQuest questId="quest3" />
358        </effects>
359        <events>
360            <execute>
361                <EventListener event="waveClear1" />
362            </execute>
363        </events>
364    </QuestEffectBeacon>
365
366    <!--NOTIFICATIONS -->
367
368    <SimpleNotification broadcast="true" message="Welcome, Commander. Please report at Station A.">
369        <events>
370            <trigger>
371                <EventTrigger stayactive="true" delay=4 >
372                   <events>
373                      <trigger>
374                         <EventListener event="spawntrigger" />
375                      </trigger>
376                   </events>
377                </EventTrigger>
378            </trigger>
379        </events>
380    </SimpleNotification>
381
382    <SimpleNotification broadcast="true" message="Our enemy is set to attack us very soon.">
383        <events>
384            <trigger>
385                <EventTrigger stayactive="true" delay=8 >
386                   <events>
387                      <trigger>
388                         <EventListener event="spawntrigger" />
389                      </trigger>
390                   </events>
391                </EventTrigger>
392            </trigger>
393        </events>
394    </SimpleNotification>
395
396    <SimpleNotification broadcast="true" message="Please study your mission briefing!">
397        <events>
398            <trigger>
399                <EventTrigger stayactive="true" delay=12 >
400                   <events>
401                      <trigger>
402                         <EventListener event="spawntrigger" />
403                      </trigger>
404                   </events>
405                </EventTrigger>
406            </trigger>
407        </events>
408    </SimpleNotification>
409
410    <SimpleNotification broadcast="true" message="Welcome to Station A, Commander.">
411        <events>
412            <trigger>
413                <EventListener event="reachedA" />
414            </trigger>
415        </events>
416    </SimpleNotification>
417
418    <SimpleNotification broadcast="true" message="We've prepared a reinforced Ship for you.">
419        <events>
420            <trigger>
421                <EventTrigger stayactive="true" delay=4 >
422                   <events>
423                      <trigger>
424                         <EventListener event="reachedA" />
425                      </trigger>
426                   </events>
427                </EventTrigger>
428            </trigger>
429        </events>
430    </SimpleNotification>
431
432    <SimpleNotification broadcast="true" message="Now join our defense Team.">
433        <events>
434            <trigger>
435                <EventListener event="dockedA" />
436            </trigger>
437        </events>
438    </SimpleNotification>
439
440    <SimpleNotification broadcast="true" message="Howdy Commander! Ready to kick alien ass?">
441        <events>
442            <trigger>
443                <EventListener event="joinedUnit" />
444            </trigger>
445        </events>
446    </SimpleNotification>
447
448    <SimpleNotification broadcast="true" message="An enemy wave is approaching the shuttle!">
449        <events>
450            <trigger>
451                <EventListener event="wave1" />
452                <EventListener event="wave2" />
453                <EventListener event="wave3" />
454            </trigger>
455        </events>
456    </SimpleNotification>
457
458    <SimpleNotification broadcast="true" message="yippie ki yay motherf*cker!">
459        <events>
460            <trigger>
461                <EventListener event="attackers1" />
462                <EventListener event="attackers2" />
463                <EventListener event="attackers3" />
464            </trigger>
465        </events>
466    </SimpleNotification>
467
468    <SimpleNotification broadcast="true" message="Phew, that was close! Well done, Commmander.">
469        <events>
470            <trigger>
471                <EventListener event="waveClear1" />
472                <EventListener event="waveClear2" />
473                <EventListener event="waveClear3" />
474            </trigger>
475        </events>
476    </SimpleNotification>
477
478    <SimpleNotification broadcast="true" message="It's over... we failed. Retreat!">
479        <events>
480            <trigger>
481                <EventListener event="missionFailed" />
482            </trigger>
483        </events>
484    </SimpleNotification>
485
486    <!--STATIONS -->
487
488    <!-- (Temporary) Template for stations. Used to define common features of all Stations. -->
489    <Template name="station">
490        <Pawn mass=10000 collisionType=dynamic friction=0.01>
491            <attached>
492                <Model mesh="HydroHarvester.mesh" position="0,0,0" scale=50 />
493                <DistanceTriggerBeacon name="NPC" />
494            </attached>
495            <collisionShapes>
496                <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
497                <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
498                <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
499                <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
500                <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
501                <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
502                <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
503                <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
504                <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
505                <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
506                <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
507                <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
508                <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
509                <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
510                <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
511                <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
512            </collisionShapes>
513        </Pawn>
514    </Template>
515
516    <!-- A, Coordinates are approx. (cos(29pi/16), sin(29pi/16), 0)*3000 -->
517    <Pawn name="statA" team=0 radarname="Station A" position="<?lua printC(cA) ?>" direction="<?lua printC(dStation) ?>" initialhealth=10000 maxhealth=10000>
518        <templates>
519            <Template link="station" />
520        </templates>
521        <attached>
522            <DockingTarget name="dockTargetA" />
523            <Dock position="0,0,0" active=true>
524                <animations>
525                    <MoveToDockingTarget target="dockTargetA" />
526                </animations>
527                <effects>
528                    <DockToShip target="newSpaceShip" />
529                </effects>
530                <events>
531                    <execute>
532                        <EventListener event="dockA" />
533                    </execute>
534                </events>
535                <attached>
536                    <DistanceTrigger position="0,0,0" distance="200" target="SpaceShip" beaconMode="exclude" targetname="NPC" name="dockA" />
537                    <Billboard position="0,0,0" amplitude=1 material="Flares/lensflare" colour="1,0,0.05" />
538                </attached>
539            </Dock>
540        </attached>
541    </Pawn>
542
543    <!-- B, Coordinates are approx. (-cos(29pi/16), sin(29pi/16), 0)*3000 -->
544    <Pawn name="statB" team=0 radarname="Station B" position="<?lua printC(cB) ?>" direction="<?lua printC(dStation) ?>" initialhealth=10000 maxhealth=10000>
545        <templates>
546            <Template link="station" />
547        </templates>
548        <attached>
549            <DockingTarget name="dockTargetB" />
550            <Dock position="0,0,0" active=true>
551                <animations>
552                    <MoveToDockingTarget target="dockTargetB" />
553                </animations>
554                <effects>
555                    <DockToShip target="newSpaceShip" />
556                </effects>
557                <events>
558                    <execute>
559                        <EventListener event="dockB" />
560                    </execute>
561                </events>
562                <attached>
563                    <DistanceTrigger position="0,0,0" distance="200" target="SpaceShip" beaconMode="exclude" targetname="NPC" name="dockB" />
564                    <Billboard position="0,0,0" amplitude=1 material="Flares/lensflare" colour="1,0,0.05" />
565                </attached>
566            </Dock>
567        </attached>
568    </Pawn>
569
570    <!-- C -->
571    <Pawn name="statC" team=0 radarname="Station C" position="<?lua printC(cC) ?>" direction="<?lua printC(dStation) ?>" initialhealth=10000 maxhealth=10000>
572        <templates>
573            <Template link="station" />
574        </templates>
575        <attached>
576            <DockingTarget name="dockTargetC" />
577            <Dock position="0,0,0" active=true>
578                <animations>
579                    <MoveToDockingTarget target="dockTargetC" />
580                </animations>
581                <effects>
582                    <DockToShip target="fpsMode" />
583                </effects>
584                <events>
585                    <execute>
586                        <EventListener event="dockC" />
587                    </execute>
588                </events>
589                <attached>
590                    <DistanceTrigger position="0,0,0" distance="200" target="SpaceShip" beaconMode="exclude" targetname="NPC" name="dockC" />
591                    <Billboard position="0,0,0" amplitude=1 material="Flares/lensflare" colour="1,0,0.05" />
592                </attached>
593            </Dock>
594        </attached>
595    </Pawn>
596
597    <!-- New SpaceShip as destination of dock A-->
598    <SpaceShip
599            template            = "spaceshipassff"
600            team                = "0"
601            position            = "<?lua printC(cNewShip) ?>"
602            lookat              = "<?lua printC(cCenter) ?>"
603            health              = "400"
604            initialhealth       = "400"
605            maxhealth           = "500"
606            shieldhealth        = "80"
607            initialshieldhealth = "80"
608            maxshieldhealth     = "120"
609            shieldabsorption    = "0.8"
610            reloadrate          = "1"
611            reloadwaittime      = "1"
612            name                = "newSpaceShip"
613            radarname           = "Defender" >
614        <attached>
615            <DockingTarget name="newSpaceShip" />
616            <DistanceTriggerBeacon name="newSpaceShip" />
617        </attached>
618    </SpaceShip>
619
620    <!-- FPS Player as destination of dock C-->
621    <FpsPlayer team=0 template = "fps" radarname = "First Person Player" position = "<?lua printC(cFPS) ?>">
622        <attached>
623            <DockingTarget name="fpsMode" />
624            <DistanceTriggerBeacon name="fpsPlayer" />
625        </attached>
626    </FpsPlayer>
627
628    <StaticEntity position="<?lua printC(cFPSGround) ?>" direction="<?lua printC(dFPSGround) ?>" collisionType=static mass=100000 friction=0.01 >
629        <attached>
630            <Model position="0,0,0" mesh="crate.mesh" scale3D="80,80,5" />
631        </attached>
632        <collisionShapes>
633            <BoxCollisionShape position="0,0,0" halfExtents="80,80,5" />
634        </collisionShapes>
635    </StaticEntity>
636
637    <!--ELEMENTS -->
638
639    <?lua
640        dofile("includes/asteroidField.lua")
641       asteroidField(cField1[1], cField1[2], cField1[3], 20, 30, 2200, 250, 0)
642    ?>
643
644    <?lua
645        dofile("includes/asteroidField.lua")
646       asteroidField(cField2[1], cField2[2], cField2[3], 20, 30, 2200, 250, 0)
647    ?>
648
649    <Planet
650        position="<?lua printC(cPlanet1) ?>"
651        scale="2000"
652        collisionType="dynamic"
653        linearDamping="0.8"
654        angularDamping="0"
655        mass="5000000"
656        pitch="0"
657        mesh="planets/muunilinst.mesh"
658        atmosphere="atmosphere1"
659        rotationaxis="1,0,0"
660        rotationrate="1.0"
661        atmospheresize="80.0f"
662        imagesize="1024.0f"
663        collisiondamage = 2
664        enablecollisiondamage = true
665      >
666      <attached>
667        <ForceField position="0,0,0" mode="sphere" diameter="4000" velocity="-500" />
668        </attached>
669          <collisionShapes>
670            <SphereCollisionShape radius="2000" position="0,0,0" />
671      </collisionShapes>
672    </Planet>
673
674    <?lua
675        dofile("includes/asteroidField.lua")
676        asteroidBelt(cPlanet1[1], cPlanet1[2], cPlanet1[3], 30, 0, 30, 20, 40, 2800, 3000, 200, 1)
677    ?>
678
679    <Planet
680        position="<?lua printC(cPlanet2) ?>"
681        scale="3000"
682        collisionType="dynamic"
683        linearDamping="0.8"
684        angularDamping="0"
685        mass="5000000"
686        pitch="0"
687        mesh="planets/planet3.mesh"
688        atmosphere="atmosphere1"
689        rotationaxis="1,0,0"
690        rotationrate="1.0"
691        atmospheresize="80.0f"
692        imagesize="1024.0f"
693        collisiondamage = 2
694        enablecollisiondamage = true
695      >
696      <attached>
697        <ForceField position="0,0,0" mode="sphere" diameter="6000" velocity="-500" />
698        </attached>
699          <collisionShapes>
700            <SphereCollisionShape radius="3000" position="0,0,0" />
701      </collisionShapes>
702    </Planet>
703
704    <?lua
705        dofile("includes/asteroidField.lua")
706        asteroidBelt(cPlanet2[1], cPlanet2[2], cPlanet2[3], 30, 20, 100, 20, 40, 3400, 3700, 400, 1)
707    ?>
708
709    <!-- Allies -->
710    <?lua
711    for i = 1, allies, 1
712    do
713    x = rAllies[1] + math.cos(2*math.pi/allies*(i+1))*100
714    y = rAllies[2] + math.sin(2*math.pi/allies*(i+1))*100
715    ?>
716    <SpaceShip visible=false active=false name="allies<?lua print(k)?>" radarname="Ally" position="<?lua print(x)?>,<?lua print(y)?>,<?lua print(math.pow(-1,i)*100) ?>" lookat="0,0,0" team=0>
717        <templates>
718            <Template link="spaceshipassff" />
719        </templates>
720        <events>
721            <visibility>
722                <EventListener event="dockedA" />
723            </visibility>
724            <activity>
725                <EventListener event="dockedA" />
726            </activity>
727        </events>
728        <attached>
729            <DistanceTriggerBeacon name="NPC" />
730        </attached>
731        <controller>
732            <!-- also see allyControllerDispatcher -->
733            <AIController name="allyController" accuracy=100 team=0 active=false />
734        </controller>
735    </SpaceShip>
736    <?lua end ?>
737
738    <!-- Enemies. Outer loop defines waves, inner loop defines enemies in every wave. -->
739    <?lua
740    for k = 1, waves, 1
741    do
742    ?>
743    <?lua
744    for i = 1, enemies, 1
745    do
746    x = math.cos(math.pi/(enemies + 3)*(i+1))*1500
747    y = math.sin(math.pi/(enemies + 3)*(i+1))*1500
748    ?>
749    <SpaceShip visible=false active=false name="attackers<?lua print(k)?>" radarname="Attacker" position="<?lua print(x)?>,<?lua print(y)?>,<?lua print(math.pow(-1,i)*250) ?>" lookat="0,0,0" team=1>
750        <templates>
751            <Template link="spaceshippirate" />
752        </templates>
753        <events>
754            <visibility>
755                <EventListener event="wave<?lua print(k)?>" />
756            </visibility>
757            <activity>
758                <EventListener event="wave<?lua print(k)?>" />
759            </activity>
760        </events>
761        <attached>
762            <DistanceTriggerBeacon name="NPC" />
763        </attached>
764        <controller>
765            <WaypointPatrolController name="attackController" accuracy=100 alertnessradius=100 team=1 active=false>
766                <waypoints>
767                    <Attacher target="transporter" deletewithparent=false />
768                </waypoints>
769                <events>
770                    <activity>
771                        <EventListener event="wave<?lua print(k)?>" />
772                    </activity>
773                </events>
774            </WaypointPatrolController>
775        </controller>
776    </SpaceShip>
777    <?lua end ?>
778    <?lua end ?>
779
780    <!-- Transporter, starting Point is near A, end Point near B, the circle parameters for the waypoints are: Center = (0, -887, 0), r = 2613 -->
781    <SpaceShip position="<?lua printC(cA) ?>" lookat="<?lua printC(cB) ?>" team=0 name="transporter" radarname="Shuttle">
782        <templates>
783            <Template link="spaceshipTransporter" />
784        </templates>
785        <attached>
786            <DistanceTriggerBeacon name="NPC" />
787        </attached>
788        <controller>
789            <WaypointController accuracy=10 team=0>
790                <waypoints>
791                    <!-- A to B -->
792                    <?lua
793                    max = 5
794                    for i = 1, max, 1
795                    do
796                    x = math.cos(math.pi*(i+1)/8)*5000
797                    y = -math.sin(math.pi*(i+1)/8)*700-3000
798                    ?>
799                    <Billboard position="<?lua print(x) ?>,<?lua print(y) ?>,0" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
800                    <?lua end ?>
801
802                    <!-- Return Point -->
803                    <Billboard position="<?lua printC(cB) ?>" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
804
805                    <!-- B to A -->
806                    <?lua
807                    max = 5
808                    for i = 1, max, 1
809                    do
810                    x = math.cos(math.pi*(max+2-i)/8)*5000
811                    y = -math.sin(math.pi*(max+2-i)/8)*700-3000
812                    ?>
813                    <Billboard position="<?lua print(x) ?>,<?lua print(y) ?>,0" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
814                    <?lua end ?>
815
816                    <!-- Start Point -->
817                    <Billboard position="<?lua printC(cA) ?>" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
818                </waypoints>
819            </WaypointController>
820        </controller>
821    </SpaceShip>
822
823    </Scene>
824</Level>
Note: See TracBrowser for help on using the repository browser.