forked from aly/qstbak
muffin v6.29
This commit is contained in:
parent
35a2f8bc36
commit
5885c72e0f
3 changed files with 57 additions and 17 deletions
|
|
@ -82042,12 +82042,30 @@ public static class AssemblyQuestLoader
|
|||
{
|
||||
Sequence = 3
|
||||
};
|
||||
num3 = 1;
|
||||
num3 = 2;
|
||||
List<QuestStep> list39 = new List<QuestStep>(num3);
|
||||
CollectionsMarshal.SetCount(list39, num3);
|
||||
span3 = CollectionsMarshal.AsSpan(list39);
|
||||
num2 = 0;
|
||||
span3[num2] = new QuestStep(EInteractionType.Interact, 1000471u, new Vector3(-60.471558f, 0.19999865f, 6.301941f), 148);
|
||||
num2++;
|
||||
span3[num2] = new QuestStep(EInteractionType.PurchaseItem, 1000220u, new Vector3(16.189758f, -8.010209f, -15.640564f), 148)
|
||||
{
|
||||
ItemId = 4868u,
|
||||
ItemCount = 1,
|
||||
SkipConditions = new SkipConditions
|
||||
{
|
||||
StepIf = new SkipStepConditions
|
||||
{
|
||||
Item = new SkipItemConditions()
|
||||
}
|
||||
},
|
||||
PurchaseMenu = new PurchaseMenu
|
||||
{
|
||||
ExcelSheet = "GilShop",
|
||||
Key = new ExcelRef(262773u)
|
||||
}
|
||||
};
|
||||
obj24.Steps = list39;
|
||||
reference29 = obj24;
|
||||
num++;
|
||||
|
|
@ -464646,7 +464664,7 @@ public static class AssemblyQuestLoader
|
|||
CollectionsMarshal.SetCount(list48, index2);
|
||||
span3 = CollectionsMarshal.AsSpan(list48);
|
||||
num2 = 0;
|
||||
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054636u, new Vector3(506.70618f, 142.24991f, 800.2289f), 1187)
|
||||
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
|
||||
{
|
||||
Fly = true,
|
||||
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
|
||||
|
|
@ -464709,7 +464727,7 @@ public static class AssemblyQuestLoader
|
|||
}
|
||||
};
|
||||
num2++;
|
||||
span3[num2] = new QuestStep(EInteractionType.CompleteQuest, 1054636u, new Vector3(506.70618f, 142.24991f, 800.2289f), 1187)
|
||||
span3[num2] = new QuestStep(EInteractionType.CompleteQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
|
||||
{
|
||||
Fly = true,
|
||||
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
|
||||
|
|
@ -465462,7 +465480,8 @@ public static class AssemblyQuestLoader
|
|||
ref QuestStep reference59 = ref span3[num2];
|
||||
QuestStep obj59 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
|
||||
{
|
||||
TargetTerritoryId = (ushort)1297
|
||||
TargetTerritoryId = (ushort)1297,
|
||||
Fly = true
|
||||
};
|
||||
SkipConditions skipConditions8 = new SkipConditions();
|
||||
SkipStepConditions skipStepConditions8 = new SkipStepConditions();
|
||||
|
|
|
|||
|
|
@ -281,27 +281,43 @@ internal sealed class CombatController : IDisposable
|
|||
continue;
|
||||
}
|
||||
ComplexCombatData complexCombatData = complexCombatDatas[i];
|
||||
if (complexCombatData.MinimumKillCount.HasValue)
|
||||
bool hasValue = complexCombatData.MinimumKillCount.HasValue;
|
||||
bool flag = complexCombatData.RewardItemId.HasValue && complexCombatData.RewardItemCount.HasValue;
|
||||
bool flag2 = QuestWorkUtils.HasCompletionFlags(complexCombatData.CompletionQuestVariablesFlags);
|
||||
if (hasValue || flag)
|
||||
{
|
||||
bool flag3 = true;
|
||||
bool flag4 = true;
|
||||
if (hasValue)
|
||||
{
|
||||
int valueOrDefault = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(i, 0);
|
||||
if (valueOrDefault >= complexCombatData.MinimumKillCount.Value)
|
||||
flag3 = valueOrDefault >= complexCombatData.MinimumKillCount.Value;
|
||||
if (flag3)
|
||||
{
|
||||
_logger.LogInformation("Complex combat condition fulfilled: killCount({DataId}) = {Count}/{Required}", complexCombatData.DataId, valueOrDefault, complexCombatData.MinimumKillCount.Value);
|
||||
_currentFight.Data.CompletedComplexDatas.Add(i);
|
||||
continue;
|
||||
_logger.LogDebug("Kill count condition met for ComplexCombatData[{Index}]: {Count}/{Required}", i, valueOrDefault, complexCombatData.MinimumKillCount.Value);
|
||||
}
|
||||
}
|
||||
if (complexCombatData.RewardItemId.HasValue && complexCombatData.RewardItemCount.HasValue && InventoryManager.Instance()->GetInventoryItemCount(complexCombatData.RewardItemId.Value, isHq: false, checkEquipped: true, checkArmory: true, 0) >= complexCombatData.RewardItemCount.Value)
|
||||
if (flag)
|
||||
{
|
||||
_logger.LogInformation("Complex combat condition fulfilled: itemCount({ItemId}) >= {ItemCount}", complexCombatData.RewardItemId, complexCombatData.RewardItemCount);
|
||||
int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(complexCombatData.RewardItemId.Value, isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
flag4 = inventoryItemCount >= complexCombatData.RewardItemCount.Value;
|
||||
if (flag4)
|
||||
{
|
||||
_logger.LogDebug("Item count condition met for ComplexCombatData[{Index}]: {ItemId} = {Count}/{Required}", i, complexCombatData.RewardItemId.Value, inventoryItemCount, complexCombatData.RewardItemCount.Value);
|
||||
}
|
||||
}
|
||||
if (flag3 && flag4)
|
||||
{
|
||||
_logger.LogInformation("Complex combat condition fulfilled for ComplexCombatData[{Index}] ({DataId}): KillCount={KillCountMet}, Items={ItemMet}", i, complexCombatData.DataId, flag3, flag4);
|
||||
_currentFight.Data.CompletedComplexDatas.Add(i);
|
||||
}
|
||||
else if (QuestWorkUtils.HasCompletionFlags(complexCombatData.CompletionQuestVariablesFlags) && _currentFight.Data.ElementId is QuestId elementId)
|
||||
}
|
||||
else if (flag2 && _currentFight.Data.ElementId is QuestId elementId)
|
||||
{
|
||||
QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(elementId);
|
||||
if (questProgressInfo != null && QuestWorkUtils.MatchesQuestWork(complexCombatData.CompletionQuestVariablesFlags, questProgressInfo))
|
||||
{
|
||||
_logger.LogInformation("Complex combat condition fulfilled: QuestWork matches");
|
||||
_logger.LogInformation("Complex combat condition fulfilled for ComplexCombatData[{Index}] ({DataId}): QuestWork (fallback)", i, complexCombatData.DataId);
|
||||
_currentFight.Data.CompletedComplexDatas.Add(i);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,12 @@ namespace Questionable.External;
|
|||
|
||||
internal sealed class PandorasBoxIpc : IDisposable
|
||||
{
|
||||
private static readonly ImmutableHashSet<string> ConflictingFeatures = new HashSet<string> { "Auto-Meditation", "Auto-Motif (Out of Combat)", "Auto-Mount after Combat", "Auto-Mount after Gathering", "Auto-Peleton", "Auto-Sprint in Sanctuaries", "Auto-interact with Gathering Nodes", "Auto-select Turn-ins", "Auto-Sync FATEs", "Pandora Quick Gather" }.ToImmutableHashSet();
|
||||
private static readonly ImmutableHashSet<string> ConflictingFeatures = new HashSet<string>
|
||||
{
|
||||
"Auto-Collect", "Auto-Cordial", "Auto-Meditation", "Auto-Motif (Out of Combat)", "Auto-Mount After Combat", "Auto-Mount after Gathering", "Auto-Mount on Zone Change", "Auto-Peleton", "Auto-Prospect/Triangulate", "Auto-Sprint in Sanctuaries",
|
||||
"Auto-Summon Chocobo", "Auto-Summon Fairy/Carbuncle", "Auto-Tank Stance", "Action Combat Targeting", "Auto-interact with Gathering Nodes", "FATE Targeting Mode", "Auto-Teleport to Map Coords", "Auto-select Turn-ins", "Auto-Equip Recommended Gear", "Auto-Sync FATEs",
|
||||
"Pandora Quick Gather", "Switch Gatherers Automatically"
|
||||
}.ToImmutableHashSet();
|
||||
|
||||
private readonly IFramework _framework;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue