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

59 lines
1.5 KiB
C++

#pragma once
#include "SStateMachine.h"
class SMonsterStateMachine : public SObjectStateMachine
{
public:
SMonsterStateMachine() {}
virtual ~SMonsterStateMachine() { }
/// 사용자 입력(키보드, 마우스)
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 SLocalMonsterStateMachine : public SMonsterStateMachine
{
public:
SLocalMonsterStateMachine();
virtual ~SLocalMonsterStateMachine() { }
/// 사용자 입력(키보드, 마우스)
virtual void OnInput( class SGameInput * pInput );
/// 사용자 입력 응답(Server)
virtual void OnNetInput( struct SGameMessage * pMsg );
protected:
virtual void SendServerReq( SObjectState::ID state, const SStateInfo &infoState );
SObjectState* CreateIdleState();
SObjectState* CreateAttackState();
SObjectState* CreateMoveState();
SObjectState* CreateChaseState();
SObjectState* CreateCastState();
SObjectState* CreateCastCancelState();
SObjectState* CreateFireState();
SObjectState* CreateSkillEndState();
};
/// 다른 플레이어~ 암것도 없고, 전투 대기 상태만 있다.
class SOtherMonsterStateMachine : public SMonsterStateMachine
{
public:
SOtherMonsterStateMachine(){}
virtual ~SOtherMonsterStateMachine() { }
/// 사용자 입력 응답(Server)
virtual void OnNetInput( struct SGameMessage * pMsg );
};