mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-05-11 22:42:10 +02:00
Small fixes to Cooldown and CategoryCooldown event / signaling logic.
This commit is contained in:
parent
c3828efe05
commit
716f1833c4
BIN
config.pyc
BIN
config.pyc
Binary file not shown.
@ -1878,6 +1878,8 @@ void Entity::adds_cooldown(int spell_id, float value) {
|
|||||||
|
|
||||||
cd->set_remaining(value);
|
cd->set_remaining(value);
|
||||||
|
|
||||||
|
son_cooldown_added(cd);
|
||||||
|
|
||||||
emit_signal("scooldown_added", cd);
|
emit_signal("scooldown_added", cd);
|
||||||
|
|
||||||
SEND_RPC(rpc("addc_cooldown", spell_id, value), addc_cooldown(spell_id, value));
|
SEND_RPC(rpc("addc_cooldown", spell_id, value), addc_cooldown(spell_id, value));
|
||||||
@ -1919,7 +1921,7 @@ void Entity::removes_cooldown(int spell_id) {
|
|||||||
|
|
||||||
son_cooldown_removed(cd);
|
son_cooldown_removed(cd);
|
||||||
|
|
||||||
emit_signal("scooldown_removed", spell_id);
|
emit_signal("scooldown_removed", cd);
|
||||||
|
|
||||||
SEND_RPC(rpc("removec_cooldown", spell_id), removec_cooldown(spell_id));
|
SEND_RPC(rpc("removec_cooldown", spell_id), removec_cooldown(spell_id));
|
||||||
}
|
}
|
||||||
@ -1948,7 +1950,10 @@ void Entity::addc_cooldown(int spell_id, float value) {
|
|||||||
|
|
||||||
cd->set_remaining(value);
|
cd->set_remaining(value);
|
||||||
|
|
||||||
|
con_cooldown_added(cd);
|
||||||
|
|
||||||
emit_signal("ccooldown_added", cd);
|
emit_signal("ccooldown_added", cd);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1980,9 +1985,12 @@ void Entity::removec_cooldown(int spell_id) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!cd.is_valid())
|
||||||
|
cd.instance();
|
||||||
|
|
||||||
con_cooldown_removed(cd);
|
con_cooldown_removed(cd);
|
||||||
|
|
||||||
emit_signal("ccooldown_removed", spell_id);
|
emit_signal("ccooldown_removed", cd);
|
||||||
}
|
}
|
||||||
Ref<Cooldown> Entity::getc_cooldown(int spell_id) {
|
Ref<Cooldown> Entity::getc_cooldown(int spell_id) {
|
||||||
if (!_c_cooldown_map.has(spell_id)) {
|
if (!_c_cooldown_map.has(spell_id)) {
|
||||||
@ -2019,7 +2027,12 @@ void Entity::adds_category_cooldown(int category_id, float value) {
|
|||||||
if (cc->get_category_id() == category_id) {
|
if (cc->get_category_id() == category_id) {
|
||||||
cc->set_remaining(value);
|
cc->set_remaining(value);
|
||||||
|
|
||||||
|
son_category_cooldown_added(cc);
|
||||||
|
|
||||||
emit_signal("scategory_cooldown_added", cc);
|
emit_signal("scategory_cooldown_added", cc);
|
||||||
|
|
||||||
|
SEND_RPC(rpc("addc_category_cooldown", category_id, value), addc_category_cooldown(category_id, value));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2035,21 +2048,31 @@ void Entity::adds_category_cooldown(int category_id, float value) {
|
|||||||
|
|
||||||
_s_active_category_cooldowns |= category_id;
|
_s_active_category_cooldowns |= category_id;
|
||||||
|
|
||||||
emit_signal("scategory_cooldown_added", cc);
|
son_category_cooldown_added(cc);
|
||||||
|
|
||||||
|
emit_signal("scategory_cooldown_added", cc);
|
||||||
|
|
||||||
SEND_RPC(rpc("addc_category_cooldown", category_id, value), addc_category_cooldown(category_id, value));
|
SEND_RPC(rpc("addc_category_cooldown", category_id, value), addc_category_cooldown(category_id, value));
|
||||||
}
|
}
|
||||||
void Entity::removes_category_cooldown(int category_id) {
|
void Entity::removes_category_cooldown(int category_id) {
|
||||||
|
Ref<CategoryCooldown> cc;
|
||||||
|
|
||||||
for (int i = 0; i < _s_category_cooldowns.size(); ++i) {
|
for (int i = 0; i < _s_category_cooldowns.size(); ++i) {
|
||||||
if (_s_category_cooldowns.get(i)->get_category_id() == category_id) {
|
if (_s_category_cooldowns.get(i)->get_category_id() == category_id) {
|
||||||
|
cc = _s_category_cooldowns.get(i);
|
||||||
_s_category_cooldowns.remove(i);
|
_s_category_cooldowns.remove(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!cc.is_valid())
|
||||||
|
return;
|
||||||
|
|
||||||
_s_active_category_cooldowns ^= category_id;
|
_s_active_category_cooldowns ^= category_id;
|
||||||
|
|
||||||
emit_signal("scategory_cooldown_removed", category_id);
|
son_category_cooldown_removed(cc);
|
||||||
|
|
||||||
|
emit_signal("scategory_cooldown_removed", cc);
|
||||||
|
|
||||||
SEND_RPC(rpc("removec_category_cooldown", category_id), removec_category_cooldown(category_id));
|
SEND_RPC(rpc("removec_category_cooldown", category_id), removec_category_cooldown(category_id));
|
||||||
}
|
}
|
||||||
@ -2088,6 +2111,8 @@ void Entity::addc_category_cooldown(int category_id, float value) {
|
|||||||
if (cc->get_category_id() == category_id) {
|
if (cc->get_category_id() == category_id) {
|
||||||
cc->set_remaining(value);
|
cc->set_remaining(value);
|
||||||
|
|
||||||
|
con_category_cooldown_added(cc);
|
||||||
|
|
||||||
emit_signal("ccategory_cooldown_added", cc);
|
emit_signal("ccategory_cooldown_added", cc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2104,19 +2129,31 @@ void Entity::addc_category_cooldown(int category_id, float value) {
|
|||||||
|
|
||||||
_c_active_category_cooldowns |= category_id;
|
_c_active_category_cooldowns |= category_id;
|
||||||
|
|
||||||
|
con_category_cooldown_added(cc);
|
||||||
|
|
||||||
emit_signal("ccategory_cooldown_added", cc);
|
emit_signal("ccategory_cooldown_added", cc);
|
||||||
}
|
}
|
||||||
void Entity::removec_category_cooldown(int category_id) {
|
void Entity::removec_category_cooldown(int category_id) {
|
||||||
|
Ref<CategoryCooldown> cc;
|
||||||
|
|
||||||
for (int i = 0; i < _c_category_cooldowns.size(); ++i) {
|
for (int i = 0; i < _c_category_cooldowns.size(); ++i) {
|
||||||
if (_c_category_cooldowns.get(i)->get_category_id() == category_id) {
|
if (_c_category_cooldowns.get(i)->get_category_id() == category_id) {
|
||||||
_c_category_cooldowns.remove(i);
|
cc = _c_category_cooldowns.get(i);
|
||||||
return;
|
|
||||||
|
_c_category_cooldowns.remove(i);
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!cc.is_valid())
|
||||||
|
return;
|
||||||
|
|
||||||
_c_active_category_cooldowns ^= category_id;
|
_c_active_category_cooldowns ^= category_id;
|
||||||
|
|
||||||
emit_signal("ccategory_cooldown_removed", category_id);
|
con_category_cooldown_removed(cc);
|
||||||
|
|
||||||
|
emit_signal("ccategory_cooldown_removed", cc);
|
||||||
}
|
}
|
||||||
Ref<CategoryCooldown> Entity::getc_category_cooldown(int category_id) {
|
Ref<CategoryCooldown> Entity::getc_category_cooldown(int category_id) {
|
||||||
ERR_FAIL_COND_V(!(category_id & _c_active_category_cooldowns), Ref<CategoryCooldown>());
|
ERR_FAIL_COND_V(!(category_id & _c_active_category_cooldowns), Ref<CategoryCooldown>());
|
||||||
@ -2998,8 +3035,8 @@ void Entity::_bind_methods() {
|
|||||||
//Cooldowns
|
//Cooldowns
|
||||||
ADD_SIGNAL(MethodInfo("scooldown_added", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
ADD_SIGNAL(MethodInfo("scooldown_added", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
||||||
ADD_SIGNAL(MethodInfo("scooldown_removed", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
ADD_SIGNAL(MethodInfo("scooldown_removed", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
||||||
ADD_SIGNAL(MethodInfo("ccooldown_added", PropertyInfo(Variant::INT, "spell_id")));
|
ADD_SIGNAL(MethodInfo("ccooldown_added", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
||||||
ADD_SIGNAL(MethodInfo("ccooldown_removed", PropertyInfo(Variant::INT, "spell_id")));
|
ADD_SIGNAL(MethodInfo("ccooldown_removed", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("hass_cooldown", "spell_id"), &Entity::hass_cooldown);
|
ClassDB::bind_method(D_METHOD("hass_cooldown", "spell_id"), &Entity::hass_cooldown);
|
||||||
ClassDB::bind_method(D_METHOD("adds_cooldown", "spell_id", "value"), &Entity::adds_cooldown);
|
ClassDB::bind_method(D_METHOD("adds_cooldown", "spell_id", "value"), &Entity::adds_cooldown);
|
||||||
@ -3018,8 +3055,8 @@ void Entity::_bind_methods() {
|
|||||||
//Category Cooldowns
|
//Category Cooldowns
|
||||||
ADD_SIGNAL(MethodInfo("scategory_cooldown_added", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "CategoryCooldown")));
|
ADD_SIGNAL(MethodInfo("scategory_cooldown_added", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "CategoryCooldown")));
|
||||||
ADD_SIGNAL(MethodInfo("scategory_cooldown_removed", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "CategoryCooldown")));
|
ADD_SIGNAL(MethodInfo("scategory_cooldown_removed", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "CategoryCooldown")));
|
||||||
ADD_SIGNAL(MethodInfo("ccategory_cooldown_added", PropertyInfo(Variant::INT, "category_id")));
|
ADD_SIGNAL(MethodInfo("ccategory_cooldown_added", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
||||||
ADD_SIGNAL(MethodInfo("ccategory_cooldown_removed", PropertyInfo(Variant::INT, "category_id")));
|
ADD_SIGNAL(MethodInfo("ccategory_cooldown_removed", PropertyInfo(Variant::OBJECT, "cooldown", PROPERTY_HINT_RESOURCE_TYPE, "Cooldown")));
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("hass_category_cooldown", "category_id"), &Entity::hass_category_cooldown);
|
ClassDB::bind_method(D_METHOD("hass_category_cooldown", "category_id"), &Entity::hass_category_cooldown);
|
||||||
ClassDB::bind_method(D_METHOD("adds_category_cooldown", "category_id", "value"), &Entity::adds_category_cooldown);
|
ClassDB::bind_method(D_METHOD("adds_category_cooldown", "category_id", "value"), &Entity::adds_category_cooldown);
|
||||||
|
Loading…
Reference in New Issue
Block a user