server-master/srcs/WingsAPI.Game/Maps/TimeSpaceMapItem.cs
2026-02-10 18:21:30 +01:00

35 lines
No EOL
1.2 KiB
C#

using System.Threading.Tasks;
using PhoenixLib.Events;
using WingsEmu.Game.Items;
using WingsEmu.Game.Triggers;
namespace WingsEmu.Game.Maps;
public class TimeSpaceMapItem : MapItem, IEventTriggerContainer
{
private readonly IEventTriggerContainer _eventTriggerContainer;
public TimeSpaceMapItem(short x, short y, bool isQuest, GameItemInstance gameItemInstance, IAsyncEventPipeline asyncEventPipeline, IMapInstance mapInstance, int? dancingTime, bool isObjective)
: base(x, y, isQuest, mapInstance)
{
ItemInstance = gameItemInstance;
_eventTriggerContainer = new EventTriggerContainer(asyncEventPipeline);
DancingTime = dancingTime;
IsObjective = isObjective;
Amount = 1;
ItemVNum = gameItemInstance.ItemVNum;
CreatedDate = null;
}
public int? DancingTime { get; }
public bool IsObjective { get; }
public void AddEvent(string key, IAsyncEvent notification, bool removedOnTrigger = false)
{
_eventTriggerContainer.AddEvent(key, notification, removedOnTrigger);
}
public Task TriggerEvents(string key) => _eventTriggerContainer.TriggerEvents(key);
public override GameItemInstance GetItemInstance() => ItemInstance;
}