feat(hs): add Heykel Savasi event map skeleton (map 90)

Adds HeykelSavasiMap (BaseMapInitializer, Number=90/World91) as an empty
terrain-only skeleton and registers it in GameMapsInitializer. Statue/guard
monster definitions and spawns are added by later Heykel Savasi tasks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Acentech Dev
2026-07-20 22:31:46 +03:00
parent 3d5d40b753
commit 5a354fb419
2 changed files with 67 additions and 0 deletions

View File

@@ -105,6 +105,7 @@ public class GameMapsInitializer : GameMapsInitializerBase
yield return typeof(Debenter);
yield return typeof(Uruk);
yield return typeof(Ferea);
yield return typeof(HeykelSavasiMap);
}
}
}

View File

@@ -0,0 +1,66 @@
// <copyright file="HeykelSavasiMap.cs" company="MUnique">
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
// </copyright>
namespace MUnique.OpenMU.Persistence.Initialization.VersionSeasonSix.Maps;
/// <summary>
/// The initialization for the Heykel Savasi event map.
/// Statue/guard monster definitions and NPC/monster spawns are added by later
/// Heykel Savasi tasks; for now this is an empty terrain-only skeleton.
/// </summary>
/// <remarks>
/// The MU client loads world folder <c>World{Number + 1}</c>, so server map
/// Number 90 corresponds to client World91.
/// </remarks>
internal class HeykelSavasiMap : BaseMapInitializer
{
/// <summary>
/// The Number of the Map.
/// </summary>
internal const byte Number = 90;
/// <summary>
/// The Name of the Map.
/// </summary>
internal const string Name = "Heykel Savasi";
/// <summary>
/// Initializes a new instance of the <see cref="HeykelSavasiMap"/> class.
/// </summary>
/// <param name="context">The context.</param>
/// <param name="gameConfiguration">The game configuration.</param>
public HeykelSavasiMap(IContext context, GameConfiguration gameConfiguration)
: base(context, gameConfiguration)
{
}
/// <inheritdoc/>
protected override byte MapNumber => Number;
/// <inheritdoc/>
protected override string MapName => Name;
/// <inheritdoc/>
protected override byte SafezoneMapNumber => Lorencia.Number;
/// <inheritdoc/>
protected override IEnumerable<MonsterSpawnArea> CreateNpcSpawns()
{
// Event NPCs are added by later Heykel Savasi tasks.
yield break;
}
/// <inheritdoc/>
protected override IEnumerable<MonsterSpawnArea> CreateMonsterSpawns()
{
// Statue/guard monster spawns are added by later Heykel Savasi tasks.
yield break;
}
/// <inheritdoc/>
protected override void CreateMonsters()
{
// Statue/guard MonsterDefinitions are added by later Heykel Savasi tasks.
}
}