38 ::ll::TypedStorage<4, 4, int> mPaddingDuration;
39 ::ll::TypedStorage<4, 4, float> mFactorStart;
40 ::ll::TypedStorage<4, 4, float> mFactorTarget;
41 ::ll::TypedStorage<4, 4, float> mFactorCurrent;
44 ::ll::TypedStorage<4, 4, int> mTicksActive;
45 ::ll::TypedStorage<4, 4, float> mFactorPreviousFrame;
46 ::ll::TypedStorage<1, 1, bool> mHadEffectLastTick;
47 ::ll::TypedStorage<1, 1, bool> mHadApplied;
53 MCAPI ::std::unique_ptr<::CompoundTag> save()
const;
59 MCAPI static ::MobEffect::FactorCalculationData load(
::CompoundTag const* tag);
63 using AttributeBuffPair = ::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeBuff>>;
65 using AttributeModPair = ::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeModifier>>;
70 ::ll::TypedStorage<4, 4, uint const> mId;
71 ::ll::TypedStorage<1, 1, bool> mIsHarmful;
72 ::ll::TypedStorage<4, 16, ::mce::Color> mColor;
73 ::ll::TypedStorage<8, 48, ::HashedString> mParticleEffectId;
74 ::ll::TypedStorage<8, 48, ::HashedString> mParticleEffectAmbientId;
75 ::ll::TypedStorage<8, 32, ::std::string> mDescriptionId;
76 ::ll::TypedStorage<4, 4, int> mIcon;
77 ::ll::TypedStorage<4, 4, float> mDurationModifier;
78 ::ll::TypedStorage<1, 1, bool> mIsDisabled;
79 ::ll::TypedStorage<8, 32, ::std::string> mResourceName;
80 ::ll::TypedStorage<8, 32, ::std::string> mIconName;
81 ::ll::TypedStorage<1, 1, bool> mEffectVisible;
82 ::ll::TypedStorage<4, 8, ::std::optional<::SharedTypes::Legacy::LevelSoundEvent>> mOnApplySound;
83 ::ll::TypedStorage<8, 48, ::HashedString> mComponentName;
84 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Amplifier>> mValueAmplifier;
85 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Amplifier>> mDurationAmplifier;
86 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeBuff>>>>
88 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeModifier>>>>
90 ::ll::TypedStorage<8, 96, ::MobEffect::FactorCalculationData> mFactorCalculationData;
100 virtual ~MobEffect();
106 virtual void onEffectExpired(
::Actor& target)
const;
108 virtual void onActorDied(
::Actor&,
int)
const;
113 applyInstantaneousEffect(
::Actor* source,
::Actor* owner,
::Actor* target,
int amplification,
float scale)
const;
115 virtual bool isInstantaneous()
const;
117 virtual float getAttributeModifierValue(
int amplifier,
::AttributeModifier const& modifier)
const;
125 ::std::string
const& resourceName,
126 ::std::string
const& locName,
130 ::std::string
const& iconName,
134 MCAPI ::TemporalAttributeBuff
137 MCAPI
void _setParticleEffectIds(
char const* particleEffectId,
char const* particleEffectAmbientId);
139 MCAPI
void addAttributeBuff(
::Attribute const& attribute, ::std::shared_ptr<::AttributeBuff> buff);
141 MCAPI
void addAttributeModifier(
::Attribute const& attribute, ::std::shared_ptr<::AttributeModifier> modifier);
143 MCAPI
void applyModsAndBuffs(
149 MCFOLD ::mce::Color
const& getColor()
const;
151 MCFOLD ::std::string
const& getDescriptionId()
const;
153 MCAPI
float getDurationModifier()
const;
156 MCAPI ::std::string
const& getIconName()
const;
159 MCFOLD uint getId()
const;
161 MCAPI ::HashedString
const& getParticleEffect(
bool isAmbient)
const;
163 MCFOLD ::std::string
const& getResourceName()
const;
166 MCAPI
bool hasIcon()
const;
169 MCFOLD
bool isHarmful()
const;
171 MCFOLD
bool isVisible()
const;
173 MCAPI
void updateModsAndBuffs(
179 MCFOLD ::std::vector<::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeModifier>>>
const&
180 viewAttributeModifiers()
const;
189 MCAPI static ::MobEffect* getById(uint effectId);
191 MCAPI static ::MobEffect* getByName(::std::string
const& name);
193 MCAPI static ::std::string getNameById(uint effectId);
197 MCAPI
static void shutdownEffects();
203 MCAPI static ::MobEffect*& ABSORPTION();
205 MCAPI static ::MobEffect*& BAD_OMEN();
207 MCAPI static ::MobEffect*& BLINDNESS();
209 MCAPI static ::MobEffect*& BREATH_OF_THE_NAUTILUS();
211 MCAPI static ::MobEffect*& CONDUIT_POWER();
213 MCAPI static ::MobEffect*& CONFUSION();
215 MCAPI static ::MobEffect*& DAMAGE_BOOST();
217 MCAPI static ::MobEffect*& DAMAGE_RESISTANCE();
219 MCAPI static ::MobEffect*& DARKNESS();
221 MCAPI static ::mce::Color
const& DEFAULT_COLOR();
223 MCAPI static ::MobEffect*& DIG_SLOWDOWN();
225 MCAPI static ::MobEffect*& DIG_SPEED();
227 MCAPI static ::MobEffect*& EMPTY_EFFECT();
229 MCAPI static ::MobEffect*& FATAL_POISON();
231 MCAPI static ::MobEffect*& FIRE_RESISTANCE();
233 MCAPI static ::MobEffect*& HARM();
235 MCAPI static ::MobEffect*& HEAL();
237 MCAPI static ::MobEffect*& HEALTH_BOOST();
239 MCAPI static ::MobEffect*& HERO_OF_THE_VILLAGE();
241 MCAPI static ::MobEffect*& HUNGER();
243 MCAPI static ::MobEffect*& INFESTED();
245 MCAPI static ::MobEffect*& INVISIBILITY();
247 MCAPI static ::MobEffect*& JUMP();
249 MCAPI static ::MobEffect*& LEVITATION();
251 MCAPI static ::MobEffect*& MOVEMENT_SLOWDOWN();
253 MCAPI static ::MobEffect*& MOVEMENT_SPEED();
255 MCAPI static ::MobEffect*& NIGHT_VISION();
257 MCAPI static ::MobEffect*& OOZING();
259 MCAPI static ::MobEffect*& POISON();
261 MCAPI static ::MobEffect*& RAID_OMEN();
263 MCAPI static ::MobEffect*& REGENERATION();
265 MCAPI static ::MobEffect*& SATURATION();
267 MCAPI static ::MobEffect*& SLOW_FALLING();
269 MCAPI static ::MobEffect*& TRIAL_OMEN();
271 MCAPI static ::MobEffect*& WATER_BREATHING();
273 MCAPI static ::MobEffect*& WEAKNESS();
275 MCAPI static ::MobEffect*& WEAVING();
277 MCAPI static ::MobEffect*& WIND_CHARGED();
279 MCAPI static ::MobEffect*& WITHER();
281 MCAPI static ::std::add_lvalue_reference_t<::std::unique_ptr<::MobEffect>[]> mMobEffects();
289 ::std::string
const& resourceName,
290 ::std::string
const& locName,
294 ::std::string
const& iconName,
312 MCFOLD
void $onEffectExpired(
::Actor& target)
const;
314 MCFOLD
void $onActorDied(
::Actor&,
int)
const;
319 $applyInstantaneousEffect(
::Actor* source,
::Actor* owner,
::Actor* target,
int amplification,
float scale)
const;
321 MCFOLD
bool $isInstantaneous()
const;
323 MCAPI
float $getAttributeModifierValue(
int amplifier,
::AttributeModifier const& modifier)
const;
331 MCAPI
static void** $vftable();