Index: code/branches/presentationHS15/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/presentationHS15/data/levels/emptyLevel.oxw	(revision 10962)
+++ code/branches/presentationHS15/data/levels/emptyLevel.oxw	(revision 10963)
@@ -13,7 +13,5 @@
 
 <?lua
-  include("templates/spaceshipAssff.oxt")
   include("templates/spaceshipEscort.oxt")
-  include("templates/spaceshipHover.oxt")
 ?>
 
@@ -32,33 +30,5 @@
     <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
 
-    <SpaceShip
-        team                = "1"
-        position            = "1000,0,0"
-        >
-        <templates>
-          <Template link=spaceshipassff />
-        </templates>         
-    </SpaceShip>
-    <SpaceShip
-        team                = "1"
-        position            = "1000,200,0"
-        >
-        <templates>
-          <Template link=spaceshiphover />
-        </templates>
-                    
-    </SpaceShip>
-    <SpaceShip
-        team                = "1"
-        position            = "1000,400,0"
-        >
-        <templates>
-          <Template link=spaceshipescort />
-        </templates>
-
         
-                    
-    </SpaceShip>
-    
   </Scene>
 </Level>
Index: code/branches/presentationHS15/data/levels/includes/weaponSettingsAssff2.oxi
===================================================================
--- code/branches/presentationHS15/data/levels/includes/weaponSettingsAssff2.oxi	(revision 10962)
+++ code/branches/presentationHS15/data/levels/includes/weaponSettingsAssff2.oxi	(revision 10963)
@@ -1,3 +1,3 @@
-    <weaponslots>
+t    <weaponslots>
       <WeaponSlot position="-15.0,-1.5,0" />
       <WeaponSlot position=" 15.0,-1.5,0" />
Index: code/branches/presentationHS15/data/levels/includes/weaponSettingsEscortMine.oxi
===================================================================
--- code/branches/presentationHS15/data/levels/includes/weaponSettingsEscortMine.oxi	(revision 10963)
+++ code/branches/presentationHS15/data/levels/includes/weaponSettingsEscortMine.oxi	(revision 10963)
@@ -0,0 +1,34 @@
+    <weaponslots>
+      <WeaponSlot position="-9.2,2,-13" />
+      <WeaponSlot position=" 9.2,2,-13" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+    </weaponsets>
+    <weaponpacks>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+        </links>
+        <Weapon>
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />
+          <MineGun mode=0 munitionpershot=1 delay=0.125 damage=50 shielddamage=15 healthdamage=10 muzzleoffset=" 0.1, 1.4,-10" maxtimeuntilexplosion=25 timeuntilactivation=2.5/>
+        </Weapon>
+        <Weapon>
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
+          <IceGun mode=0 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset=" 0.1, 1.4,-3" freezefactor=0.5 freezetime=2.0 />
+        </Weapon>
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+      </WeaponPack>
+    </weaponpacks>
+    <munition>
+      <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/>
+      <IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
+      <MineMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
+    </munition>      
Index: code/branches/presentationHS15/data/levels/mineLevel.oxw
===================================================================
--- code/branches/presentationHS15/data/levels/mineLevel.oxw	(revision 10963)
+++ code/branches/presentationHS15/data/levels/mineLevel.oxw	(revision 10963)
@@ -0,0 +1,64 @@
+ <LevelInfo
+ name = "Mine level"
+ description = "A test level with the new mine weapon."
+ tags = "test"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipEscortMine.oxt")
+  include("templates/spaceshipHover.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox"
+  >
+
+    <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"/>
+    <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescortmine />
+
+        <Pawn team=1 health=30 position="0,100,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box RVName = "Box 4" >
+        <events>
+          <visibility>
+            <EventListener event="flying4" />
+          </visibility>
+        </events>
+        <attached>
+            <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=30 position="0,200,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box RVName = "Box 3">
+        <events>
+          <visibility>
+            <EventListener event="flying4" />
+          </visibility>
+        </events>
+        <attached>
+           <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+        </collisionShapes>
+    </Pawn>
+    
+  </Scene>
+</Level>
+
Index: code/branches/presentationHS15/data/levels/pong.oxw
===================================================================
--- code/branches/presentationHS15/data/levels/pong.oxw	(revision 10962)
+++ code/branches/presentationHS15/data/levels/pong.oxw	(revision 10963)
@@ -43,5 +43,5 @@
       <Backlight scale=0.2 colour="1.0, 1.0, 0.5" width=7 length=500 lifetime=0.3 elements=20 trailmaterial="Trail/backlighttrail" material="Examples/Flare" />
       <Light type=point diffuse="1.0, 1.0, 0.5" specular="1.0, 1.0, 0.5" attenuation="1200, 1.0, 0.0035, 0.00005" />
-      <ParticleSpawner name=hiteffect position="0,0,0" source="Orxonox/sparks2" lifetime=0.01 autostart=0 mainstate=spawn />
+      <ParticleSpawner name=hiteffect position="0,0,0" source="Orxonox/engineglow" lifetime=0.01 autostart=0 mainstate=spawn />
     </attached>
     <eventlisteners>
Index: code/branches/presentationHS15/data/levels/templates/spaceshipEscort.oxt
===================================================================
--- code/branches/presentationHS15/data/levels/templates/spaceshipEscort.oxt	(revision 10962)
+++ code/branches/presentationHS15/data/levels/templates/spaceshipEscort.oxt	(revision 10963)
@@ -104,4 +104,10 @@
     <EffectContainer condition="idle">
       <WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
+       />
+
+	   <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 0.5, 0.65, 1.0" width=150 length=15 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, -2, 14" colour="0.2, 0.5, 0.65, 1.0" width=15 length=15 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+
     </EffectContainer>
     <EffectContainer condition="not idle">
@@ -112,8 +118,13 @@
 
     </EffectContainer>
+
     <EffectContainer condition="normal or boost">
-      <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, 0, 10" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
-      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, 0, 10" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+	
+	
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=5 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
     </EffectContainer>
+
     <EffectContainer condition="boost">
       <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, 0, 10" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
Index: code/branches/presentationHS15/data/levels/templates/spaceshipEscortMine.oxt
===================================================================
--- code/branches/presentationHS15/data/levels/templates/spaceshipEscortMine.oxt	(revision 10963)
+++ code/branches/presentationHS15/data/levels/templates/spaceshipEscortMine.oxt	(revision 10963)
@@ -0,0 +1,135 @@
+<Template name=spaceshipescortmine>
+  <SpaceShip
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = spaceshipescortcameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 10
+
+   health            = 80
+   maxhealth         = 200
+   initialhealth     = 80
+
+   shieldhealth        = 35
+   initialshieldhealth = 35
+   maxshieldhealth     = 60
+   shieldabsorption    = 0.9
+   shieldrechargerate  = 1
+   shieldrechargewaittime = 1
+
+   primaryThrust     = 150
+   auxilaryThrust    = 30
+   rotationThrust    = 50
+
+   lift = 1;
+   stallSpeed = 220;
+
+   boostPower            = 20
+   boostPowerRate        = 1
+   boostRate             = 5
+   boostCooldownDuration = 10
+
+   shakeFrequency = 15
+   shakeAmplitude = 6
+
+   collisionType     = "dynamic"
+   mass              = 80
+   linearDamping     = 0.7
+   angularDamping    = 0.9999999
+  >
+    <engines>
+      <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipescortengine />
+      <MultiStateEngine position="-7.6, 0, 0" template=spaceshipescortengine />
+    </engines>
+    <attached>
+      <Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=4 mesh="escortShip.mesh" />
+      <Model position="0,0,0" yaw=180 pitch=90 roll=0 scale=4 mesh="escortWeapon.mesh" />
+<!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+<Model mesh="cube.mesh" mass=10 position="12.6,-2,3" scale3D="2.8,2.8,11" />
+<Model mesh="cube.mesh" mass=10 position="-12.6,-2,3" scale3D="2.8,2.8,11" />
+<Model mesh="cube.mesh" mass=10 position="0,0,-12" scale3D="4,4,7" /-->
+    </attached>
+    <collisionShapes>
+      <BoxCollisionShape position="0    ,0 ,  3" halfExtents="10,   4,8" />
+      <BoxCollisionShape position="12.6 ,-2,  3" halfExtents="2.8,2.8,11"/>
+      <BoxCollisionShape position="-12.6,-2,  3" halfExtents="2.8,2.8,11"/>
+      <BoxCollisionShape position="0,     0,-12" halfExtents="4  , 4 ,7" />
+    </collisionShapes>
+    <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" />
+
+      <ExplosionPart mesh="explosionparts/escort_part_1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_3.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_4.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_5.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_6.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+    </explosion>
+<?lua
+  include("../includes/weaponSettingsEscortMine.oxi")
+?>
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipescortcameras defaults=0>
+  <SpaceShip>
+    <camerapositions>
+      <CameraPosition position="0,15, 60" drag=true mouselook=true />
+      <CameraPosition position="0,20, 90" drag=true mouselook=true />
+      <CameraPosition position="0,30,120" drag=true mouselook=true />
+    </camerapositions>
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipescortengine baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2.2
+
+   speedfront     = 200
+   speedback      =  70
+   speedleftright =  70
+   speedupdown    =  70
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 700
+   accelerationbrake     = 700
+   accelerationback      =  125
+   accelerationleftright =  125
+   accelerationupdown    =  125
+  >
+    <EffectContainer condition="idle">
+      <WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
+       />
+
+	   <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 0.5, 0.65, 1.0" width=150 length=15 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, -2, 14" colour="0.2, 0.5, 0.65, 1.0" width=15 length=15 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+    </EffectContainer>
+    <EffectContainer condition="not idle">
+      <FadingBillboard mainstate=activity active=false scale=0.09 position="12, -2, 13" colour="0.2, 1.0, 0.65, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=0.09 position="-12, -2, 13" colour="0.2, 1.0, 0.65, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+    </EffectContainer>
+    <EffectContainer condition="normal or brake">
+
+    </EffectContainer>
+
+    <EffectContainer condition="normal or boost">
+	
+	
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=5 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+    </EffectContainer>
+
+    <EffectContainer condition="boost">
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, 0, 10" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, 0, 10" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+    </EffectContainer>
+
+  </MultiStateEngine>
+</Template>
Index: code/branches/presentationHS15/data/particle/MineExpl.particle
===================================================================
--- code/branches/presentationHS15/data/particle/MineExpl.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/MineExpl.particle	(revision 10963)
@@ -0,0 +1,95 @@
+particle_system Orxonox/MineExpl
+{
+	material PE/lensflare
+	particle_width 65.0
+	particle_height 40.0
+	quota 500
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type oriented_self
+	billboard_origin center
+	billboard_rotation_type vertex
+	point_rendering false
+	accurate_facing false
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction -1.0 0.0 0.0
+		angle 55
+		emission_rate 1250
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 1
+		time_to_live_max 2
+		duration_min 0.1
+		duration_max 0.1
+		repeat_delay_min 10
+		repeat_delay_max 10
+		colour_range_start 0 0.333333 1 1
+		colour_range_end 0 0.333333 1 1
+	}
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction 1.0 0.0 0.0
+		angle 55
+		emission_rate 200
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 2
+		time_to_live_max 2.5
+		duration_min 0.1
+		duration_max 0.1
+		repeat_delay_min 10
+		repeat_delay_max 10
+		colour_range_start 0 0.333333 1 1
+		colour_range_end 0 0.333333 1 1
+	}
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 -1.0
+		angle 55
+		emission_rate 1250
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 2
+		time_to_live_max 2.5
+		duration_min 0.1
+		duration_max 0.1
+		repeat_delay_min 10
+		repeat_delay_max 10
+		colour_range_start 0 0.333333 1 1
+		colour_range_end 0 0.333333 1 1
+	}
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 55
+		emission_rate 1250
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 2
+		time_to_live_max 2.5
+		duration_min 0.1
+		duration_max 0.1
+		repeat_delay_min 10
+		repeat_delay_max 10
+		colour_range_start 0 0.333333 1 1
+		colour_range_end 0 0.333333 1 1
+	}
+
+	
+	affector Scaler
+	{
+		rate -2
+	}
+}
Index: code/branches/presentationHS15/data/particle/MineExpl1.particle
===================================================================
--- code/branches/presentationHS15/data/particle/MineExpl1.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/MineExpl1.particle	(revision 10963)
@@ -0,0 +1,47 @@
+particle_system Orxonox/MineExpl1
+{
+	material PE/lensflare
+	particle_width 35.0
+	particle_height 35.0
+	quota 500
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type oriented_self
+	billboard_origin center
+	billboard_rotation_type vertex
+	point_rendering false
+	accurate_facing false
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 1.0 0.0
+		angle 30
+		emission_rate 2000
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 3
+		time_to_live_max 4
+		duration_min 2.0
+		duration_max 2.5
+		repeat_delay	10
+		repeat_delay_min	10
+		repeat_delay_max	10
+		colour_range_start 0 0.333333 1 1
+		colour_range_end 0 0.333333 1 1
+	}
+
+	affector DirectionRandomiser
+	{
+		randomness 5
+		scope 1
+		keep_velocity true
+	}
+	affector Scaler
+	{
+		rate -2
+	}
+}
Index: code/branches/presentationHS15/data/particle/MineExpl2.particle
===================================================================
--- code/branches/presentationHS15/data/particle/MineExpl2.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/MineExpl2.particle	(revision 10963)
@@ -0,0 +1,47 @@
+particle_system Orxonox/MineExpl2
+{
+	material PE/lensflare
+	particle_width 35.0
+	particle_height 35.0
+	quota 500
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type oriented_self
+	billboard_origin center
+	billboard_rotation_type vertex
+	point_rendering false
+	accurate_facing false
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 -1.0 0.0
+		angle 30
+		emission_rate 2000
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 2
+		time_to_live_max 2.5
+		duration_min 0.5
+		duration_max 1.5
+		repeat_delay	10
+		repeat_delay_min	10
+		repeat_delay_max	10
+		colour_range_start 0 0.333333 1 1
+		colour_range_end 0 0.333333 1 1
+	}
+
+	affector DirectionRandomiser
+	{
+		randomness 5
+		scope 1
+		keep_velocity true
+	}
+	affector Scaler
+	{
+		rate -2
+	}
+}
Index: code/branches/presentationHS15/data/particle/engine.particle
===================================================================
--- code/branches/presentationHS15/data/particle/engine.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/engine.particle	(revision 10963)
@@ -0,0 +1,70 @@
+particle_system Orxonox/engine
+{
+	material PE/Special.001
+	particle_width 10.0
+	particle_height 10.0
+	quota 2000
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type point
+	billboard_origin center
+	billboard_rotation_type texcoord
+	point_rendering false
+	accurate_facing false
+
+	
+
+	emitter Ring
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 0.5
+		height 0.5
+		depth 0
+		inner_width 0.99
+		inner_height 0.99
+		emission_rate 250
+		velocity_min 50
+		velocity_max 55
+		time_to_live_min 0.075
+		time_to_live_max 0.09
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 0.333333 0 1
+		colour_range_end 1 0.333333 0 1
+	}
+
+	emitter Ring
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 0.5
+		height 0.5
+		depth 0
+		inner_width 0.1
+		inner_height 0.25
+		emission_rate 250
+		velocity_min 50
+		velocity_max 55
+		time_to_live_min 0.1
+		time_to_live_max 0.125
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 0 0 1
+		colour_range_end 1 0 0 1
+	}
+
+	affector Scaler
+	{
+		rate -40
+	}
+}
Index: code/branches/presentationHS15/data/particle/engineglow.particle
===================================================================
--- code/branches/presentationHS15/data/particle/engineglow.particle	(revision 10962)
+++ code/branches/presentationHS15/data/particle/engineglow.particle	(revision 10963)
@@ -1,40 +1,114 @@
-
 particle_system Orxonox/engineglow
 {
-	quota	200
-	material	PE/bigFlame
-	particle_width	12
-	particle_height	12
-	cull_each	false
-	renderer	billboard
-	billboard_type	point
+	material PE/Special.001
+	particle_width 100.0
+	particle_height 100.0
+	quota 2000
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type point
+	billboard_origin center
+	billboard_rotation_type texcoord
+	point_rendering false
+	accurate_facing false
 
-	emitter HollowEllipsoid
+	emitter Ring
 	{
-		angle	0
-		colour	0.46875 0.8125 0.93359375 1
-		colour_range_start	.6640625 .91796875 .92578125 1
-		colour_range_end	.08203125 .7578125 .98046875 1
-		direction	0 1 0
-		emission_rate	45
-		position	0 0 0
-		velocity	5
-		velocity_min	4
-		velocity_max	6
-		time_to_live	0.5
-		time_to_live_min	0.2
-		time_to_live_max	0.9
-		duration	0
-		duration_min	0
-		duration_max	0
-		repeat_delay	0
-		repeat_delay_min	0
-		repeat_delay_max	0
-		width	4
-		height	2.5
-		depth	1.3
-		inner_width	0.5
-		inner_height	0.3
-		inner_depth	0.2
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 150
+		height 150
+		depth 1
+		inner_width 0.99
+		inner_height 0.99
+		emission_rate 30
+		velocity_min 20
+		velocity_max 20
+		time_to_live_min 5
+		time_to_live_max 5
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 0.666667 1 0 1
+		colour_range_end 0 1 0 1
+	}
+
+	emitter Ring
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 130
+		height 130
+		depth 0
+		inner_width 0.99
+		inner_height 0.99
+		emission_rate 10
+		velocity_min 200
+		velocity_max 200
+		time_to_live_min 0.75
+		time_to_live_max 0.75
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 1 0 1
+		colour_range_end 1 1 0.498039 1
+	}
+
+	emitter Ring
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 80
+		height 80
+		depth 0
+		inner_width 0.99
+		inner_height 0.99
+		emission_rate 57.89
+		velocity_min 250
+		velocity_max 250
+		time_to_live_min 1
+		time_to_live_max 1
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 0.333333 0 1
+		colour_range_end 1 0.333333 0 1
+	}
+
+	emitter Ring
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 50
+		height 50
+		depth 0
+		inner_width 0.01
+		inner_height 0.5
+		emission_rate 37.89
+		velocity_min 300
+		velocity_max 300
+		time_to_live_min 1.5
+		time_to_live_max 1.5
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 0 0 1
+		colour_range_end 1 0 0 1
+	}
+
+	affector Scaler
+	{
+		rate -20
 	}
 }
Index: code/branches/presentationHS15/data/particle/ice.particle
===================================================================
--- code/branches/presentationHS15/data/particle/ice.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/ice.particle	(revision 10963)
@@ -0,0 +1,59 @@
+particle_system Orxonox/ice
+{
+	material PE/iceCrystal
+	particle_width 5
+	particle_height 5
+	quota 7000
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type point
+	billboard_origin center
+	billboard_rotation_type texcoord
+	point_rendering false
+	accurate_facing false
+
+	emitter Box
+	{
+		position 0.0 0.0 0.0
+		direction 1.0 1.0 1.0
+		angle 45
+		width 20
+		height 20
+		depth 20
+		emission_rate 200
+		velocity_min 1
+		velocity_max 1
+		time_to_live_min 3
+		time_to_live_max 6
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 1 1 1
+		colour_range_end 0.9 1 1 1
+	}
+
+	affector LinearForce
+	{
+		force_vector 0.0 -0.5 1.0
+		force_application add
+	}
+
+	affector DirectionRandomiser
+	{
+		randomness 50
+		scope 100
+		keep_velocity true
+	}
+
+	affector Rotator
+	{
+		rotation_speed_range_start 43.26
+		rotation_speed_range_end 0
+		rotation_range_start 0
+		rotation_range_end 0
+	}
+}
Index: code/branches/presentationHS15/data/particle/mineparticle.particle
===================================================================
--- code/branches/presentationHS15/data/particle/mineparticle.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/mineparticle.particle	(revision 10963)
@@ -0,0 +1,53 @@
+particle_system Orxonox/mineparticle
+{
+	material PE/lensflare
+	particle_width 5.0
+	particle_height 5.0
+	quota 2000
+	cull_each true
+	sorted true
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type point
+	billboard_origin bottom_right
+	billboard_rotation_type vertex
+	point_rendering false
+	accurate_facing false
+
+	emitter HollowEllipsoid
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 20
+		height 20
+		depth 20
+		inner_width 0.99
+		inner_height 0.99
+		inner_depth 0.99
+		emission_rate 20.12
+		velocity_min 1
+		velocity_max 1
+		time_to_live_min 5
+		time_to_live_max 5
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 0 0 1
+		colour_range_end 1 0 0 1
+	}
+
+	affector Scaler
+	{
+		rate -2
+	}
+	affector Rotator
+	{
+		rotation_speed_range_start 100
+		rotation_speed_range_end 500
+		rotation_range_start 0
+		rotation_range_end 180
+	}
+}
Index: code/branches/presentationHS15/data/particle/psygun.particle
===================================================================
--- code/branches/presentationHS15/data/particle/psygun.particle	(revision 10963)
+++ code/branches/presentationHS15/data/particle/psygun.particle	(revision 10963)
@@ -0,0 +1,62 @@
+particle_system Orxonox/psygun
+{
+	material PE/glowEffect
+	particle_width 200.0
+	particle_height 200.0
+	quota 300
+	cull_each false
+	sorted false
+	local_space false
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type point
+	billboard_origin top_right
+	billboard_rotation_type vertex
+	point_rendering false
+	accurate_facing true
+
+	emitter Point
+	{
+		position 0.0 0.0 0.0
+		direction 0.0 1.0 0.0
+		angle 154.8
+		emission_rate 400
+		velocity_min 100
+		velocity_max 300
+		time_to_live_min 0
+		time_to_live_max 3.38
+		duration_min 1
+		duration_max 1
+		repeat_delay_min 0.11
+		repeat_delay_max 2.81
+		colour_range_start 0.666667 0 0.498039 1
+		colour_range_end 1 0 0.498039 1
+	}
+
+	affector LinearForce
+	{
+		force_vector 0.0 12.32 0.0
+		force_application add
+	}
+
+	affector Rotator
+	{
+		rotation_speed_range_start 100
+		rotation_speed_range_end 500
+		rotation_range_start 0
+		rotation_range_end 180
+	}
+
+	affector Scaler
+	{
+		rate -98.82
+	}
+
+	affector ColourFader
+	{
+		red -0.93
+		green -1
+		blue 1
+		alpha -1
+	}
+}
Index: code/branches/presentationHS15/data/particle/rocketfire.particle
===================================================================
--- code/branches/presentationHS15/data/particle/rocketfire.particle	(revision 10962)
+++ code/branches/presentationHS15/data/particle/rocketfire.particle	(revision 10963)
@@ -1,50 +1,63 @@
 particle_system Orxonox/rocketfire
 {
-	quota	300
-	material	PE/explosion
-	particle_width	15
-	particle_height	5
-	cull_each	false
-	renderer	billboard
-	sorted	false
-	local_space	false
-	iteration_interval	0
-	nonvisible_update_timeout	0
-	billboard_type	point
-	billboard_origin	center
-	billboard_rotation_type	texcoord
-	common_up_vector	0 1 0
-	point_rendering	false
-	accurate_facing	false
+	material PE/glowEffect
+	particle_width 2
+	particle_height 2
+	quota 10000
+	cull_each true
+	sorted true
+	local_space true
+	iteration_interval 0.0
+	nonvisible_update_timeout 0.0
+	billboard_type point
+	billboard_origin center
+	billboard_rotation_type texcoord
+	point_rendering false
+	accurate_facing false
 
 	emitter Ellipsoid
 	{
-		angle	2
-		colour	1 0.682759 1 1
-		colour_range_start	1 0.682759 1 1
-		colour_range_end	1 0.682759 1 1
-		direction	0 0 1
-		emission_rate	1200
-		position	0 0 3
-		velocity	10
-		velocity_min	10
-		velocity_max	48
-		time_to_live	0.1
-		time_to_live_min	0.1
-		time_to_live_max	0.2
-		duration	0
-		duration_min	0
-		duration_max	0
-		repeat_delay	0
-		repeat_delay_min	0
-		repeat_delay_max	0
-		width	1.5
-		height	1.5
-		depth	10
+		position 0.05 0.0 2.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 0
+		height 0
+		depth 0
+		emission_rate 1200
+		velocity_min 10
+		velocity_max 20
+		time_to_live_min 0.1
+		time_to_live_max 0.1
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 1 0.333333 0 1
+		colour_range_end 1 0 0 1
+	}
+	emitter Ellipsoid
+	{
+		position 0.05 0.0 2.0
+		direction 0.0 0.0 1.0
+		angle 0
+		width 0
+		height 0
+		depth 0
+		emission_rate 100
+		velocity_min 5
+		velocity_max 10
+		time_to_live_min 0.1
+		time_to_live_max 0.1
+		duration_min 0
+		duration_max 0
+		repeat_delay_min 0
+		repeat_delay_max 0
+		colour_range_start 0.2 0.5 0.65
+		colour_range_end 0.25 0.55 0.7
 	}
 
 	affector Scaler
 	{
-		rate	-20
+		rate -8
 	}
 }
Index: code/branches/presentationHS15/src/modules/weapons/WeaponsPrereqs.h
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/WeaponsPrereqs.h	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/WeaponsPrereqs.h	(revision 10963)
@@ -102,4 +102,5 @@
     class LaserFire;
     class LightningGun;
+    class MineGun;
     class RocketFire;
     class RocketFireOld;
Index: code/branches/presentationHS15/src/modules/weapons/munitions/CMakeLists.txt
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/munitions/CMakeLists.txt	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/munitions/CMakeLists.txt	(revision 10963)
@@ -7,3 +7,4 @@
   IceMunition.cc
   SplitMunition.cc
+  MineMunition.cc
 )
Index: code/branches/presentationHS15/src/modules/weapons/munitions/MineMunition.cc
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/munitions/MineMunition.cc	(revision 10963)
+++ code/branches/presentationHS15/src/modules/weapons/munitions/MineMunition.cc	(revision 10963)
@@ -0,0 +1,61 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineMunition.h
+    @brief Implementation of the MineMunition class.
+*/
+
+#include "MineMunition.h"
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+    RegisterClass(MineMunition);
+
+    MineMunition::MineMunition(Context* context) : Munition(context)
+    {
+        RegisterObject(MineMunition);
+
+        this->maxMunitionPerMagazine_ = 1;
+        this->maxMagazines_ = 100;
+        this->unassignedMagazines_ = 25;
+
+        this->deployment_ = MunitionDeployment::Stack;
+
+        this->bAllowMunitionRefilling_ = true;
+        this->bAllowMultiMunitionRemovementUnderflow_ = false;
+
+        this->reloadTime_ = 0.5f;
+    }
+
+    void MineMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(MineMunition, XMLPort, xmlelement, mode);
+    }
+}
Index: code/branches/presentationHS15/src/modules/weapons/munitions/MineMunition.h
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/munitions/MineMunition.h	(revision 10963)
+++ code/branches/presentationHS15/src/modules/weapons/munitions/MineMunition.h	(revision 10963)
@@ -0,0 +1,59 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineMunition.h
+    @brief Definition of the MineMunition class.
+*/
+
+#ifndef _MineMunition_H__
+#define _MineMunition_H__
+
+#include "weapons/WeaponsPrereqs.h"
+#include "weaponsystem/Munition.h"
+
+namespace orxonox
+{
+
+    /**
+    @brief
+        MineMunition.
+    @author
+        Fabien Vultier
+    @ingroup WeaponsMunitions
+    */
+    class _WeaponsExport MineMunition : public Munition
+    {
+        public:
+            MineMunition(Context* context);
+            virtual ~MineMunition() {}
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+    };
+}
+
+#endif /* _MineMunition_H__ */
Index: code/branches/presentationHS15/src/modules/weapons/projectiles/CMakeLists.txt
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/projectiles/CMakeLists.txt	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/projectiles/CMakeLists.txt	(revision 10963)
@@ -12,3 +12,4 @@
   GravityBomb.cc
   GravityBombField.cc
+  MineProjectile.cc
 )
Index: code/branches/presentationHS15/src/modules/weapons/projectiles/IceGunProjectile.cc
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/projectiles/IceGunProjectile.cc	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/projectiles/IceGunProjectile.cc	(revision 10963)
@@ -34,10 +34,19 @@
 #include "IceGunProjectile.h"
 
+#include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
+
 #include "core/CoreIncludes.h"
 #include "graphics/Model.h"
+#include "graphics/ParticleSpawner.h"
+#include "Scene.h"
+#include "core/command/Executor.h"
+#include "tools/ParticleInterface.h"
 
 namespace orxonox
 {
     RegisterClass(IceGunProjectile);
+
+    const float IceGunProjectile::particleDestructionDelay_ = 15.0f;
 
     IceGunProjectile::IceGunProjectile(Context* context) : Projectile(context)
@@ -55,4 +64,28 @@
         this->attach(model);
         model->setPosition(Vector3(0,0,0));
+
+        // Add effect.
+        emitter_ = new ParticleEmitter(this->getContext());
+        this->attach(emitter_);
+        emitter_->setOrientation(this->getOrientation());
+        emitter_->setSource("Orxonox/ice");   
+        emitter_->setDeleteWithParent(false);     
+    }
+
+    IceGunProjectile::~IceGunProjectile()
+    {
+        if (this->isInitialized())
+        {
+            const Vector3& pos = emitter_->getWorldPosition();
+            const Quaternion& rot = emitter_->getWorldOrientation();
+            this->detach(emitter_);
+            emitter_->setPosition(pos);
+            emitter_->setOrientation(rot);
+            emitter_->getParticleInterface()->setEnabled(false);
+            this->getScene()->getRootSceneNode()->addChild(const_cast<Ogre::SceneNode*>(emitter_->getNode()));
+
+            const ExecutorPtr& executor = createExecutor(createFunctor(&ParticleEmitter::destroy, emitter_));
+            new Timer(particleDestructionDelay_, false, executor, true);
+        }
     }
 
Index: code/branches/presentationHS15/src/modules/weapons/projectiles/IceGunProjectile.h
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/projectiles/IceGunProjectile.h	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/projectiles/IceGunProjectile.h	(revision 10963)
@@ -56,5 +56,5 @@
         public:
             IceGunProjectile(Context* context);
-            virtual ~IceGunProjectile() {}
+            virtual ~IceGunProjectile();
 
             virtual void setFreezeTime(float freezeTime);
@@ -63,5 +63,7 @@
         protected:
             virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
-        private:         
+            static const float particleDestructionDelay_;
+        private:
+            ParticleEmitter* emitter_;
             float freezeTime_; //The duration of the freezing effect on a target
             float freezeFactor_; //The strength of the freezing effect
Index: code/branches/presentationHS15/src/modules/weapons/projectiles/MineProjectile.cc
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/projectiles/MineProjectile.cc	(revision 10963)
+++ code/branches/presentationHS15/src/modules/weapons/projectiles/MineProjectile.cc	(revision 10963)
@@ -0,0 +1,281 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Jannis Holzer
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineProjectile.h
+    @brief Implementation of the MineProjectile class.
+*/
+
+#include "MineProjectile.h"
+
+#include "core/CoreIncludes.h"
+#include "graphics/Model.h"
+#include "core/command/Executor.h"
+#include "graphics/ParticleSpawner.h"
+#include "worldentities/pawns/Pawn.h"
+#include "core/EventIncludes.h"
+#include "sound/WorldSound.h"
+
+namespace orxonox
+{
+    RegisterClass(MineProjectile);
+
+    const float MineProjectile::collisionShapeRadius_ = 15.0f;
+    const float MineProjectile::damageRadius_ = 200.0f;
+    const float MineProjectile::triggerRadius_ = 100.0f;
+
+    MineProjectile::MineProjectile(Context* context) : MovableEntity(context), BasicProjectile()
+    {
+        RegisterObject(MineProjectile);
+
+        this->bAllowExplosion_ = false;
+        this->maxTimeUntilExplosion_ = 10.0f;
+        this->timeUntilActivation_ = 1.0f;
+
+        //Create movable entities
+        rings1_ = new MovableEntity(this->getContext());
+        this->attach(rings1_);
+        rings1_->setPosition(Vector3(0.0,0.0,0.0));
+        rings1_->setAngularVelocity(Vector3(0.0,5.0,0.0));
+
+        rings2_ = new MovableEntity(this->getContext());
+        this->attach(rings2_);
+        rings2_->setPosition(Vector3(0.0,0.0,0.0));
+        rings2_->setAngularVelocity(Vector3(0.0,0.0,5.0));
+
+        core_ = new MovableEntity(this->getContext());
+        this->attach(core_);
+        core_->setPosition(Vector3(0.0,0.0,0.0));
+        core_->setAngularVelocity(Vector3(2.5,2.5,0.0));
+
+        //Create Models
+        //Core
+        modelCore_ = new Model(this->getContext());
+        modelCore_->setMeshSource("Mine_Core.mesh");
+        modelCore_->setScale(15.0);
+        core_->attach(modelCore_);
+        modelCore_->setPosition(Vector3(0,0,0));
+
+        //Ring 1
+        modelRing1_ = new Model(this->getContext());
+        modelRing1_->setMeshSource("Mine_Ring.mesh");
+        modelRing1_->setScale(15.0);
+        rings1_->attach(modelRing1_);
+        modelRing1_->setPosition(Vector3(0,0,0));
+        modelRing1_->yaw(Degree(0));
+        //Ring 2
+        modelRing2_ = new Model(this->getContext());
+        modelRing2_->setMeshSource("Mine_Ring.mesh");
+        modelRing2_->setScale(15.0);
+        rings1_->attach(modelRing2_);
+        modelRing2_->setPosition(Vector3(0,0,0));
+        modelRing2_->yaw(Degree(180));
+        //Ring 3
+        modelRing3_ = new Model(this->getContext());
+        modelRing3_->setMeshSource("Mine_Ring.mesh");
+        modelRing3_->setScale(15.0);
+        rings2_->attach(modelRing3_);
+        modelRing3_->setPosition(Vector3(0,0,0));
+        modelRing3_->yaw(Degree(90));
+        //Ring 4
+        modelRing4_ = new Model(this->getContext());
+        modelRing4_->setMeshSource("Mine_Ring.mesh");
+        modelRing4_->setScale(15.0);
+        rings2_->attach(modelRing4_);
+        modelRing4_->setPosition(Vector3(0,0,0));
+        modelRing4_->yaw(Degree(270));
+
+        emitter_ = NULL;
+
+        if (GameMode::isMaster())
+        {
+            this->setMass(10.0f);
+            this->setLinearDamping(0.5f);
+            this->setAngularDamping(0.1f);
+            this->enableCollisionCallback();
+            this->setCollisionResponse(true);
+            this->setCollisionType(Dynamic);
+
+            // Create a sphere collision shape and attach it to the projectile.
+            collisionShape_ = new SphereCollisionShape(this->getContext());
+            collisionShape_->setRadius(collisionShapeRadius_);
+            this->attachCollisionShape(collisionShape_);
+            collisionShape_->setPosition(Vector3(0,0,0));
+
+            // Create a distance trigger and attach it to the projectile.
+            distanceTrigger_ = new DistanceTrigger(this->getContext());
+            this->attach(distanceTrigger_);
+            distanceTrigger_->setPosition(Vector3(0,0,0));
+            distanceTrigger_->setDistance(triggerRadius_);
+            distanceTrigger_->addTarget("Pawn");
+            distanceTrigger_->setStayActive(false);
+
+            this->addEventSource(distanceTrigger_, "explode");
+        }
+    }
+
+    MineProjectile::~MineProjectile()
+    {
+        if (this->isInitialized())
+        {
+            modelCore_->destroy();
+            modelRing1_->destroy();
+            modelRing2_->destroy();
+            modelRing3_->destroy();
+            modelRing4_->destroy();
+
+            if (distanceTrigger_)
+            {
+                distanceTrigger_->destroy();
+            }
+            if (emitter_)
+            {
+                emitter_->destroy();
+            }
+        }
+    }
+
+    /**
+    @brief
+        XMLPort for MineProjectile.
+    */
+    void MineProjectile::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(MineProjectile, XMLEventPort, xmlelement, mode);
+        XMLPortEventState(MineProjectile, BaseObject, "explode", explode, xmlelement, mode);
+    }
+
+    /**
+    @brief
+        Max Time; after this time runs out,the Mine explodes.
+    */
+    void MineProjectile::setMaxTimeUntilExplosion(float maxTimeUntilExplosion)
+    {
+        if (maxTimeUntilExplosion >= 0)
+        {
+            this->maxTimeUntilExplosion_ = maxTimeUntilExplosion;
+            if (GameMode::isMaster())
+            {
+                this->explodeTimer_.setTimer(this->maxTimeUntilExplosion_, false, createExecutor(createFunctor(&MineProjectile::explode, this)));
+            }
+        }
+        else
+        {
+            this->maxTimeUntilExplosion_ = 0;
+        }
+    }
+
+    /**
+    @brief
+        The mine can only explode when the activation time has run out.
+    */
+    void MineProjectile::setTimeUntilActivation(float timeUntilActivation)
+    {
+        timeUntilActivation_ = timeUntilActivation;
+
+        if (GameMode::isMaster())
+        {
+            this->activationTimer_.setTimer(this->timeUntilActivation_, false, createExecutor(createFunctor(&MineProjectile::allowExplosion, this)));
+        }
+    }
+
+    /**
+    @brief
+        Mine explodes, deals damage to pawn within range and destroys itself.
+    */
+    void MineProjectile::explode()
+    {
+        if (bAllowExplosion_)
+        {
+            if (GameMode::isMaster())
+            {
+                // Damage all pawns within the damage radius
+                for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+                {
+                    Vector3 distanceVector = it->getWorldPosition()-this->getWorldPosition();
+                    if(distanceVector.length()< damageRadius_)
+                    {
+                        it->hit(this->getShooter(), it->getWorldPosition(), NULL, this->getDamage(), this->getHealthDamage(), this->getShieldDamage());
+                    }
+                }
+            }
+
+            this->destructionEffect();
+            this->destroyLater();
+        }
+    }
+
+    /**
+    @brief
+        Mine is ready to explode.
+    */
+    void MineProjectile::allowExplosion()
+    {
+        // Allow explosion
+        bAllowExplosion_ = true;
+        // Add particle effect
+        emitter_ = new ParticleEmitter(this->getContext());
+        this->attach(emitter_);
+        emitter_->setOrientation(this->getOrientation());
+        emitter_->setSource("Orxonox/mineparticle");  
+    }
+
+    void MineProjectile::destructionEffect()
+    {
+        ParticleSpawner *effect1, *effect2, *effect3;
+       
+        effect1 = new ParticleSpawner(this->getContext());
+        effect2 = new ParticleSpawner(this->getContext());
+        effect3 = new ParticleSpawner(this->getContext());
+
+        effect1->setPosition(this->getPosition());
+        effect1->setOrientation(this->getOrientation());
+        effect1->setDestroyAfterLife(true);
+        effect1->setSource("Orxonox/MineExpl");
+        effect1->setLifetime(2.5f);
+
+        effect2->setPosition(this->getPosition());
+        effect2->setOrientation(this->getOrientation());
+        effect2->setDestroyAfterLife(true);
+        effect2->setSource("Orxonox/MineExpl1");
+        effect2->setLifetime(2.5f);
+
+        effect3->setPosition(this->getPosition());
+        effect3->setOrientation(this->getOrientation());
+        effect3->setDestroyAfterLife(true);
+        effect3->setSource("Orxonox/MineExpl2");
+        effect3->setLifetime(2.5f);
+
+        // Explosion sound effect.
+        WeakPtr<WorldSound> explosionSound_ = new WorldSound(getContext());
+        explosionSound_->setSource("sounds/minesound.ogg");
+        explosionSound_->setVolume(1.0);
+        explosionSound_->play();
+    }
+}
Index: code/branches/presentationHS15/src/modules/weapons/projectiles/MineProjectile.h
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/projectiles/MineProjectile.h	(revision 10963)
+++ code/branches/presentationHS15/src/modules/weapons/projectiles/MineProjectile.h	(revision 10963)
@@ -0,0 +1,92 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Jannis Holzer
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineProjectile.h
+    @brief Definition of the MineProjectile class.
+*/
+
+#ifndef _MineProjectile_H__
+#define _MineProjectile_H__
+
+#include "weapons/WeaponsPrereqs.h"
+#include "tools/Timer.h"
+#include "worldentities/MovableEntity.h"
+#include "objects/collisionshapes/SphereCollisionShape.h"
+#include "objects/triggers/DistanceTrigger.h"
+#include "BasicProjectile.h"
+
+namespace orxonox
+{
+
+    /**
+    @brief
+        TODO
+    @ingroup WeaponsProjectiles
+    */
+    class _WeaponsExport MineProjectile : public MovableEntity, public BasicProjectile
+    {
+        public:
+            MineProjectile(Context* context);
+            virtual ~MineProjectile();
+
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+
+            virtual void setMaxTimeUntilExplosion(float maxTimeUntilExplosion);
+            virtual void setTimeUntilActivation(float timeUntilActivation);
+        protected:
+            static const float triggerRadius_;
+            static const float damageRadius_;
+            static const float collisionShapeRadius_;
+        private:
+            bool bAllowExplosion_; // The mine can only explode if it is active
+            float maxTimeUntilExplosion_;
+            float timeUntilActivation_;
+            Timer activationTimer_;
+            Timer explodeTimer_;
+            Model* modelCore_;
+            Model* modelRing1_;
+            Model* modelRing2_;
+            Model* modelRing3_;
+            Model* modelRing4_;
+            MovableEntity* rings1_;
+            MovableEntity* rings2_;
+            MovableEntity* core_;
+            ParticleEmitter* emitter_;
+
+            WeakPtr<SphereCollisionShape> collisionShape_; // The collision shape of the projectile.
+            WeakPtr<DistanceTrigger> distanceTrigger_;
+
+            virtual void destructionEffect();
+            virtual void allowExplosion();
+            virtual void explode();
+    };
+}
+
+#endif /* _MineProjectile_H__ */
Index: code/branches/presentationHS15/src/modules/weapons/projectiles/Projectile.h
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/projectiles/Projectile.h	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/projectiles/Projectile.h	(revision 10963)
@@ -69,9 +69,9 @@
         protected:
             virtual void setCollisionShapeRadius(float radius);
+            float lifetime_; //!< The time the projectile exists.
 
         private:
-            float lifetime_; //!< The time the projectile exists.
             Timer destroyTimer_; //!< Timer to destroy the projectile after its lifetime has run out.
-            WeakPtr<SphereCollisionShape> collisionShape_; // The collision shape of the projectile.            
+            WeakPtr<SphereCollisionShape> collisionShape_; // The collision shape of the projectile.
     };
 }
Index: code/branches/presentationHS15/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/weaponmodes/CMakeLists.txt	(revision 10962)
+++ code/branches/presentationHS15/src/modules/weapons/weaponmodes/CMakeLists.txt	(revision 10963)
@@ -11,3 +11,4 @@
   SimpleRocketFire.cc
   GravityBombFire.cc
+  MineGun.cc
 )
Index: code/branches/presentationHS15/src/modules/weapons/weaponmodes/MineGun.cc
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/weaponmodes/MineGun.cc	(revision 10963)
+++ code/branches/presentationHS15/src/modules/weapons/weaponmodes/MineGun.cc	(revision 10963)
@@ -0,0 +1,99 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineGun.cc
+    @brief Implementation of the MineGun class.
+*/
+
+#include "MineGun.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"    
+#include "weaponsystem/Weapon.h"
+#include "weaponsystem/WeaponPack.h"
+#include "weaponsystem/WeaponSystem.h"
+#include "worldentities/pawns/Pawn.h"
+
+#include "weapons/projectiles/MineProjectile.h"
+
+namespace orxonox
+{
+    RegisterClass(MineGun);
+
+    MineGun::MineGun(Context* context) : WeaponMode(context)
+    {
+        RegisterObject(MineGun);
+
+        this->speed_ = 1000.0f;
+        this->reloadTime_ = 1.0f;
+        this->damage_ = 0.0f;
+        this->maxTimeUntilExplosion_ = 0.0f;
+
+        this->setMunitionName("MineMunition");
+        this->setDefaultSound("sounds/mineactivate.ogg");
+    }
+
+    MineGun::~MineGun()
+    {
+    }
+
+    /**
+    @brief
+        XMLPort for the MineGun.
+    */
+    void MineGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(MineGun, XMLPort, xmlelement, mode);
+
+        XMLPortParam(MineGun, "maxtimeuntilexplosion", setMaxTimeUntilExplosion, getMaxTimeUntilExplosion, xmlelement, mode).defaultValues(10.0f);
+        XMLPortParam(MineGun, "timeuntilactivation", setTimeUntilActivation, getTimeUntilActivation, xmlelement, mode).defaultValues(3.0f);
+    }
+
+    /**
+    @brief
+        Fires the weapon. Creates a projectile and fires it.
+    */
+    void MineGun::fire()
+    {
+        MineProjectile* projectile = new MineProjectile(this->getContext());
+
+        this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
+        projectile->setOrientation(this->getMuzzleOrientation());
+        projectile->setPosition(this->getMuzzlePosition());
+        projectile->setVelocity(this->getMuzzleDirection() * this->speed_);
+
+        projectile->setMaxTimeUntilExplosion(getMaxTimeUntilExplosion());
+        projectile->setTimeUntilActivation(getTimeUntilActivation());
+
+        projectile->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
+        projectile->setDamage(this->getDamage());
+        projectile->setShieldDamage(this->getShieldDamage());
+        projectile->setHealthDamage(this->getHealthDamage());
+    }
+}
Index: code/branches/presentationHS15/src/modules/weapons/weaponmodes/MineGun.h
===================================================================
--- code/branches/presentationHS15/src/modules/weapons/weaponmodes/MineGun.h	(revision 10963)
+++ code/branches/presentationHS15/src/modules/weapons/weaponmodes/MineGun.h	(revision 10963)
@@ -0,0 +1,80 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *      Jannis Holzer
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineGun.h
+    @brief
+
+    Mine is a weapon that explodes if a spaceship goes bellow the mines trigger radius. The mine deals damage too all
+    spaceships within the damageradius.
+
+    The activation time regulates when the mine is live and ready to explode.
+    The mine destroys itself after it exceeds a certain life time.
+*/
+
+#ifndef _MineGun_H__
+#define _MineGun_H__
+
+#include "weapons/WeaponsPrereqs.h"
+#include "weaponsystem/WeaponMode.h"
+
+namespace orxonox
+{
+
+    /**
+    @brief
+        A Weapon that drops mines to space.
+    @ingroup WeaponsWeaponModes
+    */
+    class _WeaponsExport MineGun : public WeaponMode
+    {
+        public:
+            MineGun(Context* context);
+            virtual ~MineGun();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void fire();
+
+            inline float getMaxTimeUntilExplosion() const
+                { return this->maxTimeUntilExplosion_; }
+            inline float getTimeUntilActivation() const
+                { return this->timeUntilActivation_; }
+        protected:
+            inline void setMaxTimeUntilExplosion(float maxTimeUntilExplosion)
+                { this->maxTimeUntilExplosion_ = maxTimeUntilExplosion; }
+            inline void setTimeUntilActivation(float timeUntilActivation)
+                { this->timeUntilActivation_ = timeUntilActivation; }
+        private:
+            float speed_; //The speed of the fired projectile.
+            float maxTimeUntilExplosion_;
+            float timeUntilActivation_;
+    };
+}
+
+#endif /* _MineGun_H__ */
Index: code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponMode.cc	(revision 10962)
+++ code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponMode.cc	(revision 10963)
@@ -75,5 +75,5 @@
         this->muzzleOrientation_ = Quaternion::IDENTITY;
 
-        hudImageString_ = "WSHUD_WM_Unknown";
+        hudImageString_ = "Orxonox/WSHUD_WM_Unknown";
 
         if( GameMode::isMaster() )
