Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.h @ 10368

Last change on this file since 10368 was 10368, checked in by erbj, 9 years ago

added timer in tick function to pause for 10 seconds between waves , trying to solve the problem, that towers are shooting at (0,0,0) (center point). The Problem seems to be in the sameteam function as the turret and the pawn at the position (0,0,0) should have the same team

  • Property svn:eol-style set to native
File size: 3.7 KB
Line 
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 *
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29 /**
30    @brief
31        GameType class for TowerDefense. See TowerDefenseReadme.txt for Information.
32
33    @ingroup TowerDefense
34 */
35
36
37#ifndef _TowerDefense_H__
38#define _TowerDefense_H__
39#include "TDCoordinate.h"
40#include "towerdefense/TowerDefensePrereqs.h"
41#include "gametypes/TeamDeathmatch.h"
42#include "TowerDefenseEnemy.h"
43#include "util/Output.h"
44#include "core/object/WeakPtr.h"
45
46namespace orxonox
47{
48    class _TowerDefenseExport TowerDefense : public TeamDeathmatch
49    {
50    public:
51        TowerDefense(Context* context);
52        virtual ~TowerDefense();
53
54        std::vector<orxonox::WeakPtr<TowerDefenseEnemy> > TowerDefenseEnemyvector;
55        Model* towerModelMatrix[16][16];
56        TowerDefenseTower* towerTurretMatrix[16][16];
57        void addTowerDefenseEnemy(std::vector<TDCoordinate*> path, int templatenr);
58        virtual void start(); //<! The function is called when the gametype starts
59        virtual void end();
60        virtual void tick(float dt);
61        //virtual void playerEntered(PlayerInfo* player);
62        //virtual bool playerLeft(PlayerInfo* player);
63        //Player Stats (set,get, reduce)
64        int getCredit(){ return this->credit_; }
65        int getLifes(){ return this->lifes_; }
66        int getWaveNumber(){ return this->waves_; }
67        void setCredit(int credit){ credit_ = credit; }
68        void setLifes(int lifes){ lifes_ = lifes; }
69        void setWaveNumber(int wavenumber){ waves_=wavenumber; }
70        void buyTower(int cost){ credit_ -= cost;}
71        void addCredit(int credit) { credit_+=credit; }
72        void nextwave(){ TowerDefenseEnemyvector.clear(); waves_++; time=0;}
73        int reduceLifes(int NumberofLifes){ return lifes_-=NumberofLifes; }
74        TDCoordinate* selectedPos;
75
76        //virtual void pawnKilled(Pawn* victim, Pawn* killer = 0);
77        //virtual void playerScored(PlayerInfo* player, int score);
78
79
80        /*  Called by TowerDefenseCenterpoint upon game start
81            The centerpoint is used to create towers
82        */
83        void setCenterpoint(TowerDefenseCenterpoint *centerpoint);
84
85        /* Adds a tower at x, y in the playfield */
86        void addTower(int x, int y);
87
88        void upgradeTower(int x, int y);
89
90        //TODO: void spawnNewWave()
91        //TODO: create a timer which regularly calls the spawnNewWave function  (time driven)
92        //      or spawn a new wave when the old wave has been killed           (event driven)
93
94
95    private:
96        TowerDefenseCenterpoint *center_;
97        float time;
98//        float time2;
99        int credit_;
100        int waves_;
101        int lifes_;
102        Timer nextwaveTimer_;
103
104        /* handles stats */
105        bool hasEnoughCreditForTower(int towerCost);
106        bool hasEnoughCreditForUpgrade();
107
108
109
110        std::vector<TowerTurret*> towers_;
111    };
112}
113
114#endif /* _TowerDefense_H__ */
Note: See TracBrowser for help on using the repository browser.