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
|
Sequence = 3
|
||||||
};
|
};
|
||||||
num3 = 1;
|
num3 = 2;
|
||||||
List<QuestStep> list39 = new List<QuestStep>(num3);
|
List<QuestStep> list39 = new List<QuestStep>(num3);
|
||||||
CollectionsMarshal.SetCount(list39, num3);
|
CollectionsMarshal.SetCount(list39, num3);
|
||||||
span3 = CollectionsMarshal.AsSpan(list39);
|
span3 = CollectionsMarshal.AsSpan(list39);
|
||||||
num2 = 0;
|
num2 = 0;
|
||||||
span3[num2] = new QuestStep(EInteractionType.Interact, 1000471u, new Vector3(-60.471558f, 0.19999865f, 6.301941f), 148);
|
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;
|
obj24.Steps = list39;
|
||||||
reference29 = obj24;
|
reference29 = obj24;
|
||||||
num++;
|
num++;
|
||||||
|
|
@ -464646,7 +464664,7 @@ public static class AssemblyQuestLoader
|
||||||
CollectionsMarshal.SetCount(list48, index2);
|
CollectionsMarshal.SetCount(list48, index2);
|
||||||
span3 = CollectionsMarshal.AsSpan(list48);
|
span3 = CollectionsMarshal.AsSpan(list48);
|
||||||
num2 = 0;
|
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,
|
Fly = true,
|
||||||
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
|
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
|
||||||
|
|
@ -464709,7 +464727,7 @@ public static class AssemblyQuestLoader
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
num2++;
|
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,
|
Fly = true,
|
||||||
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
|
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
|
||||||
|
|
@ -465462,7 +465480,8 @@ public static class AssemblyQuestLoader
|
||||||
ref QuestStep reference59 = ref span3[num2];
|
ref QuestStep reference59 = ref span3[num2];
|
||||||
QuestStep obj59 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
|
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();
|
SkipConditions skipConditions8 = new SkipConditions();
|
||||||
SkipStepConditions skipStepConditions8 = new SkipStepConditions();
|
SkipStepConditions skipStepConditions8 = new SkipStepConditions();
|
||||||
|
|
|
||||||
|
|
@ -281,27 +281,43 @@ internal sealed class CombatController : IDisposable
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ComplexCombatData complexCombatData = complexCombatDatas[i];
|
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);
|
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);
|
_logger.LogDebug("Kill count condition met for ComplexCombatData[{Index}]: {Count}/{Required}", i, valueOrDefault, complexCombatData.MinimumKillCount.Value);
|
||||||
_currentFight.Data.CompletedComplexDatas.Add(i);
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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);
|
_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);
|
QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(elementId);
|
||||||
if (questProgressInfo != null && QuestWorkUtils.MatchesQuestWork(complexCombatData.CompletionQuestVariablesFlags, questProgressInfo))
|
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);
|
_currentFight.Data.CompletedComplexDatas.Add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,12 @@ namespace Questionable.External;
|
||||||
|
|
||||||
internal sealed class PandorasBoxIpc : IDisposable
|
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;
|
private readonly IFramework _framework;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue