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
|
|
@ -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)
|
||||
{
|
||||
int valueOrDefault = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(i, 0);
|
||||
if (valueOrDefault >= complexCombatData.MinimumKillCount.Value)
|
||||
bool flag3 = true;
|
||||
bool flag4 = true;
|
||||
if (hasValue)
|
||||
{
|
||||
_logger.LogInformation("Complex combat condition fulfilled: killCount({DataId}) = {Count}/{Required}", complexCombatData.DataId, valueOrDefault, complexCombatData.MinimumKillCount.Value);
|
||||
int valueOrDefault = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(i, 0);
|
||||
flag3 = valueOrDefault >= complexCombatData.MinimumKillCount.Value;
|
||||
if (flag3)
|
||||
{
|
||||
_logger.LogDebug("Kill count condition met for ComplexCombatData[{Index}]: {Count}/{Required}", i, valueOrDefault, complexCombatData.MinimumKillCount.Value);
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (complexCombatData.RewardItemId.HasValue && complexCombatData.RewardItemCount.HasValue && InventoryManager.Instance()->GetInventoryItemCount(complexCombatData.RewardItemId.Value, isHq: false, checkEquipped: true, checkArmory: true, 0) >= complexCombatData.RewardItemCount.Value)
|
||||
{
|
||||
_logger.LogInformation("Complex combat condition fulfilled: itemCount({ItemId}) >= {ItemCount}", complexCombatData.RewardItemId, complexCombatData.RewardItemCount);
|
||||
_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