diff --git a/src/world/Actor/Chara.cpp b/src/world/Actor/Chara.cpp index 60936608..a135f1e9 100644 --- a/src/world/Actor/Chara.cpp +++ b/src/world/Actor/Chara.cpp @@ -865,12 +865,18 @@ void Sapphire::Entity::Chara::onTick() } } + // TODO: don't really like how this is handled + // TODO: calculate actual damage from potency if( thisTickDmg != 0 ) { takeDamage( thisTickDmg ); server().queueForPlayers( getInRangePlayerIds( isPlayer() ), makeActorControl( getId(), HPFloatingText, 0, static_cast< uint8_t >( ActionEffectType::CALC_RESULT_TYPE_DAMAGE_HP ), thisTickDmg ) ); + if( isPlayer() ) + server().queueForPlayers( getInRangePlayerIds( isPlayer() ), makeHudParam( *getAsPlayer() ) ); + else if( isBattleNpc() ) + server().queueForPlayers( getInRangePlayerIds( isPlayer() ), makeHudParam( *getAsBNpc() ) ); } if( thisTickHeal != 0 ) @@ -879,5 +885,9 @@ void Sapphire::Entity::Chara::onTick() server().queueForPlayers( getInRangePlayerIds( isPlayer() ), makeActorControl( getId(), HPFloatingText, 0, static_cast< uint8_t >( ActionEffectType::CALC_RESULT_TYPE_RECOVER_HP ), thisTickHeal ) ); + if( isPlayer() ) + server().queueForPlayers( getInRangePlayerIds( isPlayer() ), makeHudParam( *getAsPlayer() ) ); + else if( isBattleNpc() ) + server().queueForPlayers( getInRangePlayerIds( isPlayer() ), makeHudParam( *getAsBNpc() ) ); } } \ No newline at end of file