mirror of
https://github.com/Gigaslav/HL2Overcharged.git
synced 2026-09-15 20:12:37 +03:00
59 lines
1.7 KiB
C++
59 lines
1.7 KiB
C++
#ifndef WEAPONLASER_H
|
|
#define WEAPONLASER_H
|
|
#include "cbase.h"
|
|
#include "basehlcombatweapon.h"
|
|
#include "beam_shared.h"
|
|
#include "beam_flags.h"
|
|
#include "sprite.h"
|
|
|
|
class CWeaponLaser : public CBaseHLCombatWeapon
|
|
{
|
|
public:
|
|
DECLARE_CLASS(CWeaponLaser, CBaseHLCombatWeapon);
|
|
|
|
DECLARE_SERVERCLASS();
|
|
|
|
CWeaponLaser();
|
|
|
|
DECLARE_ACTTABLE();
|
|
DECLARE_DATADESC();
|
|
|
|
protected:
|
|
|
|
virtual Activity GetPrimaryAttackActivity(void);
|
|
virtual void Precache(void);
|
|
virtual void UseAmmo(int count);
|
|
virtual void PrimaryAttack(void);
|
|
virtual void ApplyDamage(const Vector &vecDir, trace_t &tr, CBasePlayer *pPlayer);
|
|
virtual void AmmoUsing();
|
|
virtual void ItemPostFrame(void);
|
|
virtual void Charge(void);
|
|
virtual bool WeaponLOSCondition(const Vector &ownerPos, const Vector &targetPos, bool bSetConditions);
|
|
virtual int WeaponRangeAttack1Condition(float flDot, float flDist);
|
|
virtual bool Holster(CBaseCombatWeapon *pSwitchingTo = NULL);
|
|
virtual void Fire(const Vector &vecOrigSrc, const Vector &vecDir, CBasePlayer *pPlayer);
|
|
virtual void UpdateBeam(const Vector &startPoint, const Vector &endPoint, CBasePlayer *pPlayer);
|
|
virtual void CreateBeam(CBasePlayer *pPlayer);
|
|
virtual void DestroyBeam(void);
|
|
virtual bool ShouldDrawWaterImpacts(const trace_t &shot_trace);
|
|
|
|
float m_flBurnRadius;
|
|
float m_flTimeLastUpdatedRadius;
|
|
Vector m_vecLaserTarget;
|
|
float m_bPlayingHitWall;
|
|
float m_bPlayingHitFlesh;
|
|
|
|
float m_flChargeTime;//Âðåìÿ çàðÿäêè
|
|
float m_flAmmoTime;
|
|
float m_flDmgTime;
|
|
CEffectData data;
|
|
|
|
private:
|
|
|
|
bool m_bFirstPlay;
|
|
CHandle<CSprite> m_SSprite;
|
|
//CHandle<CBeam> m_hBeam;
|
|
CHandle<CBeam> m_hBeam;
|
|
CHandle<CBeam> m_hHaloBeam;
|
|
};
|
|
#endif |