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.
107 lines
2.7 KiB
107 lines
2.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//============================================================================= |
|
|
|
#ifndef TF_DUCKLEADERBOARD_H |
|
#define TF_DUCKLEADERBOARD_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#ifdef CLIENT_DLL |
|
#include "tf_mapinfo.h" |
|
#include "tf_leaderboardpanel.h" |
|
#include "tf_controls.h" |
|
#endif |
|
|
|
extern const char* g_szDuckLeaderboardNames[]; |
|
|
|
#define TF_DUCK_ID "DUCK_ID" |
|
#define DUCK_XP_SCALE 5000 |
|
#define DUCK_XP_WEIGHT_GENERATION 3 |
|
#define DUCK_XP_WEIGHT_OFFENSE 3 |
|
#define DUCK_XP_WEIGHT_DEFENSE 1 |
|
#define DUCK_XP_WEIGHT_OBJECTIVE 3 |
|
#define DUCK_XP_WEIGHT_TEAMMATE 3 |
|
#define DUCK_XP_WEIGHT_BONUS 50 |
|
|
|
|
|
enum EDuckLeaderboardTypes |
|
{ |
|
TF_DUCK_SCORING_OVERALL_RATING = 0, |
|
TF_DUCK_SCORING_PERSONAL_GENERATION, |
|
TF_DUCK_SCORING_PERSONAL_PICKUP_OFFENSE, |
|
TF_DUCK_SCORING_PERSONAL_PICKUP_DEFENDED, |
|
TF_DUCK_SCORING_PERSONAL_PICKUP_OBJECTIVE, |
|
TF_DUCK_SCORING_TEAM_PICKUP_MY_DUCKS, |
|
TF_DUCK_SCORING_PERSONAL_BONUS_PICKUP, |
|
DUCK_NUM_LEADERBOARDS |
|
}; |
|
|
|
enum EDuckEventTypes |
|
{ |
|
DUCK_CREATED = 1, |
|
DUCK_COLLECTED, |
|
}; |
|
|
|
enum EDuckFlags |
|
{ |
|
DUCK_FLAG_OBJECTIVE = 1 << 0, |
|
DUCK_FLAG_BONUS = 1 << 1 |
|
}; |
|
|
|
#ifdef CLIENT_DLL |
|
|
|
class CDucksLeaderboard : public CTFLeaderboardPanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CDucksLeaderboard, CTFLeaderboardPanel ); |
|
public: |
|
CDucksLeaderboard( Panel *parent, const char *panelName, const char *pszDuckLeaderboardname ); |
|
virtual ~CDucksLeaderboard(); |
|
|
|
virtual void ApplySchemeSettings( IScheme *pScheme ) OVERRIDE; |
|
private: |
|
virtual bool UpdateLeaderboards() OVERRIDE; |
|
virtual bool GetLeaderboardData( CUtlVector< LeaderboardEntry_t* >& scores ) OVERRIDE; |
|
|
|
const char *m_pszDuckLeaderboardName; |
|
CTFTextToolTip *m_pToolTip; |
|
vgui::EditablePanel *m_pToolTipEmbeddedPanel; |
|
}; |
|
|
|
|
|
class CDucksLeaderboardManager : public EditablePanel, CGameEventListener |
|
{ |
|
DECLARE_CLASS_SIMPLE( CDucksLeaderboardManager, EditablePanel ); |
|
public: |
|
CDucksLeaderboardManager( Panel *parent, const char *panelName ); |
|
|
|
virtual void ApplySchemeSettings( IScheme *pScheme ) OVERRIDE; |
|
virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE; |
|
virtual void OnCommand( const char *command ) OVERRIDE; |
|
virtual void FireGameEvent( IGameEvent *event ) OVERRIDE; |
|
|
|
virtual void OnThink(); |
|
private: |
|
|
|
void NextPage(); |
|
void PrevPage(); |
|
void ShowPage( int nPage ); |
|
|
|
int m_nCurrentPage; |
|
CUtlVector< EditablePanel* > m_vecLeaderboards; |
|
|
|
CTFTextToolTip *m_pToolTip; |
|
vgui::EditablePanel *m_pToolTipEmbeddedPanel; |
|
vgui::EditablePanel *m_pDimmer; |
|
float m_flFadeStartTime; |
|
|
|
CPanelAnimationVarAliasType( int, m_iScoreStep, "score_step", "0", "proportional_int" ); |
|
}; |
|
|
|
#endif |
|
|
|
#endif // TF_DUCKLEADERBOARD_H
|
|
|