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