muffin v7.4.1
This commit is contained in:
parent
a4175abacd
commit
7ae14cf8b8
24 changed files with 2673 additions and 722 deletions
|
|
@ -4,8 +4,6 @@ using System.Collections.ObjectModel;
|
|||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using Dalamud.Game;
|
||||
using Dalamud.Game.ClientState.Objects;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ internal sealed class ExcelFunctions
|
|||
switch (excelSheet)
|
||||
{
|
||||
case "GimmickYesNo":
|
||||
return _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId)?.Unknown0;
|
||||
return _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId)?.Message;
|
||||
case "Warp":
|
||||
return _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(rowId)?.Name;
|
||||
case "Addon":
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@ using System.Collections.ObjectModel;
|
|||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.InteropServices;
|
||||
using Dalamud.Game;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Game.ClientState.Objects;
|
||||
using Dalamud.Game.ClientState.Objects.Enums;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ internal sealed class QuestFunctions
|
|||
|
||||
private readonly QuestData _questData;
|
||||
|
||||
private readonly JournalData _journalData;
|
||||
|
||||
private readonly AetheryteFunctions _aetheryteFunctions;
|
||||
|
||||
private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions;
|
||||
|
|
@ -70,10 +72,11 @@ internal sealed class QuestFunctions
|
|||
|
||||
private ElementId? _lastLoggedAcceptedHiddenMsq;
|
||||
|
||||
public QuestFunctions(QuestRegistry questRegistry, QuestData questData, AetheryteFunctions aetheryteFunctions, AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, AlliedSocietyData alliedSocietyData, AetheryteData aetheryteData, Configuration configuration, IDataManager dataManager, IObjectTable objectTable, IClientState clientState, IGameGui gameGui, IAetheryteList aetheryteList, ILogger<QuestFunctions> logger)
|
||||
public QuestFunctions(QuestRegistry questRegistry, QuestData questData, JournalData journalData, AetheryteFunctions aetheryteFunctions, AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, AlliedSocietyData alliedSocietyData, AetheryteData aetheryteData, Configuration configuration, IDataManager dataManager, IObjectTable objectTable, IClientState clientState, IGameGui gameGui, IAetheryteList aetheryteList, ILogger<QuestFunctions> logger)
|
||||
{
|
||||
_questRegistry = questRegistry;
|
||||
_questData = questData;
|
||||
_journalData = journalData;
|
||||
_aetheryteFunctions = aetheryteFunctions;
|
||||
_alliedSocietyQuestFunctions = alliedSocietyQuestFunctions;
|
||||
_alliedSocietyData = alliedSocietyData;
|
||||
|
|
@ -870,7 +873,7 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
if (IsQuestUnobtainable(questId, extraCompletedQuest))
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId);
|
||||
if (questInfo.GrandCompany != FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.None)
|
||||
|
|
@ -891,10 +894,10 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return !IsDailyAlliedSocietyQuestAndAvailableToday(questId);
|
||||
}
|
||||
if (questInfo.IsMoogleDeliveryQuest)
|
||||
if (_journalData.MoogleDeliveryGenreId.HasValue && questInfo.JournalGenre == _journalData.MoogleDeliveryGenreId.Value)
|
||||
{
|
||||
byte b = PlayerState.Instance()->DeliveryLevel;
|
||||
if (extraCompletedQuest != null && _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo questInfo2) && questInfo2 is QuestInfo { IsMoogleDeliveryQuest: not false })
|
||||
if (extraCompletedQuest != null && _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo questInfo2) && questInfo2 is QuestInfo questInfo3 && _journalData.MoogleDeliveryGenreId.HasValue && questInfo3.JournalGenre == _journalData.MoogleDeliveryGenreId.Value)
|
||||
{
|
||||
b++;
|
||||
}
|
||||
|
|
@ -1033,25 +1036,25 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return true;
|
||||
}
|
||||
if (questInfo2.JournalGenre >= 234 && questInfo2.JournalGenre <= 247)
|
||||
if (questInfo2.JournalGenre.HasValue && _journalData.SeasonalEventGenreIds.Contains(questInfo2.JournalGenre.Value))
|
||||
{
|
||||
if (_questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest))
|
||||
{
|
||||
List<QuestSequence> list = quest?.Root?.QuestSequence;
|
||||
if (list != null && list.Count > 0)
|
||||
{
|
||||
goto IL_0288;
|
||||
goto IL_027a;
|
||||
}
|
||||
}
|
||||
if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value))
|
||||
{
|
||||
_questData.ApplySeasonalOverride(questId, isSeasonal: true, null);
|
||||
_logger.LogDebug("Quest {QuestId} unobtainable: journal genre is 'event (seasonal)' and no quest path", questId);
|
||||
_logger.LogDebug("Quest {QuestId} unobtainable: journal genre {Genre} is 'event (seasonal)' and no quest path", questId, questInfo2.JournalGenre);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
goto IL_0288;
|
||||
IL_0288:
|
||||
goto IL_027a;
|
||||
IL_027a:
|
||||
if (questInfo2.QuestLocks.Count > 0)
|
||||
{
|
||||
int num = questInfo2.QuestLocks.Count((QuestId x) => IsQuestComplete(x) || x.Equals(extraCompletedQuest));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue