#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, ACHIEVEMENT_ASW_IMBA_CAMPAIGN, ACHIEVEMENT_ASW_HARDCORE, }; #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 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