sqwarmed/sdk_src/game/shared/swarm/asw_achievements.h

120 lines
3.5 KiB
C
Raw Normal View History

2024-08-29 19:18:30 -04:00
#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