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.
108 lines
2.7 KiB
108 lines
2.7 KiB
5 years ago
|
//========= 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
|