#pragma once // »óÅ ÀÌ»óÀ̶ó´øÁö ±âŸ µîµîÀÇ Ã³¸®ÇØ¾ß ÇÏ´Â »óȲµéÀÇ Ãß»óÈ­ class IDnSkillProcessor { public: //// »óÅ ÀÌ»ó Àû¿ë Ÿ°Ù¿¡ µû¸¥ ºÐ·ù //enum //{ // STATE_EFFECT_SELF, // STATE_EFFECT_TARGET, //}; enum { PLAY_ANI, PARTIAL_PLAY_ANI, CHANGE_PROJECTILE, DIVIDE_STATE_EFFECT_ARG, IMPACT_BLOW, AURA, CHANGE_ACTIONSTR, RANGE_STATE_EFFECT, APPLY_SE_WHEN_ACTIONSET_ENABLED, // ChangeActionSet »óÅÂÈ¿°ú¿¡ ÀÇÇØ ActionProcessor °¡ Ȱ¼ºÈ­ µÉ ¶§¸¸ ½ºÅ³¿¡ ÀÖ´Â »óÅÂÈ¿°úµéÀÌ Àû¿ëµÇµµ·Ï ó¸®. (#21052) APPLY_SE_WHEN_TARGET_NORMAL_HIT, // ÆòŸ·Î ÇÇ°ÝµÈ ´ë»ó¿¡°Ô ÀÏÁ¤ È®·ü·Î ½ºÅ³ÀÇ Target À¸·Î ÁöÁ¤µÈ »óÅÂÈ¿°úµéÀ» ºÎ¿©ÇÏ´Â ¹ßÇöŸÀÔ. ÇöÀç ¾ÆÀÌÅÛ Á¢µÎ¾î ½Ã½ºÅÛ¿¡¼­¸¸ ¾²ÀÓ. (#23818) CALL_MY_SUMMONED_MONSTER, // ÀÚ½ÅÀÌ ¼ÒȯÇÑ ¸ó½ºÅ͸¦ ¼ÒȯÇÏ´Â ½ºÅ³. CHANGE_ACTIONSTR_BY_BUBBLE, // ¹öºí °¹¼ö¿¡ µû¶ó ½ºÅ³ ¾×¼ÇÀÌ º¯°æµÈ´Ù. STATE_EFFECT_APPLY_ONOFF_BY_BUBBLE, // ¹öºí °¹¼ö¿¡ µû¶ó À¯È¿ÇÑ »óÅÂÈ¿°ú À妽º ¼³Á¤. PLAY_PET_ANI, // ÆÖÀÇ ¾Ö´Ï¸ÞÀ̼ÇÀ» Àç»ý CHECK_KEY= 16, // COUNT, }; protected: DnActorHandle m_hHasActor; DnSkillHandle m_hParentSkill; float m_fTimeLength; int m_iType; protected: IDnSkillProcessor( DnActorHandle hActor ); public: IDnSkillProcessor( void ) : m_fTimeLength( 0.0f ), m_iType( 0 ) {}; virtual ~IDnSkillProcessor( void ); virtual void SetHasActor( DnActorHandle hActor ) { m_hHasActor = hActor; }; virtual void SetParentSkill( DnSkillHandle hSkill ) { m_hParentSkill = hSkill; }; virtual void OnBegin( LOCAL_TIME LocalTime, float fDelta, DnSkillHandle hParentSkill ) = 0; virtual void Process( LOCAL_TIME LocalTime, float fDelta ) = 0; virtual void OnEnd( LOCAL_TIME LocalTime, float fDelta ) = 0; // ÇÁ·Î¼¼½ÌÀÌ ³¡³µ´ÂÁö, ±âº»ÀûÀÎ Äõ¸® ÇÔ¼ö virtual bool IsFinished( void ) { return (m_fTimeLength <= 0.0f); }; virtual int GetNumArgument( void ) = 0; virtual void CopyFrom( IDnSkillProcessor* pProcessor ) {}; int GetType( void ) { return m_iType; }; // static factory static IDnSkillProcessor* Create( DnActorHandle hActor, int iProcessorIndex, int iSkillLevelTableID, /*IN OUT*/ int* pIParamOffset, /*IN OUT*/ set& vlUseActions ); public: virtual bool CheckAnimation() { return true; } };