ddnet/src/game/server/entities/gun.h

43 lines
1.5 KiB
C
Raw Normal View History

/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
#ifndef GAME_SERVER_ENTITIES_GUN_H
#define GAME_SERVER_ENTITIES_GUN_H
#include <game/gamecore.h>
#include <game/server/entity.h>
/**
* Turrets (also referred to as Gun) fire plasma bullets at the nearest player
*
* A turret fires plasma bullets with a certain firing rate (m_SvPlasmaPerSec) at the closest player of a team for whom
* the following criteria are met:
* - The player is within the turret range (m_SvPlasmaRange)
* - The player is not a super player
* - The turret is activated
* - The initial trajectory of the plasma bullet to be generated would not be stopped by any solid block
* With the exception of solo players, for whom plasma bullets will always be fired, regardless of the rest of the team,
* if the above criteria are met. Solo players do not affect the generation of plasma bullets for the rest of the team.
* The shooting rate of m_SvPlasmaPerSec is independent for each team and solo player and starts with the first tick
* when a target player is selected.
*/
class CGun : public CEntity
{
vec2 m_Core;
bool m_Freeze;
bool m_Explosive;
int m_EvalTick;
int m_LastFireTeam[MAX_CLIENTS];
int m_LastFireSolo[MAX_CLIENTS];
void Fire();
2015-07-09 00:08:14 +00:00
public:
CGun(CGameWorld *pGameWorld, vec2 Pos, bool Freeze, bool Explosive, int Layer = 0, int Number = 0);
void Reset() override;
void Tick() override;
void Snap(int SnappingClient) override;
};
#endif // GAME_SERVER_ENTITIES_GUN_H