64 lines
2.3 KiB
C#
64 lines
2.3 KiB
C#
using AssortGenerator.Models.Input;
|
|
using AssortGenerator.Models.Other;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text.Json;
|
|
|
|
namespace AssortGenerator.Common.Helpers
|
|
{
|
|
public static class QuestHelper
|
|
{
|
|
private static QuestRoot _questData;
|
|
private static List<AssortUnlocks> _assortUnlocks;
|
|
public static QuestRoot GetQuestData()
|
|
{
|
|
if (_questData == null)
|
|
{
|
|
var questFilePath = InputFileHelper.GetInputFilePaths().FirstOrDefault(x => x.Contains("resp.client.quest.list"));
|
|
var questDataJson = File.ReadAllText(questFilePath);
|
|
_questData = JsonSerializer.Deserialize<QuestRoot>(questDataJson);
|
|
}
|
|
|
|
return _questData;
|
|
}
|
|
|
|
public static List<AssortUnlocks> GetAssortUnlocks()
|
|
{
|
|
if (_assortUnlocks == null)
|
|
{
|
|
_assortUnlocks = new List<AssortUnlocks>();
|
|
foreach (var quest in GetQuestData().data)
|
|
{
|
|
if (quest._id == "5b478b1886f7744d1b23c57d")
|
|
{
|
|
var x = 1;
|
|
}
|
|
|
|
foreach (var reward in quest.rewards.Success)
|
|
{
|
|
if (string.Equals(reward.type, "assortmentunlock", System.StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
_assortUnlocks.Add(new AssortUnlocks
|
|
{
|
|
AssortUnlockId = reward.id,
|
|
ItemUnlockedId = reward.target,
|
|
ItemUnlockedTemplateId = reward.items[0]._tpl,
|
|
LoyaltyLevel = (int)reward.loyaltyLevel,
|
|
QuestId = quest._id,
|
|
QuestRewardId = reward.id,
|
|
TraderId = reward.traderId,
|
|
TraderType = TraderHelper.GetTraderTypeById(reward.traderId),
|
|
Criteria = "Success"
|
|
}
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return _assortUnlocks;
|
|
}
|
|
}
|
|
}
|