Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 10705 was 10705, checked in by bhatiab, 9 years ago

Started Work on includes/fog.lua

File size: 16.2 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
14<?lua
15    include("templates/spaceshipAssff2.oxt")
16    include("templates/spaceshipPirate.oxt")
17    include("templates/spaceshipEscort.oxt")
18    include("templates/spaceshipRing.oxt")
19    include("templates/spaceshipSwallow.oxt")
20    include("templates/spaceshipTransporter.oxt")
21?>
22
23<Level gametype = "Mission">
24    <templates>
25        <Template link="lodtemplate_default" />
26    </templates>
27
28    <?lua include("includes/notifications.oxi") ?>
29
30    <NotificationQueueCEGUI
31        name="narrative"
32        targets="simpleNotification"
33        size=3
34        displayTime=3.9
35        position="0.15, 0, 0.1, 0"
36        fontSize="23"
37        fontColor="0.3, 1, 0.2, 0.8"
38        alignment="HorzCentred"
39        displaySize="0.7, 0, 0, 0"
40    />
41
42    <!-- GLOBAL LUA VARIABLES -->
43    <?lua
44        waves = 3
45        enemies = 5
46    ?>
47
48    <Scene
49        ambientlight = "0.8, 0.8, 0.8"
50        skybox = "Orxonox/Starbox"
51        hasPhysics = true
52    >
53
54    <SpawnPoint name="playerSpawn" team=1 position="0,-50,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff2 />
55
56    <WorldAmbientSound source="Earth.ogg" looping="true" playOnLoad="true" />
57
58    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
59
60    <!--QUEST DEFINITIONS-->
61
62    <GlobalQuest id="quest1">
63        <QuestDescription title="Reach the Station A!" description="" failMessage="" completeMessage="" />
64        <hints>
65            <QuestHint id="quest1hint1" />
66        </hints>
67        <complete-effects>
68            <!-- Quest 2 not made as of yet
69            <AddQuest questId="quest2" />
70            <AddQuest questId="quest2.1" />
71            <AddQuest questId="quest2.2" />
72            <AddQuest questId="quest2.3" />
73            -->
74            <AddQuest questId="quest3" />
75        </complete-effects>
76    </GlobalQuest>
77
78    <GlobalQuest id="quest2">
79        <QuestDescription title="Prepare to fight the Wave" description="" failMessage="" completeMessage="" />
80        <hints>
81        </hints>
82        <subquests>
83            <GlobalQuest id="quest2.1">
84                <QuestDescription title="Get a better Spaceship" description="" failMessage="" completeMessage="" />
85            </GlobalQuest>
86            <GlobalQuest id="quest2.2">
87                <QuestDescription title="Get some Pickups" description="" failMessage="" completeMessage="" />
88            </GlobalQuest>
89            <GlobalQuest id="quest2.3">
90                <QuestDescription title="Meet your Unit" description="" failMessage="" completeMessage="" />
91            </GlobalQuest>
92        </subquests>
93        <complete-effects>
94            <AddQuest questId="quest3" />
95        </complete-effects>
96    </GlobalQuest>
97
98    <GlobalQuest id="quest3">
99        <QuestDescription title="Fight the first Wave" description="" failMessage="" completeMessage="" />
100        <hints>
101        </hints>
102        <complete-effects>
103            <AddQuest questId="quest4" />
104            <AddQuest questId="quest4.1" />
105            <AddQuest questId="quest4.2" />
106        </complete-effects>
107    </GlobalQuest>
108
109    <GlobalQuest id="quest4">
110        <QuestDescription title="Prepare for the next Wave" description="" failMessage="" completeMessage="" />
111        <hints>
112        </hints>
113        <subquests>
114            <GlobalQuest id="quest4.1">
115                <QuestDescription title="Get to the Defense Station" description="" failMessage="" completeMessage="" />
116            </GlobalQuest>
117            <GlobalQuest id="quest4.2">
118                <QuestDescription title="Find the turret" description="" failMessage="" completeMessage="" />
119            </GlobalQuest>
120        </subquests>
121        <complete-effects>
122            <AddQuest questId="quest5" />
123        </complete-effects>
124    </GlobalQuest>
125
126    <GlobalQuest id="quest5">
127        <QuestDescription title="Fight the Hord!" description="" failMessage="" completeMessage="" />
128        <hints>
129        </hints>
130        <complete-effects>
131            <AddQuest questId="quest6" />
132            <AddQuest questId="quest6.1" />
133            <AddQuest questId="quest6.2" />
134        </complete-effects>
135    </GlobalQuest>
136
137    <GlobalQuest id="quest6">
138        <QuestDescription title="Get back to the Transporter" description="" failMessage="" completeMessage="" />
139        <hints>
140        </hints>
141        <subquests>
142            <GlobalQuest id="quest6.1">
143                <QuestDescription title="Collect the local Pickups" description="" failMessage="" completeMessage="" />
144            </GlobalQuest>
145            <GlobalQuest id="quest6.2">
146                <QuestDescription title="Use Portal to the Transporter" description="" failMessage="" completeMessage="" />
147            </GlobalQuest>
148        </subquests>
149        <complete-effects>
150            <AddQuest questId="quest7" />
151        </complete-effects>
152    </GlobalQuest>
153
154    <GlobalQuest id="quest7">
155        <QuestDescription title="Fight the final Wave" description="" failMessage="" completeMessage="" />
156        <hints>
157        </hints>
158        <subquests>
159        </subquests>
160    </GlobalQuest>
161
162    <!--EVENTS AND TRIGGERS
163        Usable events and triggers:
164        _spawntrigger
165        _reachedA
166        _wave<k>
167        _killedEnemy<k>.<i>
168        _waveClear<k>
169    -->
170
171    <EventMultiTrigger name="spawntrigger">
172        <events>
173            <trigger>
174                <EventListener event="playerSpawn" />
175            </trigger>
176        </events>
177    </EventMultiTrigger>
178
179    <DistanceTrigger name="reachedA" position="5000,-3000,0" distance=200 target="SpaceShip" beaconMode="exclude" targetname="NPC" stayactive=true />
180
181    <EventMultiTrigger name="wave1" activations="1" stayactive="true" >
182        <events>
183            <trigger>
184                <EventListener event="reachedA" />
185            </trigger>
186        </events>
187    </EventMultiTrigger>
188
189    <!-- Recursive helper function for the end-of-wave events. F*ck the event system, seriously. -->
190    <?lua
191    function enemyTriggerRecursor(i, k)
192    if i > 0 then
193    return [[
194    <EventTrigger name=killedEnemy]] .. k .. [[.]] .. i .. [[ activations=1 stayactive=true delay=0.1>
195        <events>
196            <trigger>
197                <EventListener event=attackers]] .. k .. [[ />
198            </trigger>
199        </events>
200        ]] .. enemyTriggerRecursor(i-1, k) .. [[
201    </EventTrigger>
202    ]]
203    else return ""
204    end
205    end
206    ?>
207    <!-- Actual recursive Event(s) for the respective waves. -->
208    <?lua
209    for k = 1, waves, 1
210    do
211    print(enemyTriggerRecursor(enemies,k))
212    ?>
213    <EventMultiTrigger name="waveClear<?lua print(k) ?>" delay=4.0>
214        <events>
215            <trigger>
216                <EventListener event="killedEnemy<?lua print(k .. [[.]] .. enemies) ?>" />
217            </trigger>
218        </events>
219    </EventMultiTrigger>
220    <?lua end ?>
221
222    <!-- This trigger needs fixing, as endMission can only be called by a Pawn Distance Trigger. Herpaderp -->
223    <EventMultiTrigger name="missionFailed" target="Pawn" stayActive="true" delay=1.5>
224        <events>
225            <trigger>
226                <EventListener event="transporter" />
227            </trigger>
228        </events>
229    </EventMultiTrigger>
230
231    <Script code="Mission endMission fail" onLoad="false" times="1">
232        <events>
233            <trigger>
234                <EventListener event="missionFailed" />
235            </trigger>
236        </events>
237    </Script>
238
239    <!--QUEST EFFECT BEACONS -->
240
241    <QuestEffectBeacon times=1>
242        <effects>
243            <AddQuest questId="quest1" />
244        </effects>
245        <events>
246            <execute>
247                <EventListener event="spawntrigger" />
248            </execute>
249        </events>
250    </QuestEffectBeacon>
251
252    <QuestEffectBeacon times=1>
253        <effects>
254            <CompleteQuest questId="quest1" />
255        </effects>
256        <events>
257            <execute>
258                <EventListener event="reachedA" />
259            </execute>
260        </events>
261    </QuestEffectBeacon>
262
263    <QuestEffectBeacon times=1>
264        <effects>
265            <CompleteQuest questId="quest3" />
266        </effects>
267        <events>
268            <execute>
269                <EventListener event="waveClear1" />
270            </execute>
271        </events>
272    </QuestEffectBeacon>
273
274    <!--NOTIFICATIONS -->
275
276    <SimpleNotification broadcast="true" message="Welcome, Commander. Please report at Station A">
277        <events>
278            <trigger>
279                <EventListener event="spawntrigger" />
280            </trigger>
281        </events>
282    </SimpleNotification>
283
284    <SimpleNotification broadcast="true" message="An enemy wave is approaching the shuttle!">
285        <events>
286            <trigger>
287                <EventListener event="wave1" />
288                <EventListener event="wave2" />
289                <EventListener event="wave3" />
290            </trigger>
291        </events>
292    </SimpleNotification>
293
294    <SimpleNotification broadcast="true" message="yippie ki yay motherf*cker!">
295        <events>
296            <trigger>
297                <EventListener event="attackers1" />
298                <EventListener event="attackers2" />
299                <EventListener event="attackers3" />
300            </trigger>
301        </events>
302    </SimpleNotification>
303
304    <SimpleNotification broadcast="true" message="Phew, that was close! Well done, Commmander.">
305        <events>
306            <trigger>
307                <EventListener event="waveClear1" />
308                <EventListener event="waveClear2" />
309                <EventListener event="waveClear3" />
310            </trigger>
311        </events>
312    </SimpleNotification>
313
314    <SimpleNotification broadcast="true" message="It's over... we failed. Retreat!">
315        <events>
316            <trigger>
317                <EventListener event="missionFailed" />
318            </trigger>
319        </events>
320    </SimpleNotification>
321
322    <!--STRUCTURE -->
323
324    <!-- (Temporary) Template for stations. Used to define common features of all Stations. -->
325    <Template name="station">
326        <Pawn mass=10000 collisionType=dynamic friction=0.01>
327          <attached>
328            <Model mesh="HydroHarvester.mesh" position="0,0,0" scale=50 />
329          </attached>
330          <collisionShapes>
331            <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
332            <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
333            <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
334            <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
335            <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
336            <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
337            <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
338            <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
339            <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
340            <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
341            <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
342            <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
343            <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
344            <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
345            <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
346            <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
347          </collisionShapes>
348      </Pawn>
349    </Template>
350
351    <!-- A, Coordinates are approx. (cos(29pi/16), sin(29pi/16), 0)*3000 -->
352    <Pawn name="statA" radarname="Station A" position="5000,-3000,0" direction="0,1,0" initialhealth=1000 maxhealth=1000>
353        <templates>
354            <Template link="station" />
355        </templates>
356    </Pawn>
357
358    <!-- B, Coordinates are approx. (-cos(29pi/16), sin(29pi/16), 0)*3000 -->
359    <Pawn name="statB" radarname="Station B" position="-5000,-3000,0" direction="0,1,0" initialhealth=1000 maxhealth=1000>
360        <templates>
361            <Template link="station" />
362        </templates>
363    </Pawn>
364
365    <!-- C -->
366    <Pawn name="statC" radarname="Station C" position="0,-2500,0" direction="0,1,0" initialhealth=1000 maxhealth=1000>
367        <templates>
368            <Template link="station" />
369        </templates>
370    </Pawn>
371
372    <!--ELEMENTS -->
373
374    <?lua
375        dofile("includes/asteroidField.lua")
376        asteroidBelt(0,-2000, 0, 30, 0, 5, 20, 40, 500, 3300, 75, 0)
377    ?>
378    <!--
379    <?lua
380        dofile("includes/fog.lua")
381       generateFog(-1000,-1000,0,20,0.9)
382    ?>
383    -->
384
385
386    <!-- Enemies. Outer loop defines waves, inner loop defines enemies in every wave. -->
387    <?lua
388    for k = 1, waves, 1
389    do
390    ?>
391    <?lua
392    for i = 1, enemies, 1
393    do
394    x = math.cos(math.pi/8*(i+1))*1500
395    y = math.sin(math.pi/8*(i+1))*1500
396    ?>
397    <SpaceShip visible=false active=flase 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=2>
398        <templates>
399            <Template link="spaceshippirate" />
400        </templates>
401        <events>
402            <visibility>
403                <EventListener event="wave<?lua print(k)?>" />
404            </visibility>
405            <activity>
406                <EventListener event="wave<?lua print(k)?>" />
407            </activity>
408        </events>
409        <attached>
410            <DistanceTriggerBeacon name="NPC" />
411        </attached>
412        <controller>
413            <WaypointPatrolController name="attackController" alertnessradius=50 team=1 active=false>
414                <waypoints>
415                    <Attacher target="transporter" deletewithparent=false />
416                </waypoints>
417                <events>
418                    <activity>
419                        <EventListener event="wave<?lua print(k)?>" />
420                    </activity>
421                </events>
422            </WaypointPatrolController>
423        </controller>
424    </SpaceShip>
425    <?lua end ?>
426    <?lua end ?>
427
428    <!-- Transporter, starting Point is near A, end Point near B, the circle parameters for the waypoints are: Center = (0, -887, 0), r = 2613 -->
429    <SpaceShip position="5000,-3000,0" lookat="-2494, -1667, 0" team=1 name="transporter" radarname="Shuttle">
430        <templates>
431            <Template link="spaceshipTransporter" />
432        </templates>
433        <attached>
434            <DistanceTriggerBeacon name="NPC" />
435        </attached>
436        <controller>
437            <WaypointController accuracy=10>
438                <waypoints>
439                    <!-- A to B -->
440                    <?lua
441                    max = 5
442                    for i = 1, max, 1
443                    do
444                    x = math.cos(math.pi*(i+1)/8)*5000
445                    y = -math.sin(math.pi*(i+1)/8)*700-3000
446                    ?>
447                    <Billboard position="<?lua print(x) ?>,<?lua print(y) ?>,0" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
448                    <?lua end ?>
449
450                    <!-- Return Point -->
451                    <Billboard position="-5000, -3000, 0" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
452
453                    <!-- B to A -->
454                    <?lua
455                    max = 5
456                    for i = 1, max, 1
457                    do
458                    x = math.cos(math.pi*(max+2-i)/8)*5000
459                    y = -math.sin(math.pi*(max+2-i)/8)*700-3000
460                    ?>
461                    <Billboard position="<?lua print(x) ?>,<?lua print(y) ?>,0" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
462                    <?lua end ?>
463
464                    <!-- Start Point -->
465                    <Billboard position="5000,-3000,0" amplitude=1 material="Flares/lensflare" colour="1,1,0.05"/>
466                </waypoints>
467            </WaypointController>
468        </controller>
469    </SpaceShip>
470
471    </Scene>
472</Level>
Note: See TracBrowser for help on using the repository browser.