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

48 lines
1.1 KiB
C
Raw Normal View History

2010-11-20 10:37:14 +00:00
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
/* If you are missing that file, acquire a complete release at teeworlds.com. */
2010-05-29 07:25:38 +00:00
#ifndef GAME_SERVER_ENTITIES_LASER_H
#define GAME_SERVER_ENTITIES_LASER_H
#include <game/server/entity.h>
class CLaser : public CEntity
{
public:
CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner, int Type);
virtual void Reset() override;
virtual void Tick() override;
virtual void TickPaused() override;
virtual void Snap(int SnappingClient) override;
virtual void SwapClients(int Client1, int Client2) override;
virtual int GetOwnerID() const override { return m_Owner; }
2010-05-29 07:25:38 +00:00
protected:
bool HitCharacter(vec2 From, vec2 To);
void DoBounce();
2010-05-29 07:25:38 +00:00
private:
vec2 m_From;
vec2 m_Dir;
2013-07-18 23:06:48 +00:00
vec2 m_TelePos;
2013-07-20 12:16:41 +00:00
bool m_WasTele;
2010-05-29 07:25:38 +00:00
float m_Energy;
int m_Bounces;
int m_EvalTick;
int m_Owner;
int m_TeamMask;
bool m_ZeroEnergyBounceInLastTick;
// DDRace
vec2 m_PrevPos;
int m_Type;
int m_TuneZone;
2018-02-14 15:27:26 +00:00
bool m_TeleportCancelled;
2018-11-02 23:02:20 +00:00
bool m_IsBlueTeleport;
bool m_BelongsToPracticeTeam;
2010-05-29 07:25:38 +00:00
};
#endif