Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.
 
 
 
 
 
 

80 lines
1.7 KiB

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Tripmine
//
// $Workfile: $
// $Date: $
// $NoKeywords: $
//=============================================================================//
#ifndef TRIPWIRE_H
#define TRIPWIRE_H
#ifdef _WIN32
#pragma once
#endif
#include "basegrenade_shared.h"
class CRopeKeyframe;
// ####################################################################
// CTripwireHook
//
// This is what the tripwire shoots out at the end of the rope
// ####################################################################
class CTripwireHook : public CBaseAnimating
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( CTripwireHook, CBaseAnimating );
EHANDLE m_hGrenade;
bool m_bAttached;
void Spawn( void );
void Precache( void );
bool CreateVPhysics( void );
void EndTouch( CBaseEntity *pOther );
void SetVelocity( const Vector &velocity, const AngularImpulse &angVelocity );
};
class CTripwireGrenade : public CBaseGrenade
{
public:
DECLARE_CLASS( CTripwireGrenade, CBaseGrenade );
CTripwireGrenade();
void Spawn( void );
void Precache( void );
int OnTakeDamage_Alive( const CTakeDamageInfo &info );
void WarningThink( void );
void PowerupThink( void );
void RopeBreakThink( void );
void FireThink( void );
void Event_Killed( const CTakeDamageInfo &info );
void Attach( void );
void MakeRope( void );
void BreakRope( void );
void ShakeRope( void );
void FireMissile(const Vector &vTargetPos);
private:
float m_flPowerUp;
Vector m_vecDir;
int m_nMissileCount;
Vector m_vTargetPos;
Vector m_vTargetOffset;
CRopeKeyframe* m_pRope;
CTripwireHook* m_pHook;
DECLARE_DATADESC();
};
#endif //TRIPWIRE_H