Files
2026-06-01 12:46:52 +02:00

99 lines
2.4 KiB
C++

#pragma once
#include "SStateMachine.h"
class SPlayerStateMachine : public SObjectStateMachine
{
public:
SPlayerStateMachine() { }
virtual ~SPlayerStateMachine() { }
/// 처리 안된 사용자 입력
virtual void PendingInput( struct PENDING_INPUT_STATE* pPendinginputstate ) {}
/// 사용자 입력(키보드, 마우스)
virtual void OnInput( class SGameInput * pInput ) {}
/// 사용자 입력 응답(Server)
virtual void OnNetInput( struct SGameMessage * pMsg );
static void SetAutoForceChipAttack( bool bUse )
{
s_bAutoForceChipAttack = bUse;
}
protected:
virtual void SendServerReq( SObjectState::ID state, const SStateInfo &infoState ) {}
SObjectState::ID m_idState;
SStateInfo m_infoState;
static bool s_bAutoForceChipAttack;
};
class SLocalPlayerStateMachine : public SPlayerStateMachine
{
public:
SLocalPlayerStateMachine();
virtual ~SLocalPlayerStateMachine() { }
/// 처리 안된 사용자 입력
virtual void PendingInput( struct PENDING_INPUT_STATE* pPendinginputstate );
/// 사용자 입력(키보드, 마우스)
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* CreateAttackEnd();
SObjectState* CreateMoveState();
SObjectState* CreateChaseState();
SObjectState* CreateThrowState();
SObjectState* CreateSitState();
SObjectState* CreateStandUpState();
SObjectState* CreateTakeItemState();
SObjectState* CreateUseItemState();
SObjectState* CreateCastState();
SObjectState* CreateFireState();
SObjectState* CreateSkillEndState();
SObjectState* CreateCastCancelState();
SObjectState* CreateAiMingState();
SObjectState* CreateShootingState();
SObjectState* CreateMountState();
SObjectState* CreateUnMountState();
};
/// 다른 플레이어~ 암것도 없고, 전투 대기 상태만 있다.
class SOtherPlayerStateMachine : public SPlayerStateMachine
{
public:
SOtherPlayerStateMachine(){}
virtual ~SOtherPlayerStateMachine() { }
/// 사용자 입력 응답(Server)
virtual void OnNetInput( struct SGameMessage * pMsg );
};
/// Npc
class SNpcStateMachine : public SPlayerStateMachine
{
public:
SNpcStateMachine() {}
virtual ~SNpcStateMachine() {}
virtual void OnNetInput( struct SGameMessage * pMsg );
};