feat(hs): define statue (destructible) + guard monster definitions

This commit is contained in:
Acentech Dev
2026-07-20 23:52:34 +03:00
parent 372929a8d1
commit 32e05e2bc1

View File

@@ -4,6 +4,10 @@
namespace MUnique.OpenMU.Persistence.Initialization.VersionSeasonSix.Maps;
using MUnique.OpenMU.AttributeSystem;
using MUnique.OpenMU.DataModel.Configuration;
using MUnique.OpenMU.GameLogic.Attributes;
/// <summary>
/// The initialization for the Heykel Savasi event map.
/// Statue/guard monster definitions and NPC/monster spawns are added by later
@@ -61,6 +65,47 @@ internal class HeykelSavasiMap : BaseMapInitializer
/// <inheritdoc/>
protected override void CreateMonsters()
{
// Statue/guard MonsterDefinitions are added by later Heykel Savasi tasks.
// Heykel (destructible statue)
{
var statue = this.Context.CreateNew<MonsterDefinition>();
this.GameConfiguration.Monsters.Add(statue);
statue.Number = 561;
statue.Designation = "Heykel";
statue.ObjectKind = NpcObjectKind.Destructible;
statue.MoveRange = 0;
statue.AttackRange = 0;
var statueAttributes = new Dictionary<AttributeDefinition, float>
{
{ Stats.Level, 100 },
{ Stats.MaximumHealth, 200000 }, // tuning
{ Stats.DefenseBase, 200 },
{ Stats.DefenseRatePvm, 100 },
};
statue.AddAttributes(statueAttributes, this.Context, this.GameConfiguration);
statue.SetGuid(statue.Number);
}
// Heykel Muhafizi (guard monster)
{
var guard = this.Context.CreateNew<MonsterDefinition>();
this.GameConfiguration.Monsters.Add(guard);
guard.Number = 580;
guard.Designation = "Heykel Muhafizi";
guard.ObjectKind = NpcObjectKind.Monster;
guard.MoveRange = 3;
guard.AttackRange = 2;
var guardAttributes = new Dictionary<AttributeDefinition, float>
{
{ Stats.Level, 110 },
{ Stats.MaximumHealth, 80000 }, // tuning
{ Stats.MinimumPhysBaseDmg, 900 },
{ Stats.MaximumPhysBaseDmg, 1100 },
{ Stats.DefenseBase, 400 },
{ Stats.AttackRatePvm, 1200 },
{ Stats.DefenseRatePvm, 500 },
};
guard.AddAttributes(guardAttributes, this.Context, this.GameConfiguration);
guard.SetGuid(guard.Number);
}
}
}