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.
45 lines
953 B
45 lines
953 B
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
#ifndef FUNFACTMGR_H |
|
#define FUNFACTMGR_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "GameEventListener.h" |
|
#include "funfact_cs.h" |
|
#include "utlmap.h" |
|
|
|
class FunFactEvaluator; |
|
|
|
class CCSFunFactMgr : public CAutoGameSystemPerFrame, public CGameEventListener |
|
{ |
|
public: |
|
CCSFunFactMgr(); |
|
~CCSFunFactMgr(); |
|
|
|
virtual bool Init(); |
|
virtual void Shutdown(); |
|
virtual void Update( float frametime ); |
|
|
|
bool GetRoundEndFunFact( int iWinningTeam, int iRoundResult, FunFact& funfact ); |
|
|
|
protected: |
|
float ScoreFunFact( const FunFact& funfact ); |
|
void FireGameEvent( IGameEvent *event ); |
|
|
|
private: |
|
|
|
float m_playerCooldown[MAX_PLAYERS]; // Weights for all players. Updated every round |
|
|
|
struct FunFactDatabaseEntry |
|
{ |
|
const FunFactEvaluator* pEvaluator; |
|
int iOccurrences; |
|
float fCooldown; |
|
}; |
|
CUtlMap<int, FunFactDatabaseEntry> m_funFactDatabase; |
|
int m_numRounds; |
|
}; |
|
|
|
#endif |
|
|
|
|