//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef TF_TRIGGERS_H #define TF_TRIGGERS_H #ifdef _WIN32 #pragma once #endif #include "triggers.h" //----------------------------------------------------------------------------- // Purpose: Puts anything that touches the trigger into loser state. //----------------------------------------------------------------------------- class CTriggerStun : public CBaseTrigger { public: CTriggerStun() { } DECLARE_CLASS( CTriggerStun, CBaseTrigger ); void Spawn( void ); void StunThink( void ); void Touch( CBaseEntity *pOther ); void EndTouch( CBaseEntity *pOther ); bool StunEntity( CBaseEntity *pOther ); int StunAllTouchers( float dt ); DECLARE_DATADESC(); float m_flTriggerDelay; float m_flStunDuration; float m_flMoveSpeedReduction; int m_iStunType; bool m_bStunEffects; // Outputs COutputEvent m_OnStunPlayer; float m_flLastStunTime; CUtlVector m_stunEntities; }; //----------------------------------------------------------------------------- // Purpose: Trigger that allows the map-maker to force the spawn time of players that die inside //----------------------------------------------------------------------------- DECLARE_AUTO_LIST( ITriggerPlayerRespawnOverride ); class CTriggerPlayerRespawnOverride : public CTriggerMultiple, public ITriggerPlayerRespawnOverride { public: DECLARE_DATADESC(); DECLARE_CLASS( CTriggerPlayerRespawnOverride, CTriggerMultiple ); DECLARE_AUTO_LIST( ITriggerPlayerRespawnOverride ); void InputSetRespawnTime( inputdata_t &inputdata ) { m_flRespawnTime = inputdata.value.Float(); } void InputSetRespawnName( inputdata_t &inputdata ) { m_strRespawnEnt = inputdata.value.StringID(); } float GetRespawnTime( void ) { return m_flRespawnTime; } string_t GetRespawnName( void ) { return m_strRespawnEnt; } private: float m_flRespawnTime; string_t m_strRespawnEnt; }; #endif // TF_TRIGGERS_H