diff --git a/EndlessClient/Rendering/Map/IMapRenderer.cs b/EndlessClient/Rendering/Map/IMapRenderer.cs index 23384869f..d1c214533 100644 --- a/EndlessClient/Rendering/Map/IMapRenderer.cs +++ b/EndlessClient/Rendering/Map/IMapRenderer.cs @@ -7,5 +7,7 @@ public interface IMapRenderer : IGameComponent void StartMapTransition(); void StartEarthquake(byte strength); + + void RedrawGroundLayer(); } } diff --git a/EndlessClient/Rendering/Map/MapChangedActions.cs b/EndlessClient/Rendering/Map/MapChangedActions.cs index 07fa23b7a..0f35b291d 100644 --- a/EndlessClient/Rendering/Map/MapChangedActions.cs +++ b/EndlessClient/Rendering/Map/MapChangedActions.cs @@ -64,6 +64,9 @@ public void NotifyMapChanged(WarpAnimation warpAnimation, bool differentMapID) ShowMapTransition(differentMapID); AddSpikeTraps(); ShowWarpBubbles(warpAnimation); + + if (!differentMapID) + RedrawGroundLayer(); } private void StopAllAnimations() @@ -131,6 +134,12 @@ private void ShowWarpBubbles(WarpAnimation animation) _characterRendererRepository.MainCharacterRenderer.ShowWarpArrive(); } } + + private void RedrawGroundLayer() + { + var mapRenderer = _hudControlProvider.GetComponent(HudControlIdentifier.MapRenderer); + mapRenderer.RedrawGroundLayer(); + } } public interface IMapChangedActions diff --git a/EndlessClient/Rendering/Map/MapRenderer.cs b/EndlessClient/Rendering/Map/MapRenderer.cs index 2c822bab4..789921e3b 100644 --- a/EndlessClient/Rendering/Map/MapRenderer.cs +++ b/EndlessClient/Rendering/Map/MapRenderer.cs @@ -146,6 +146,12 @@ public void StartEarthquake(byte strength) _quakeState = new MapQuakeState(strength); } + public void RedrawGroundLayer() + { + _lastMapChecksum = null; + _mapTransitionState = new MapTransitionState(DateTime.Now - new TimeSpan(0, 5, 0), 255); + } + private void UpdateQuakeState() { // when quake: