32class WitherBoss :
public ::Monster {
35 enum class WitherAttackType :
int {
44 ::ll::TypedStorage<4, 4, int> MAX_SHIELD_HEALTH;
45 ::ll::TypedStorage<4, 4, int> mShieldHealth;
46 ::ll::TypedStorage<4, 24, ::Vec2[3]> mHeadRots;
47 ::ll::TypedStorage<4, 24, ::Vec2[3]> mOldHeadRots;
48 ::ll::TypedStorage<4, 12, int[3]> mNextHeadUpdate;
49 ::ll::TypedStorage<4, 12, int[3]> mIdleHeadUpdates;
50 ::ll::TypedStorage<4, 4, int> mDestroyBlocksTick;
51 ::ll::TypedStorage<4, 4, int> mHealthThreshold;
52 ::ll::TypedStorage<4, 4, int> mPhase;
53 ::ll::TypedStorage<1, 1, bool> mWantsToExplode;
54 ::ll::TypedStorage<1, 1, bool> mCharging;
55 ::ll::TypedStorage<4, 12, ::Vec3> mChargeDirection;
56 ::ll::TypedStorage<4, 4, int> mChargeFrames;
57 ::ll::TypedStorage<4, 4, int> mPreparingCharge;
58 ::ll::TypedStorage<4, 4, int> mProjectileCounter;
59 ::ll::TypedStorage<4, 4, int> mSpawningFrames;
60 ::ll::TypedStorage<4, 4, int> mTimeTillNextShot;
61 ::ll::TypedStorage<4, 4, int> mFireRate;
62 ::ll::TypedStorage<4, 4, float> mSpinSpeed;
63 ::ll::TypedStorage<4, 4, int> mStunTimer;
64 ::ll::TypedStorage<4, 4, int> mFramesTillMove;
65 ::ll::TypedStorage<1, 1, bool> mWantsMove;
66 ::ll::TypedStorage<1, 1, bool> mIsPathing;
67 ::ll::TypedStorage<4, 4, int> mMaxHealth;
68 ::ll::TypedStorage<4, 4, int> mNumSkeletons;
69 ::ll::TypedStorage<4, 4, int> mMaxSkeletons;
70 ::ll::TypedStorage<4, 4, int> mMovementTime;
71 ::ll::TypedStorage<4, 4, int> mHealthIntervals;
72 ::ll::TypedStorage<4, 4, int> mLastHealthValue;
73 ::ll::TypedStorage<4, 4, int> mDelayShot;
74 ::ll::TypedStorage<4, 4, int> mTimeSinceLastShot;
75 ::ll::TypedStorage<4, 4, float> mAttackRange;
76 ::ll::TypedStorage<1, 1, bool> mSecondVolley;
77 ::ll::TypedStorage<4, 4, int> mMainHeadAttackCountdown;
78 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActorDamageSource>> mDeathSource;
79 ::ll::TypedStorage<4, 4, int> mlastFiredHead;
91 virtual void reloadHardcodedClient(::ActorInitializationMethod method) ;
93 virtual void aiStep() ;
95 virtual void newServerAiStep() ;
97 virtual bool canFreeze()
const ;
99 virtual bool canBeAffected(uint effectId)
const ;
103 virtual void hurtEffects(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite) ;
105 virtual void addAdditionalSaveData(
::CompoundTag& tag)
const ;
109 virtual float causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source) ;
111 virtual int getArmorValue()
const ;
115 virtual void remove() ;
117 virtual bool startRiding(::Actor& vehicle,
bool forceRiding) ;
119 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
123 virtual ::Vec3 getFiringPos()
const ;
125 virtual ::ActorHurtResult
128 virtual ~WitherBoss() =
default;
140 MCAPI
void _destroyBlocks(
145 ::WitherBoss::WitherAttackType attackType
148 MCAPI
void _performRangedAttack(
int headID, ::Actor& target);
150 MCAPI
void _performRangedAttack(
int headID,
::Vec3 const& targetPos,
bool dangerous);
152 MCAPI ::ActorUniqueID getAlternativeTarget(
int headIndex);
154 MCAPI ::Vec3 getHeadPos(
int headID)
const;
157 MCAPI
int getInvulnerableTicks()
const;
160 MCAPI
bool hasAerialAttack()
const;
162 MCAPI
void postAiStep();
164 MCAPI ::WitherBossPreAIStepResult preAiStep();
166 MCAPI
void setAerialAttack(
bool aerialAttack);
168 MCAPI
void setAlternativeTarget(
int headIndex,
::ActorUniqueID entityId);
170 MCAPI
void setInvulnerableTicks(
int invulnerableTicks);
176 MCAPI static ::mce::UUID
const& MAX_HEALTH_CAP_UUID();
194 MCAPI
void $reloadHardcodedClient(::ActorInitializationMethod method);
196 MCAPI
void $aiStep();
198 MCAPI
void $newServerAiStep();
200 MCFOLD
bool $canFreeze()
const;
202 MCAPI
bool $canBeAffected(uint effectId)
const;
206 MCAPI
void $hurtEffects(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
212 MCFOLD
float $causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source);
214 MCAPI
int $getArmorValue()
const;
218 MCAPI
void $remove();
220 MCFOLD
bool $startRiding(::Actor& vehicle,
bool forceRiding);
222 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
226 MCAPI ::Vec3 $getFiringPos()
const;
228 MCAPI ::ActorHurtResult $_hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
236 MCAPI
static void** $vftable();
Definition EntityContext.h:16