Merge branch 'master' into mnk-stormblood

plogon_enjoyer 2024-08-31 12:59:38 +00:00
commit b36fe21f5a
10 changed files with 90 additions and 31 deletions

View File

@ -62,6 +62,9 @@ internal static class QuestStepExtensions
Assignment(nameof(QuestStep.IgnoreDistanceToObject),
step.IgnoreDistanceToObject, emptyStep.IgnoreDistanceToObject)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.RestartNavigationIfCancelled),
step.RestartNavigationIfCancelled, emptyStep.RestartNavigationIfCancelled)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.Comment), step.Comment, emptyStep.Comment)
.AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.Aetheryte), step.Aetheryte, emptyStep.Aetheryte)

View File

@ -53,6 +53,7 @@
"Y": -0.63573146,
"Z": -166.33862
},
"StopDistance": 5,
"TerritoryId": 141,
"InteractionType": "Interact"
}

View File

@ -35,6 +35,7 @@
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"Mount": true,
"DialogueChoices": [
{
"Type": "YesNo",

View File

@ -337,16 +337,6 @@
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": 233.0817,
"Y": 8,
"Z": -21.83023
},
"TerritoryId": 146,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2000077,
"Position": {
@ -360,18 +350,16 @@
"KillEnemyDataIds": [
9489
],
"$": "0 0 0 0 0 0 -> 16 17 0 0 0 128"
},
{
"Position": {
"X": 614.4023,
"Y": 301.81046,
"Z": -101.94888
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
"$": "0 0 0 0 0 0 -> 16 17 0 0 0 128",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
],
"Fly": true
},
{
"DataId": 2000078,
@ -386,7 +374,17 @@
"KillEnemyDataIds": [
9490
],
"$": "16 17 0 0 0 128 -> 0 17 0 0 0 0"
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"$": "16 17 0 0 0 128 -> 0 17 0 0 0 0",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},

View File

@ -191,6 +191,15 @@
"AethernetShard": "[Gold Saucer] Cactpot Board",
"DelaySecondsAtStart": 3
},
{
"Position": {
"X": 111.36922,
"Y": 13.000123,
"Z": -24.209782
},
"TerritoryId": 144,
"InteractionType": "WalkTo"
},
{
"DataId": 1011079,
"Position": {
@ -207,6 +216,15 @@
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": 111.36922,
"Y": 13.000123,
"Z": -24.209782
},
"TerritoryId": 144,
"InteractionType": "WalkTo"
},
{
"TerritoryId": 144,
"InteractionType": "None",

View File

@ -235,6 +235,16 @@ internal sealed class InteractionUiController : IDisposable
_logger.LogInformation("Checking if current quest {Name} is on the list", currentQuest.Quest.Info.Name);
if (CheckQuestSelection(addonSelectIconString, currentQuest.Quest, answers))
return;
var sequence = currentQuest.Quest.FindSequence(currentQuest.Sequence);
QuestStep? step = sequence?.FindStep(currentQuest.Step);
if (step is { InteractionType: EInteractionType.AcceptQuest, PickUpQuestId: not null } &&
_questRegistry.TryGetQuest(step.PickUpQuestId, out Quest? pickupQuest))
{
_logger.LogInformation("Checking if current picked-up {Name} is on the list", pickupQuest.Info.Name);
if (CheckQuestSelection(addonSelectIconString, pickupQuest, answers))
return;
}
}
var nextQuest = _questController.NextQuest;

View File

@ -68,7 +68,7 @@ internal static class MoveTo
public ITask Move(MoveParams moveParams)
{
return new MoveInternal(moveParams, movementController, gameFunctions,
loggerFactory.CreateLogger<MoveInternal>(), condition, clientState, dataManager);
loggerFactory.CreateLogger<MoveInternal>(), clientState, dataManager);
}
public ITask Land()
@ -163,26 +163,22 @@ internal static class MoveTo
private readonly string _cannotExecuteAtThisTime;
private readonly MovementController _movementController;
private readonly ILogger<MoveInternal> _logger;
private readonly ICondition _condition;
private readonly IClientState _clientState;
private readonly Action _startAction;
private readonly Vector3 _destination;
private readonly MoveParams _moveParams;
private readonly bool _isUnderwaterInitially;
private bool _canRestart;
public MoveInternal(MoveParams moveParams,
MovementController movementController,
GameFunctions gameFunctions,
ILogger<MoveInternal> logger,
ICondition condition,
IClientState clientState,
IDataManager dataManager)
{
_movementController = movementController;
_logger = logger;
_condition = condition;
_clientState = clientState;
_cannotExecuteAtThisTime = dataManager.GetString<LogMessage>(579, x => x.Text)!;
@ -257,8 +253,7 @@ internal static class MoveTo
public bool OnErrorToast(SeString message)
{
if (GameFunctions.GameStringEquals(_cannotExecuteAtThisTime, message.TextValue) &&
_condition[ConditionFlag.Diving])
if (GameFunctions.GameStringEquals(_cannotExecuteAtThisTime, message.TextValue))
return true;
return false;

View File

@ -0,0 +1,31 @@
using System;
using Dalamud.Plugin;
using Dalamud.Plugin.Ipc;
using Questionable.Controller;
namespace Questionable.External;
internal sealed class QuestionableIpc : IDisposable
{
private const string IpcIsRunning = "Questionable.IsRunning";
private const string IpcGetCurrentQuestId = "Questionable.GetCurrentQuestId";
private readonly ICallGateProvider<bool> _isRunning;
private readonly ICallGateProvider<string?> _getCurrentQuestId;
public QuestionableIpc(QuestController questController, IDalamudPluginInterface pluginInterface)
{
_isRunning = pluginInterface.GetIpcProvider<bool>(IpcIsRunning);
_isRunning.RegisterFunc(() => questController.IsRunning);
_getCurrentQuestId = pluginInterface.GetIpcProvider<string?>(IpcGetCurrentQuestId);
_getCurrentQuestId.RegisterFunc(() => questController.CurrentQuest?.Quest.Id.ToString());
}
public void Dispose()
{
_getCurrentQuestId.UnregisterFunc();
_isRunning.UnregisterFunc();
}
}

View File

@ -120,6 +120,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<LifestreamIpc>();
serviceCollection.AddSingleton<YesAlreadyIpc>();
serviceCollection.AddSingleton<ArtisanIpc>();
serviceCollection.AddSingleton<QuestionableIpc>();
}
private static void AddTaskFactories(ServiceCollection serviceCollection)
@ -235,6 +236,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceProvider.GetRequiredService<CreditsController>();
serviceProvider.GetRequiredService<HelpUiController>();
serviceProvider.GetRequiredService<LeveUiController>();
serviceProvider.GetRequiredService<QuestionableIpc>();
serviceProvider.GetRequiredService<DalamudInitializer>();
}

View File

@ -177,7 +177,7 @@ internal sealed partial class ActiveQuestComponent
{
using var _ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow);
ImGui.TextUnformatted(
$"Next Quest: {Shorten(currentQuest.Quest.Info.Name)} / {currentQuest.Sequence} / {currentQuest.Step}");
$"Next Quest: {Shorten(nextQuest.Quest.Info.Name)} / {nextQuest.Sequence} / {nextQuest.Step}");
}
}
}