1#include "Player/PlayerJudgeWaterSurfaceRun.h"
2
3#include "Library/LiveActor/ActorMovementFunction.h"
4#include "Library/Math/MathUtil.h"
5#include "Library/Nature/WaterSurfaceFinder.h"
6
7#include "Player/PlayerConst.h"
8#include "Player/PlayerCounterForceRun.h"
9
10PlayerJudgeWaterSurfaceRun::PlayerJudgeWaterSurfaceRun(
11 const al::LiveActor* player, const PlayerConst* pConst,
12 const al::WaterSurfaceFinder* waterSurfaceFinder, const PlayerCounterForceRun* counterForceRun)
13 : mPlayer(player), mConst(pConst), mWaterSurfaceFinder(waterSurfaceFinder),
14 mCounterForceRun(counterForceRun) {}
15
16f32 PlayerJudgeWaterSurfaceRun::getBorderSpeedH() const {
17 return mConst->getDashFastBorderSpeed();
18}
19
20void PlayerJudgeWaterSurfaceRun::update() {
21 mIsWaterSurfaceRun = false;
22 if (!mIsEnable)
23 return;
24
25 const al::LiveActor* player = mPlayer;
26 f32 borderSpeedH = getBorderSpeedH();
27 const PlayerCounterForceRun* counterForceRun = mCounterForceRun;
28 mIsWaterSurfaceRun =
29 mWaterSurfaceFinder->isFoundSurface() &&
30 al::isNearZeroOrGreater(value: mWaterSurfaceFinder->getDistance()) &&
31 (counterForceRun->getCounter() > 0 || al::calcSpeedH(actor: player) > borderSpeedH);
32}
33