//
// AVP_Multiplayer_PlayerScore.h
//
// Created by JG - 25 July 2008
//
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __AVP_MULTIPLAYER_PLAYERSCORE_H__
#define __AVP_MULTIPLAYER_PLAYERSCORE_H__

class AVP_Multiplayer_PlayerScore
{
public:
	AVP_Multiplayer_PlayerScore(Asura_Guid uPlayerGuid); 
	~AVP_Multiplayer_PlayerScore(); 

	void Reset(void); 

	Asura_Guid		GetOwnerGuid(void) const							{ return m_uPlayerGuid; }

	int				GetIndividualScore(void) const						{ return m_iIndividualScore; }
	void			SetIndividualScore(int iIndividualScore)			{ m_iIndividualScore = iIndividualScore; }

	u_int			GetNumberOfKills(void) const						{ return m_uNumberOfKillsAsAlien 
																				+ m_uNumberOfKillsAsMarine 
																				+ m_uNumberOfKillsAsPredator; }

	u_int			GetNumberOfKillsAsAlien(void) const					{ return m_uNumberOfKillsAsAlien; }
	void			SetNumberOfKillsAsAlien(u_int uNumberOfKills)		{ m_uNumberOfKillsAsAlien = uNumberOfKills; }

	u_int			GetNumberOfKillsAsMarine(void) const 				{ return m_uNumberOfKillsAsMarine; }
	void			SetNumberOfKillsAsMarine(u_int uNumberOfKills)		{ m_uNumberOfKillsAsMarine = uNumberOfKills; }

	u_int			GetNumberOfKillsAsPredator(void) const 				{ return m_uNumberOfKillsAsPredator; }
	void			SetNumberOfKillsAsPredator(u_int uNumberOfKills)	{ m_uNumberOfKillsAsPredator = uNumberOfKills; }

	u_int			GetNumberOfKillAssists(void) const					{ return m_uNumberOfKillAssists; }
	void			SetNumberOfKillAssists(u_int uNumberOfKillAssists)	{ m_uNumberOfKillAssists = uNumberOfKillAssists; }

	u_int			GetNumberOfTimesKilled(void) const					{ return m_uNumberOfTimesKilled; }
	void			SetNumberOfTimesKilled(u_int uNumberOfTimesKilled)	{ m_uNumberOfTimesKilled = uNumberOfTimesKilled; }

	u_int			GetKillStreak(void) const							{ return m_uKillStreak; }
	void			SetKillStreak(u_int uKillStreak)					{ m_uKillStreak = uKillStreak; }

	u_int			GetNumberOfHeadshots(void) const					{ return m_uNumberOfHeadshots; }
	void			SetNumberOfHeadshots(u_int uNumberOfHeadshots)		{ m_uNumberOfHeadshots = uNumberOfHeadshots; }

	u_int			GetNumberOfHeadbites(void) const					{ return m_uNumberOfHeadbites; }
	void			SetNumberOfHeadbites(u_int uNumberOfHeadbites)		{ m_uNumberOfHeadbites = uNumberOfHeadbites; }

	u_int			GetNumberOfTrophies(void) const						{ return m_uNumberOfTrophies; }
	void			SetNumberOfTrophies(u_int uNumberOfTrophies)		{ m_uNumberOfTrophies = uNumberOfTrophies; }

	int				GetTeamOneScore(void) const							{ return m_iTeamOneScore; }
	void			SetTeamOneScore(int iTeamOneScore)					{ m_iTeamOneScore = iTeamOneScore; }

	int				GetTeamTwoScore(void) const							{ return m_iTeamTwoScore; }
	void			SetTeamTwoScore(int iTeamTwoScore)					{ m_iTeamTwoScore = iTeamTwoScore; }

	int				GetTeamThreeScore(void) const						{ return m_iTeamThreeScore; }
	void			SetTeamThreeScore(int iTeamThreeScore)				{ m_iTeamThreeScore = iTeamThreeScore; }

protected:
	// Our owner
	Asura_Guid		m_uPlayerGuid;

	// Score
	int				m_iIndividualScore; 
	u_int			m_uNumberOfKillsAsAlien;
	u_int			m_uNumberOfKillsAsMarine;
	u_int			m_uNumberOfKillsAsPredator;
	u_int			m_uNumberOfKillAssists; 
	u_int			m_uNumberOfTimesKilled;
	u_int			m_uKillStreak; 		
	u_int			m_uNumberOfHeadshots; 
	u_int			m_uNumberOfHeadbites; 
	u_int			m_uNumberOfTrophies; 

	// Strictly speaking not player score but it is copied here 
	// from the server to send it to all players
	int				m_iTeamOneScore; 
	int				m_iTeamTwoScore; 
	int				m_iTeamThreeScore; 


private:
};
#endif//__AVP_MULTIPLAYER_PLAYERSCORE_H__