From 49a347b0a23afd779e14d6903ecc2687bd104091 Mon Sep 17 00:00:00 2001 From: Relintai Date: Thu, 16 Jul 2020 15:56:48 +0200 Subject: [PATCH] _handle_aura_heal and _handle_aura_damage now won't complain anymore if the aura's caster is invalid. --- data/auras/aura.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/data/auras/aura.cpp b/data/auras/aura.cpp index 281872a..6cfa525 100644 --- a/data/auras/aura.cpp +++ b/data/auras/aura.cpp @@ -1129,16 +1129,19 @@ void Aura::_calculate_initial_damage(Ref aura_data, Ref } void Aura::_handle_aura_damage(Ref aura_data, Ref info) { - ERR_FAIL_COND(!INSTANCE_VALIDATE(info->dealer_get())); + if (info->dealer_get() && !INSTANCE_VALIDATE(info->dealer_get())) { + info->dealer_set(NULL); + } Math::randomize(); info->damage_set(_damage_min + (Math::rand() % (_damage_max = _damage_min))); - info->source_set_type(SpellDamageInfo::DAMAGE_SOURCE_AURA); - ERR_FAIL_COND(!INSTANCE_VALIDATE(info->dealer_get())); - - info->dealer_get()->sdeal_damage_to(info); + if (info->dealer_get()) { + info->dealer_get()->sdeal_damage_to(info); + } else { + info->receiver_get()->stake_damage(info); + } } void Aura::_sapply_passives_heal_receive(Ref data) { @@ -1154,16 +1157,19 @@ void Aura::_calculate_initial_heal(Ref aura_data, Ref i } void Aura::_handle_aura_heal(Ref aura_data, Ref info) { - ERR_FAIL_COND(!INSTANCE_VALIDATE(info->dealer_get())); + if (info->dealer_get() && !INSTANCE_VALIDATE(info->dealer_get())) { + info->dealer_set(NULL); + } Math::randomize(); info->heal_set(_heal_min + (Math::rand() % (_heal_max = _heal_min))); - info->source_set_type(SpellHealInfo::HEAL_SOURCE_AURA); - ERR_FAIL_COND(!INSTANCE_VALIDATE(info->dealer_get())); - - info->dealer_get()->sdeal_heal_to(info); + if (info->dealer_get()) { + info->dealer_get()->sdeal_heal_to(info); + } else { + info->receiver_get()->stake_heal(info); + } } void Aura::_validate_property(PropertyInfo &property) const {