NS/main/source/mod/AvHAlienAbilities.h
2014-12-16 14:36:27 +01:00

196 lines
No EOL
4.6 KiB
C++

//======== (C) Copyright 2002 Charles G. Cleveland All rights reserved. =========
//
// The copyright to the contents herein is the property of Charles G. Cleveland.
// The contents may be used and/or copied only with the written permission of
// Charles G. Cleveland, or in accordance with the terms and conditions stipulated in
// the agreement/contract under which the contents have been supplied.
//
// Purpose:
//
// $Workfile: AvHAlienAbilities.h $
// $Date: 2002/09/23 22:06:33 $
//
//-------------------------------------------------------------------------------
// $Log: AvHAlienAbilities.h,v $
// Revision 1.9 2002/09/23 22:06:33 Flayra
// - Updated anims for new view model artwork
//
// Revision 1.8 2002/08/09 00:52:57 Flayra
// - Speed up deploying of charge and leap, removed old hard-coded number
//
// Revision 1.7 2002/07/26 23:03:08 Flayra
// - New artwork
//
// Revision 1.6 2002/07/08 16:42:38 Flayra
// - Refactoring for cheat protection, moved blinking in here from separate class
//
// Revision 1.5 2002/06/25 17:25:56 Flayra
// - Regular update for leap and charge
//
// Revision 1.4 2002/06/03 16:20:11 Flayra
// - Proper anims for alien abilities
//
// Revision 1.3 2002/05/23 02:34:00 Flayra
// - Post-crash checkin. Restored @Backup from around 4/16. Contains changes for last four weeks of development.
//
//===============================================================================
#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