Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/presentation2012merge/src/orxonox/gametypes/Dynamicmatch.h @ 9339

Last change on this file since 9339 was 9338, checked in by jo, 12 years ago

Trying to find quick fixes for dynamic match. Somehow gametypes getNumberOfPlayer() function is broken, so I created a new, local function. Furthermore the rocket usage is in conflict with colouring spaceships, so I changed the spaceship model. Surprisingly the usage of spaceshipswallow and adding 7 bots caused my system to freeze some seconds after the gametype started.

  • Property svn:eol-style set to native
File size: 3.6 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 *      Johannes Ritz
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#ifndef _Dynamicmatch_H__
30#define _Dynamicmatch_H__
31
32#include "OrxonoxPrereqs.h"
33
34#include <map>
35#include <vector>
36
37#include "tools/Timer.h"
38
39#include "Gametype.h"
40
41namespace orxonox
42{
43    class _OrxonoxExport Dynamicmatch : public Gametype
44    {
45        public:
46            Dynamicmatch(BaseObject* creator);
47            virtual ~Dynamicmatch() {}
48
49            bool notEnoughPigs;
50            bool notEnoughKillers;
51            bool notEnoughChasers;
52
53            //three different parties
54            int chaser;
55            int piggy;
56            int killer;
57
58            virtual void evaluatePlayerParties();
59            int getParty(PlayerInfo* player);
60            void setPlayerColour(PlayerInfo* player);//own function
61            void setConfigValues();//done
62
63            bool friendlyfire; //goal: player can switch it on/off
64            bool tutorial; //goal: new players receive messages how the new gametype works - later it can be switched off.
65
66            virtual bool allowPawnDamage(Pawn* victim, Pawn* originator = 0); //ok - score function and management of parties
67            virtual bool allowPawnDeath(Pawn* victim, Pawn* originator = 0); //ok - simple
68            virtual void start();
69            virtual void end(); //Wie geht das mit der Punkteausgabe aendern? Z.B: Persoenliche Nachricht?
70            virtual void playerEntered(PlayerInfo* player);
71            virtual void playerStartsControllingPawn(PlayerInfo* player, Pawn* pawn);//is used to initialize the player's party and colour
72            virtual bool playerLeft(PlayerInfo* player);
73            virtual bool playerChangedName(PlayerInfo* player);//unchanged
74
75            /*virtual void instructions();
76            virtual void furtherInstructions();*/
77            virtual void rewardPig();
78            void grantPigBoost(SpaceShip* spaceship); // Grant the piggy a boost.
79            void resetSpeedFactor(WeakPtr<SpaceShip>* ptr);
80            void tick (float dt);// used to end the game
81            SpawnPoint* getBestSpawnPoint(PlayerInfo* player) const;
82
83
84        protected:
85            inline int getPlayerCount() const
86                 { return this->numberOf[chaser] + numberOf[piggy] + this->numberOf[killer]; }
87
88            std::map< PlayerInfo*, int > playerParty_; //player's parties are recorded here
89            std::vector<ColourValue> partyColours_; //aus TeamDeathmatch
90            unsigned int numberOf[3]; //array to count number of chasers, pigs, killers
91            float pointsPerTime;
92            float gameTime_;   // from UnderAttack
93            bool gameEnded_; // true if game is over
94            int timesequence_; //used for countdown
95            //Timer callInstructions_;
96    };
97}
98
99#endif /* _Dynamicmatch_H__ */
Note: See TracBrowser for help on using the repository browser.