[Orxonox-commit 6030] r10689 - code/branches/campaignHS15/data/levels
paulsc at orxonox.net
paulsc at orxonox.net
Sun Oct 25 01:26:45 CEST 2015
Author: paulsc
Date: 2015-10-25 01:26:44 +0200 (Sun, 25 Oct 2015)
New Revision: 10689
Modified:
code/branches/campaignHS15/data/levels/Campaign1.oxw
Log:
Made further improvements to events and quests. Some things need fixing though, see comments.
Modified: code/branches/campaignHS15/data/levels/Campaign1.oxw
===================================================================
--- code/branches/campaignHS15/data/levels/Campaign1.oxw 2015-10-24 20:51:18 UTC (rev 10688)
+++ code/branches/campaignHS15/data/levels/Campaign1.oxw 2015-10-24 23:26:44 UTC (rev 10689)
@@ -27,23 +27,29 @@
<?lua include("includes/notifications.oxi") ?>
<NotificationQueueCEGUI
- name="narrative"
- targets="simpleNotification"
- size=3
- displayTime=3.9
- position="0.15, 0, 0.1, 0"
- fontSize="23"
- fontColor="0.3, 1, 0.2, 0.8"
- alignment="HorzCentred"
- displaySize="0.7, 0, 0, 0"
- />
+ name="narrative"
+ targets="simpleNotification"
+ size=3
+ displayTime=3.9
+ position="0.15, 0, 0.1, 0"
+ fontSize="23"
+ fontColor="0.3, 1, 0.2, 0.8"
+ alignment="HorzCentred"
+ displaySize="0.7, 0, 0, 0"
+ />
+ <!-- GLOBAL LUA VARIABLES -->
+ <?lua
+ waves = 3
+ enemies = 5
+ ?>
+
<Scene
ambientlight = "0.8, 0.8, 0.8"
skybox = "Orxonox/Starbox"
>
- <SpawnPoint name="PlayerSpawn" team=1 position="0,-50,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff2 />
+ <SpawnPoint name="playerSpawn" team=1 position="0,-50,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff2 />
<WorldAmbientSound source="Earth.ogg" looping="true" playOnLoad="true" />
@@ -57,10 +63,13 @@
<QuestHint id="quest1hint1" />
</hints>
<complete-effects>
+ <!-- Quest 2 not made as of yet
<AddQuest questId="quest2" />
<AddQuest questId="quest2.1" />
<AddQuest questId="quest2.2" />
<AddQuest questId="quest2.3" />
+ -->
+ <AddQuest questId="quest3" />
</complete-effects>
</GlobalQuest>
@@ -152,17 +161,81 @@
Usable events and triggers:
_spawntrigger
_reachedA
- _wave<1|2|3>
+ _wave<k>
+ _killedEnemy<k>.<i>
+ _waveClear<k>
-->
<EventMultiTrigger name="spawntrigger">
<events>
<trigger>
- <EventListener event="PlayerSpawn" />
+ <EventListener event="playerSpawn" />
</trigger>
</events>
</EventMultiTrigger>
+ <DistanceTrigger name="reachedA" position="2494,-1667,0" distance=200 target="SpaceShip" beaconMode="exclude" targetname="NPC" stayactive=true />
+
+ <EventMultiTrigger name="wave1" activations="1" stayactive="true" >
+ <events>
+ <trigger>
+ <EventListener event="reachedA" />
+ </trigger>
+ </events>
+ </EventMultiTrigger>
+
+ <!-- Recursive helper function for the end-of-wave events. F*ck the event system, seriously. -->
+ <?lua
+ function enemyTriggerRecursor(i, k)
+ if i > 0 then
+ return [[
+ <EventTrigger name=killedEnemy]] .. k .. [[.]] .. i .. [[ activations=1 stayactive=true delay=0.1>
+ <events>
+ <trigger>
+ <EventListener event=attackers]] .. k .. [[ />
+ </trigger>
+ </events>
+ ]] .. enemyTriggerRecursor(i-1, k) .. [[
+ </EventTrigger>
+ ]]
+ else return ""
+ end
+ end
+ ?>
+ <!-- Actual recursive Event(s) for the respective waves. -->
+ <?lua
+ for k = 1, waves, 1
+ do
+ print(enemyTriggerRecursor(enemies,k))
+ ?>
+ <EventMultiTrigger name="waveClear<?lua print(k) ?>" delay=4.0>
+ <events>
+ <trigger>
+ <EventListener event="killedEnemy<?lua print(k .. [[.]] .. enemies) ?>" />
+ </trigger>
+ </events>
+ </EventMultiTrigger>
+ <?lua end ?>
+
+ <!-- This trigger needs fixing, as endMission can only be called by a Pawn Distance Trigger. Herpaderp -->
+ <EventMultiTrigger name="missionFailed" target="Pawn" stayActive="true" delay=1.5>
+ <events>
+ <trigger>
+ <EventListener event="transporter" />
+ </trigger>
+ </events>
+ </EventMultiTrigger>
+
+ <Script code="Mission endMission fail" onLoad="false" times="1">
+ <events>
+ <trigger>
+ <EventListener event="missionFailed" />
+ </trigger>
+ </events>
+ </Script>
+
+ <!--QUEST EFFECT BEACONS -->
+
<QuestEffectBeacon times=1>
<effects>
<AddQuest questId="quest1" />
@@ -174,16 +247,28 @@
</events>
</QuestEffectBeacon>
- <DistanceTrigger name="reachedA" position="2494,-1667,0" distance=200 target="SpaceShip" beaconMode="exclude" targetname="NPC" stayactive=true />
-
- <EventMultiTrigger name="wave1">
+ <QuestEffectBeacon times=1>
+ <effects>
+ <CompleteQuest questId="quest1" />
+ </effects>
<events>
- <trigger>
+ <execute>
<EventListener event="reachedA" />
- </trigger>
+ </execute>
</events>
- </EventMultiTrigger>
+ </QuestEffectBeacon>
+ <QuestEffectBeacon times=1>
+ <effects>
+ <CompleteQuest questId="quest3" />
+ </effects>
+ <events>
+ <execute>
+ <EventListener event="waveClear1" />
+ </execute>
+ </events>
+ </QuestEffectBeacon>
+
<!--NOTIFICATIONS -->
<SimpleNotification broadcast="true" message="Welcome, Commander. Please report at Station A">
@@ -214,6 +299,24 @@
</events>
</SimpleNotification>
+ <SimpleNotification broadcast="true" message="Phew, that was close! Well done, Commmander.">
+ <events>
+ <trigger>
+ <EventListener event="waveClear1" />
+ <EventListener event="waveClear2" />
+ <EventListener event="waveClear3" />
+ </trigger>
+ </events>
+ </SimpleNotification>
+
+ <SimpleNotification broadcast="true" message="It's over... we failed. Retreat!">
+ <events>
+ <trigger>
+ <EventListener event="missionFailed" />
+ </trigger>
+ </events>
+ </SimpleNotification>
+
<!--STRUCTURE -->
<!-- A, Coordinates are approx. (cos(29pi/16), sin(29pi/16), 0)*3000 -->
@@ -250,12 +353,10 @@
<!-- Enemies. Outer loop defines waves, inner loop defines enemies in every wave. -->
<?lua
- waves = 5
for k = 1, waves, 1
do
?>
<?lua
- enemies = 5
for i = 1, enemies, 1
do
x = math.cos(math.pi/8*(i+1))*1500
More information about the Orxonox-commit
mailing list