mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-14 12:46:58 +00:00
1
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
|
||||
#include "cbase.h"
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
|
||||
#include "achievementmgr.h"
|
||||
#include "baseachievement.h"
|
||||
#include "c_tf_player.h"
|
||||
#include "c_tf_playerresource.h"
|
||||
#include "tf_gamerules.h"
|
||||
#include "achievements_tf.h"
|
||||
|
||||
//======================================================================================================================================
|
||||
// REPLAY ACHIEVEMENTS
|
||||
//======================================================================================================================================
|
||||
|
||||
class CReplayAchievement : public CBaseTFAchievement
|
||||
{
|
||||
public:
|
||||
virtual bool AlwaysListen() { return true; }
|
||||
virtual bool LocalPlayerCanEarn() { return true; }
|
||||
virtual bool AlwaysEnabled() { return true; }
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
class CAchievementTFReplay_SaveReplay : public CReplayAchievement
|
||||
{
|
||||
public:
|
||||
void Init()
|
||||
{
|
||||
SetFlags( ACH_SAVE_GLOBAL );
|
||||
ListenForGameEvent( "replay_saved" );
|
||||
SetGoal( 1 );
|
||||
}
|
||||
|
||||
virtual void FireGameEvent_Internal( IGameEvent *event )
|
||||
{
|
||||
if ( FStrEq( event->GetName(), "replay_saved" ) )
|
||||
{
|
||||
IncrementCount();
|
||||
}
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_SaveReplay, ACHIEVEMENT_TF_REPLAY_SAVE_REPLAY, "TF_REPLAY_SAVE_REPLAY", 5 );
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
class CAchievementTFReplay_PerformanceMode : public CReplayAchievement
|
||||
{
|
||||
void Init()
|
||||
{
|
||||
SetFlags( ACH_SAVE_GLOBAL );
|
||||
ListenForGameEvent( "entered_performance_mode" );
|
||||
SetGoal( 1 );
|
||||
}
|
||||
|
||||
virtual void FireGameEvent_Internal( IGameEvent *event )
|
||||
{
|
||||
if ( FStrEq( event->GetName(), "entered_performance_mode" ) )
|
||||
{
|
||||
IncrementCount();
|
||||
}
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_PerformanceMode, ACHIEVEMENT_TF_REPLAY_PERFORMANCE_MODE, "TF_REPLAY_PERFORMANCE_MODE", 5 );
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
class CAchievementTFReplay_BrowseReplays : public CReplayAchievement
|
||||
{
|
||||
void Init()
|
||||
{
|
||||
SetFlags( ACH_SAVE_GLOBAL );
|
||||
ListenForGameEvent( "browse_replays" );
|
||||
SetGoal( 1 );
|
||||
}
|
||||
|
||||
virtual void FireGameEvent_Internal( IGameEvent *event )
|
||||
{
|
||||
if ( FStrEq( event->GetName(), "browse_replays" ) )
|
||||
{
|
||||
IncrementCount();
|
||||
}
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_BrowseReplays, ACHIEVEMENT_TF_REPLAY_BROWSE_REPLAYS, "TF_REPLAY_BROWSE_REPLAYS", 5 );
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
class CAchievementTFReplay_EditTime : public CReplayAchievement
|
||||
{
|
||||
void Init()
|
||||
{
|
||||
SetFlags( ACH_SAVE_GLOBAL );
|
||||
SetGoal( 1 );
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_EditTime, ACHIEVEMENT_TF_REPLAY_EDIT_TIME, "TF_REPLAY_EDIT_TIME", 5 );
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class CAchievementTFReplay_YouTube_Views_Tier : public CReplayAchievement
|
||||
{
|
||||
public:
|
||||
void Init()
|
||||
{
|
||||
SetFlags( ACH_SAVE_GLOBAL );
|
||||
ListenForGameEvent( "replay_youtube_stats" );
|
||||
SetStoreProgressInSteam( true );
|
||||
SetStat( "TF_REPLAY_YOUTUBE_VIEWS" );
|
||||
}
|
||||
|
||||
virtual void FireGameEvent_Internal( IGameEvent *event )
|
||||
{
|
||||
if ( FStrEq( event->GetName(), "replay_youtube_stats" ) )
|
||||
{
|
||||
int iCurrentCount = GetCount();
|
||||
int iNewCount = event->GetInt( "views" );
|
||||
if ( iNewCount > iCurrentCount )
|
||||
{
|
||||
IncrementCount( iNewCount - iCurrentCount );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
virtual bool ShouldShowProgressNotification() { return false; }
|
||||
};
|
||||
|
||||
class CAchievementTFReplay_YouTube_Views_Tier1 : public CAchievementTFReplay_YouTube_Views_Tier
|
||||
{
|
||||
DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier );
|
||||
public:
|
||||
void Init()
|
||||
{
|
||||
BaseClass::Init();
|
||||
|
||||
SetGoal( 100 );
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Tier1, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_TIER1, "TF_REPLAY_YOUTUBE_VIEWS_TIER1", 5 );
|
||||
|
||||
class CAchievementTFReplay_YouTube_Views_Tier2 : public CAchievementTFReplay_YouTube_Views_Tier
|
||||
{
|
||||
DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier );
|
||||
public:
|
||||
void Init()
|
||||
{
|
||||
BaseClass::Init();
|
||||
SetGoal( 1000 );
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Tier2, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_TIER2, "TF_REPLAY_YOUTUBE_VIEWS_TIER2", 5 );
|
||||
|
||||
class CAchievementTFReplay_YouTube_Views_Tier3 : public CAchievementTFReplay_YouTube_Views_Tier
|
||||
{
|
||||
DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier );
|
||||
public:
|
||||
void Init()
|
||||
{
|
||||
BaseClass::Init();
|
||||
SetGoal( 10000 );
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Tier3, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_TIER3, "TF_REPLAY_YOUTUBE_VIEWS_TIER3", 5 );
|
||||
|
||||
class CAchievementTFReplay_YouTube_Views_Highest : public CAchievementTFReplay_YouTube_Views_Tier
|
||||
{
|
||||
DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier );
|
||||
public:
|
||||
void Init()
|
||||
{
|
||||
BaseClass::Init();
|
||||
SetGoal( 100000 );
|
||||
}
|
||||
};
|
||||
DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Highest, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_HIGHEST, "TF_REPLAY_YOUTUBE_VIEWS_HIGHEST", 5 );
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#endif // CLIENT_DLL
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user