35 lines
No EOL
1.2 KiB
C#
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;
|
|
} |