1#pragma once
2
3#include <basis/seadTypes.h>
4
5#include "Player/IJudge.h"
6
7namespace al {
8class LiveActor;
9}
10
11class PlayerConst;
12
13// note: This is just to make the code easier to read. The names are based on PlayerConst function
14// names
15enum class DeathType : u32 { Damage, Abyss, AbyssWithCapMsg, Press, SandSink, NoOxygen, IceWater };
16
17class PlayerJudgeDeadWipeStart : public IJudge {
18public:
19 PlayerJudgeDeadWipeStart(const al::LiveActor* playerActor, const PlayerConst* playerConst);
20 void reset() override;
21 void update() override;
22 bool judge() const override;
23
24 bool isDeadTypeDrawForward() const;
25 bool isDeadEnableCoinAppear() const;
26 void getWipeInfo(const char** name, s32* wait) const;
27
28private:
29 const al::LiveActor* mPlayerActor;
30 const PlayerConst* mPlayerConst;
31 DeathType mDeathType = DeathType::Damage;
32 s32 mCounter = -1;
33};
34