AvHAlienAbilities.h

 ifndef AVHALIENABILITIES_H
define AVHALIENABILITIES_H
include "../util/nowarnings.h"
include "../dlls/weapons.h"
include "AvHAlienWeapons.h"
class AvHAlienAbilityWeapon : public AvHAlienWeapon
{
public:
virtual AvHMessageID GetAbilityImpulse() const = 0;
virtual void PlaybackLeapEvent(void) { this->PlaybackEvent(this->mLeapEvent, this->GetShootAnimation());};
int mAbilityEvent;
int mLeapEvent;
};
class AvHLeap : public AvHAlienAbilityWeapon
{
public:
AvHLeap()
{ this->Init(); }
virtual BOOL Deploy(); virtual int GetBarrelLength() const; virtual int GetDeployAnimation() const; virtual float GetDeployTime() const; virtual bool GetFiresUnderwater() const; virtual int GetIdleAnimation() const; AvHMessageID GetAbilityImpulse() const; virtual bool GetIsDroppable() const; int GetItemInfo(ItemInfo *p) const; virtual int GetShootAnimation() const; virtual int iItemSlot(void); virtual void Precache(void); virtual void Spawn(); virtual bool UsesAmmo(void) const; virtual BOOL GetTakesEnergy() { return FALSE; } void SecondaryAttack(); virtual float GetRateOfFire(void) const;
protected:
virtual void FireProjectiles(void);
virtual void Init();
};
class AvHBlinkGun : public AvHAlienAbilityWeapon
{
public:
AvHBlinkGun()
{ this->Init(); }
virtual BOOL Deploy(); AvHMessageID GetAbilityImpulse() const; virtual int GetBarrelLength() const; virtual float GetRateOfFire() const; virtual int GetDeployAnimation() const; virtual bool GetFiresUnderwater() const; virtual int GetIdleAnimation() const; virtual bool GetIsDroppable() const; int GetItemInfo(ItemInfo *p) const; virtual bool GetMustPressTriggerForEachShot() const; virtual int GetShootAnimation() const; virtual char* GetViewModel() const; virtual int iItemSlot(void); virtual void ItemPostFrame(void); virtual void Precache(void); virtual void Spawn(); virtual bool UsesAmmo(void) const; virtual BOOL GetTakesEnergy() { return FALSE; } void SecondaryAttack();
protected:
virtual void FireProjectiles(void);
virtual void Init(); float mTimeOfNextBlinkEvent; int mBlinkSuccessEvent;
};
class AvHCharge : public AvHAlienAbilityWeapon
{
public:
AvHCharge()
{ this->Init(); }
virtual BOOL Deploy(); AvHMessageID GetAbilityImpulse() const; virtual int GetBarrelLength() const; virtual int GetDeployAnimation() const; virtual float GetDeployTime() const; virtual bool GetFiresUnderwater() const; virtual int GetIdleAnimation() const; virtual bool GetIsDroppable() const; int GetItemInfo(ItemInfo *p) const; virtual int GetShootAnimation() const; virtual int iItemSlot(void); virtual void Precache(void); virtual void Spawn(); virtual bool UsesAmmo(void) const; virtual float GetRateOfFire() const; void SecondaryAttack();
protected:
virtual void FireProjectiles(void);
virtual void Init();
};
endif