mirror of
https://github.com/Gigaslav/HL2Overcharged.git
synced 2026-09-21 20:15:06 +03:00
88 lines
2.3 KiB
C++
88 lines
2.3 KiB
C++
//========= Copyright © 2002-2008, Lolmen & Valve, All rights reserved. ============
|
|
//
|
|
// Purpose: Tau Cannon Super gun
|
|
//
|
|
//==================================================================================
|
|
|
|
#include "basehlcombatweapon.h"
|
|
|
|
#ifndef WEAPON_TAU_H
|
|
#define WEAPON_TAU_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "te_particlesystem.h"
|
|
#include "effect_dispatch_data.h"
|
|
|
|
#define TAU_BEAM_SPRITE "effects/gauss/beam.vmt"
|
|
|
|
#define TAU_CHARGE_TIME 0.2f
|
|
#define MAX_TAU_CHARGE 16
|
|
#define MAX_TAU_CHARGE_TIME 3
|
|
#define DANGER_TAU_CHARGE_TIME 10
|
|
|
|
|
|
//=============================================================================
|
|
// Tau cannon
|
|
//=============================================================================
|
|
|
|
class CWeaponTau : public CBaseHLCombatWeapon
|
|
{
|
|
DECLARE_DATADESC();
|
|
public:
|
|
DECLARE_CLASS( CWeaponTau, CBaseHLCombatWeapon );
|
|
|
|
CWeaponTau(void);
|
|
|
|
DECLARE_SERVERCLASS();
|
|
|
|
void StartFire(void);
|
|
|
|
protected:
|
|
|
|
virtual Activity GetDrawActivity(void);
|
|
virtual void Spawn(void);
|
|
virtual void Precache(void);
|
|
virtual void PrimaryAttack(void);
|
|
virtual void SecondaryAttack(void);
|
|
|
|
virtual bool Holster(CBaseCombatWeapon *pSwitchingTo = NULL);
|
|
virtual void Drop(const Vector &vecVelocity);
|
|
virtual void ItemPostFrame(void);
|
|
virtual void MakeTracer(const Vector &vecTracerSrc, const trace_t &tr, int iTracerType) {};
|
|
//float GetFireRate( void ) { return 0.2f; }
|
|
|
|
virtual void Fire(bool secondary = false, float damage = 0.f);
|
|
virtual void ChargedFire(void);
|
|
virtual float GetFullChargeTime(void);
|
|
|
|
virtual void StopChargeSound(void);
|
|
virtual void RandomZap(WeaponSound_t soundType = BURST);
|
|
virtual void DrawBeam(const Vector &startPos, const Vector &endPos, float width, bool useMuzzle = false, bool secondary = false);
|
|
virtual void IncreaseCharge(void);
|
|
virtual bool ShouldDrawWaterImpacts(const trace_t &shot_trace);
|
|
// float m_flChargeTime2;//Âðåìÿ çàðÿäêè
|
|
private:
|
|
EHANDLE m_hViewModel;
|
|
float m_flNextChargeTime;
|
|
float m_flNextSpinTime;
|
|
float m_flNextZapTime;
|
|
float minZap;
|
|
float maxZap;
|
|
|
|
CSoundPatch *m_sndCharge;
|
|
|
|
float m_flChargeStartTime;
|
|
bool m_bCharging;
|
|
bool m_bChargeIndicated;
|
|
bool isCharging;
|
|
bool blockSoundThink;
|
|
// bool delay2;
|
|
float m_flNextSoundTime;//Ñ÷¸ò÷èê äëÿ âñïûøêè
|
|
|
|
FireBulletsInfo_t info;
|
|
DECLARE_ACTTABLE();
|
|
};
|
|
|
|
#endif // WEAPON_GAUSS_H
|