punish v6.8.18.0
This commit is contained in:
commit
060278c1b7
317 changed files with 554155 additions and 0 deletions
|
@ -0,0 +1,98 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Questionable.Controller;
|
||||
using Questionable.Data;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Questing;
|
||||
using Questionable.Windows.QuestComponents;
|
||||
|
||||
namespace Questionable.Windows.JournalComponents;
|
||||
|
||||
internal sealed class AlliedSocietyJournalComponent
|
||||
{
|
||||
private static readonly string[] RankNames = new string[8] { "Neutral", "Recognized", "Friendly", "Trusted", "Respected", "Honored", "Sworn", "Allied" };
|
||||
|
||||
private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions;
|
||||
|
||||
private readonly QuestData _questData;
|
||||
|
||||
private readonly QuestRegistry _questRegistry;
|
||||
|
||||
private readonly QuestJournalUtils _questJournalUtils;
|
||||
|
||||
private readonly QuestTooltipComponent _questTooltipComponent;
|
||||
|
||||
private readonly UiUtils _uiUtils;
|
||||
|
||||
public AlliedSocietyJournalComponent(AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, QuestData questData, QuestRegistry questRegistry, QuestJournalUtils questJournalUtils, QuestTooltipComponent questTooltipComponent, UiUtils uiUtils)
|
||||
{
|
||||
_alliedSocietyQuestFunctions = alliedSocietyQuestFunctions;
|
||||
_questData = questData;
|
||||
_questRegistry = questRegistry;
|
||||
_questJournalUtils = questJournalUtils;
|
||||
_questTooltipComponent = questTooltipComponent;
|
||||
_uiUtils = uiUtils;
|
||||
}
|
||||
|
||||
public void DrawAlliedSocietyQuests()
|
||||
{
|
||||
using ImRaii.IEndObject endObject = ImRaii.TabItem("Allied Societies");
|
||||
if (!endObject)
|
||||
{
|
||||
return;
|
||||
}
|
||||
foreach (EAlliedSociety item in from x in Enum.GetValues<EAlliedSociety>()
|
||||
where x != EAlliedSociety.None
|
||||
select x)
|
||||
{
|
||||
List<QuestInfo> list = (from x in _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(item)
|
||||
select (QuestInfo)_questData.GetQuestInfo(x)).ToList();
|
||||
if (list.Count == 0 || !ImGui.CollapsingHeader($"{item}###AlliedSociety{item}"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ((int)item <= 5)
|
||||
{
|
||||
byte i = 1;
|
||||
while (i <= 8)
|
||||
{
|
||||
List<QuestInfo> list2 = list.Where((QuestInfo x) => x.AlliedSocietyRank == i).ToList();
|
||||
if (list2.Count != 0)
|
||||
{
|
||||
ImGui.Text(RankNames[i - 1]);
|
||||
foreach (QuestInfo item2 in list2)
|
||||
{
|
||||
DrawQuest(item2);
|
||||
}
|
||||
}
|
||||
byte b = (byte)(i + 1);
|
||||
i = b;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
foreach (QuestInfo item3 in list)
|
||||
{
|
||||
DrawQuest(item3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawQuest(QuestInfo questInfo)
|
||||
{
|
||||
var (color, icon, text) = _uiUtils.GetQuestStyle(questInfo.QuestId);
|
||||
if (!_questRegistry.TryGetQuest(questInfo.QuestId, out Quest quest) || quest.Root.Disabled)
|
||||
{
|
||||
color = ImGuiColors.DalamudGrey;
|
||||
}
|
||||
if (_uiUtils.ChecklistItem(questInfo.Name + " (" + text + ")", color, icon))
|
||||
{
|
||||
_questTooltipComponent.Draw(questInfo);
|
||||
}
|
||||
_questJournalUtils.ShowContextMenu(questInfo, quest, "AlliedSocietyJournalComponent");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue