34 enum class Direction :
int {
41 enum class State :
int {
44 VerifyTargetStillInPosition = 2,
55 ::ll::TypedStorage<4, 12, ::Vec3> mPosition;
56 ::ll::TypedStorage<4, 4, float> mDistance;
57 ::ll::TypedStorage<1, 1, bool> mCheckX;
58 ::ll::TypedStorage<4, 4, ::RamAttackGoal::Direction> mDirection;
59 ::ll::TypedStorage<1, 1, bool> mHasChargePos;
67 ::ll::TypedStorage<4, 4, int> mRamDistance;
68 ::ll::TypedStorage<4, 4, int> mMinRamDistance;
69 ::ll::TypedStorage<4, 4, float> mKnockbackForce;
70 ::ll::TypedStorage<4, 4, float> mKnockbackHeight;
71 ::ll::TypedStorage<4, 4, float> mBabyKnockbackModifier;
72 ::ll::TypedStorage<4, 4, float> mRunSpeed;
73 ::ll::TypedStorage<4, 4, float> mRamSpeed;
74 ::ll::TypedStorage<8, 24, ::std::vector<::ActorDefinitionTrigger>> mOnStartTriggers;
75 ::ll::TypedStorage<8, 24, ::std::vector<::SharedTypes::Legacy::LevelSoundEvent>> mPreRamSound;
76 ::ll::TypedStorage<8, 24, ::std::vector<::SharedTypes::Legacy::LevelSoundEvent>> mRamImpactSound;
77 ::ll::TypedStorage<4, 8, ::FloatRange> mCooldownTime;
89 MCAPI
void addPreRamSoundEventByName(::std::string
const& name);
91 MCAPI
void addRamImpactSoundEventByName(::std::string
const& name);
97 MCAPI
static void buildSchema(
98 ::std::string
const& name,
120 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
121 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
122 ::ll::TypedStorage<4, 12, ::Vec3> mPrepareChargePos;
123 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPos;
124 ::ll::TypedStorage<4, 8, ::Vec2> mRamDirection;
125 ::ll::TypedStorage<8, 8, ::Tick> mWaitBeforeChargeTimer;
126 ::ll::TypedStorage<8, 8, ::Tick> mChargeTimeoutTimer;
127 ::ll::TypedStorage<8, 8, ::Tick> mKnockAfterChargeTimeoutTimer;
128 ::ll::TypedStorage<8, 8, ::Tick> mRamRetryTimeout;
129 ::ll::TypedStorage<4, 4, ::RamAttackGoal::State> mState;
130 ::ll::TypedStorage<8, 24, ::std::vector<::RamAttackGoal::AttackPos>> mAttackPosVector;
131 ::ll::TypedStorage<8, 128, ::RamAttackGoal::Definition> mDefinition;
132 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mTargetId;
133 ::ll::TypedStorage<1, 1, bool> mHasKnockbacked;
134 ::ll::TypedStorage<8, 8, ::Tick> mCooldownTimeout;
135 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RamAttackGoalUtils::RamGoalItemDropperInterface>> mRamGoalItemDropper;
140 RamAttackGoal& operator=(RamAttackGoal
const&);
141 RamAttackGoal(RamAttackGoal
const&);
147 virtual void start() ;
149 virtual void stop() ;
151 virtual bool canUse() ;
153 virtual bool canContinueToUse() ;
155 virtual void tick() ;
157 virtual void appendDebugInfo(::std::string& str)
const ;
159 virtual ~RamAttackGoal() ;
165 MCAPI
explicit RamAttackGoal(
::Mob& mob);
167 MCAPI
bool _hasChargePath();
169 MCAPI
bool _initiateRamAttack();
171 MCAPI
void _resetCooldown();
173 MCAPI
void _tryKnockbackTarget();
175 MCAPI
bool _verifyTargetStillInPositionAndPrepareForRamAttack();
181 MCAPI
void* $ctor(
::Mob& mob);
197 MCAPI
bool $canUse();
199 MCAPI
bool $canContinueToUse();
203 MCAPI
void $appendDebugInfo(::std::string& str)
const;