#pragma once #include "EtcStatus.h" class RecoverStatus : public EtcStatus { public: RecoverStatus() : regen_hp_(0), regen_mp_(0), use_pet_(false) #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE , fp_maintain_time_(0) #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE { } ~RecoverStatus() { } virtual void Init(Character* owner, WORD state_id, int application_time, int period); virtual void Start(); virtual void Execute(); virtual void SetRegenInfo(int regen_hp = 0, int regen_mp = 0) { regen_hp_ = regen_hp; regen_mp_ = regen_mp; } #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE virtual void SetFPMaintainTime(int maintain_time) { fp_maintain_time_ = maintain_time; } #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE virtual BOOL CanRemove() { return IsUseItem() ? TRUE : FALSE; } void SetUsePet(const bool use_pet) { use_pet_ = use_pet; } private: bool IsUsePet() const { return use_pet_; } bool IsHPRecover() const { switch (GetStateID()) { case eCHAR_STATE_ETC_AUTO_RECOVER_HPMP: case eCHAR_STATE_ETC_AUTO_RECOVER_HP: case eCHAR_STATE_ETC_ITEM_RECOVER_HP: case eCHAR_STATE_ETC_ITEM_RECOVER_HP_INSTANTLY: return true; } return false; } bool IsUseItem() const { switch (GetStateID()) { case eCHAR_STATE_ETC_ITEM_RECOVER_HP: case eCHAR_STATE_ETC_ITEM_RECOVER_HP_INSTANTLY: case eCHAR_STATE_ETC_ITEM_RECOVER_MP: return true; } return false; } bool IsMPRecover() const { switch (GetStateID()) { case eCHAR_STATE_ETC_AUTO_RECOVER_HPMP: case eCHAR_STATE_ETC_AUTO_RECOVER_MP: case eCHAR_STATE_ETC_ITEM_RECOVER_MP: return true; } return false; } bool IsSDRecover() const { switch (GetStateID()) { case eCHAR_STATE_ETC_AUTO_RECOVER_SD: return true; } return false; } bool IsIgnoreReserveHP() const; #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE bool IsFPRecover() const { switch (GetStateID()) { case eCHAR_STATE_ETC_AUTO_RECOVER_FP: return true; } return false; } #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE private: int regen_hp_; int regen_mp_; bool use_pet_; #ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE bool mode_decrease_fp_; // FP°¨¼Ò»óÅ¿©ºÎ Ç÷¡±× int fp_maintain_time_; // FP°¡ °¨¼ÒµÇÁö¾Ê°í À¯ÁöµÇ´Â ½Ã°£ int status_period_; // ȸº¹(°¨¼Ò)ÁÖ±â int status_execute_counter_; // ÇØ´ç »óÅÂÀÇ Execute()ÇÔ¼ö°¡ È£ÃâµÈ Ƚ¼ö #endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE };