Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Projectile shot by city scanner
//
// $Workfile: $
// $Date: $
// $NoKeywords: $
//=============================================================================//
#ifndef GRENADEHOMER_H
#define GRENADEHOMER_H
#ifdef _WIN32
#pragma once
#endif
#include "basegrenade_shared.h"
#include "weapon_rpg.h"
enum HomerRocketTrail_t { HOMER_SMOKE_TRAIL_OFF, // No smoke trail
HOMER_SMOKE_TRAIL_ON, // Smoke trail always on
HOMER_SMOKE_TRAIL_ON_HOMING, // Smoke trail on when homing turned on
HOMER_SMOKE_TRAIL_ALIEN, // Alien colors on smoke trail
};
class CGrenadeHomer : public CBaseGrenade { public: DECLARE_CLASS( CGrenadeHomer, CBaseGrenade );
static CGrenadeHomer* CreateGrenadeHomer( string_t nModelName, string_t sFlySound, const Vector &vecOrigin, const QAngle &vecAngles, edict_t *pentOwner );
virtual void Precache( void ); void Spawn( void ); void Launch( CBaseEntity *pOwner, CBaseEntity *pTarget, const Vector &vInitVelocity, float m_flHomingSpeed, float fFallSpeed, int nRocketTrailType); void SetSpin(float flSpinMagnitude, float flSpinSpeed); void SetHoming(float flStrength, float flDelay, float flRampUp, float flDuration, float flRampDown);
CHandle<RocketTrail> m_hRocketTrail[3];
private: string_t m_sFlySound; float m_flNextFlySoundTime;
// Input Parameters
float m_flHomingStrength; float m_flHomingDelay; // How long before homing starts
float m_flHomingRampUp; // How long it take to reach full strength
float m_flHomingDuration; // How long does homing last
float m_flHomingRampDown; // How long to reach no homing again
float m_flHomingSpeed; float m_flSpinMagnitude; float m_flSpinSpeed; int m_nRocketTrailType; int m_spriteTexture;
// In flight data
float m_flHomingLaunchTime; float m_flHomingStartTime; float m_flHomingEndTime; float m_flSpinOffset; // For randomization
EHANDLE m_hTarget;
void AimThink( void ); void StartRocketTrail(void); void UpdateRocketTrail(float fScale); void StopRocketTrail(void); void PlayFlySound( void ); void GrenadeHomerTouch( CBaseEntity *pOther ); void Event_Killed( const CTakeDamageInfo &info ); int OnTakeDamage( const CTakeDamageInfo &info );
public: void EXPORT Detonate(void); CGrenadeHomer(void);
DECLARE_DATADESC(); };
#endif //GRENADEHOMER_H
|