qstbak/Questionable/Questionable.Controller.Steps.Shared/TicketTeleport.cs
2026-08-17 20:29:32 +10:00

44 lines
1.2 KiB
C#

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<QuestWorkValue?> CompletionQuestVariablesFlags => new List<QuestWorkValue>();
public bool StartingCombat => false;
public bool ShouldRedoOnInterrupt()
{
return true;
}
public override string ToString()
{
return $"TicketTeleport({ItemId} -> territory {DestTerritoryId})";
}
}
internal sealed class UseTicketExecutor : UseItem.UseItemExecutorBase<Task>
{
public UseTicketExecutor(GameFunctions gameFunctions, QuestFunctions questFunctions, ICondition condition, ILogger<UseTicketExecutor> logger)
{
_003CgameFunctions_003EP = gameFunctions;
base._002Ector(questFunctions, condition, (ILogger)logger);
}
protected override bool UseItem()
{
return _003CgameFunctions_003EP.UseItem(base.ItemId);
}
}
}