#ifndef _G_BASE_PLAYER_
#define _G_BASE_PLAYER_

#include <hpllib/object/HPLSprite.h>
#include <vector>

namespace PlayerConsts {
	static const int MAX_STORED_DAMAGE = 999;
}


/** DX版と互換を持つ部分
  */
class GBasePlayer {
public:

//	int		m_nWeaponSetType;
	int		m_nForceID;
	int		m_nMaxAlive;
	bool	m_bIsNaked;
	bool	m_bIsHasMeleeShot;
	
	HPLSprite* m_lpNakedPeseruSprite;	//! はだかんぼうのペセルスプライト
	HPLSprite* m_lpDurandalSprite;		//! デュランダナ用剣スプライト
	HPLSprite* m_lpEvigenWeaponSprite;	//! えびげん用武器スプライト

protected:
	std::vector<HPLSprite*> spriteList;		//! スプライト切り替え用
	float	m_fStoredDamage;

public:
	GBasePlayer();
	~GBasePlayer();
	void setup();
	float addDamage( float fDamage ) {
		return this->setStoredDamage( this->getStoredDamage() + fDamage );
	}
	float getStoredDamage( ) {
		return this->m_fStoredDamage;
	}
	float setStoredDamage( float fStoredDamage ) {
		if( fStoredDamage < 0 ) {
			fStoredDamage = 0;
		}
		if( fStoredDamage > static_cast<float>( PlayerConsts::MAX_STORED_DAMAGE ) ){
			fStoredDamage = static_cast<float>( PlayerConsts::MAX_STORED_DAMAGE );
		}
		this->m_fStoredDamage = fStoredDamage;

		return this->getStoredDamage();
	}
	float resetStoredDamage( ) {
		this->setStoredDamage( 0 );
	}





	/**
		ジャンプ加速中
		真	ジャンプキーによって加速可能
		偽	空中：ジャンプキーを押しても加速されない。
			地上：ジャンプキーを押した場合の処理は他で行う。
	*/
	bool isJumpAccellerable;

};

#endif
