Files
Leviathan/Client/Game/game/Player/SCreatureStateMachine.h
T
2026-06-01 12:46:52 +02:00

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 );
};