server-master/srcs/WingsAPI.Scripting/Object/Common/SMonster.cs
2026-02-10 18:21:30 +01:00

74 lines
No EOL
1.9 KiB
C#

using System;
using System.Collections.Generic;
using WingsAPI.Scripting.Attribute;
using WingsAPI.Scripting.Event;
using WingsAPI.Scripting.Object.Raid;
namespace WingsAPI.Scripting.Object.Common
{
/// <summary>
/// Object used to represent a monster in a script
/// </summary>
[ScriptObject]
public class SMonster
{
/// <summary>
/// Randomly generated id
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// Vnum of monster
/// </summary>
public short Vnum { get; set; }
/// <summary>
/// Position where this monster will be spawned
/// </summary>
public SPosition Position { get; set; }
public bool IsRandomPosition { get; set; }
/// <summary>
/// Define if monster is a boss or not
/// </summary>
public bool IsBoss { get; set; }
/// <summary>
/// Define if monster can move or not
/// </summary>
public bool CanMove { get; set; }
/// <summary>
/// Define if monster is a target
/// </summary>
public bool IsTarget { get; set; }
/// <summary>
/// Define if monster should walk to boss position
/// </summary>
public SPosition GoToBossPosition { get; set; }
public IEnumerable<SDropChance> Drop { get; set; }
public IDictionary<string, IEnumerable<SEvent>> Events { get; set; }
public bool SpawnAfterTask { get; set; }
public int SpawnAfterMobs { get; set; }
public byte Direction { get; set; }
public byte? CustomLevel { get; set; }
public float? HpMultiplier { get; set; }
public float? MpMultiplier { get; set; }
public string AtAroundMobId { get; set; }
public byte? AtAroundMobRange { get; set; }
public IEnumerable<SWaypoint> Waypoints { get; set; }
}
}