1#pragma once
2
3#include "Library/Nerve/NerveStateBase.h"
4
5class PlayerConst;
6class PlayerInput;
7class IUsePlayerCollision;
8class PlayerAnimator;
9class PlayerActionSlopeSlideControl;
10
11class PlayerStateSlope : public al::ActorStateBase {
12public:
13 PlayerStateSlope(al::LiveActor* player, const PlayerConst* pConst, const PlayerInput* input,
14 const IUsePlayerCollision* collision, PlayerAnimator* animator);
15
16 void appear() override;
17 void kill() override;
18 bool isEnableCancelSandSink() const;
19 f32 calcSlideSpeed() const;
20
21 void exeSlide();
22
23private:
24 const PlayerConst* mConst;
25 const IUsePlayerCollision* mCollision;
26 PlayerAnimator* mAnimator;
27 PlayerActionSlopeSlideControl* mActionSlopeSlideControl = nullptr;
28 bool mIsForceSlide = false;
29 bool mIsRunningRumbleLoop = false;
30 s32 mTimeInAir = 0;
31 s32 mSlopeForceCounter = 0;
32};
33