using System.Collections.Generic; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Interactions; using Questionable.Functions; using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Shared; internal static class TicketTeleport { internal sealed record Task(uint ItemId, ushort DestTerritoryId) : UseItem.IUseItemBase, ITask { public ElementId? QuestId => null; public IList CompletionQuestVariablesFlags => new List(); public bool StartingCombat => false; public bool ShouldRedoOnInterrupt() { return true; } public override string ToString() { return $"TicketTeleport({ItemId} -> territory {DestTerritoryId})"; } } internal sealed class UseTicketExecutor : UseItem.UseItemExecutorBase { public UseTicketExecutor(GameFunctions gameFunctions, QuestFunctions questFunctions, ICondition condition, ILogger logger) { _003CgameFunctions_003EP = gameFunctions; base._002Ector(questFunctions, condition, (ILogger)logger); } protected override bool UseItem() { return _003CgameFunctions_003EP.UseItem(base.ItemId); } } }