35class WitherBoss :
public ::Monster {
38 enum class WitherAttackType :
int {
47 ::ll::TypedStorage<4, 4, int> MAX_SHIELD_HEALTH;
48 ::ll::TypedStorage<4, 4, int> mShieldHealth;
49 ::ll::TypedStorage<4, 24, ::Vec2[3]> mHeadRots;
50 ::ll::TypedStorage<4, 24, ::Vec2[3]> mOldHeadRots;
51 ::ll::TypedStorage<4, 12, int[3]> mNextHeadUpdate;
52 ::ll::TypedStorage<4, 12, int[3]> mIdleHeadUpdates;
53 ::ll::TypedStorage<4, 4, int> mDestroyBlocksTick;
54 ::ll::TypedStorage<4, 4, int> mHealthThreshold;
55 ::ll::TypedStorage<4, 4, int> mPhase;
56 ::ll::TypedStorage<1, 1, bool> mWantsToExplode;
57 ::ll::TypedStorage<1, 1, bool> mCharging;
58 ::ll::TypedStorage<4, 12, ::Vec3> mChargeDirection;
59 ::ll::TypedStorage<4, 4, int> mChargeFrames;
60 ::ll::TypedStorage<4, 4, int> mPreparingCharge;
61 ::ll::TypedStorage<4, 4, int> mProjectileCounter;
62 ::ll::TypedStorage<4, 4, int> mSpawningFrames;
63 ::ll::TypedStorage<4, 4, int> mTimeTillNextShot;
64 ::ll::TypedStorage<4, 4, int> mFireRate;
65 ::ll::TypedStorage<4, 4, float> mSpinSpeed;
66 ::ll::TypedStorage<4, 4, int> mStunTimer;
67 ::ll::TypedStorage<4, 4, int> mFramesTillMove;
68 ::ll::TypedStorage<1, 1, bool> mWantsMove;
69 ::ll::TypedStorage<1, 1, bool> mIsPathing;
70 ::ll::TypedStorage<4, 4, int> mMaxHealth;
71 ::ll::TypedStorage<4, 4, int> mNumSkeletons;
72 ::ll::TypedStorage<4, 4, int> mMaxSkeletons;
73 ::ll::TypedStorage<4, 4, int> mMovementTime;
74 ::ll::TypedStorage<4, 4, int> mHealthIntervals;
75 ::ll::TypedStorage<4, 4, int> mLastHealthValue;
76 ::ll::TypedStorage<4, 4, int> mDelayShot;
77 ::ll::TypedStorage<4, 4, int> mTimeSinceLastShot;
78 ::ll::TypedStorage<4, 4, float> mAttackRange;
79 ::ll::TypedStorage<1, 1, bool> mSecondVolley;
80 ::ll::TypedStorage<4, 4, int> mMainHeadAttackCountdown;
81 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActorDamageSource>> mDeathSource;
82 ::ll::TypedStorage<4, 4, int> mlastFiredHead;
94 virtual void reloadHardcodedClient(::ActorInitializationMethod method) ;
96 virtual void aiStep() ;
98 virtual void newServerAiStep() ;
100 virtual bool canBeAffected(uint effectId)
const ;
107 virtual void addAdditionalSaveData(
::CompoundTag& tag)
const ;
111 virtual float causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source) ;
113 virtual int getArmorValue()
const ;
117 virtual void remove() ;
119 virtual bool startRiding(::Actor& vehicle,
bool forceRiding) ;
121 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
125 virtual ::Vec3 getFiringPos()
const ;
127 virtual ::ActorHurtResult
140 MCAPI
void _destroyBlocks(
145 ::WitherBoss::WitherAttackType attackType
148 MCAPI
void _performRangedAttack(
int headID,
::Vec3 const& targetPos,
bool dangerous);
150 MCAPI
void awardSpawnWitherAchievement()
const;
152 MCAPI
void postAiStep();
154 MCAPI ::WitherBossPreAIStepResult preAiStep();
156 MCAPI
void setAlternativeTarget(
int headIndex,
::ActorUniqueID entityId);
162 MCAPI
static bool canDestroy(
::Block const& block, ::WitherBoss::WitherAttackType attackType);
168 MCAPI static ::mce::UUID
const& MAX_HEALTH_CAP_UUID();
186 MCAPI
void $reloadHardcodedClient(::ActorInitializationMethod method);
188 MCAPI
void $aiStep();
190 MCAPI
void $newServerAiStep();
192 MCAPI
bool $canBeAffected(uint effectId)
const;
202 MCFOLD
float $causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source);
204 MCAPI
int $getArmorValue()
const;
208 MCAPI
void $remove();
210 MCFOLD
bool $startRiding(::Actor& vehicle,
bool forceRiding);
212 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
216 MCAPI ::Vec3 $getFiringPos()
const;
218 MCAPI ::ActorHurtResult
Definition EntityContext.h:15