mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-12 19:59:09 +00:00
1
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Upgrade that damages the object over time
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef TF_OBJ_SAPPER_H
|
||||
#define TF_OBJ_SAPPER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "tf_obj_baseupgrade_shared.h"
|
||||
|
||||
#define SAPPER_MAX_HEALTH 100
|
||||
|
||||
|
||||
enum SapperModel_t
|
||||
{
|
||||
SAPPER_MODEL_PLACED,
|
||||
SAPPER_MODEL_PLACEMENT,
|
||||
SAPPER_MODEL_TOTAL
|
||||
};
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------ //
|
||||
// Sapper upgrade
|
||||
// ------------------------------------------------------------------------ //
|
||||
class CObjectSapper : public CBaseObjectUpgrade
|
||||
{
|
||||
DECLARE_CLASS( CObjectSapper, CBaseObjectUpgrade );
|
||||
|
||||
public:
|
||||
DECLARE_DATADESC();
|
||||
DECLARE_SERVERCLASS();
|
||||
|
||||
CObjectSapper();
|
||||
|
||||
virtual void Spawn();
|
||||
virtual void Precache();
|
||||
void Precache( const char *pchBaseModel );
|
||||
virtual bool IsHostileUpgrade( void ) { return true; }
|
||||
virtual void FinishedBuilding( void );
|
||||
virtual void SetupAttachedVersion( void );
|
||||
virtual void DetachObjectFromObject( void );
|
||||
virtual void UpdateOnRemove( void );
|
||||
virtual void OnGoActive( void );
|
||||
bool IsParentValid( void );
|
||||
|
||||
const char* GetSapperModelName( SapperModel_t nModel, const char *pchModelName = NULL );
|
||||
const char* GetSapperSoundName( void );
|
||||
|
||||
virtual void SapperThink( void );
|
||||
|
||||
virtual int OnTakeDamage( const CTakeDamageInfo &info );
|
||||
virtual void Killed( const CTakeDamageInfo &info );
|
||||
|
||||
virtual int GetBaseHealth( void );
|
||||
|
||||
void ApplyRoboSapper( CTFPlayer *pTarget, float flDuration, int nRadius = 200 );
|
||||
bool ApplyRoboSapperEffects( CTFPlayer *pTarget, float flDuration );
|
||||
bool IsValidRoboSapperTarget( CTFPlayer *pTarget );
|
||||
|
||||
float GetReversesBuildingConstructionSpeed( void );
|
||||
|
||||
private:
|
||||
float m_flSapperDamageAccumulator;
|
||||
float m_flLastThinkTime;
|
||||
float m_flLastHealthLeachTime;
|
||||
|
||||
float m_flSelfDestructTime;
|
||||
float m_flSapperStartTime;
|
||||
|
||||
char m_szSapperModel[ _MAX_PATH ];
|
||||
char m_szPlacementModel[ _MAX_PATH ];
|
||||
char szSapperSound[ _MAX_PATH ];
|
||||
#ifdef STAGING_ONLY
|
||||
bool m_bIsRinging;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // TF_OBJ_SAPPER_H
|
||||
Reference in New Issue
Block a user