diff options
Diffstat (limited to 'src/game/server/gamemodes/tdm.cpp')
| -rw-r--r-- | src/game/server/gamemodes/tdm.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/game/server/gamemodes/tdm.cpp b/src/game/server/gamemodes/tdm.cpp new file mode 100644 index 00000000..26441c9f --- /dev/null +++ b/src/game/server/gamemodes/tdm.cpp @@ -0,0 +1,31 @@ +/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */ +#include <engine/e_server_interface.h> +#include <game/server/entities/character.hpp> +#include <game/server/player.hpp> +#include "tdm.hpp" + +GAMECONTROLLER_TDM::GAMECONTROLLER_TDM() +{ + is_teamplay = true; +} + +int GAMECONTROLLER_TDM::on_character_death(class CHARACTER *victim, class PLAYER *killer, int weapon) +{ + GAMECONTROLLER::on_character_death(victim, killer, weapon); + + if(weapon >= 0) + { + // do team scoring + if(killer == victim->player) + teamscore[killer->team&1]--; // klant arschel + else + teamscore[killer->team&1]++; // good shit + } + return 0; +} + +void GAMECONTROLLER_TDM::tick() +{ + do_team_score_wincheck(); + GAMECONTROLLER::tick(); +} |