1#include "Player/PlayerJudgeStartRolling.h"
2
3#include "Player/IPlayerModelChanger.h"
4#include "Player/PlayerCarryKeeper.h"
5#include "Player/PlayerInput.h"
6#include "Util/PlayerCollisionUtil.h"
7
8PlayerJudgeStartRolling::PlayerJudgeStartRolling(const al::LiveActor* player,
9 const PlayerConst* pConst,
10 const PlayerInput* input,
11 const IUsePlayerCollision* collider,
12 const IPlayerModelChanger* modelChanger,
13 const PlayerCarryKeeper* carryKeeper)
14 : mPlayer(player), mConst(pConst), mInput(input), mCollider(collider),
15 mModelChanger(modelChanger), mCarryKeeper(carryKeeper) {}
16
17bool PlayerJudgeStartRolling::isEnableTriggerRolling() const {
18 return !mCarryKeeper->isCarry() && !mModelChanger->is2DModel() &&
19 rs::isCollidedGround(mCollider) &&
20 !rs::isOnGroundForceSlideCode(mPlayer, mCollider, mConst);
21}
22
23bool PlayerJudgeStartRolling::judgeCancelHipDrop() const {
24 return isEnableTriggerRolling() && mInput->isTriggerRollingCancelHipDrop(
25 rs::isOnGroundForceRollingCode(mPlayer, mCollider));
26}
27
28bool PlayerJudgeStartRolling::isTriggerRestartSwing() const {
29 return isEnableTriggerRolling() && mInput->isTriggerRollingRestartSwing();
30}
31
32bool PlayerJudgeStartRolling::judge() const {
33 return isEnableTriggerRolling() &&
34 mInput->isTriggerRolling(rs::isOnGroundForceRollingCode(mPlayer, mCollider));
35}
36