summaryrefslogtreecommitdiff
path: root/game/server/tf/tf_triggers.h
blob: cf140f5fb1cefe300c8869468a38ae29f0483c5b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//========= 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<EHANDLE>	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