120 lines
3.5 KiB
C++
120 lines
3.5 KiB
C++
#ifndef INCLUDED_ASW_ACHIEVEMENTS_H
|
|
#define INCLUDED_ASW_ACHIEVEMENTS_H
|
|
|
|
#include "achievementmgr.h"
|
|
|
|
enum
|
|
{
|
|
ACHIEVEMENT_ASW_KILL_WITHOUT_FRIENDLY_FIRE = 0,
|
|
ACHIEVEMENT_ASW_NO_FRIENDLY_FIRE,
|
|
ACHIEVEMENT_ASW_SHIELDBUG,
|
|
ACHIEVEMENT_ASW_GRENADE_MULTI_KILL,
|
|
ACHIEVEMENT_ASW_ACCURACY,
|
|
ACHIEVEMENT_ASW_NO_DAMAGE_TAKEN,
|
|
ACHIEVEMENT_ASW_EGGS_BEFORE_HATCH,
|
|
ACHIEVEMENT_ASW_GRUB_KILLS,
|
|
ACHIEVEMENT_ASW_MELEE_PARASITE,
|
|
ACHIEVEMENT_ASW_MELEE_KILLS,
|
|
ACHIEVEMENT_ASW_BARREL_KILLS,
|
|
ACHIEVEMENT_ASW_INFESTATION_CURING,
|
|
ACHIEVEMENT_ASW_FAST_WIRE_HACKS,
|
|
ACHIEVEMENT_ASW_FAST_COMPUTER_HACKS,
|
|
ACHIEVEMENT_ASW_GROUP_HEAL,
|
|
ACHIEVEMENT_ASW_GROUP_DAMAGE_AMP,
|
|
ACHIEVEMENT_ASW_FAST_RELOADS_IN_A_ROW,
|
|
ACHIEVEMENT_ASW_FAST_RELOAD,
|
|
ACHIEVEMENT_ASW_ALL_HEALING,
|
|
ACHIEVEMENT_ASW_PROTECT_TECH,
|
|
ACHIEVEMENT_ASW_TECH_SURVIVES,
|
|
ACHIEVEMENT_ASW_STUN_GRENADE,
|
|
ACHIEVEMENT_ASW_WELD_DOOR,
|
|
ACHIEVEMENT_ASW_DODGE_RANGER_SHOT,
|
|
ACHIEVEMENT_ASW_BOOMER_KILL_EARLY,
|
|
ACHIEVEMENT_ASW_UNLOCK_ALL_WEAPONS,
|
|
ACHIEVEMENT_ASW_FREEZE_GRENADE,
|
|
ACHIEVEMENT_ASW_AMMO_RESUPPLY,
|
|
ACHIEVEMENT_ASW_SENTRY_GUN_KILLS,
|
|
ACHIEVEMENT_ASW_RIFLE_KILLS,
|
|
ACHIEVEMENT_ASW_PRIFLE_KILLS,
|
|
ACHIEVEMENT_ASW_AUTOGUN_KILLS,
|
|
ACHIEVEMENT_ASW_SHOTGUN_KILLS,
|
|
ACHIEVEMENT_ASW_VINDICATOR_KILLS,
|
|
ACHIEVEMENT_ASW_PISTOL_KILLS,
|
|
ACHIEVEMENT_ASW_PDW_KILLS,
|
|
ACHIEVEMENT_ASW_TESLA_GUN_KILLS,
|
|
ACHIEVEMENT_ASW_RAILGUN_KILLS,
|
|
ACHIEVEMENT_ASW_FLAMER_KILLS,
|
|
ACHIEVEMENT_ASW_CHAINSAW_KILLS,
|
|
ACHIEVEMENT_ASW_MINIGUN_KILLS,
|
|
ACHIEVEMENT_ASW_SNIPER_RIFLE_KILLS,
|
|
ACHIEVEMENT_ASW_GRENADE_LAUNCHER_KILLS,
|
|
ACHIEVEMENT_ASW_HORNET_KILLS,
|
|
ACHIEVEMENT_ASW_LASER_MINE_KILLS,
|
|
ACHIEVEMENT_ASW_MINE_KILLS,
|
|
ACHIEVEMENT_ASW_EASY_CAMPAIGN,
|
|
ACHIEVEMENT_ASW_NORMAL_CAMPAIGN,
|
|
ACHIEVEMENT_ASW_HARD_CAMPAIGN,
|
|
ACHIEVEMENT_ASW_INSANE_CAMPAIGN,
|
|
ACHIEVEMENT_ASW_KILL_GRIND_1,
|
|
ACHIEVEMENT_ASW_KILL_GRIND_2,
|
|
ACHIEVEMENT_ASW_KILL_GRIND_3,
|
|
ACHIEVEMENT_ASW_KILL_GRIND_4,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_LANDING_BAY,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_DESCENT,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_DEIMA,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_RYDBERG,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_RESIDENTIAL,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_SEWER,
|
|
ACHIEVEMENT_ASW_SPEEDRUN_TIMOR,
|
|
ACHIEVEMENT_ASW_CAMPAIGN_NO_DEATHS,
|
|
ACHIEVEMENT_ASW_MISSION_NO_DEATHS,
|
|
ACHIEVEMENT_ASW_PARA_HAT
|
|
};
|
|
|
|
#define ACH_LISTEN_ALIEN_DEATH_EVENTS 0x1000
|
|
|
|
#ifdef CLIENT_DLL
|
|
|
|
class C_ASW_Marine;
|
|
class CASW_Achievement;
|
|
|
|
class CASW_Achievement_Manager : public CAchievementMgr
|
|
{
|
|
public:
|
|
typedef CAchievementMgr BaseClass;
|
|
|
|
CASW_Achievement_Manager();
|
|
|
|
virtual bool Init();
|
|
virtual void LevelInitPreEntity();
|
|
virtual void FireGameEvent( IGameEvent *event );
|
|
virtual void Shutdown();
|
|
|
|
CUtlVector<CASW_Achievement *> m_vecAlienDeathEventListeners[MAX_SPLITSCREEN_PLAYERS]; // vector of achievements that are listening for alien death events
|
|
};
|
|
|
|
// base class for all Alien Swarm achievements
|
|
|
|
class CASW_Achievement : public CBaseAchievement
|
|
{
|
|
public:
|
|
typedef CBaseAchievement BaseClass;
|
|
|
|
CASW_Achievement();
|
|
|
|
virtual const char *GetIconPath();
|
|
|
|
virtual bool OnAlienDied( int nAlienClass, C_ASW_Marine *pKiller, int nWeaponClass );
|
|
|
|
void SetAlienClassFilter( int nAlienClass ) { m_nAlienClassFilter = nAlienClass; }
|
|
void SetWeaponClassFilter( int nWeaponClass ) { m_nWeaponClassFilter = nWeaponClass; }
|
|
|
|
int m_nAlienClassFilter;
|
|
int m_nWeaponClassFilter;
|
|
};
|
|
|
|
extern CASW_Achievement_Manager g_ASW_AchievementMgr; // global achievement manager for Alien Swarm
|
|
|
|
#endif
|
|
|
|
#endif // INCLUDED_ASW_ACHIEVEMENTS_H
|