Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 6, 2017, 3:32:04 PM (7 years ago)
Author:
pascscha
Message:

Death

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxAsteroid.cc

    r11530 r11537  
    1 /*
    2  *   ORXONOX - the hottest 3D action shooter ever to exist
    3  *                    > www.orxonox.net <
    4  *
    5  *
    6  *   License notice:
    7  *
    8  *   This program is free software; you can redistribute it and/or
    9  *   modify it under the terms of the GNU General Public License
    10  *   as published by the Free Software Foundation; either version 2
    11  *   of the License, or (at your option) any later version.
    12  *
    13  *   This program is distributed in the hope that it will be useful,
    14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  *   GNU General Public License for more details.
    17  *
    18  *   You should have received a copy of the GNU General Public License
    19  *   along with this program; if not, write to the Free Software
    20  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    21  *
    22  *   Author:
    23  *      Florian Zinggeler
    24  *   Co-authors:
    25  *      ...
    26  *
    27  */
    28 
    29 /**
    30     @file FlappyOrxAsteroid.h
    31     @brief Declaration of the FlappyOrxAsteroid class.
    32 */
    33 
    34 #include "FlappyOrxAsteroid.h"
    35 
    36 #include "core/CoreIncludes.h"
    37 #include "FlappyOrx.h"
    38 #include "FlappyOrxShip.h"
    39 
    40 namespace orxonox
    41 {
    42     RegisterClass(FlappyOrxAsteroid);
    43 
    44     FlappyOrxAsteroid::FlappyOrxAsteroid(Context* context) : Pawn(context)
    45     {
    46         RegisterObject(FlappyOrxAsteroid);
    47         enableCollisionCallback();
    48         lifetime = 0;
    49     }
    50 
    51     void FlappyOrxAsteroid::tick(float dt)
    52     {
    53         lifetime += dt;
    54         // die after 5 seconds.
    55         if (lifetime > 5000)
    56             removeHealth(2000);
    57 
    58         if (player != nullptr)
    59         {
    60             float newZ = 2/(pow(std::abs(getPosition().x - player->getPosition().x) * 0.01f, 2) + 1) * (player->getPosition().z - getPosition().z);
    61             setVelocity(Vector3(1000.f - level * 100 , 0, newZ));
    62         }
    63         SUPER(FlappyOrxAsteroid, tick, dt);
    64     }
    65 
    66     inline bool FlappyOrxAsteroid::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
    67     {
    68         if(orxonox_cast<FlappyOrxShip*>(otherObject))
    69             removeHealth(2000);
    70         return false;
    71     }
    72 
    73     FlappyOrx* FlappyOrxAsteroid::getGame()
    74     {
    75         if (game == nullptr)
    76         {
    77             for (FlappyOrx* flappyOrx : ObjectList<FlappyOrx>())
    78                 game = flappyOrx;
    79         }
    80         return game;
    81     }
    82 
    83     void FlappyOrxAsteroid::damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs)
    84     {
    85         Pawn::damage(damage, healthdamage, shielddamage, originator, cs);
    86         if (getGame() && orxonox_cast<FlappyOrxShip*>(originator) != nullptr && getHealth() <= 0)
    87             getGame()->addPoints(42);
    88     }
    89 }
Note: See TracChangeset for help on using the changeset viewer.