//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef DOD_HUD_PLAYERSTATUS_HEALTH_H
#define DOD_HUD_PLAYERSTATUS_HEALTH_H
#ifdef _WIN32
#pragma once
#endif

class C_DODPlayer;

//-----------------------------------------------------------------------------
// Purpose: Health playerclass image (with red transparency)
//-----------------------------------------------------------------------------
class CDoDHudHealthBar : public vgui::ImagePanel
{
	DECLARE_CLASS_SIMPLE( CDoDHudHealthBar, vgui::ImagePanel );

public:
	CDoDHudHealthBar( vgui::Panel *parent, const char *name );
	
	virtual void ApplySchemeSettings( vgui::IScheme *pScheme );

	virtual void OnThink();
	virtual void Paint( void );

	void SetHealthDelegatePlayer( C_DODPlayer *pPlayer );
	C_DODPlayer *GetHealthDelegatePlayer( void );

private:
	float				m_flPercentage;

	int					m_iMaterialIndex;
	Color				m_clrHealthHigh;
	Color 				m_clrHealthMed;
	Color 				m_clrHealthLow;
	Color				m_clrBackground;
	Color				m_clrBorder;

	EHANDLE	m_hHealthDelegatePlayer;
	
	CPanelAnimationVar( float, m_flFirstWarningLevel, "FirstWarning", "0.50" );
	CPanelAnimationVar( float, m_flSecondWarningLevel, "SecondWarning", "0.25" );
};

//-----------------------------------------------------------------------------
// Purpose: Health panel
//-----------------------------------------------------------------------------
class CDoDHudHealth : public vgui::EditablePanel 
{
	DECLARE_CLASS_SIMPLE( CDoDHudHealth, vgui::EditablePanel );

public:
	CDoDHudHealth( vgui::Panel *parent, const char *name );

	virtual void OnThink();
	virtual void OnScreenSizeChanged(int iOldWide, int iOldTall);

	void SetHealthDelegatePlayer( C_DODPlayer *pPlayer );
	C_DODPlayer *GetHealthDelegatePlayer( void );

private:
	int					m_nPrevClass;		// used to store the player's class so we don't have to keep setting the image
	int					m_nPrevTeam;

	CDoDHudHealthBar	*m_pHealthBar;

	vgui::ImagePanel	*m_pClassImage;		// draws the class image and the red "damage taken" part
	vgui::ImagePanel	*m_pClassImageBG;	// draws the class image outline

	EHANDLE	m_hHealthDelegatePlayer;
};	

#endif // DOD_HUD_PLAYERSTATUS_HEALTH_H