forked from chomp/ChompQuestVerifier
Quest improvements
This commit is contained in:
parent
f0c6bda9dc
commit
7cdf7d096d
@ -110,10 +110,98 @@ namespace GenerateQuestFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonWriter.WriteJson(questsToOutputToFile, "output", Directory.GetCurrentDirectory(), "quests");
|
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