21class MeleeAttackBaseGoal :
public ::BaseGoal {
37 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
38 ::ll::TypedStorage<4, 4, int> mMinPathTicks;
39 ::ll::TypedStorage<4, 4, int> mMaxPathTicks;
40 ::ll::TypedStorage<4, 4, int> mPathFailTickIncrease;
41 ::ll::TypedStorage<4, 4, int> mInnerBoundaryTickIncrease;
42 ::ll::TypedStorage<4, 4, int> mOuterBoundaryTickIncrease;
43 ::ll::TypedStorage<4, 4, int> mTicksToRecalculatePath;
44 ::ll::TypedStorage<4, 4, float> mPathInnerBoundarySq;
45 ::ll::TypedStorage<4, 4, float> mPathOuterBoundarySq;
46 ::ll::TypedStorage<4, 4, float> mSpeedMultiplier;
47 ::ll::TypedStorage<1, 1, bool> mRequireCompletePath;
48 ::ll::TypedStorage<1, 1, bool> mTrackTarget;
49 ::ll::TypedStorage<1, 1, bool> mHijackMountNavigation;
68 ::ll::TypedStorage<8, 48, ::MeleeAttackBaseGoal::NavigationSettings> mNavigation;
69 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
70 ::ll::TypedStorage<8, 40, ::TempEPtr<::Actor>> mTarget;
71 ::ll::TypedStorage<4, 12, ::Vec3> mLastCachedTargetPosition;
72 ::ll::TypedStorage<4, 4, ::ActorCategory> mAttackTypes;
73 ::ll::TypedStorage<8, 104, ::ActorDefinitionTrigger> mOnAttack;
74 ::ll::TypedStorage<8, 104, ::ActorDefinitionTrigger> mOnKill;
75 ::ll::TypedStorage<4, 4, float> mMeleeFov;
76 ::ll::TypedStorage<4, 4, float> mMaxRotationX;
77 ::ll::TypedStorage<4, 4, float> mMaxHeadRotationY;
78 ::ll::TypedStorage<4, 4, int> mRandomStopInterval;
79 ::ll::TypedStorage<4, 4, int> mAttackTicks;
80 ::ll::TypedStorage<4, 4, int> mCooldownTicks;
81 ::ll::TypedStorage<1, 1, bool> mAttackOnce;
82 ::ll::TypedStorage<1, 1, bool> mHasAttacked;
83 ::ll::TypedStorage<1, 1, bool> mSetPersistent;
84 ::ll::TypedStorage<1, 1, bool> mCanSpreadOnFire;
89 MeleeAttackBaseGoal& operator=(MeleeAttackBaseGoal
const&);
90 MeleeAttackBaseGoal(MeleeAttackBaseGoal
const&);
91 MeleeAttackBaseGoal();
96 virtual ~MeleeAttackBaseGoal() ;
98 virtual bool canUse() ;
100 virtual bool canContinueToUse() ;
102 virtual void start() ;
104 virtual void stop() ;
106 virtual void tick() = 0;
108 virtual int getAttackTicksResetValue()
const;
114 MCAPI
explicit MeleeAttackBaseGoal(
::Mob& mob);
116 MCAPI
void _attemptAttackTarget(
::Actor& target,
bool canReachTarget,
bool hasLineOfSight);
118 MCAPI
void _attemptMoveToTarget(
::Actor const& target);
120 MCAPI
void _attemptMoveToTargetPosition(
::Actor const& target,
bool canReachTarget,
float targetDistanceSq);
122 MCAPI
void _decrementAttackTicks();
124 MCAPI
void _decrementPathRecalculationTicks();
126 MCFOLD ::Vec3
const& _getLastCachedTargetPosition()
const;
128 MCFOLD ::Mob& _getMob()
const;
130 MCAPI ::Mob& _getNavigatingMob()
const;
132 MCAPI ::NavigationComponent* _getNavigationComponent()
const;
134 MCAPI ::Actor* _getTarget()
const;
136 MCFOLD
int _getTicksToRecalculatePath()
const;
138 MCAPI
void _increasePathRecalculationFailureTick();
140 MCAPI
bool _isNavigationDoneOrStuck()
const;
142 MCAPI
void _resetAttackTicks();
144 MCAPI
void _setHasAttacked();
146 MCAPI
bool _shouldRecalculatePath(
bool canReachTarget)
const;
148 MCAPI
bool _targetPositionPutsMobInSun();
150 MCAPI
void _tryLookAtTarget(
::Actor const& target)
const;
152 MCFOLD
int getAttackTicks()
const;
154 MCFOLD
int getCooldownTicks()
const;
156 MCAPI
float getMeleeFOV()
const;
158 MCAPI
bool hasAttackTicksLeft()
const;
160 MCAPI
bool isWithinFoV(
::Vec3 const& position)
const;
166 MCAPI
void* $ctor(
::Mob& mob);
178 MCAPI
bool $canUse();
180 MCAPI
bool $canContinueToUse();
186 MCFOLD
int $getAttackTicksResetValue()
const;