31class WitherBoss :
public ::Monster {
34 enum class WitherAttackType :
int {
43 ::ll::TypedStorage<4, 4, int> MAX_SHIELD_HEALTH;
44 ::ll::TypedStorage<4, 4, int> mShieldHealth;
45 ::ll::TypedStorage<4, 24, ::Vec2[3]> mHeadRots;
46 ::ll::TypedStorage<4, 24, ::Vec2[3]> mOldHeadRots;
47 ::ll::TypedStorage<4, 12, int[3]> mNextHeadUpdate;
48 ::ll::TypedStorage<4, 12, int[3]> mIdleHeadUpdates;
49 ::ll::TypedStorage<4, 4, int> mDestroyBlocksTick;
50 ::ll::TypedStorage<4, 4, int> mHealthThreshold;
51 ::ll::TypedStorage<4, 4, int> mPhase;
52 ::ll::TypedStorage<1, 1, bool> mWantsToExplode;
53 ::ll::TypedStorage<1, 1, bool> mCharging;
54 ::ll::TypedStorage<4, 12, ::Vec3> mChargeDirection;
55 ::ll::TypedStorage<4, 4, int> mChargeFrames;
56 ::ll::TypedStorage<4, 4, int> mPreparingCharge;
57 ::ll::TypedStorage<4, 4, int> mProjectileCounter;
58 ::ll::TypedStorage<4, 4, int> mSpawningFrames;
59 ::ll::TypedStorage<4, 4, int> mTimeTillNextShot;
60 ::ll::TypedStorage<4, 4, int> mFireRate;
61 ::ll::TypedStorage<4, 4, float> mSpinSpeed;
62 ::ll::TypedStorage<4, 4, int> mStunTimer;
63 ::ll::TypedStorage<4, 4, int> mFramesTillMove;
64 ::ll::TypedStorage<1, 1, bool> mWantsMove;
65 ::ll::TypedStorage<1, 1, bool> mIsPathing;
66 ::ll::TypedStorage<4, 4, int> mMaxHealth;
67 ::ll::TypedStorage<4, 4, int> mNumSkeletons;
68 ::ll::TypedStorage<4, 4, int> mMaxSkeletons;
69 ::ll::TypedStorage<4, 4, int> mMovementTime;
70 ::ll::TypedStorage<4, 4, int> mHealthIntervals;
71 ::ll::TypedStorage<4, 4, int> mLastHealthValue;
72 ::ll::TypedStorage<4, 4, int> mDelayShot;
73 ::ll::TypedStorage<4, 4, int> mTimeSinceLastShot;
74 ::ll::TypedStorage<4, 4, float> mAttackRange;
75 ::ll::TypedStorage<1, 1, bool> mSecondVolley;
76 ::ll::TypedStorage<4, 4, int> mMainHeadAttackCountdown;
77 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActorDamageSource>> mDeathSource;
78 ::ll::TypedStorage<4, 4, int> mlastFiredHead;
90 virtual void reloadHardcodedClient(::ActorInitializationMethod method) ;
92 virtual void aiStep() ;
94 virtual void newServerAiStep() ;
96 virtual bool canFreeze()
const ;
98 virtual bool canBeAffected(uint
id)
const ;
102 virtual void hurtEffects(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite) ;
104 virtual void addAdditionalSaveData(
::CompoundTag& tag)
const ;
110 virtual int getArmorValue()
const ;
114 virtual void remove() ;
116 virtual bool startRiding(::Actor& vehicle,
bool forceRiding) ;
118 virtual void handleEntityEvent(::ActorEvent eventId,
int data) ;
122 virtual ::Vec3 getFiringPos()
const ;
124 virtual bool _hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite) ;
126 virtual ~WitherBoss() =
default;
138 MCAPI
void _destroyBlocks(
143 ::WitherBoss::WitherAttackType attackType
146 MCAPI
void _performRangedAttack(
int headID, ::Actor& target);
148 MCAPI
void _performRangedAttack(
int headID,
::Vec3 const& targetPos,
bool dangerous);
150 MCAPI ::ActorUniqueID getAlternativeTarget(
int headIndex);
152 MCAPI ::Vec3 getHeadPos(
int headID)
const;
154 MCAPI_S
int getInvulnerableTicks()
const;
156 MCAPI
bool hasAerialAttack()
const;
158 MCAPI
void postAiStep();
160 MCAPI ::WitherBossPreAIStepResult preAiStep();
162 MCAPI
void setAerialAttack(
bool aerialAttack);
164 MCAPI
void setAlternativeTarget(
int headIndex,
::ActorUniqueID entityId);
166 MCAPI
void setInvulnerableTicks(
int invulnerableTicks);
172 MCAPI static ::mce::UUID
const& MAX_HEALTH_CAP_UUID();
190 MCAPI
void $reloadHardcodedClient(::ActorInitializationMethod method);
192 MCAPI
void $aiStep();
194 MCAPI
void $newServerAiStep();
196 MCFOLD
bool $canFreeze()
const;
198 MCAPI
bool $canBeAffected(uint
id)
const;
202 MCAPI
void $hurtEffects(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
210 MCAPI
int $getArmorValue()
const;
214 MCAPI
void $remove();
216 MCFOLD
bool $startRiding(::Actor& vehicle,
bool forceRiding);
218 MCAPI
void $handleEntityEvent(::ActorEvent eventId,
int data);
222 MCAPI ::Vec3 $getFiringPos()
const;
224 MCAPI
bool $_hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
232 MCAPI
static void** $vftable();
Definition EntityContext.h:16