22 lines
508 B
C++
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);
|
|
}
|
|
}
|