99 lines
2.4 KiB
C++
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 );
|
|
}; |