feat: 변경된 게임플레이 방식에 맞게 stageManager 수정
This commit is contained in:
@@ -20,82 +20,20 @@ namespace TON
|
||||
public int gameScore { get; private set; } = 0; // 몬스터 처치로 얻은 점수 보상
|
||||
|
||||
private float stageStartTime; // 스테이지 시작 시간
|
||||
// private string stageId; // 스테이지 아이디
|
||||
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
LoadStageClearData();
|
||||
SetStageClearDataList();
|
||||
}
|
||||
|
||||
private void LoadStageClearData()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
JSONLoader.SaveJsonToPersistentData("stageClear");
|
||||
#endif
|
||||
stageClearDatas = JSONLoader.LoadJsonFromPersistentData<List<StageClearData>>("stageClear");
|
||||
if (stageClearDatas == null)
|
||||
{
|
||||
stageClearDatas = new List<StageClearData>();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetStageClearDataList()
|
||||
{
|
||||
string characterId = PlayerDataManager.Singleton.player.id;
|
||||
|
||||
foreach (var data in stageClearDatas)
|
||||
{
|
||||
if (data.characterId != characterId)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// 만약 현재 stageId가 딕셔너리에 없거나, 기존 값보다 starRating이 높다면 업데이트
|
||||
if (!bestStageClearDict.ContainsKey(data.stageId) || bestStageClearDict[data.stageId].starRating < data.starRating)
|
||||
{
|
||||
bestStageClearDict[data.stageId] = data;
|
||||
}
|
||||
}
|
||||
|
||||
// 필터링된 결과를 새로운 리스트에 저장
|
||||
List<StageClearData> filteredList = new List<StageClearData>();
|
||||
foreach (var entry in bestStageClearDict)
|
||||
{
|
||||
filteredList.Add(entry.Value);
|
||||
}
|
||||
|
||||
// 결과 출력
|
||||
foreach (var data in filteredList)
|
||||
{
|
||||
Debug.Log($"StageID: {data.stageId}, StarRating: {data.starRating}, ID: {data.id}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void SaveStageClearData()
|
||||
{
|
||||
Assert.IsTrue(JSONLoader.SaveUpdatedJsonToPersistentData(stageClearDatas, "stageClear"));
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public void StartStage(string stageId)
|
||||
// 스테이지 시작 시 시작 정보 저장
|
||||
public void StartStage()
|
||||
{
|
||||
stageStartTime = Time.time;
|
||||
// this.stageId = stageId;
|
||||
}
|
||||
|
||||
// public int GetStarCount(float elapsedTime)
|
||||
// {
|
||||
// if (elapsedTime <= 180f)
|
||||
// return 3;
|
||||
// else if (elapsedTime <= 300f)
|
||||
// return 2;
|
||||
// else
|
||||
// return 1;
|
||||
// }
|
||||
|
||||
/// <summary>
|
||||
/// 게임 웨이브 진행 시 획득한 골드와 경험치 정보를 저장하게 함
|
||||
/// </summary>
|
||||
@@ -114,25 +52,13 @@ namespace TON
|
||||
{
|
||||
string characterId = PlayerPrefs.GetString("BackendCustomID", string.Empty);
|
||||
float clearTime = Time.time - stageStartTime;
|
||||
// int starCount = GetStarCount(clearTime);
|
||||
|
||||
// TODO: UI 업데이트, 데이터 저장 로직 추가
|
||||
// StageClearData stageClearData = new StageClearData(characterId, stageId, clearTime, starCount);
|
||||
// stageClearDatas.Add(stageClearData);
|
||||
SaveStageClearData();
|
||||
// SaveStageClearData();
|
||||
}
|
||||
|
||||
// public void StageGameOver()
|
||||
// {
|
||||
// string characterId = PlayerDataManager.Singleton.player.id;
|
||||
// float clearTime = Time.time - stageStartTime;
|
||||
// int starCount = -1;
|
||||
|
||||
// // UI 업데이트, 데이터 저장 로직 추가
|
||||
// StageClearData stageClearData = new StageClearData(characterId, stageId, clearTime, starCount);
|
||||
// stageClearDatas.Add(stageClearData);
|
||||
// SaveStageClearData();
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,8 @@ namespace TON
|
||||
}
|
||||
|
||||
SkillDataManager.Singleton.Initalize();
|
||||
StageManager.Singleton.StartStage(stageId);
|
||||
// StageManager.Singleton.StartStage(stageId);
|
||||
StageManager.Singleton.StartStage();
|
||||
UIManager.Show<IngameUI>(UIList.IngameUI);
|
||||
UIManager.Show<OptionUI>(UIList.OptionUI);
|
||||
UIManager.Show<ControllerUI>(UIList.ControllerUI);
|
||||
|
||||
Reference in New Issue
Block a user