You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.4 KiB
122 lines
3.4 KiB
#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<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
|