39 ::ll::TypedStorage<4, 4, int> mPaddingDuration;
40 ::ll::TypedStorage<4, 4, float> mFactorStart;
41 ::ll::TypedStorage<4, 4, float> mFactorTarget;
42 ::ll::TypedStorage<4, 4, float> mFactorCurrent;
45 ::ll::TypedStorage<4, 4, int> mTicksActive;
46 ::ll::TypedStorage<4, 4, float> mFactorPreviousFrame;
47 ::ll::TypedStorage<1, 1, bool> mHadEffectLastTick;
48 ::ll::TypedStorage<1, 1, bool> mHadApplied;
52 using AttributeBuffPair = ::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeBuff>>;
54 using AttributeModPair = ::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeModifier>>;
59 ::ll::TypedStorage<4, 4, uint const> mId;
60 ::ll::TypedStorage<1, 1, bool> mIsHarmful;
61 ::ll::TypedStorage<4, 16, ::mce::Color> mColor;
62 ::ll::TypedStorage<8, 48, ::HashedString> mParticleEffectId;
63 ::ll::TypedStorage<8, 48, ::HashedString> mParticleEffectAmbientId;
64 ::ll::TypedStorage<8, 32, ::std::string> mDescriptionId;
65 ::ll::TypedStorage<4, 4, int> mIcon;
66 ::ll::TypedStorage<4, 4, float> mDurationModifier;
67 ::ll::TypedStorage<1, 1, bool> mIsDisabled;
68 ::ll::TypedStorage<8, 32, ::std::string> mResourceName;
69 ::ll::TypedStorage<8, 32, ::std::string> mIconName;
70 ::ll::TypedStorage<1, 1, bool> mEffectVisible;
71 ::ll::TypedStorage<4, 8, ::std::optional<::SharedTypes::Legacy::LevelSoundEvent>> mOnApplySound;
72 ::ll::TypedStorage<8, 48, ::HashedString> mComponentName;
73 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Amplifier>> mValueAmplifier;
74 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Amplifier>> mDurationAmplifier;
75 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeBuff>>>>
77 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::Attribute const*, ::std::shared_ptr<::AttributeModifier>>>>
79 ::ll::TypedStorage<8, 96, ::MobEffect::FactorCalculationData> mFactorCalculationData;
89 virtual ~MobEffect() =
default;
95 virtual void onEffectExpired(
::Actor& target)
const;
97 virtual void onActorDied(
::Actor& target,
int amplifier)
const;
102 applyInstantaneousEffect(
::Actor* source,
::Actor* owner,
::Actor* target,
int amplification,
float scale)
const;
104 virtual bool isInstantaneous()
const;
106 virtual float getAttributeModifierValue(
int amplifier,
::AttributeModifier const& modifier)
const;
114 ::std::string
const& resourceName,
115 ::std::string
const& locName,
119 ::std::string
const& iconName,
123 MCNAPI ::TemporalAttributeBuff
148 MCAPI static ::MobEffect
const* getByName(::std::string
const& name);
150 MCAPI static ::std::string getNameById(uint effectId);
160 MCAPI static ::Bedrock::DenseEnumMap<::MobEffectIds, ::std::unique_ptr<::MobEffect>, 39>& mMobEffects();
168 ::std::string
const& resourceName,
169 ::std::string
const& locName,
173 ::std::string
const& iconName,
192 $applyInstantaneousEffect(
::Actor* source,
::Actor* owner,
::Actor* target,
int amplification,
float scale)
const;
MCAPI void * $ctor(uint id, ::std::string const &resourceName, ::std::string const &locName, bool isHarmful, int color, int icon, ::std::string const &iconName, bool drawParticles)
MCAPI MobEffect(uint id, ::std::string const &resourceName, ::std::string const &locName, bool isHarmful, int color, int icon, ::std::string const &iconName, bool drawParticles)