68 lines
1.7 KiB
C++
68 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include "SStateMachine.h"
|
|
|
|
class SCreatureStateMachine : public SObjectStateMachine
|
|
{
|
|
public:
|
|
SCreatureStateMachine() {}
|
|
virtual ~SCreatureStateMachine() { }
|
|
|
|
/// 사용자 입력(키보드, 마우스)
|
|
virtual void OnInput( class SGameInput * pInput ) {}
|
|
|
|
/// 사용자 입력 응답(Server)
|
|
virtual void OnNetInput( struct SGameMessage * pMsg );
|
|
|
|
protected:
|
|
virtual void SendServerReq( SObjectState::ID state, const SStateInfo &infoState ){}
|
|
|
|
SObjectState::ID m_idState;
|
|
SStateInfo m_infoState;
|
|
};
|
|
|
|
class SLocalCreatureStateMachine : public SCreatureStateMachine
|
|
{
|
|
public:
|
|
SLocalCreatureStateMachine();
|
|
virtual ~SLocalCreatureStateMachine() { }
|
|
|
|
/// 사용자 입력(키보드, 마우스)
|
|
virtual void OnInput( class SGameInput * pInput );
|
|
|
|
/// 사용자 입력 응답(Server)
|
|
virtual void OnNetInput( struct SGameMessage * pMsg );
|
|
|
|
virtual void Process( DWORD dwTime );
|
|
|
|
protected:
|
|
virtual void SendServerReq( SObjectState::ID state, const SStateInfo &infoState );
|
|
|
|
SObjectState* CreateIdleState();
|
|
SObjectState* CreateAttackState();
|
|
SObjectState* CreateAttackEnd();
|
|
SObjectState* CreateMoveState();
|
|
SObjectState* CreateChaseState();
|
|
|
|
SObjectState* CreateCastState();
|
|
SObjectState* CreateFireState();
|
|
SObjectState* CreateSkillEndState();
|
|
SObjectState* CreateCastCancelState();
|
|
|
|
SObjectState* CreateCreatureMount();
|
|
SObjectState* CreateCreatureUnMount();
|
|
|
|
DWORD m_dwMoveUpdateTime;
|
|
};
|
|
|
|
|
|
/// 다른 플레이어~ 암것도 없고, 전투 대기 상태만 있다.
|
|
class SOtherCreatureStateMachine : public SCreatureStateMachine
|
|
{
|
|
public:
|
|
SOtherCreatureStateMachine(){}
|
|
virtual ~SOtherCreatureStateMachine() { }
|
|
|
|
/// 사용자 입력 응답(Server)
|
|
virtual void OnNetInput( struct SGameMessage * pMsg );
|
|
}; |