Quest improvements
This commit is contained in:
parent
f0c6bda9dc
commit
7cdf7d096d
@ -110,10 +110,98 @@ namespace GenerateQuestFile
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
JsonWriter.WriteJson(questsToOutputToFile, "output", Directory.GetCurrentDirectory(), "quests");
|
||||
}
|
||||
|
||||
private static void CheckAndFixMissingProperties(Quest missingQuest)
|
||||
{
|
||||
if (missingQuest.description is null)
|
||||
{
|
||||
missingQuest.description = $"{missingQuest._id} description";
|
||||
}
|
||||
|
||||
if (missingQuest.failMessageText is null)
|
||||
{
|
||||
missingQuest.failMessageText = $"{missingQuest._id} failMessageText";
|
||||
}
|
||||
|
||||
if (missingQuest.name is null)
|
||||
{
|
||||
missingQuest.name = $"{missingQuest._id} name";
|
||||
}
|
||||
|
||||
if (missingQuest.note is null)
|
||||
{
|
||||
missingQuest.note = $"{missingQuest._id} note";
|
||||
}
|
||||
|
||||
|
||||
if (missingQuest.startedMessageText is null)
|
||||
{
|
||||
missingQuest.startedMessageText = $"{missingQuest._id} startedMessageText";
|
||||
}
|
||||
|
||||
if (missingQuest.successMessageText is null)
|
||||
{
|
||||
missingQuest.successMessageText = $"{missingQuest._id} successMessageText";
|
||||
}
|
||||
|
||||
if (missingQuest.templateId is null)
|
||||
{
|
||||
missingQuest.templateId = $"{missingQuest._id} successMessageText";
|
||||
}
|
||||
}
|
||||
|
||||
private static void AddMissingAvailableForStartConditions(Quest originalQuest, KeyValuePair<string, Quest> questToUpdate)
|
||||
{
|
||||
// Iterate over quest requirements in existing quest file
|
||||
foreach (var questRequirementToAdd in originalQuest.conditions.AvailableForStart.ToList())
|
||||
{
|
||||
//Exists already, skip
|
||||
if (questToUpdate.Value.conditions.AvailableForStart.Any(x => x._parent == questRequirementToAdd._parent
|
||||
&& x._props.target?.ToString() == questRequirementToAdd._props.target?.ToString()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
questToUpdate.Value.conditions.AvailableForStart.Add(questRequirementToAdd);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Look up the quests name by guid and add human readable string to quest object
|
||||
/// </summary>
|
||||
/// <param name="quest"></param>
|
||||
private static void AddQuestName(KeyValuePair<string, Quest> quest)
|
||||
{
|
||||
var questName = QuestHelper.GetQuestNameById(quest.Value._id); // special characters like ", brake the client when it parses it, gotta remove
|
||||
var rgx = new Regex("[^a-zA-Z0-9 -]");
|
||||
quest.Value.QuestName = rgx.Replace(questName, "");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loop over live quests and use if it exists, otherwise use existing data
|
||||
/// </summary>
|
||||
private static List<Quest> GetMissingQuestsNotInLiveFile(Dictionary<string, Quest> existingQuests, QuestRoot liveQuestData)
|
||||
{
|
||||
var missingQuestsToReturn = new List<Quest>();
|
||||
foreach (var quest in existingQuests.Values)
|
||||
{
|
||||
var liveQuest = liveQuestData.data.Find(x => x._id == quest._id);
|
||||
if (liveQuest is null)
|
||||
{
|
||||
missingQuestsToReturn.Add(quest);
|
||||
LoggingHelpers.LogError($"ERROR Quest {quest._id} {QuestHelper.GetQuestNameById(quest._id)} missing in live file. Will use fallback quests.json");
|
||||
}
|
||||
else
|
||||
{
|
||||
LoggingHelpers.LogSuccess($"SUCCESS Quest {quest._id} {QuestHelper.GetQuestNameById(quest._id)} found in live file.");
|
||||
}
|
||||
}
|
||||
|
||||
return missingQuestsToReturn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user