增加成就存储

This commit is contained in:
wuwenbo 2025-07-16 14:56:33 +08:00
parent 39e732df93
commit bd3799fde2

View File

@ -29,7 +29,7 @@ namespace RuntimeData
string json = File.ReadAllText(path);
Achievement = JsonUtility.FromJson<AchievementAsset>(json);
}
if (Achievement == null) Achievement = Resources.Load<AchievementAsset>("DataAssets/Achievement");
if (Achievement == null) Achievement = Resources.Load<AchievementAsset>("Export/Achievement");
FinishedCache ??= new List<uint>();
FinishedCache.Clear();
}
@ -43,30 +43,35 @@ namespace RuntimeData
{
foreach (var item in Achievement.AchievementList)
item.OnTurnStart(map, player);
SaveAchievementData();
}
public void OnTrainUnit(MapData map, PlayerData player, CityData city, UnitData newUnit)
{
foreach (var item in Achievement.AchievementList)
item.OnTrainUnit(map, player, city, newUnit);
SaveAchievementData();
}
public void OnBuildWonder(MapData map, PlayerData player, CityData city, GridData grid)
{
foreach (var item in Achievement.AchievementList)
item.OnBuildWonder(map, player, city, grid);
SaveAchievementData();
}
public void OnKillUnit(MapData map, UnitData origin, UnitData target)
{
foreach (var item in Achievement.AchievementList)
item.OnKillUnit(map, origin, target);
SaveAchievementData();
}
public void OnUnitMove(MapData map, UnitData unit, GridData gridData)
{
foreach (var item in Achievement.AchievementList)
item.OnUnitMove(map, unit, gridData);
SaveAchievementData();
}
public bool IsFinished(uint bigId, uint smallId, uint internalID)
@ -83,5 +88,12 @@ namespace RuntimeData
if (item.IsFinished) return "";
return item.GetConditionDescription();
}
public void SaveAchievementData()
{
if (Achievement == null) return;
string json = JsonUtility.ToJson(Achievement);
File.WriteAllText(Application.persistentDataPath + "/achievement.json", json);
}
}
}