38 ::ll::TypedStorage<4, 4, int> mRamDistance;
39 ::ll::TypedStorage<4, 4, int> mMinRamDistance;
40 ::ll::TypedStorage<4, 4, float> mKnockbackForce;
41 ::ll::TypedStorage<4, 4, float> mKnockbackHeight;
42 ::ll::TypedStorage<4, 4, float> mBabyKnockbackModifier;
43 ::ll::TypedStorage<4, 4, float> mRunSpeed;
44 ::ll::TypedStorage<4, 4, float> mRamSpeed;
45 ::ll::TypedStorage<8, 24, ::std::vector<::ActorDefinitionTrigger>> mOnStartTriggers;
46 ::ll::TypedStorage<8, 24, ::std::vector<::SharedTypes::Legacy::LevelSoundEvent>> mPreRamSound;
47 ::ll::TypedStorage<8, 24, ::std::vector<::SharedTypes::Legacy::LevelSoundEvent>> mRamImpactSound;
48 ::ll::TypedStorage<4, 8, ::FloatRange> mCooldownTime;
61 MCAPI
void addPreRamSoundEventByName(::std::string
const& name);
63 MCAPI
void addRamImpactSoundEventByName(::std::string
const& name);
69 MCAPI
static void buildSchema(
70 ::std::string
const& name,
89 enum class State :
int {
92 VerifyTargetStillInPosition = 2,
110 ::ll::TypedStorage<4, 12, ::Vec3> mPosition;
111 ::ll::TypedStorage<4, 4, float> mDistance;
112 ::ll::TypedStorage<1, 1, bool> mCheckX;
113 ::ll::TypedStorage<4, 4, ::RamAttackGoal::Direction> mDirection;
114 ::ll::TypedStorage<1, 1, bool> mHasChargePos;
121 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
122 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
123 ::ll::TypedStorage<4, 12, ::Vec3> mPrepareChargePos;
124 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPos;
125 ::ll::TypedStorage<4, 8, ::Vec2> mRamDirection;
126 ::ll::TypedStorage<8, 8, ::Tick> mWaitBeforeChargeTimer;
127 ::ll::TypedStorage<8, 8, ::Tick> mChargeTimeoutTimer;
128 ::ll::TypedStorage<8, 8, ::Tick> mKnockAfterChargeTimeoutTimer;
129 ::ll::TypedStorage<8, 8, ::Tick> mRamRetryTimeout;
130 ::ll::TypedStorage<4, 4, ::RamAttackGoal::State> mState;
131 ::ll::TypedStorage<8, 24, ::std::vector<::RamAttackGoal::AttackPos>> mAttackPosVector;
132 ::ll::TypedStorage<8, 128, ::RamAttackGoal::Definition> mDefinition;
133 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mTargetId;
134 ::ll::TypedStorage<1, 1, bool> mHasKnockbacked;
135 ::ll::TypedStorage<8, 8, ::Tick> mCooldownTimeout;
136 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RamAttackGoalUtils::RamGoalItemDropperInterface>> mRamGoalItemDropper;
149 virtual void start() ;
152 virtual void stop() ;
155 virtual bool canUse() ;
158 virtual bool canContinueToUse() ;
161 virtual void tick() ;
164 virtual void appendDebugInfo(::std::string& str)
const ;
175 MCAPI
bool _hasChargePath();
177 MCAPI
bool _initiateRamAttack();
179 MCAPI
void _resetCooldown();
181 MCAPI
void _tryKnockbackTarget();
183 MCAPI
bool _verifyTargetStillInPositionAndPrepareForRamAttack();
189 MCAPI
void* $ctor(
::Mob& mob);
205 MCAPI
bool $canUse();
207 MCAPI
bool $canContinueToUse();
211 MCAPI
void $appendDebugInfo(::std::string& str)
const;