Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ProtectBoss_HS17/data/levels/ProtectBoss.oxw @ 11663

Last change on this file since 11663 was 11639, checked in by lrigoni, 7 years ago

Changes of 4.12.2017

File size: 19.3 KB
RevLine 
[11500]1<LevelInfo
2 name = "ProtectBoss"
3 description = "Protect a disabled cargo ship!"
[11639]4 tags = "test, mission"
[11500]5 screenshot = "emptylevel.png"
6/>
7
[11639]8
[11500]9<?lua
10  include("stats.oxo")
11  include("HUDTemplates3.oxo")
12  include("templates/lodInformation.oxt")
13  include("templates/HeavyCruiser.oxt")
[11604]14  include("HUDPickupTemplate.oxo")
15  include("templates/pickupRepresentationTemplates.oxt")
[11500]16?>
17
18<?lua
19  include("templates/spaceshipEscort.oxt")
20  include("templates/spaceshipAssff.oxt")
21  include("templates/endurancetest_template.oxt")
[11557]22  include("templates/spaceshipPirate.oxt")
[11500]23?>
24
25<Level gametype="Mission">
26  <templates>
27    <Template link=lodtemplate_default />
28  </templates>
29  <?lua include("includes/notifications.oxi") ?>
30
[11522]31  <NotificationQueueCEGUI
32    name="narrative"
33    targets="simpleNotification"
34    size=3
35    displayTime=7
36    position="0.2, 0, 0.1, 0"
37    fontSize="16"
38    fontColor="0.3, 1, 0.2, 0.8"
39    alignment="HorzCentred"
40    displaySize="0.6, 0, 0, 0"
41  />
42
[11500]43  <Scene
44    ambientlight = "0.8, 0.8, 0.8"
45    skybox       = "Orxonox/Starbox"
46  >
47
[11639]48    <?lua
49      include("includes/pickups.oxi")
50    ?>
51
[11500]52    <WorldAmbientSound source="Earth.ogg" looping="true" playOnLoad="true" /> <!-- AlphaCentauri.ogg, Mars.ogg-->
53
54    <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"/>
[11557]55
[11522]56    <EventMultiTrigger name=spawntrigger>
57      <events>
58        <trigger>
59          <SpawnPoint team=0 position="0,0,1" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
60        </trigger>
61      </events>
62    </EventMultiTrigger>
[11557]63   
[11585]64    <Pawn
[11522]65        team      = 0
[11585]66        collisionType = kinematic
[11604]67        enablecollisiondamage=true
68        collisiondamage = 10
[11522]69        position  = "0,0,-2500"
[11604]70        mass      = 100000
[11639]71        health    = 100 initialhealth=100 maxhealth="100"
[11585]72        direction = "1,0,0"
[11522]73        rotationaxis="0,0,1" rotationrate="4.5" velocity="0,0,30"
[11604]74        vulnerable=true
[11585]75        name      = "CargoShip"
76        radarname = "Cargo Ship" >
[11522]77      <attached>
[11542]78        <DistanceTriggerBeacon name="CargoShip" />
[11557]79        <Model mesh="escortShip.mesh" mass=10000 position="0,0,0" scale=100 />
[11522]80      </attached>
[11557]81      <collisionShapes>
82        <BoxCollisionShape position="0,0,0" halfExtents="300,100,200" /> <!-- laenge  ,   dicke    , breite -->
83        <BoxCollisionShape position="-100,-50,-280" halfExtents="220,70,100" />
84        <BoxCollisionShape position="-100,-50,280" halfExtents="220,70,100" />
[11522]85      </collisionShapes>
[11585]86      <explosion>
87        <ExplosionPart scale = 12 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
88        <ExplosionPart scale = 12 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
89        <ExplosionPart scale = 12 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
90        <ExplosionPart offset="94,33,-50" delay=1 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
91        <ExplosionPart offset="94,33,-50" delay=1 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
92        <ExplosionPart offset="94,33,-50" delay=1 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
93   
94        <ExplosionPart scale = 5 mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
95        <ExplosionPart scale = 5 mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
96        <ExplosionPart scale = 5 mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
97        <ExplosionPart scale = 5 mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
98        <ExplosionPart scale = 5 mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
99        <ExplosionPart scale = 5 mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
100        <ExplosionPart scale = 5 mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
101        <ExplosionPart scale = 5 mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
102        <ExplosionPart delay=0.8 scale = 2.5 mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
103        <ExplosionPart delay=0.8 scale = 2.5 mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
104        <ExplosionPart delay=0.8 scale = 2.5 mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
105        <ExplosionPart delay=0.8 scale = 2.5 mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
106       
107        <ExplosionPart offset="20,13,-15" scale=7 delay=1.3 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
108        <ExplosionPart offset="30,13,-15" scale=7 delay=1.3 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
109        <ExplosionPart offset="20,13,-15" scale=7 delay=1.3 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
110        <ExplosionPart offset="-20,-13,-15" scale=5 delay=1.8 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
111        <ExplosionPart offset="-20,-13,-15" scale=5 delay=1.8 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
112        <ExplosionPart offset="-20,-13,-15" scale=5 delay=1.8 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
113      </explosion>
114    </Pawn>
[11522]115
[11557]116    <!-- triggers when first quest is completed -->
[11585]117    <DistanceTrigger name="passedAsteroidFieldOne" beaconMode=identify position="0,0,3000" distance=1000 target="Pawn" targetname="CargoShip" />
[11542]118
[11604]119    <!-- triggers when first pirate wave is defeated -->
[11639]120
[11604]121    <Trigger name="firstPirateWaveKilled" mode="and">
[11639]122      <?lua
123        for n = 1, 3, 1 do
124          print("<EventTrigger activations=1 stayactive=true><events><trigger><EventListener event=p" .. n .. "/></trigger></events></EventTrigger>")
125        end
126      ?>
127      <!--EventTrigger activations="1" stayactive="true" >
[11604]128        <events>
129          <trigger>
130             <EventListener event="p1" />
131          </trigger>
132        </events>
133      </EventTrigger>
134      <EventTrigger activations="1" stayactive="true" >
135        <events>
136          <trigger>
137             <EventListener event="p2" />
138          </trigger>
139        </events>
140      </EventTrigger>
141      <EventTrigger activations="1" stayactive="true" >
142        <events>
143          <trigger>
144             <EventListener event="p3" />
145          </trigger>
146        </events>
[11639]147      </EventTrigger-->
148    </Trigger>
149
150    <!-- triggers when second pirate wave is defeated -->
151    <Trigger name="secondPirateWaveKilled" mode="and">
152      <?lua
153        for n = 1, 6, 1 do
154          print("<EventTrigger activations=1 stayactive=true><events><trigger><EventListener event=p1" .. n .. "/></trigger></events></EventTrigger>")
155        end
156      ?>
157      <!--EventTrigger activations="1" stayactive="true" >
158        <events>
159          <trigger>
160             <EventListener event="p11" />
161          </trigger>
162        </events>
[11604]163      </EventTrigger>
[11639]164      <EventTrigger activations="1" stayactive="true" >
165        <events>
166          <trigger>
167             <EventListener event="p12" />
168          </trigger>
169        </events>
170      </EventTrigger>
171      <EventTrigger activations="1" stayactive="true" >
172        <events>
173          <trigger>
174             <EventListener event="p13" />
175          </trigger>
176        </events>
177      </EventTrigger>
178      <EventTrigger activations="1" stayactive="true" >
179        <events>
180          <trigger>
181             <EventListener event="p14" />
182          </trigger>
183        </events>
184      </EventTrigger>
185      <EventTrigger activations="1" stayactive="true" >
186        <events>
187          <trigger>
188             <EventListener event="p15" />
189          </trigger>
190        </events>
191      </EventTrigger>
192      <EventTrigger activations="1" stayactive="true" >
193        <events>
194          <trigger>
195             <EventListener event="p16" />
196          </trigger>
197        </events>
198      </EventTrigger-->
[11604]199    </Trigger>
200
[11639]201    <!-- triggers some time after the second pirate wave was defeated -->
202    <Trigger name="thirdPirateWaveStarting" delay=15>
203      <EventTrigger activations="1" stayactive="true" >
204        <events>
205          <trigger>
206             <EventListener event="secondPirateWaveKilled" />
207          </trigger>
208        </events>
209      </EventTrigger>
210    </Trigger>
211
212    <!-- triggers when third pirate wave is defeated -->
213    <Trigger name="thirdPirateWaveKilled" mode="and" delay=5>
214      <?lua
215        for n = 1, 7, 1 do
216          print("<EventTrigger activations=1 stayactive=true><events><trigger><EventListener event=p2" .. n .. "/></trigger></events></EventTrigger>")
217        end
218      ?>
219      <!--EventTrigger activations="1" stayactive="true" >
220        <events>
221          <trigger>
222             <EventListener event="p21" />
223          </trigger>
224        </events>
225      </EventTrigger>
226      <EventTrigger activations="1" stayactive="true" >
227        <events>
228          <trigger>
229             <EventListener event="p22" />
230          </trigger>
231        </events>
232      </EventTrigger>
233      <EventTrigger activations="1" stayactive="true" >
234        <events>
235          <trigger>
236             <EventListener event="p23" />
237          </trigger>
238        </events>
239      </EventTrigger>
240      <EventTrigger activations="1" stayactive="true" >
241        <events>
242          <trigger>
243             <EventListener event="p24" />
244          </trigger>
245        </events>
246      </EventTrigger>
247      <EventTrigger activations="1" stayactive="true" >
248        <events>
249          <trigger>
250             <EventListener event="p25" />
251          </trigger>
252        </events>
253      </EventTrigger>
254      <EventTrigger activations="1" stayactive="true" >
255        <events>
256          <trigger>
257             <EventListener event="p26" />
258          </trigger>
259        </events>
260      </EventTrigger>
261      <EventTrigger activations="1" stayactive="true" >
262        <events>
263          <trigger>
264             <EventListener event="p27" />
265          </trigger>
266        </events>
267      </EventTrigger-->
268    </Trigger>
269
270    <Trigger name="succeedMission" delay=7>
271      <EventTrigger activations="1" stayactive="true" >
272        <events>
273          <trigger>
274             <EventListener event="thirdPirateWaveKilled" />
275          </trigger>
276        </events>
277      </EventTrigger>
278    </Trigger>
279
280      <EventTrigger activations="1" stayactive="true" name="failMission" delay=0.1>
281        <events>
282          <trigger>
283             <EventListener event="CargoShip" />
284          </trigger>
285        </events>
286      </EventTrigger>
287
288    <!-- create asteroids and pickups -->
[11522]289    <?lua
[11604]290      function asteroidMesh()
291        x = math.random(8)
292        if x < 7 then
293          return "ast" .. x .. ".mesh"
294        elseif x == 7 then
295          return "asteroid_ice.mesh"
296        else
297          return "asteroid_UV.mesh"
298        end
299      end
300
[11542]301      for count = 1, 30, 1 do
[11522]302        x = math.random(-1000, 1000)
303        y = math.random(-1000, 1000)
304        z = 125 * count + math.random(-250, 250)
[11557]305        vmax = 7
[11542]306        rx = math.random(-vmax, vmax)
307        ry = math.random(-vmax, vmax)
308        rz = math.random(-vmax, vmax)
309        vx = math.random(-vmax, vmax)
310        vy = math.random(-vmax, vmax)
311        vz = math.random(-vmax, vmax)
312        rr = math.random() * 10
[11639]313        print("<ShootableObstacle team=1 enablecollisiondamage=true collisiondamage=10 health=100 maxhealth=100 initialhealth=100 position=\"" .. x .. "," .. y .. "," .. z .. "\" direction=\"0,0,-1\" velocity=\"" .. vx .. "," .. vy .. "," .. vz .. "\"rotationaxis=\"" .. rx .. "," .. ry .. "," .. rz .. "\" rotationrate=" .. rr .. " collisionType=dynamic mass=1 name=asteroid radarname=Asteroid> <attached> <Model position=\"0,0,0\" mesh=\"" .. asteroidMesh() .. "\" scale3D=\"10,10,10\" /> </attached> <collisionShapes> <SphereCollisionShape position=\"0,0,0\" radius=5 /> </collisionShapes> <controller> <WaypointController team=1> </WaypointController> </controller> <explosion> <ExplosionPart minspeed=0 maxspeed=0 effect1=\"orxonox/explosion_flash2\" effect2=\"orxonox/explosion_flame2\" /> <ExplosionPart minspeed=0 maxspeed=0 effect1=\"orxonox/explosion_shockwave2\" effect2=\"orxonox/explosion_sparks2\" /> <ExplosionPart minspeed=0 maxspeed=0 effect1=\"orxonox/explosion_streak2\" effect2=\"orxonox/explosion_afterglow\" /> </explosion> </ShootableObstacle>")
[11522]314      end
[11604]315
[11639]316      for count = 1, 50, 1 do
[11604]317        x = math.random(-1000, 1000)
318        y = math.random(-1000, 1000)
319        z = 125 * count + math.random(-250, 250)
[11639]320        typenum = math.random(11)
[11604]321        type = ""
322        if typenum == 1 then
323          type = "smallmunition"
324        elseif typenum == 2 then
325          type = "mediummunition"
326        elseif typenum == 3 then
327          type = "hugemunition"
328        elseif typenum == 4 then
329          type = "smallhealth"
330        elseif typenum == 5 then
331          type = "mediumhealth"
332        elseif typenum == 6 then
333          type = "hugehealth"
[11639]334        elseif typenum == 7 then
335          type = "crazyhealth"
336        elseif typenum == 8 then
337          type = "smallshield"
338        elseif typenum == 9 then
339          type = "mediumshield"
340        elseif typenum == 10 then
341          type = "hugeshield"
[11604]342        else
[11639]343          type = "drone"
[11604]344        end
345        type = type .. "pickup"
[11639]346        print("<PickupSpawner pickup=\"" .. type .. "\" position=\"" .. x .. "," .. y .. "," .. z .. "\" triggerDistance=10 respawnTime=5 maxSpawnedItems=1 />")
[11604]347      end
[11522]348    ?>
349
[11557]350    <!-- start first quest -->
[11522]351    <QuestEffectBeacon times=1>
352      <effects>
353        <AddQuest questId="ProtectBoss.AsteroidField" />
354      </effects>
355      <events>
[11542]356        <execute>
[11522]357          <EventListener event=spawntrigger />
358        </execute>
359      </events>
360    </QuestEffectBeacon>
361
[11557]362    <!-- start second quest (doesn't work yet) -->
363    <QuestEffectBeacon times=1>
364      <effects>
365        <CompleteQuest questId="ProtectBoss.AsteroidField" />
[11585]366        <!--AddQuest questId="ProtectBoss.PirateAttack" /-->
[11557]367      </effects>
368      <events>
369        <execute>
[11585]370          <EventListener event=passedAsteroidFieldOne />
[11557]371        </execute>
372      </events>
373    </QuestEffectBeacon>
374
[11522]375    <SimpleNotification message="Protect the cargo ship! (Info: F3)" broadcast="true">
376        <events>
377            <trigger>
378                <EventListener event=spawntrigger />
379            </trigger>
380        </events>
381    </SimpleNotification>
382
383    <LocalQuest id="ProtectBoss.AsteroidField">
384        <QuestDescription title="Asteroid Field" description="The cargo ship in front of you is disabled and is drifting uncontrolled! Shoot the asteroids out of the way to protect it!" failmessage="The cargo ship has been hit!" completeMessage="" />
[11585]385        <complete-effects>
[11542]386            <AddQuest questId="ProtectBoss.PirateAttack" />
[11585]387        </complete-effects>
[11522]388    </LocalQuest>
[11542]389
390    <LocalQuest id="ProtectBoss.PirateAttack">
391      <QuestDescription title="Pirate Attack" description="Protect the cargo ship from the attacking pirates!" failmessage="The pirates boarded the cargo ship!" completeMessage="" />
392    </LocalQuest>
393
[11585]394    <SimpleNotification message="Pirates are attacking!" broadcast="true" >
[11542]395        <events>
396            <trigger>
397                <EventListener event="passedAsteroidFieldOne" />
398            </trigger>
399        </events>
400    </SimpleNotification>
401
[11639]402    <SimpleNotification message="The cargo ship got destroyed! Game over!" broadcast=true >
[11585]403      <events>
404            <trigger>
405                <EventListener event="CargoShip" />
406            </trigger>
[11542]407        </events>
[11585]408    </SimpleNotification>
409
[11604]410    <SimpleNotification message="A second pirate wave is approaching!" broadcast=true >
411      <events>
412            <trigger>
413                <EventListener event="firstPirateWaveKilled" />
414            </trigger>
415        </events>
416    </SimpleNotification>
417
[11639]418    <SimpleNotification message="The third and last pirate wave is preparing for attack! They will arrive soon!" broadcast=true >
419      <events>
420            <trigger>
421                <EventListener event="secondPirateWaveKilled" />
422            </trigger>
423        </events>
424    </SimpleNotification>
[11604]425
[11639]426    <SimpleNotification message="The pirates are attacking!" broadcast=true >
427      <events>
428            <trigger>
429                <EventListener event="thirdPirateWaveStarting" />
430            </trigger>
431        </events>
432    </SimpleNotification>
433
434    <SimpleNotification message="You defeated the pirates! The cargo ship is exiting the asteroid field. You made it!" broadcast=true >
435      <events>
436            <trigger>
437                <EventListener event="thirdPirateWaveKilled" />
438            </trigger>
439        </events>
440    </SimpleNotification>
441
442    <Script code="Mission endMission true" onLoad="false">
443        <events>
444            <trigger>
445                <EventListener event="succeedMission" />
446            </trigger>
447        </events>
448    </Script>
449
450    <Script code="Mission endMission false" onLoad="false">
451        <events>
452            <trigger>
453                <EventListener event="CargoShip" />
454            </trigger>
455        </events>
456    </Script>
457
458    <!-- A function to put pirates to a certain location -->
[11585]459    <?lua
[11604]460      function placePirate(posX, posY, posZ, name, trigger)
461        print("<SpaceShip mass=10 health=25 initialhealth=25 maxhealth=25 shieldhealth=10 maxshieldhealth=10 initialshieldhealth=10 shieldabsorption=0.3 shieldrechargerate=1 shieldrechargewaittime=1 primaryThrust=40 auxiliaryThrust=15 rotationThrust=10 boostpower=5 boostrate=2 boostCooldownDuration = 20 position=\"" .. posX .. "," .. posY .. "," .. posZ .. "\" name=\"" .. name .. "\" radarname=Pirate><events><visibility><EventListener event=\"" .. trigger .. "\"/></visibility><activity><EventListener event=\"" .. trigger .. "\"/></activity></events><templates><Template link=spaceshippirate /></templates><controller><WaypointPatrolController alertnessradius=3129 team=1 active=false><waypoints><Model mesh=\"cube.mesh\" scale=0 position=\"-1300,-600,900\" /><Model mesh=\"cube.mesh\" scale=0 position=\"0,0,0\" /></waypoints><events><activity><EventListener event=attack /></activity></events></WaypointPatrolController></controller></SpaceShip>")
[11585]462      end
463    ?>
464
465    <?lua
[11639]466      placePirate(0, 0, 3000, "p1", "passedAsteroidFieldOne")
467      placePirate(50, 0, 3500, "p2", "passedAsteroidFieldOne")
468      placePirate(0, 50, 4000, "p3", "passedAsteroidFieldOne")
[11604]469      placePirate(0, 0, 5500, "p11", "firstPirateWaveKilled")
[11639]470      placePirate(50, 0, 5600, "p12", "firstPirateWaveKilled")
471      placePirate(-50, 0, 5700, "p13", "firstPirateWaveKilled")
472      placePirate(0, 50, 5800, "p14", "firstPirateWaveKilled")
473      placePirate(0, -50, 5900, "p15", "firstPirateWaveKilled")
[11604]474      placePirate(0, 0, 6000, "p16", "firstPirateWaveKilled")
[11639]475      placePirate(0, 0, 7000, "p21", "thirdPirateWaveStarting")
476      placePirate(50, 0, 7100, "p22", "thirdPirateWaveStarting")
477      placePirate(-50, 0, 7200, "p23", "thirdPirateWaveStarting")
478      placePirate(0, 50, 7300, "p24", "thirdPirateWaveStarting")
479      placePirate(0, -50, 7400, "p25", "thirdPirateWaveStarting")
480      placePirate(50, 50, 7500, "p26", "thirdPirateWaveStarting")
481      placePirate(-50, -50, 7600, "p27", "thirdPirateWaveStarting")
[11585]482    ?>
483
[11500]484  </Scene>
485</Level>
486
Note: See TracBrowser for help on using the repository browser.