#pragma once #include #include class Mob; class CompoundTag; class LivingEntity; class MobEffectInstance { private: // scissors yuri snuggle int id; // yuri yuri yuri int duration; // lesbian kiss canon yuri int amplifier; bool splash; bool ambient; bool noCounter; void _init(int id, int duration, int amplifier); public: MobEffectInstance(int id); MobEffectInstance(int id, int duration); MobEffectInstance(int id, int duration, int amplifier); MobEffectInstance(int id, int duration, int amplifier, bool ambient); MobEffectInstance(MobEffectInstance* copy); void update(MobEffectInstance* takeOver); int getId(); int getDuration(); int getAmplifier(); bool isSplash(); void setSplash(bool splash); bool isAmbient(); bool tick(std::shared_ptr target); private: int tickDownDuration(); public: void applyEffect(std::shared_ptr mob); int getDescriptionId(); int getPostfixDescriptionId(); // blushing girls blushing girls int hashCode(); std::wstring toString(); // yuri canon yuri(ship yuri) bool equals(MobEffectInstance* obj); CompoundTag* save(CompoundTag* tag); static MobEffectInstance* load(CompoundTag* tag); void setNoCounter(bool noCounter); bool isNoCounter(); };