You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.0 KiB
81 lines
2.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef TF_WEAPON_BONESAW_H
|
|
#define TF_WEAPON_BONESAW_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "tf_weaponbase_melee.h"
|
|
|
|
#ifdef CLIENT_DLL
|
|
#include "tf_weapon_medigun.h"
|
|
|
|
#define CTFBonesaw C_TFBonesaw
|
|
#endif
|
|
|
|
enum bonesaw_weapontypes_t
|
|
{
|
|
BONESAW_DEFAULT = 0,
|
|
BONESAW_UBER_ONHIT,
|
|
BONESAW_UBER_SAVEDONDEATH,
|
|
BONESAW_RADIUSHEAL,
|
|
BONESAW_TONGS,
|
|
};
|
|
|
|
//=============================================================================
|
|
//
|
|
// Bonesaw class.
|
|
//
|
|
class CTFBonesaw : public CTFWeaponBaseMelee
|
|
{
|
|
public:
|
|
DECLARE_CLASS( CTFBonesaw, CTFWeaponBaseMelee );
|
|
DECLARE_NETWORKCLASS();
|
|
DECLARE_PREDICTABLE();
|
|
|
|
CTFBonesaw() {}
|
|
virtual void Activate( void );
|
|
virtual int GetWeaponID( void ) const
|
|
{
|
|
const CEconItemView *pEconItemView = GetAttributeContainer()->GetItem();
|
|
if ( !V_strcmp( pEconItemView->GetItemDefinition()->GetDefinitionName(), "Harvester" ) )
|
|
return TF_WEAPON_HARVESTER_SAW;
|
|
return TF_WEAPON_BONESAW;
|
|
}
|
|
|
|
virtual void SecondaryAttack();
|
|
|
|
virtual bool DefaultDeploy( char *szViewModel, char *szWeaponModel, int iActivity, char *szAnimExt );
|
|
int GetBonesawType( void ) const { int iMode = 0; CALL_ATTRIB_HOOK_INT( iMode, set_weapon_mode ); return iMode; };
|
|
|
|
virtual void DoMeleeDamage( CBaseEntity* ent, trace_t& trace ) OVERRIDE;
|
|
|
|
float GetProgress( void ) { return 0; }
|
|
int GetCount( void );
|
|
const char* GetEffectLabelText( void ) { return "#TF_ORGANS"; }
|
|
|
|
float GetBoneSawSpeedMod( void );
|
|
|
|
#ifdef CLIENT_DLL
|
|
virtual void OnDataChanged( DataUpdateType_t updateType );
|
|
void UpdateChargePoseParam( void );
|
|
virtual void GetPoseParameters( CStudioHdr *pStudioHdr, float poseParameter[MAXSTUDIOPOSEPARAM] );
|
|
virtual void UpdateAttachmentModels( void );
|
|
#endif
|
|
|
|
private:
|
|
|
|
#ifdef CLIENT_DLL
|
|
int m_iUberChargePoseParam;
|
|
float m_flChargeLevel;
|
|
#endif
|
|
|
|
CTFBonesaw( const CTFBonesaw & ) {}
|
|
};
|
|
|
|
#endif // TF_WEAPON_BONESAW_H
|