Files
MinecraftConsoles/Minecraft.World/MobEffectInstance.h
void_17 7074f35e4b shared_ptr -> std::shared_ptr
This is one of the first commits in a plan to remove all `using namespace std;` lines in the entire codebase as it is considered anti-pattern today.
2026-03-02 15:58:20 +07:00

42 lines
795 B
C++

#pragma once
class Mob;
class MobEffectInstance
{
private:
// sent as byte
int id;
// sent as short
int duration;
// sent as byte
int amplifier;
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(MobEffectInstance *copy);
void update(MobEffectInstance *takeOver);
int getId();
int getDuration();
int getAmplifier();
bool tick(std::shared_ptr<Mob> target);
private:
int tickDownDuration();
public:
void applyEffect(std::shared_ptr<Mob> mob);
int getDescriptionId();
int getPostfixDescriptionId(); // 4J Added
int hashCode();
wstring toString();
// Was bool equals(Object obj)
bool equals(MobEffectInstance *obj);
};