[Orxonox-commit 5189] r9854 - in code/branches/invaders: data/levels/templates data/overlays src/modules/invader

zifloria at orxonox.net zifloria at orxonox.net
Mon Dec 2 15:53:09 CET 2013


Author: zifloria
Date: 2013-12-02 15:53:08 +0100 (Mon, 02 Dec 2013)
New Revision: 9854

Modified:
   code/branches/invaders/data/levels/templates/enemyInvader.oxt
   code/branches/invaders/data/overlays/InvaderHUD.oxo
   code/branches/invaders/src/modules/invader/Invader.cc
   code/branches/invaders/src/modules/invader/Invader.h
   code/branches/invaders/src/modules/invader/InvaderEnemy.cc
   code/branches/invaders/src/modules/invader/InvaderEnemy.h
   code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc
   code/branches/invaders/src/modules/invader/InvaderHUDinfo.h
Log:
yeaHHH

Modified: code/branches/invaders/data/levels/templates/enemyInvader.oxt
===================================================================
--- code/branches/invaders/data/levels/templates/enemyInvader.oxt	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/data/levels/templates/enemyInvader.oxt	2013-12-02 14:53:08 UTC (rev 9854)
@@ -6,9 +6,9 @@
    spawnparticleduration  = 3
    explosionchunks        = 4
 
-   health            = 1
-   maxhealth         = 1
-   initialhealth     = 1
+   health            = 100
+   maxhealth         = 100
+   initialhealth     = 100
 
    shieldhealth        = 35
    initialshieldhealth = 35
@@ -45,9 +45,13 @@
       <MultiStateEngine position="-7.6, 0, 0" template=spaceshipescortengine />
     </engines>
     <attached>
-      <Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=8 mesh="escortShip.mesh" />
-      <Model position="0,0,0" yaw=180 pitch=90 roll=0 scale=8 mesh="escortWeapon.mesh" />
+      <Model position="0,0,0" yaw=180 pitch=270 roll=0 scale=2 mesh="swallow_mat.mesh" />
+      <Model position="0,0,0" yaw=180 pitch=270 roll=0 scale=2 mesh="escortWeapon.mesh" />
 <!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+
+swallow_mat.mesh
+"ghost.mesh"
+
 <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" /-->

Modified: code/branches/invaders/data/overlays/InvaderHUD.oxo
===================================================================
--- code/branches/invaders/data/overlays/InvaderHUD.oxo	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/data/overlays/InvaderHUD.oxo	2013-12-02 14:53:08 UTC (rev 9854)
@@ -67,6 +67,27 @@
      showlevel     = false
      showpoints     = true
     />
+
+
+    <OverlayText
+     position  = "0.4, 0.1"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     caption   = "X"
+    />
+    <InvaderHUDinfo
+     position  = "0.42, 0.1"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showMultiplier = true
+    />
   </OverlayGroup>
 </Template>
 

Modified: code/branches/invaders/src/modules/invader/Invader.cc
===================================================================
--- code/branches/invaders/src/modules/invader/Invader.cc	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/Invader.cc	2013-12-02 14:53:08 UTC (rev 9854)
@@ -86,11 +86,14 @@
         if (player == NULL)
             return;
 
-        for (int i = 0; i < level; i++)
+        srand(player->getPosition().x + player->getPosition().y);
+        for (int i = 0; i < level * 2; i++)
         {
-            SmartPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext());
+            WeakPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext());
             newPawn->addTemplate("enemyinvader");
-            newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, 0));
+            newPawn->setPlayer(player);
+            newPawn->level = level;
+            newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
         }
     }
 

Modified: code/branches/invaders/src/modules/invader/Invader.h
===================================================================
--- code/branches/invaders/src/modules/invader/Invader.h	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/Invader.h	2013-12-02 14:53:08 UTC (rev 9854)
@@ -65,6 +65,7 @@
             int getLives(){return this->lives;}
             int getLevel(){return this->level;}
             int getPoints(){return this->point;}
+            int getMultiplier(){return this->multiplier;}
 
             void costLife(){lives--; if (lives <= 0) end();};
             void levelUp(){level++;}

Modified: code/branches/invaders/src/modules/invader/InvaderEnemy.cc
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderEnemy.cc	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderEnemy.cc	2013-12-02 14:53:08 UTC (rev 9854)
@@ -43,17 +43,31 @@
     {
         RegisterObject(InvaderEnemy);
         enableCollisionCallback();
+        lifetime = 0;
     }
 
     void InvaderEnemy::tick(float dt)
     {
-        setVelocity(Vector3(500 ,0, 0));
+        lifetime += dt;
+        if (lifetime > 5000)
+        {
+            removeHealth(2000);
+        }
+        if (player != NULL)
+        {
+            float newZ = player->getPosition().z - getPosition().z;
+            if (newZ < 0)
+                newZ = (-100 < newZ)?-100:newZ;
+            else
+                newZ = (100 > newZ)?100:newZ;
+            setVelocity(Vector3(1000 - level * 100 , 0, newZ));
+        }
         SUPER(InvaderEnemy, tick, dt);
     }
 
     inline bool InvaderEnemy::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
-        setVelocity(Vector3(900,0,0));
+        setVelocity(Vector3(1000,0,0));
         removeHealth(2000);
         return false;
     }

Modified: code/branches/invaders/src/modules/invader/InvaderEnemy.h
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderEnemy.h	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderEnemy.h	2013-12-02 14:53:08 UTC (rev 9854)
@@ -49,14 +49,18 @@
             virtual void tick(float dt);
             virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
             virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
+            virtual void setPlayer(WeakPtr<InvaderShip> player){this->player = player;}
 
+            int level;
         private:
             WeakPtr<Invader> getGame();
             WeakPtr<Invader> game;
+            WeakPtr<InvaderShip> player;
             Camera* camera;
             bool isFireing;
             float speed, damping;
             float lastTimeFront, lastTimeLeft;
+            float lifetime;
             struct Velocity
             {
                 float x;

Modified: code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc	2013-12-02 14:53:08 UTC (rev 9854)
@@ -43,6 +43,7 @@
         this->bShowLives_ = false;
         this->bShowLevel_ = false;
         this->bShowPoints_ = false;
+        this->bShowMultiplier_ = false;
     }
 
     InvaderHUDinfo::~InvaderHUDinfo()
@@ -56,6 +57,7 @@
         XMLPortParam(InvaderHUDinfo, "showlives",     setShowLives,     getShowLives,     xmlelement, mode).defaultValues(false);
         XMLPortParam(InvaderHUDinfo, "showPoints",     setShowPoints,     getShowPoints,     xmlelement, mode).defaultValues(false);
         XMLPortParam(InvaderHUDinfo, "showLevel",     setShowLevel,     getShowLevel,     xmlelement, mode).defaultValues(false);
+        XMLPortParam(InvaderHUDinfo, "showMultiplier",     setShowMultiplier,     getShowMultiplier,     xmlelement, mode).defaultValues(false);
     }
 
     void InvaderHUDinfo::tick(float dt)
@@ -79,6 +81,11 @@
                 const std::string& points = multi_cast<std::string>(this->InvaderGame->getPoints());
                 this->setCaption(points);
             }
+            else if(this->bShowMultiplier_)
+            {
+                const std::string& Multiplier = multi_cast<std::string>(this->InvaderGame->getMultiplier());
+                this->setCaption(Multiplier);
+            }
         }
     }
 

Modified: code/branches/invaders/src/modules/invader/InvaderHUDinfo.h
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderHUDinfo.h	2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderHUDinfo.h	2013-12-02 14:53:08 UTC (rev 9854)
@@ -59,11 +59,18 @@
             inline bool getShowPoints() const
                 { return this->bShowPoints_; }
 
+            inline void setShowMultiplier(bool value)
+                { this->bShowMultiplier_ = value; }
+            inline bool getShowMultiplier() const
+                { return this->bShowMultiplier_; }
+
+
         private:
             Invader* InvaderGame;
             bool bShowLives_;
             bool bShowLevel_;
             bool bShowPoints_;
+            bool bShowMultiplier_;
     };
 }
 #endif /* _InvaderHUDinfo_H__ */




More information about the Orxonox-commit mailing list