break-utopia/modules/break_utopia/hit_box.cpp

22 lines
508 B
C++

#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);
}
}