Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10659


Ignore:
Timestamp:
Oct 19, 2015, 2:40:08 PM (9 years ago)
Author:
bucyril
Message:

1234

M hover/Hover.cc
M hover/Hover.h
M hover/HoverShip.cc
A hover/HoverPrereqs.h
M hover/HoverShip.h

Location:
code/branches/hoverHS15/src/modules/hover
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • code/branches/hoverHS15/src/modules/hover/Hover.cc

    r10658 r10659  
     1<<<<<<< .mine
    12/*
    23 *   ORXONOX - the hottest 3D action shooter ever to exist
     
    2122 *
    2223 *   Author:
    23  *      Florian Zinggeler
     24 *      Cyrill Burgener
    2425 *   Co-authors:
    2526 *      ...
     
    3334
    3435#include "Hover.h"
    35 #include "HoverShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
     36#include "HoverShip.h"
    3637#include "core/CoreIncludes.h"
    3738
     
    4041    RegisterUnloadableClass(Hover);
    4142
    42     Hover::Hover(Context* context) : GameType(context)
     43    Hover::Hover(Context* context) : Deathmatch(context)
    4344    {
    4445        RegisterObject(Hover);
    4546
    46         //this->setHUDTemplate("HoverHUD");
    47     }
    48 
    49 
     47        bEndGame = false;
     48        lives = 1;
     49        level = 1;
     50        point = 0;
     51        bShowLevel = false;
     52        multiplier = 1;
     53        b_combo = false;
     54        counter = 5000;
     55        pattern = 1;
     56        lastPosition = 0;
     57        // spawn enemy every 3.5 seconds
     58        //enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Hover::spawnEnemy, this)));
     59        comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&Hover::comboControll, this)));
     60        this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
     61        this->center_ = 0;
     62
     63        this->setHUDTemplate("HoverHUD");
     64    }
     65
     66    void Hover::levelUp()
     67    {
     68        level++;
     69        if (getPlayer() != NULL)
     70        {
     71            for (int i = 0; i < 7; i++)
     72            {
     73                BigExplosion* chunk = new BigExplosion(this->center_->getContext());
     74                chunk->setPosition(Vector3(600, 0, 100.f * i - 300));
     75                chunk->setVelocity(Vector3(1000, 0, 0));  //player->getVelocity()
     76                chunk->setScale(20);
     77            }
     78        }
     79        addPoints(multiplier * 42);
     80        multiplier *= 2;
     81        toggleShowLevel();
     82        showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this)));
     83    }
    5084
    5185    void Hover::tick(float dt)
    5286    {
    53 
     87        if (getPlayer() != NULL)
     88        {
     89            currentPosition = getPlayer()->getWorldPosition().x;
     90            counter = counter + (currentPosition - lastPosition);
     91            lastPosition = currentPosition;
     92            point = (int) currentPosition;
     93            getPlayer()->speed = 830.0f - (point / 1000);
     94
     95            for(unsigned int i=0; i < cubeList.size();i++)
     96            {
     97                if(cubeList.at(i)->getPosition().x < currentPosition-3000)
     98                {
     99                    cubeList.at(i)->destroy();
     100                    cubeList.erase(cubeList.begin()+i);
     101                }
     102            }
     103
     104            if(counter >= 3000)
     105            {
     106                counter = 0;
     107                for(int i = 0; i<6; i++)
     108                {
     109                    HoverCube* cube = new HoverCube(this->center_->getContext());
     110                    cubeList.push_back(cube);
     111                    switch(pattern)
     112                    {
     113                    case 1: cube->addTemplate("HoverCube01");
     114                    break;
     115                    case 2: cube->addTemplate("HoverCube02");
     116                    break;
     117
     118                    }
     119
     120                    cube->setPosition(getPlayer()->getWorldPosition() + Vector3(5000.0f, 0.0f, -3600.0f + (i*1200)));
     121                    //stEntity->setScale3D(50,50,50);
     122                }
     123
     124
     125                pattern %= 2;
     126                pattern ++;
     127
     128            }
     129
     130        }
    54131        SUPER(Hover, tick, dt);
    55132    }
    56133
    57    
     134    HoverShip* Hover::getPlayer()
     135    {
     136        if (player == NULL)
     137        {
     138            for (ObjectList<HoverShip>::iterator it = ObjectList<HoverShip>::begin(); it != ObjectList<HoverShip>::end(); ++it)
     139            {
     140                player = *it;
     141            }
     142        }
     143        return player;
     144    }
     145
     146    void Hover::costLife()
     147    {
     148        //endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Hover::end, this)));
     149        lives = 0;
     150    };
     151
     152    void Hover::comboControll()
     153    {
     154        if (b_combo)
     155            multiplier++;
     156        // if no combo was performed before, reset multiplier
     157        else
     158            multiplier = 1;
     159        b_combo = false;
     160    }
    58161
    59162    void Hover::start()
    60163    {
    61 
     164        orxout() << "start" << endl;
     165        for(unsigned int i=0; i< cubeList.size();i++)
     166        {
     167            cubeList.at(i)->destroy();
     168            cubeList.erase(cubeList.begin()+i);
     169
     170        }
     171        cubeList.clear();
     172        // Set variable to temporarily force the player to spawn.
     173        this->bForceSpawn_ = false;
     174
     175        if (this->center_ == NULL)  // abandon mission!
     176        {
     177            orxout(internal_error) << "Hover: No Centerpoint specified." << endl;
     178            GSLevel::startMainMenu();
     179            return;
     180        }
    62181        // Call start for the parent class.
    63         GameType::start();
    64     }
    65 
     182        Deathmatch::start();
     183    }
     184
     185    void Hover::playerPreSpawn(PlayerInfo* player)
     186    {
     187        if(lives <= 0)
     188        {
     189            this->end();
     190        }
     191
     192        // Reset all the cubes
     193        /*
     194        orxout() << "prespawn" << endl;
     195        for(int i=0; i< cubeList.size();i++)
     196        {
     197            cubeList.at(i)->destroy();
     198            cubeList.erase(cubeList.begin()+i);
     199        }
     200        cubeList.clear();
     201        lives = 1;
     202        point = 0;
     203        lastPosition = 0;
     204        */
     205    }
     206
     207    void Hover::addPoints(int numPoints)
     208    {
     209        if (!bEndGame)
     210        {
     211            point += numPoints * multiplier;
     212            b_combo = true;
     213        }
     214    }
    66215
    67216    void Hover::end()
     
    74223    }
    75224}
     225=======
     226/*
     227 *   ORXONOX - the hottest 3D action shooter ever to exist
     228 *                    > www.orxonox.net <
     229 *
     230 *
     231 *   License notice:
     232 *
     233 *   This program is free software; you can redistribute it and/or
     234 *   modify it under the terms of the GNU General Public License
     235 *   as published by the Free Software Foundation; either version 2
     236 *   of the License, or (at your option) any later version.
     237 *
     238 *   This program is distributed in the hope that it will be useful,
     239 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
     240 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     241 *   GNU General Public License for more details.
     242 *
     243 *   You should have received a copy of the GNU General Public License
     244 *   along with this program; if not, write to the Free Software
     245 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
     246 *
     247 *   Author:
     248 *      Florian Zinggeler
     249 *   Co-authors:
     250 *      ...
     251 *
     252 */
     253
     254/**
     255    @file Hover.cc
     256    @brief Implementation of the Hover class.
     257*/
     258
     259#include "Hover.h"
     260#include "HoverShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
     261#include "core/CoreIncludes.h"
     262
     263namespace orxonox
     264{
     265    RegisterUnloadableClass(Hover);
     266
     267    Hover::Hover(Context* context) : GameType(context)
     268    {
     269        RegisterObject(Hover);
     270
     271        //this->setHUDTemplate("HoverHUD");
     272    }
     273
     274
     275
     276    void Hover::tick(float dt)
     277    {
     278
     279        SUPER(Hover, tick, dt);
     280    }
     281
     282   
     283
     284    void Hover::start()
     285    {
     286
     287        // Call start for the parent class.
     288        GameType::start();
     289    }
     290
     291
     292    void Hover::end()
     293    {
     294        // DON'T CALL THIS!
     295        //      Deathmatch::end();
     296        // It will misteriously crash the game!
     297        // Instead startMainMenu, this won't crash.
     298        GSLevel::startMainMenu();
     299    }
     300}
     301>>>>>>> .r10658
  • code/branches/hoverHS15/src/modules/hover/Hover.h

    r10658 r10659  
     1<<<<<<< .mine
    12/*
    23 *   ORXONOX - the hottest 3D action shooter ever to exist
     
    2122 *
    2223 *   Author:
    23  *      Florian Zinggeler
     24 *      Cyrill Burgener
    2425 *   Co-authors:
    2526 *      ...
     
    3334*/
    3435
     36#ifndef _DodgeRace_H__
     37#define _DodgeRace_H__
     38
     39#include "hover/HoverPrereqs.h"
     40
     41
     42#include "core/EventIncludes.h"
     43#include "core/command/Executor.h"
     44#include "core/config/ConfigValueIncludes.h"
     45
     46#include "gamestates/GSLevel.h"
     47#include "chat/ChatManager.h"
     48#include <vector>
     49
     50// ! HACK
     51#include "infos/PlayerInfo.h"
     52
     53#include "core/command/ConsoleCommand.h"
     54#include "worldentities/BigExplosion.h"
     55
     56#include "gametypes/Deathmatch.h"
     57#include "tools/Timer.h"
     58
     59namespace orxonox
     60{
     61
     62    class _HoverExport Hover : public Deathmatch
     63    {
     64       public:
     65            Hover(Context* context);
     66
     67            virtual void start();
     68            virtual void end();
     69
     70            virtual void tick(float dt);
     71
     72            virtual void playerPreSpawn(PlayerInfo* player);
     73
     74            void levelUp();
     75
     76            int getLives(){return this->lives;}
     77            int getLevel(){return this->level;}
     78            int getPoints(){return this->point;}
     79            int getMultiplier(){return this->multiplier;}
     80
     81            void setCenterpoint(DodgeRaceCenterPoint* center)
     82                       { this->center_ = center; }
     83            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
     84
     85            // checks if multiplier should be reset.
     86            void comboControll();
     87            void costLife();
     88
     89            bool bEndGame;
     90            bool bShowLevel;
     91            int lives;
     92            int multiplier;
     93            float counter;
     94            int pattern;
     95            float currentPosition;
     96            float lastPosition;
     97
     98       private:
     99            Timer endGameTimer;
     100
     101            DodgeRaceShip* getPlayer();
     102            WeakPtr<DodgeRaceShip> player;
     103            std::vector<DodgeRaceCube*> cubeList;
     104            void toggleShowLevel(){bShowLevel = !bShowLevel;}
     105            void addPoints(int numPoints);
     106
     107            WeakPtr<DodgeRaceCenterPoint> center_;
     108            int level;
     109            int point;
     110            bool b_combo;
     111
     112            Timer enemySpawnTimer;
     113            Timer comboTimer;
     114            Timer showLevelTimer;
     115
     116
     117         /*
     118
     119            //void spawnEnemy();
     120
     121
     122
     123
     124
     125
     126
     127
     128
     129
     130
     131
     132        private:
     133
     134
     135
     136
     137            //Context* context;
     138            */
     139    };
     140}
     141
     142#endif /* _DodgeRace_H__ */
     143=======
     144/*
     145 *   ORXONOX - the hottest 3D action shooter ever to exist
     146 *                    > www.orxonox.net <
     147 *
     148 *
     149 *   License notice:
     150 *
     151 *   This program is free software; you can redistribute it and/or
     152 *   modify it under the terms of the GNU General Public License
     153 *   as published by the Free Software Foundation; either version 2
     154 *   of the License, or (at your option) any later version.
     155 *
     156 *   This program is distributed in the hope that it will be useful,
     157 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
     158 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     159 *   GNU General Public License for more details.
     160 *
     161 *   You should have received a copy of the GNU General Public License
     162 *   along with this program; if not, write to the Free Software
     163 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
     164 *
     165 *   Author:
     166 *      Florian Zinggeler
     167 *   Co-authors:
     168 *      ...
     169 *
     170 */
     171
     172/**
     173    @file Hover.h
     174    @brief Gametype.
     175    @ingroup Hover
     176*/
     177
    35178#ifndef _Hover_H__
    36179#define _Hover_H__
     
    82225
    83226#endif /* _Hover_H__ */
     227>>>>>>> .r10658
  • code/branches/hoverHS15/src/modules/hover/HoverShip.cc

    r10657 r10659  
    2121 *
    2222 *   Author:
    23  *      Florian Zinggeler
     23 *      Cyrill Burgener
    2424 *   Co-authors:
    2525 *      ...
     
    2828
    2929/**
    30     @file DodgeRaceShip.cc
    31     @brief Implementation of the DodgeRaceShip class.
     30    @file HoverShip.cc
     31    @brief Implementation of the HoverShip class.
    3232*/
    3333
    34 #include "DodgeRaceShip.h"
     34#include "HoverShip.h"
    3535#include "core/CoreIncludes.h"
    3636
    3737namespace orxonox
    3838{
    39     RegisterClass(DodgeRaceShip);
     39    RegisterClass(HoverShip);
    4040
    41     DodgeRaceShip::DodgeRaceShip(Context* context) : SpaceShip(context)
     41    HoverShip::HoverShip(Context* context) : SpaceShip(context)
    4242    {
    43         RegisterObject(DodgeRaceShip);
     43        RegisterObject(HoverShip);
    4444
    4545        speed = 830;
     
    5353    }
    5454
    55     void DodgeRaceShip::tick(float dt)
     55    void HoverShip::tick(float dt)
    5656    {
    5757        Vector3 pos = getPosition();
     
    115115        }
    116116
    117         SUPER(DodgeRaceShip, tick, dt);
     117        SUPER(HoverShip, tick, dt);
    118118    }
    119119
    120     void DodgeRaceShip::updateLevel()
     120    void HoverShip::updateLevel()
    121121    {
    122122        lastTime = 0;
     
    125125    }
    126126
    127     void DodgeRaceShip::moveFrontBack(const Vector2& value)
     127    void HoverShip::moveFrontBack(const Vector2& value)
    128128    {
    129129        //lastTimeFront = 0;
     
    132132    }
    133133
    134     void DodgeRaceShip::moveRightLeft(const Vector2& value)
     134    void HoverShip::moveRightLeft(const Vector2& value)
    135135    {
    136136        lastTimeLeft = 0;
    137137        desiredVelocity.x = value.x * speed;
    138138    }
    139     void DodgeRaceShip::boost(bool bBoost)
     139    void HoverShip::boost(bool bBoost)
    140140    {
    141141        //getGame()->bEndGame = bBoost;
    142142    }
    143143
    144     inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     144    inline bool HoverShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
    145145    {
    146146
     
    150150    }
    151151
    152     DodgeRace* DodgeRaceShip::getGame()
     152    Hover* HoverShip::getGame()
    153153    {
    154154        if (game == NULL)
    155155        {
    156             for (ObjectList<DodgeRace>::iterator it = ObjectList<DodgeRace>::begin(); it != ObjectList<DodgeRace>::end(); ++it)
     156            for (ObjectList<Hover>::iterator it = ObjectList<Hover>::begin(); it != ObjectList<Hover>::end(); ++it)
    157157            {
    158158                game = *it;
     
    162162    }
    163163
    164     void DodgeRaceShip::death()
     164    void HoverShip::death()
    165165    {
    166166        getGame()->costLife();
  • code/branches/hoverHS15/src/modules/hover/HoverShip.h

    r10657 r10659  
    2121 *
    2222 *   Author:
    23  *      Florian Zinggeler
     23 *      Cyrill Burgener
    2424 *   Co-authors:
    2525 *      ...
     
    2828
    2929/**
    30     @file DodgeRaceShip.h
    31     @brief Declaration of the DodgeRaceShip class.
     30    @file HoverShip.h
     31    @brief Declaration of the HoverShip class.
    3232*/
    3333
    34 #ifndef _DodgeRaceShip_H__
    35 #define _DodgeRaceShip_H__
     34#ifndef _HoverShip_H__
     35#define _HoverShip_H__
    3636
    3737
    38 #include "dodgerace/DodgeRacePrereqs.h"
     38#include "hover/HoverPrereqs.h"
    3939
    4040#include "core/XMLPort.h"
     
    4242#include "graphics/Camera.h"
    4343
    44 #include "DodgeRace.h" // Is necessary for getGame function
     44#include "Hover.h" // Is necessary for getGame function
    4545//#include "DodgeRaceCenterPoint.h"
    4646
Note: See TracChangeset for help on using the changeset viewer.