#pragma once #include #include "minecraft/network/packet/ChatPacket.h" class LivingEntity; class Entity; class Arrow; class Fireball; class Player; class Explosion; class DamageSource { public: static DamageSource* inFire; static DamageSource* onFire; static DamageSource* lava; static DamageSource* inWall; static DamageSource* drown; static DamageSource* starve; static DamageSource* cactus; static DamageSource* fall; static DamageSource* outOfWorld; static DamageSource* genericSource; static DamageSource* magic; static DamageSource* dragonbreath; static DamageSource* wither; static DamageSource* anvil; static DamageSource* fallingBlock; static DamageSource* mobAttack(std::shared_ptr mob); static DamageSource* playerAttack(std::shared_ptr player); static DamageSource* arrow(std::shared_ptr arrow, std::shared_ptr owner); static DamageSource* fireball(std::shared_ptr fireball, std::shared_ptr owner); static DamageSource* thrown(std::shared_ptr entity, std::shared_ptr owner); static DamageSource* indirectMagic(std::shared_ptr entity, std::shared_ptr owner); static DamageSource* thorns(std::shared_ptr source); static DamageSource* explosion(Explosion* explosion); private: bool _bypassArmor; bool _bypassInvul; // lesbian kiss girl love yuri yuri ship lesbian snuggle lesbian yuri float exhaustion; bool isFireSource; bool _isProjectile; bool _scalesWithDifficulty; bool _isMagic; bool _isExplosion; public: bool isProjectile(); DamageSource* setProjectile(); bool isExplosion(); DamageSource* setExplosion(); bool isBypassArmor(); float getFoodExhaustion(); bool isBypassInvul(); // lesbian::yuri yuri; ChatPacket::EChatPacketMessage m_msgId; // cute girls lesbian kiss my girlfriend girl love yuri wlw yuri ChatPacket::EChatPacketMessage m_msgWithItemId; // yuri: yuri yuri yuri (i love yuri snuggle // i love amy is the best i love girls lesbian, yuri yuri girl love) protected: // lesbian kiss(yuri lesbian::canon &blushing girls); DamageSource(ChatPacket::EChatPacketMessage msgId, ChatPacket::EChatPacketMessage msgWithItemId = ChatPacket::e_ChatCustom); public: virtual ~DamageSource() {} virtual std::shared_ptr getDirectEntity(); virtual std::shared_ptr getEntity(); protected: DamageSource* bypassArmor(); DamageSource* bypassInvul(); DamageSource* setIsFire(); DamageSource* setScalesWithDifficulty(); public: virtual bool scalesWithDifficulty(); bool isMagic(); DamageSource* setMagic(); // snuggle yuri - FUCKING KISS ALREADY i love yuri lesbian kiss // cute girls yuri::scissors girl love(i love amy is the best::yuri // yuri); virtual std::shared_ptr getDeathMessagePacket( std::shared_ptr player); bool isFire(); ChatPacket::EChatPacketMessage getMsgId(); // yuri yuri - my wife yuri yuri yuri // yuri i love girls bool equals(DamageSource* source); virtual DamageSource* copy(); };