/* ========================================================================== * ÆÄ ÀÏ : DuelObject.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ¹Ú°æÈñ * ÀÛ ¼º ÀÏ : 2008-04-23 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "RangeCheck.h" enum eDUEL_PROCESS { eDUELPROCESS_FIGHT_COUNT = 0, eDUELPROCESS_FIGHT, eDUELPROCESS_FIGHT_END, eDUELPROCESS_END, }; class cDuelObject { public: cDuelObject(); virtual ~cDuelObject(); /// DuelmanagerÀÇ ¸Þ¸ð¸®Ç®¿¡¼­ °´Ã¼ °ø°£À» ÇÒ´ç¹ÞÀ½ void* operator new( size_t n ); /// ¸Þ¸ð¸®Ç®¿¡¼­ ÇÒ´ç ¹ÞÀº °´Ã¼¸¦ Á¦°ÅÇØÁÜ void operator delete( void* ptr, size_t n ); bool Init( unsigned long duelIdx, unsigned long attackerIdx, unsigned long targetIdx ); void Process( unsigned long elapsedTime, unsigned long accumTime ); unsigned long GetAttackerIdx() { return mAttackerIdx; } unsigned long GetTargetIdx() { return mTargetIdx; } NiPoint2 GetCenterPos() { return mCenterPos; } unsigned long GetDuelProcess() { return mDuelProcess; } void LastAttack( unsigned long dieIdx ); void FightEnd( unsigned long dieIdx ); private: void FightStart(); void FightProcess( unsigned long elapsedTime, unsigned long accumTime ); private: unsigned long mDuelIdx; /// °íÀ¯ ¹øÈ£ unsigned long mAttackerIdx; /// °áÅõÀÚ wchar_t mAttackerName[MAX_NAME_BUFFER_SIZE]; /// À̸§ unsigned long mTargetIdx; wchar_t mTargetName[MAX_NAME_BUFFER_SIZE]; eDUEL_PROCESS mDuelProcess; /// ÇÁ·Î¼¼½º ÁøÇà»óÅ unsigned long mProcessWaitTime; /// ÇÁ·Î¼¼½º ´ë±â ½Ã°£ NiPoint2 mCenterPos; /// °áÅõ Áß½ÉÁ¡ unsigned long mDelayTime; /// ÇÁ·Î¼¼½º ºÎÇÏ ¹æÁö cRangeCheck mRangeCheck; /// °Å¸® üũ bool mAttacerRangeIn; /// Ç÷¹ÀÌ¾î °áÅõ ¹üÀ§ in/out À¯¹« bool mTargetRangeIn; unsigned long mAttackerOutTime; /// Ç÷¹ÀÌ¾î °Å¸® ¹ÛÀ¸·Î ³ª°£ ½Ã°£ ±â·Ï unsigned long mTargetOutTime; unsigned long mDieIdx; };