forked from liza/Questionable
67 lines
2.3 KiB
C#
67 lines
2.3 KiB
C#
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using Questionable.Model;
|
|
using Questionable.Model.Common;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Data;
|
|
|
|
[SuppressMessage("Performance", "CA1822")]
|
|
internal sealed class AlliedSocietyData
|
|
{
|
|
public ReadOnlyDictionary<ushort, AlliedSocietyMountConfiguration> Mounts { get; } =
|
|
new Dictionary<ushort, AlliedSocietyMountConfiguration>
|
|
{
|
|
{ 66, new(1016093, EAetheryteLocation.SeaOfCloudsOkZundu) },
|
|
{ 79, new(1017031, EAetheryteLocation.DravanianForelandsAnyxTrine) },
|
|
{ 88, new(1017470, EAetheryteLocation.ChurningMistsZenith) },
|
|
{ 89, new(1017322, EAetheryteLocation.ChurningMistsZenith) },
|
|
{ 147, new(1024777, EAetheryteLocation.FringesPeeringStones) },
|
|
{ 369, new(1051798, EAetheryteLocation.KozamaukaDockPoga) },
|
|
}.AsReadOnly();
|
|
|
|
public EAlliedSociety GetCommonAlliedSocietyTurnIn(ElementId elementId)
|
|
{
|
|
if (elementId is QuestId questId)
|
|
{
|
|
return questId.Value switch
|
|
{
|
|
>= 2171 and <= 2200 => EAlliedSociety.VanuVanu,
|
|
>= 2261 and <= 2280 => EAlliedSociety.Vath,
|
|
>= 2290 and <= 2319 => EAlliedSociety.Moogles,
|
|
>= 5199 and <= 5226 => EAlliedSociety.Pelupelu,
|
|
_ => EAlliedSociety.None,
|
|
};
|
|
}
|
|
|
|
return EAlliedSociety.None;
|
|
}
|
|
|
|
public void GetCommonAlliedSocietyNpcs(EAlliedSociety alliedSociety, out uint[] normalNpcs, out uint[] mountNpcs)
|
|
{
|
|
if (alliedSociety == EAlliedSociety.VanuVanu)
|
|
{
|
|
normalNpcs = [1016088, 1016091, 1016092];
|
|
mountNpcs = [1016093];
|
|
}
|
|
else if (alliedSociety == EAlliedSociety.Vath)
|
|
{
|
|
normalNpcs = [];
|
|
mountNpcs = [1017031];
|
|
}
|
|
else if (alliedSociety == EAlliedSociety.Moogles)
|
|
{
|
|
normalNpcs = [];
|
|
mountNpcs = [1017322, 1017470, 1017471];
|
|
}
|
|
else
|
|
{
|
|
normalNpcs = [];
|
|
mountNpcs = [];
|
|
}
|
|
}
|
|
}
|
|
|
|
public sealed record AlliedSocietyMountConfiguration(uint IssuerDataId, EAetheryteLocation ClosestAetheryte);
|