mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-09-01 06:59:20 +00:00
upload "kind" alien swarm
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
#ifndef _INCLUDED_ASW_BASE_SPAWNER_H
|
||||
#define _INCLUDED_ASW_BASE_SPAWNER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "cbase.h"
|
||||
#include "iasw_spawnable_npc.h"
|
||||
#include "asw_shareddefs.h"
|
||||
|
||||
class CASW_Alien;
|
||||
class CASW_Buzzer;
|
||||
class IASW_Spawnable_NPC;
|
||||
|
||||
//===============================================
|
||||
// Base alien spawner
|
||||
//===============================================
|
||||
class CASW_Base_Spawner : public CBaseEntity
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CASW_Base_Spawner, CBaseEntity );
|
||||
DECLARE_DATADESC();
|
||||
|
||||
CASW_Base_Spawner();
|
||||
virtual ~CASW_Base_Spawner();
|
||||
|
||||
virtual void Spawn();
|
||||
virtual void Precache();
|
||||
|
||||
virtual IASW_Spawnable_NPC* SpawnAlien( const char *szAlienClassName, const Vector &vecHullMins, const Vector &vecHullMaxs );
|
||||
void RemoveObstructingProps( CBaseEntity *pChild );
|
||||
virtual bool CanSpawn( const Vector &vecHullMins, const Vector &vecHullMaxs );
|
||||
CBaseEntity* GetOrderTarget();
|
||||
bool MoveSpawnableTo(IASW_Spawnable_NPC* pAlien, CBaseEntity* pGoalEnt, bool bIgnoreMarines);
|
||||
|
||||
virtual void AlienKilled( CBaseEntity *pVictim ) { }
|
||||
|
||||
CBaseEntity* GetAlienOrderTarget();
|
||||
|
||||
bool IsValidOnThisSkillLevel();
|
||||
bool HasRecentlySpawned( float flRecent = 1.0f );
|
||||
bool IsEnabled() { return m_bEnabled; }
|
||||
|
||||
// inputs
|
||||
virtual void InputEnable( inputdata_t &inputdata );
|
||||
virtual void InputDisable( inputdata_t &inputdata );
|
||||
virtual void InputToggleEnabled( inputdata_t &inputdata );
|
||||
|
||||
protected:
|
||||
// spawn if a marine is inside this radius or not?
|
||||
bool m_bSpawnIfMarinesAreNear;
|
||||
float m_flNearDistance;
|
||||
|
||||
// burrowing
|
||||
string_t m_UnburrowIdleActivity;
|
||||
string_t m_UnburrowActivity;
|
||||
bool m_bStartBurrowed;
|
||||
|
||||
// skill level
|
||||
int m_iMinSkillLevel;
|
||||
int m_iMaxSkillLevel;
|
||||
|
||||
// give the alien this order when it spawns
|
||||
AlienOrder_t m_AlienOrders;
|
||||
string_t m_AlienOrderTargetName; // name of our moveto target
|
||||
string_t m_AlienName; // name given to spawned aliens
|
||||
EHANDLE m_hAlienOrderTarget;
|
||||
|
||||
// outputs
|
||||
COutputEvent m_OnSpawned;
|
||||
|
||||
bool m_bLongRangeNPC; // NPC can see twice as far?
|
||||
bool m_bCheckSpawnIsClear;
|
||||
int m_iMoveAsideCount;
|
||||
float m_flLastSpawnTime;
|
||||
|
||||
bool m_bEnabled;
|
||||
};
|
||||
|
||||
#define ASW_SF_ALWAYS_INFINITE 1
|
||||
#define ASW_SF_NO_UBER 2
|
||||
#define ASW_SF_NEVER_SLEEP 4
|
||||
|
||||
#endif /* _INCLUDED_ASW_BASE_SPAWNER_H */
|
||||
Reference in New Issue
Block a user