diff --git a/src/world/Action/Action.cpp b/src/world/Action/Action.cpp index 9567055c..8d2ee2f6 100644 --- a/src/world/Action/Action.cpp +++ b/src/world/Action/Action.cpp @@ -511,7 +511,7 @@ void Action::Action::buildEffects() bool shouldHitThisTarget = true; for( const auto& statusIt : getSourceChara()->getStatusEffectMap() ) { - bool result = statusIt.second->onActionHitTarget( this, actor.get(), victimCounter ); + bool result = statusIt.second->onActionHitTarget( this, actor, victimCounter ); if( !result ) shouldHitThisTarget = false; } diff --git a/src/world/StatusEffect/StatusEffect.cpp b/src/world/StatusEffect/StatusEffect.cpp index ec50620a..5739859c 100644 --- a/src/world/StatusEffect/StatusEffect.cpp +++ b/src/world/StatusEffect/StatusEffect.cpp @@ -335,7 +335,7 @@ void Sapphire::StatusEffect::StatusEffect::refresh( Sapphire::World::Action::Sta refresh(); } -bool Sapphire::StatusEffect::StatusEffect::onActionHitTarget( World::Action::Action* action, Entity::Chara* victim, int victimCounter ) +bool Sapphire::StatusEffect::StatusEffect::onActionHitTarget( World::Action::Action* action, Entity::CharaPtr victim, int victimCounter ) { switch( static_cast< Common::StatusEffectType >( m_effectEntry.effectType ) ) { @@ -351,7 +351,7 @@ bool Sapphire::StatusEffect::StatusEffect::onActionHitTarget( World::Action::Act break; } float restored = 0.01f * m_targetActor->getMaxMp() * m_effectEntry.effectValue1; - action->getEffectbuilder()->restoreMP( m_targetActor, m_targetActor, static_cast< uint32_t >( restored ) ); + action->getEffectbuilder()->restoreMP( victim, m_targetActor, static_cast< uint32_t >( restored ), Sapphire::Common::ActionEffectResultFlag::EffectOnSource ); } break; } diff --git a/src/world/StatusEffect/StatusEffect.h b/src/world/StatusEffect/StatusEffect.h index 72bf82d0..c8af5f5b 100644 --- a/src/world/StatusEffect/StatusEffect.h +++ b/src/world/StatusEffect/StatusEffect.h @@ -21,7 +21,7 @@ public: void onBeforeActionStart( World::Action::Action* action ); - bool onActionHitTarget( World::Action::Action* action, Entity::Chara* victim, int victimCounter ); + bool onActionHitTarget( World::Action::Action* action, Entity::CharaPtr victim, int victimCounter ); void applyStatus();