Various bug fixes

Fix sim room system error
Added stub for obtain item in field
Properly save tutorial data
This commit is contained in:
Mikhail
2024-07-05 09:51:26 -04:00
parent 18102b9922
commit b4cc603343
9 changed files with 121 additions and 15 deletions

View File

@@ -41,5 +41,15 @@ namespace nksrv.StaticInfo
public int reward_id;
public int reward_value;
}
public class ClearedTutorialData
{
public int id;
public int VersionGroup = 0;
public int GroupId;
public int ClearedStageId;
public int NextId;
public bool SaveTutorial;
}
}

View File

@@ -48,6 +48,7 @@ namespace nksrv.StaticInfo
private JArray chapterCampaignData;
private JArray characterCostumeTable;
private JArray characterTable;
private JArray tutorialTable;
public StaticDataParser(string filePath)
{
if (!File.Exists(filePath)) throw new ArgumentException("Static data file must exist", nameof(filePath));
@@ -230,6 +231,7 @@ namespace nksrv.StaticInfo
chapterCampaignData = await LoadZip("CampaignChapterTable.json");
characterCostumeTable = await LoadZip("CharacterCostumeTable.json");
characterTable = await LoadZip("CharacterTable.json");
tutorialTable = await LoadZip("ContentsTutorialTable.json");
}
public MainQuestCompletionData? GetMainQuestForStageClearCondition(int stage)
@@ -382,5 +384,27 @@ namespace nksrv.StaticInfo
yield return value;
}
}
internal ClearedTutorialData GetTutorialDataById(int TableId)
{
foreach (JObject item in tutorialTable)
{
var id = item["id"];
if (id == null)
{
throw new Exception("expected id field in reward data");
}
int idValue = id.ToObject<int>();
if (idValue == TableId)
{
ClearedTutorialData? data = JsonConvert.DeserializeObject<ClearedTutorialData>(item.ToString());
if (data == null) throw new Exception("failed to deserialize reward data");
return data;
}
}
throw new Exception("tutorial not found: " + TableId);
}
}
}