[Orxonox-commit 6251] r10908 - in code/branches/particleEffectsHS15: data/levels/includes src/modules/weapons/projectiles src/modules/weapons/weaponmodes

fvultier at orxonox.net fvultier at orxonox.net
Mon Nov 30 22:55:38 CET 2015


Author: fvultier
Date: 2015-11-30 22:55:38 +0100 (Mon, 30 Nov 2015)
New Revision: 10908

Removed:
   code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.cc
   code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.h
Modified:
   code/branches/particleEffectsHS15/data/levels/includes/weaponSettingsEscort.oxi
   code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.cc
   code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.h
   code/branches/particleEffectsHS15/src/modules/weapons/weaponmodes/MineGun.h
Log:
Mine damages pawns within range.

Modified: code/branches/particleEffectsHS15/data/levels/includes/weaponSettingsEscort.oxi
===================================================================
--- code/branches/particleEffectsHS15/data/levels/includes/weaponSettingsEscort.oxi	2015-11-30 21:25:57 UTC (rev 10907)
+++ code/branches/particleEffectsHS15/data/levels/includes/weaponSettingsEscort.oxi	2015-11-30 21:55:38 UTC (rev 10908)
@@ -13,10 +13,10 @@
           <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
         </links>
         <Weapon>
-          <MineGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 muzzleoffset=" 0.1, 1.4,-3" maxtimeuntilexplosion=5 timeuntilactivation=1.5/>
+          <MineGun mode=0 munitionpershot=0 delay=0.125 damage=50 shielddamage=15 healthdamage=10 muzzleoffset=" 0.1, 1.4,-3" maxtimeuntilexplosion=25 timeuntilactivation=2.5/>
         </Weapon>
         <Weapon>
-          <SplitGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 muzzleoffset=" 0.1, 1.4,-3" />
+          <IceGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 muzzleoffset=" 0.1, 1.4,-3" freezefactor=0.5 freezetime=2.0 />
         </Weapon>
       </WeaponPack>
       <WeaponPack>

Modified: code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.cc
===================================================================
--- code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.cc	2015-11-30 21:25:57 UTC (rev 10907)
+++ code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.cc	2015-11-30 21:55:38 UTC (rev 10908)
@@ -20,6 +20,7 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
+ *      Jannis Holzer
  *      Fabien Vultier
  *   Co-authors:
  *      ...
@@ -34,47 +35,84 @@
 #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 "graphics/Model.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->bActive_ = false;
+        this->bAllowExplosion_ = false;
         this->maxTimeUntilExplosion_ = 10.0f;
         this->timeUntilActivation_ = 1.0f;
 
-        rings_ = new MovableEntity(this->getContext());
-        this->attach(rings_);
-        rings_->setPosition(Vector3(0.0,0.0,0.0));
-        rings_->setAngularVelocity(Vector3(0.0,5.0,0.0));
+        //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);
-        this->attach(modelCore_);
+        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);
-        rings_->attach(modelRing1_);
+        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);
-        rings_->attach(modelRing2_);
+        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);
@@ -85,16 +123,17 @@
 
             // Create a sphere collision shape and attach it to the projectile.
             collisionShape_ = new SphereCollisionShape(this->getContext());
-            collisionShape_->setRadius(10.0f);
+            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(40.0f);
+            distanceTrigger_->setDistance(triggerRadius_);
             distanceTrigger_->addTarget("Pawn");
-            distanceTrigger_->setStayActive(true);
+            distanceTrigger_->setStayActive(false);
 
             this->addEventSource(distanceTrigger_, "explode");
         }
@@ -104,19 +143,29 @@
     {
         if (this->isInitialized())
         {
-            /*if (modelCore_ != NULL)
+            modelCore_->destroy();
+            modelRing1_->destroy();
+            modelRing2_->destroy();
+            modelRing3_->destroy();
+            modelRing4_->destroy();
+
+            distanceTrigger_->destroy();
+
+            if (emitter_)
             {
-                modelCore_->destroy();
-            }*/
-            if (distanceTrigger_)
-                distanceTrigger_->destroy();
+                emitter_->destroy();
+            }
         }
     }
 
+    /**
+    @brief
+        TODO
+    */
     void MineProjectile::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
     {
         SUPER(MineProjectile, XMLEventPort, xmlelement, mode);
-        XMLPortEventState(MineProjectile, BaseObject, "explode", Explode, xmlelement, mode);
+        XMLPortEventState(MineProjectile, BaseObject, "explode", explode, xmlelement, mode);
     }
 
     /**
@@ -130,7 +179,7 @@
             this->maxTimeUntilExplosion_ = maxTimeUntilExplosion;
             if (GameMode::isMaster())
             {
-                this->explodeTimer_.setTimer(this->maxTimeUntilExplosion_, false, createExecutor(createFunctor(&MineProjectile::Explode, this)));
+                this->explodeTimer_.setTimer(this->maxTimeUntilExplosion_, false, createExecutor(createFunctor(&MineProjectile::explode, this)));
             }
         }
         else
@@ -149,7 +198,7 @@
 
         if (GameMode::isMaster())
         {
-            this->activationTimer_.setTimer(this->timeUntilActivation_, false, createExecutor(createFunctor(&MineProjectile::Activate, this)));
+            this->activationTimer_.setTimer(this->timeUntilActivation_, false, createExecutor(createFunctor(&MineProjectile::allowExplosion, this)));
         }
     }
 
@@ -157,23 +206,77 @@
     @brief
         TODO
     */
-    void MineProjectile::Explode()
+    void MineProjectile::explode()
     {
-        orxout() << "MineProjectile::Explode" << endl;
+        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->destroyLater();
+            this->destructionEffect();
+            this->destroyLater();
+        }
+    }
 
-
+    /**
+    @brief
+        TODO
+    */
+    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");  
     }
 
     /**
     @brief
         TODO
     */
-    void MineProjectile::Activate()
+    void MineProjectile::destructionEffect()
     {
-        orxout() << "MineProjectile::Activate" << endl;
+        ParticleSpawner *effect1, *effect2, *effect3;
+       
+        effect1 = new ParticleSpawner(this->getContext());
+        effect2 = new ParticleSpawner(this->getContext());
+        effect3 = new ParticleSpawner(this->getContext());
 
-        bActive_ = true;
+        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/GravityFieldExplosion.ogg");
+        explosionSound_->setVolume(1.0);
+        explosionSound_->play();
     }
 }

Modified: code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.h
===================================================================
--- code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.h	2015-11-30 21:25:57 UTC (rev 10907)
+++ code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile.h	2015-11-30 21:55:38 UTC (rev 10908)
@@ -20,6 +20,7 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
+ *      Jannis Holzer
  *      Fabien Vultier
  *   Co-authors:
  *      ...
@@ -59,9 +60,12 @@
 
             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 bActive_; // The mine can only explode if it is active
+            bool bAllowExplosion_; // The mine can only explode if it is active
             float maxTimeUntilExplosion_;
             float timeUntilActivation_;
             Timer activationTimer_;
@@ -69,13 +73,19 @@
             Model* modelCore_;
             Model* modelRing1_;
             Model* modelRing2_;
-            MovableEntity* rings_;
+            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 Activate();
-            virtual void Explode();
+            virtual void destructionEffect();
+            virtual void allowExplosion();
+            virtual void explode();
     };
 }
 

Deleted: code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.cc
===================================================================
--- code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.cc	2015-11-30 21:25:57 UTC (rev 10907)
+++ code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.cc	2015-11-30 21:55:38 UTC (rev 10908)
@@ -1,234 +0,0 @@
-/*
- *   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 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"
-
-namespace orxonox
-{
-    RegisterClass(MineProjectile);
-
-    MineProjectile::MineProjectile(Context* context) : MovableEntity(context), BasicProjectile()
-    {
-        RegisterObject(MineProjectile);
-
-        this->bActive_ = false;
-        this->maxTimeUntilExplosion_ = 10.0f;
-        this->timeUntilActivation_ = 1.0f;
-
-        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));
-
-
-    //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));
-
-        //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));
-        //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));
-        //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));
-        //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));
-
-        // Add effect.
-        emitter_ = new ParticleEmitter(this->getContext());
-        this->attach(emitter_);
-        emitter_->setOrientation(this->getOrientation());
-        emitter_->setSource("Orxonox/mineparticle");  
-
-        if (GameMode::isMaster())
-        {
-            this->setMass(10.0f);
-            this->setFriction(100.0f);
-            this->enableCollisionCallback();
-            this->setCollisionResponse(false);
-            this->setCollisionType(Dynamic);
-
-            // Create a sphere collision shape and attach it to the projectile.
-            collisionShape_ = new SphereCollisionShape(this->getContext());
-            collisionShape_->setRadius(10.0f);
-            this->attachCollisionShape(collisionShape_);
-
-            // 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(40.0f);
-            distanceTrigger_->addTarget("Pawn");
-            distanceTrigger_->setStayActive(true);
-        }
-    }
-
-    MineProjectile::~MineProjectile()
-    {
-        /*if (modelCore_ != NULL)
-        {
-            modelCore_->destroy();
-        }*/
-        /*if (distanceTrigger_ != NULL)
-        {
-            distanceTrigger_->destroy();
-        }*/
-    }
-
-    /**
-    @brief
-        TODO
-    */
-    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
-        TODO
-    */
-    void MineProjectile::setTimeUntilActivation(float timeUntilActivation)
-    {
-        timeUntilActivation_ = timeUntilActivation;
-
-        if (GameMode::isMaster())
-        {
-            this->activationTimer_.setTimer(this->timeUntilActivation_, false, createExecutor(createFunctor(&MineProjectile::Activate, this)));
-        }
-    }
-
-    /**
-    @brief
-        TODO
-    */
-    void MineProjectile::Explode()
-    {
-        orxout() << "MineProjectile::Explode" << endl;
-        destructionEffect();
-
-        this->destroyLater();
-
-
-    }
-
-    /**
-    @brief
-        TODO
-    */
-    void MineProjectile::Activate()
-    {
-        orxout() << "MineProjectile::Activate" << endl;
-
-        bActive_ = true;
-    }
-
-
-    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);
-    }
-}

Deleted: code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.h
===================================================================
--- code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.h	2015-11-30 21:25:57 UTC (rev 10907)
+++ code/branches/particleEffectsHS15/src/modules/weapons/projectiles/MineProjectile2.h	2015-11-30 21:55:38 UTC (rev 10908)
@@ -1,86 +0,0 @@
-/*
- *   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 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 setMaxTimeUntilExplosion(float maxTimeUntilExplosion);
-            virtual void setTimeUntilActivation(float timeUntilActivation);
-            void destructionEffect();
-
-        private:
-            bool bActive_; // 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 Activate();
-            virtual void Explode();
-    };
-}
-
-#endif /* _MineProjectile_H__ */

Modified: code/branches/particleEffectsHS15/src/modules/weapons/weaponmodes/MineGun.h
===================================================================
--- code/branches/particleEffectsHS15/src/modules/weapons/weaponmodes/MineGun.h	2015-11-30 21:25:57 UTC (rev 10907)
+++ code/branches/particleEffectsHS15/src/modules/weapons/weaponmodes/MineGun.h	2015-11-30 21:55:38 UTC (rev 10908)
@@ -42,7 +42,7 @@
 
     /**
     @brief
-        A Mine that explodes when a ship is too close
+        A Weapon that drops mines to space.
     @ingroup WeaponsWeaponModes
     */
     class _WeaponsExport MineGun : public WeaponMode




More information about the Orxonox-commit mailing list