30 enum class Direction :
int {
37 enum class State :
int {
40 VerifyTargetStillInPosition = 2,
51 ::ll::TypedStorage<4, 12, ::Vec3> mPosition;
52 ::ll::TypedStorage<4, 4, float> mDistance;
53 ::ll::TypedStorage<1, 1, bool> mCheckX;
54 ::ll::TypedStorage<4, 4, ::RamAttackGoal::Direction> mDirection;
55 ::ll::TypedStorage<1, 1, bool> mHasChargePos;
62 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
63 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
64 ::ll::TypedStorage<4, 12, ::Vec3> mPrepareChargePos;
65 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPos;
66 ::ll::TypedStorage<4, 8, ::Vec2> mRamDirection;
67 ::ll::TypedStorage<8, 8, ::Tick> mWaitBeforeChargeTimer;
68 ::ll::TypedStorage<8, 8, ::Tick> mChargeTimeoutTimer;
69 ::ll::TypedStorage<8, 8, ::Tick> mKnockAfterChargeTimeoutTimer;
70 ::ll::TypedStorage<8, 8, ::Tick> mRamRetryTimeout;
71 ::ll::TypedStorage<4, 4, ::RamAttackGoal::State> mState;
72 ::ll::TypedStorage<8, 24, ::std::vector<::RamAttackGoal::AttackPos>> mAttackPosVector;
73 ::ll::TypedStorage<4, 4, int> mRamDistance;
74 ::ll::TypedStorage<4, 4, int> mMinRamDistance;
75 ::ll::TypedStorage<4, 4, float> mKnockbackForce;
76 ::ll::TypedStorage<4, 4, float> mKnockbackHeight;
77 ::ll::TypedStorage<4, 4, float> mBabyKnockbackModifier;
78 ::ll::TypedStorage<4, 4, float> mRunSpeed;
79 ::ll::TypedStorage<4, 4, float> mRamSpeed;
80 ::ll::TypedStorage<8, 24, ::std::vector<::ActorDefinitionTrigger>> mOnStartTriggers;
81 ::ll::TypedStorage<4, 4, ::SharedTypes::Legacy::LevelSoundEvent> mPreRamSound;
82 ::ll::TypedStorage<4, 4, ::SharedTypes::Legacy::LevelSoundEvent> mRamImpactSound;
83 ::ll::TypedStorage<4, 8, ::SharedTypes::FloatRange> mCooldownTime;
84 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mTargetId;
85 ::ll::TypedStorage<1, 1, bool> mHasKnockbacked;
86 ::ll::TypedStorage<8, 8, ::Tick> mCooldownTimeout;
87 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RamAttackGoalUtils::RamGoalItemDropperInterface>> mRamGoalItemDropper;
92 RamAttackGoal& operator=(RamAttackGoal
const&);
93 RamAttackGoal(RamAttackGoal
const&);
99 virtual void start() ;
101 virtual void stop() ;
103 virtual bool canUse() ;
105 virtual bool canContinueToUse() ;
107 virtual void tick() ;
109 virtual void appendDebugInfo(::std::string& str)
const ;
111 virtual ~RamAttackGoal() ;
117 MCAPI
explicit RamAttackGoal(
::Mob& mob);
119 MCAPI
bool _hasChargePath();
121 MCAPI
bool _initiateRamAttack();
123 MCAPI
void _resetCooldown();
125 MCAPI
void _tryKnockbackTarget();
127 MCAPI
bool _verifyTargetStillInPositionAndPrepareForRamAttack();
133 MCAPI
void* $ctor(
::Mob& mob);
149 MCAPI
bool $canUse();
151 MCAPI
bool $canContinueToUse();
155 MCAPI
void $appendDebugInfo(::std::string& str)
const;