/* ========================================================================== * ÆÄ ÀÏ : SkillObject.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ¹Ú°æÈñ * ÀÛ ¼º ÀÏ : 2007-06-07 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "Skill_Common.h" #include "BaseSkillObject.h" #include "RangeCheck.h" class cBaseObject; enum eOBJECTTYPE; class cPlayerSkillObject : public cBaseSkillObject { public: cPlayerSkillObject(); virtual ~cPlayerSkillObject(); /// SkillmanagerÀÇ ¸Þ¸ð¸®Ç®¿¡¼­ ½ºÅ³ °ø°£À» ÇÒ´ç¹ÞÀ½ void* operator new( size_t n ); /// ¸Þ¸ð¸®Ç®¿¡¼­ ÇÒ´ç ¹ÞÀº ½ºÅ³À» Á¦°ÅÇØÁÜ void operator delete( void* ptr, size_t n ); unsigned char InitPlayerNormalAttack( unsigned long playerIdx, sObject target, unsigned long skillIdx, unsigned char skillStep, unsigned long uniqueIdx ); bool InitPlayerSkill( unsigned long skillIdx, unsigned char skillStep, unsigned long uniqueIdx, cPlayer* pAttacker, cBaseObject* pTarget, unsigned long castingTime ); bool InitPlayerSkillPosition( unsigned long playerIdx, float targetXPos, float targetYPos, unsigned long skillIdx, unsigned char skillStep, unsigned long uniqueIdx, bool casting ); bool InitPlayerMapChange( unsigned long skillIdx, unsigned long uniqueIdx, cPlayer* pAttacker, unsigned long useItemDBIdx, unsigned long castingTime ); bool InitPlayerVehicle( unsigned long skillIdx, unsigned long uniqueIdx, cPlayer* pAttacker, unsigned long useItemIdx, unsigned long castingTime ); bool InitPlayerBlink( unsigned long skillIdx, unsigned long uniqueIdx, cPlayer* pAttacker, NiPoint2 targetPos ); bool InitCashMapChange( unsigned long skillIdx, unsigned long uniqueIdx, cPlayer* pAttacker, unsigned long castingTime, unsigned short mapNum, float x, float y, unsigned long useItemIdx ); bool InitRushAfterSkill( unsigned long skillIdx, unsigned char skillStep, unsigned long uniqueIdx, cPlayer* pAttacker, cBaseObject* pTarget, unsigned long castingTime ); unsigned long GetSkillIdx() { return mSkillIdx; } unsigned char GetSkillSetp() { return mSkillStep; } private: /// ij½ºÆÃ½Ã °ø°ÝÀÚ / Ÿ°Ù °´Ã¼ üũ bool CastingObjectCheck( cBaseObject* pAttacker ); /// ½ºÅ³ ¹ßµ¿½Ã ¼Ò¸ðÇ׸ñ ¼Ò¸ð bool RequireValue( cBaseObject* pAttacker ); /// ¹ß»çü ¸ñÀûÁö ¼³Á¤ bool SetCenterPos(); /// Ÿ°Ù ¼±Åà void TargetSelect( cBaseObject* pAttacker ); /// µ¥¹ÌÁö Àû¿ë void ApplyDamage( cBaseObject* pAttacker ); protected: ///½ºÅ©¸³Æ® »óÀÇ ½ºÅ³´Ü°è unsigned char mSkillStep; cRangeCheck mRangeCheck; cObjectAry mTempDelTargetAry; };