1
0
Fork 0
forked from aly/qstbak

muffin v6.29

This commit is contained in:
alydev 2025-10-21 09:04:06 +10:00
parent 35a2f8bc36
commit 5885c72e0f
3 changed files with 57 additions and 17 deletions

View file

@ -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);
}
}