sqwarmed/sdk_src/game/server/swarm/asw_debrief_stats.h

140 lines
7.0 KiB
C++

#ifndef _INCLUDED_ASW_DEBRIEF_STATS_H
#define _INCLUDED_ASW_DEBRIEF_STATS_H
#ifdef _WIN32
#pragma once
#endif
#include "asw_shareddefs.h"
// this class networks marine and team stats to show to players during the debriefing
class CASW_Debrief_Stats : public CBaseEntity
{
public:
DECLARE_CLASS( CASW_Debrief_Stats, CBaseEntity );
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CASW_Debrief_Stats();
virtual ~CASW_Debrief_Stats();
void Spawn( void );
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo );
int UpdateTransmitState();
int GetSkillPointsAwarded(int iProfileIndex);
int GetKills(int iMarineIndex) { return m_iKills[iMarineIndex]; }
float GetAccuracy(int iMarineIndex) { return m_fAccuracy[iMarineIndex]; }
int GetFriendlyFire(int iMarineIndex) { return m_iFF[iMarineIndex]; }
int GetDamageTaken(int iMarineIndex) { return m_iDamage[iMarineIndex]; }
int GetShotsFired(int iMarineIndex) { return m_iShotsFired[iMarineIndex]; }
int GetShotsHit(int iMarineIndex) { return m_iShotsHit[iMarineIndex]; }
int GetAliensBurned(int iMarineIndex) { return m_iAliensBurned[iMarineIndex]; }
int GetHealthHealed(int iMarineIndex) { return m_iHealthHealed[iMarineIndex]; }
int GetFastHacks(int iMarineIndex) { return m_iFastHacks[iMarineIndex]; }
bool IsWounded(int iMarineIndex) { return (m_iWounded[iMarineIndex] > 0); }
int GetStartingPrimaryEquip( int iMarineIndex ) { return m_iStartingEquip0[iMarineIndex]; }
int GetStartingSecondaryEquip( int iMarineIndex ) { return m_iStartingEquip1[iMarineIndex]; }
int GetStartingExtraEquip( int iMarineIndex ) { return m_iStartingEquip2[iMarineIndex]; }
int GetTotalKills() { return m_iTotalKills; }
float GetTimeTaken() { return m_fTimeTaken; }
int GetBestKills() { return m_iBestKills; }
float GetBestTime() { return m_fBestTimeTaken; }
int GetSpeedrunTime() { return m_iSpeedrunTime; }
void SetWeaponStats( int nMarineIndex, int nWeaponIndex, int nWeaponClass, int nDamage, int nFFDamage, int nShotsFired, int nShotsHit, int nKills );
// per marine
CNetworkArray( int, m_iKills, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( float, m_fAccuracy, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iFF, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iDamage, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iShotsFired, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iShotsHit, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iWounded, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iAliensBurned, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iHealthHealed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iFastHacks, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iSkillPointsAwarded, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iStartingEquip0, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iStartingEquip1, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iStartingEquip2, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iAmmoDeployed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iSentryGunsDeployed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iSentryFlamerDeployed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iSentryFreezeDeployed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iSentryCannonDeployed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iMedkitsUsed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iFlaresUsed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iAdrenalineUsed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iTeslaTrapsDeployed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iFreezeGrenadesThrown, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iElectricArmorUsed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iHealGunHeals, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iHealBeaconHeals, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iHealGunHeals_Self, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iHealBeaconHeals_Self, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iDamageAmpsUsed, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( int, m_iHealBeaconsDeployed, ASW_MAX_MARINE_RESOURCES );
// Weapon stats for the marine (8 weapons max)
CNetworkArray( unsigned int, m_iWeaponClassAndKills0, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF0, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit0, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills1, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF1, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit1, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills2, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF2, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit2, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills3, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF3, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit3, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills4, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF4, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit4, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills5, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF5, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit5, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills6, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF6, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit6, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iWeaponClassAndKills7, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iDamageAndFF7, ASW_MAX_MARINE_RESOURCES );
CNetworkArray( unsigned int, m_iShotsFiredAndHit7, ASW_MAX_MARINE_RESOURCES );
// for the team
CNetworkVar( float, m_fTimeTaken );
CNetworkVar( int, m_iTotalKills );
CNetworkVar( int, m_iEggKills );
CNetworkVar( int, m_iParasiteKills );
CNetworkVar( int, m_iDroneKills );
CNetworkVar( int, m_iShieldbugKills );
// debrief text
CNetworkString( m_DebriefText1, 255 );
CNetworkString( m_DebriefText2, 255 );
CNetworkString( m_DebriefText3, 255 );
CNetworkVar( bool, m_bJustUnlockedCarnage );
CNetworkVar( bool, m_bJustUnlockedUber );
CNetworkVar( bool, m_bJustUnlockedHardcore );
CNetworkVar( bool, m_bBeatSpeedrunTime );
CNetworkVar( float, m_fBestTimeTaken );
CNetworkVar( int, m_iBestKills );
CNetworkVar( int, m_iSpeedrunTime );
};
CASW_Debrief_Stats* GetDebriefStats();
#endif /* _INCLUDED_ASW_DEBRIEF_STATS_H */