#include "hit_box.h" void HitBox::_bind_methods() { BIND_PROPERTY(Variant::INT, defense); GDVIRTUAL_BIND(_damaged, "level"); GDVIRTUAL_BIND(_damage_blocked, "level"); ClassDB::bind_method(D_METHOD("damage", "level"), &self_type::damage); } void HitBox::damage(int level) { if (this->destroyed) { return; } if (level >= this->defense) { damaged(level); GDVIRTUAL_CALL(_damaged, level); this->destroyed = true; } else { damage_blocked(level); GDVIRTUAL_CALL(_damage_blocked, level); } }