diff --git a/EOLib/PacketHandlers/OtherPlayerLevelUpHandler.cs b/EOLib/PacketHandlers/OtherPlayerLevelUpHandler.cs index 264d096e1..65c53c22b 100644 --- a/EOLib/PacketHandlers/OtherPlayerLevelUpHandler.cs +++ b/EOLib/PacketHandlers/OtherPlayerLevelUpHandler.cs @@ -1,4 +1,5 @@ -using EOLib.Domain.Character; +using AutomaticTypeMapper; +using EOLib.Domain.Character; using EOLib.Domain.Login; using EOLib.Domain.Notifiers; using EOLib.Net; @@ -7,6 +8,7 @@ namespace EOLib.PacketHandlers { + [AutoMappedType] public class OtherPlayerLevelUpHandler : InGameOnlyPacketHandler { private readonly IEnumerable _emoteNotifiers; diff --git a/EOLib/PacketHandlers/RecoverReplyHandler.cs b/EOLib/PacketHandlers/RecoverReplyHandler.cs index f6c000488..79243950b 100644 --- a/EOLib/PacketHandlers/RecoverReplyHandler.cs +++ b/EOLib/PacketHandlers/RecoverReplyHandler.cs @@ -38,15 +38,16 @@ public override bool HandlePacket(IPacket packet) .WithNewStat(CharacterStat.Karma, karma); if (level > 0) + { stats = stats.WithNewStat(CharacterStat.Level, level); + foreach (var notifier in _emoteNotifiers) + notifier.NotifyEmote((short)_characterRepository.MainCharacter.ID, Emote.LevelUp); + } - if (level > 0 && packet.ReadPosition < packet.Length) + if (packet.ReadPosition < packet.Length) { stats = stats.WithNewStat(CharacterStat.StatPoints, packet.ReadShort()) .WithNewStat(CharacterStat.SkillPoints, packet.ReadShort()); - - foreach (var notifier in _emoteNotifiers) - notifier.NotifyEmote((short)_characterRepository.MainCharacter.ID, Emote.LevelUp); } _characterRepository.MainCharacter = _characterRepository.MainCharacter.WithStats(stats); diff --git a/EndlessClient/Rendering/CharacterProperties/FaceRenderer.cs b/EndlessClient/Rendering/CharacterProperties/FaceRenderer.cs index 8a435d2ba..e34a708f4 100644 --- a/EndlessClient/Rendering/CharacterProperties/FaceRenderer.cs +++ b/EndlessClient/Rendering/CharacterProperties/FaceRenderer.cs @@ -14,7 +14,9 @@ public class FaceRenderer : BaseCharacterPropertyRenderer private readonly SkinRenderLocationCalculator _skinRenderLocationCalculator; public override bool CanRender => _renderProperties.IsActing(CharacterActionState.Emote) && - _renderProperties.EmoteFrame > 0; + _renderProperties.EmoteFrame > 0 && + _renderProperties.Emote != Emote.Trade && + _renderProperties.Emote != Emote.LevelUp; public FaceRenderer(ICharacterRenderProperties renderProperties, ISpriteSheet faceSheet,