sqwarmed/sdk_src/game/shared/swarm/asw_powerup_shared.h

164 lines
5.5 KiB
C++

#ifndef _INCLUDED_ASW_POWERUP_H
#define _INCLUDED_ASW_POWERUP_H
#ifdef _WIN32
#pragma once
#endif
#ifdef CLIENT_DLL
#include "c_asw_pickup.h"
#define CASW_Powerup C_ASW_Powerup
#else
#include "asw_pickup.h"
#endif
class CASW_Powerup : public CASW_Pickup
{
DECLARE_CLASS( CASW_Powerup, CASW_Pickup );
DECLARE_NETWORKCLASS();
public:
CASW_Powerup(void);
virtual ~CASW_Powerup(void);
#ifndef CLIENT_DLL
virtual void Spawn();
virtual void Precache();
//virtual void ItemTouch( CBaseEntity *pOther );
virtual void PickupPowerup( CASW_Marine *pMarine );
virtual bool IsUsable(CBaseEntity *pUser) { return true; }
virtual void ActivateUseIcon( CASW_Marine* pMarine, int nHoldType );
virtual void SetIsSpawnFlipping( float flMaxPickupDelay );
virtual const char* GetPowerupModelName( void ) { return "models/swarm/Ammo/ammorailgun.mdl"; }
virtual const char* GetPickupSoundName( void ) { return "ASW_Powerup.Pickup_Generic"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_freeze_bullets"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_FireB; }
#endif
virtual bool AllowedToPickup(CASW_Marine *pMarine) { return true; }
float m_flCanPickupMaxTime;
bool m_bSpawnDelayDenyPickup : 1;
int m_nPowerupType;
float m_flPowerupDuration;
};
class CASW_Powerup_Bullets : public CASW_Powerup
{
public:
DECLARE_CLASS( CASW_Powerup_Bullets, CASW_Powerup );
DECLARE_NETWORKCLASS();
#ifndef CLIENT_DLL
virtual void ActivateUseIcon( CASW_Marine* pMarine, int nHoldType );
#endif
virtual bool AllowedToPickup(CASW_Marine *pMarine);
};
class CASW_Powerup_Freeze_Bullets : public CASW_Powerup_Bullets
{
public:
DECLARE_CLASS( CASW_Powerup_Freeze_Bullets, CASW_Powerup_Bullets );
DECLARE_NETWORKCLASS();
CASW_Powerup_Freeze_Bullets();
#ifndef CLIENT_DLL
//virtual const char* GetPickupSoundName( void ) { return "ASW_Powerup.Pickup_Generic"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_freeze_bullets"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_FreezeB; }
#endif
};
class CASW_Powerup_Fire_Bullets : public CASW_Powerup_Bullets
{
public:
DECLARE_CLASS( CASW_Powerup_Fire_Bullets, CASW_Powerup_Bullets );
DECLARE_NETWORKCLASS();
CASW_Powerup_Fire_Bullets();
#ifndef CLIENT_DLL
//virtual const char* GetPickupSoundName( void ) { return "ASW_BuffGrenade.GrenadeActivate"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_fire_bullets"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_FireB; }
#endif
};
class CASW_Powerup_Electric_Bullets : public CASW_Powerup_Bullets
{
public:
DECLARE_CLASS( CASW_Powerup_Electric_Bullets, CASW_Powerup_Bullets );
DECLARE_NETWORKCLASS();
CASW_Powerup_Electric_Bullets();
#ifndef CLIENT_DLL
//virtual const char* GetPickupSoundName( void ) { return "ASW_BuffGrenade.GrenadeActivate"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_electric_bullets"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_ElectricB; }
#endif
};
class CASW_Powerup_Chemical_Bullets : public CASW_Powerup_Bullets
{
public:
DECLARE_CLASS( CASW_Powerup_Chemical_Bullets, CASW_Powerup_Bullets );
DECLARE_NETWORKCLASS();
CASW_Powerup_Chemical_Bullets();
#ifndef CLIENT_DLL
//virtual const char* GetPickupSoundName( void ) { return "ASW_BuffGrenade.GrenadeActivate"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_chemical_bullets"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_ChemicalB; }
#endif
};
class CASW_Powerup_Explosive_Bullets : public CASW_Powerup_Bullets
{
public:
DECLARE_CLASS( CASW_Powerup_Explosive_Bullets, CASW_Powerup_Bullets );
DECLARE_NETWORKCLASS();
CASW_Powerup_Explosive_Bullets();
#ifndef CLIENT_DLL
//virtual const char* GetPickupSoundName( void ) { return "ASW_BuffGrenade.GrenadeActivate"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_explosive_bullets"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_ExplodeB; }
#endif
};
class CASW_Powerup_Increased_Speed : public CASW_Powerup
{
public:
DECLARE_CLASS( CASW_Powerup_Increased_Speed, CASW_Powerup );
DECLARE_NETWORKCLASS();
CASW_Powerup_Increased_Speed();
#ifndef CLIENT_DLL
//virtual const char* GetPickupSoundName( void ) { return "ASW_BuffGrenade.GrenadeActivate"; }
virtual const char* GetIdleParticleName( void ) { return "powerup_increased_speed"; }
virtual const char* GetPickupParticleName( void ) { return "powerup_pickup_generic"; }
#else
virtual int GetUseIconTextureID() { BaseClass::GetUseIconTextureID(); return s_nUseIconTakePowerup_Speed; }
#endif
};
#endif // _INCLUDED_ASW_POWERUP_H