| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <math/seadVector.h> |
| 4 | |
| 5 | #include "Amiibo/HelpAmiiboExecutor.h" |
| 6 | |
| 7 | namespace al { |
| 8 | struct NfpInfo; |
| 9 | class LiveActor; |
| 10 | struct ActorInitInfo; |
| 11 | class AreaObj; |
| 12 | } // namespace al |
| 13 | |
| 14 | class CoinCollect; |
| 15 | class CoinCollectDummy; |
| 16 | class CoinCollect2D; |
| 17 | class HelpAmiiboDirector; |
| 18 | |
| 19 | class HelpAmiiboCoinCollect : public HelpAmiiboExecutor { |
| 20 | public: |
| 21 | HelpAmiiboCoinCollect(HelpAmiiboDirector* director, al::LiveActor* amiiboActor); |
| 22 | |
| 23 | void initAfterPlacement(const al::ActorInitInfo& actorInitInfo) override; |
| 24 | bool isTriggerTouch(const al::NfpInfo& nfpInfo) const override; |
| 25 | bool isEnableUse() override; |
| 26 | bool execute() override; |
| 27 | void activate() override; |
| 28 | |
| 29 | HelpAmiiboType getType() const override { return HelpAmiiboType::Koopa; } |
| 30 | |
| 31 | void deleteHintEffect(); |
| 32 | void appearEffect(); |
| 33 | void killEffect(); |
| 34 | bool isUseDummyModel(al::LiveActor* actor); |
| 35 | void getDummyEffectEmitPos(sead::Vector3f* position, al::LiveActor* actor); |
| 36 | |
| 37 | private: |
| 38 | CoinCollect* mCoinCollect = nullptr; |
| 39 | CoinCollect2D* mCoinCollect2D = nullptr; |
| 40 | CoinCollectDummy* mCoinCollectDummy = nullptr; |
| 41 | al::AreaObj* mStartInvalidateStageMapArea = nullptr; |
| 42 | }; |
| 43 |