feat: 변경된 게임플레이 방식에 맞게 stageManager 수정
This commit is contained in:
@@ -20,82 +20,20 @@ namespace TON
|
|||||||
public int gameScore { get; private set; } = 0; // 몬스터 처치로 얻은 점수 보상
|
public int gameScore { get; private set; } = 0; // 몬스터 처치로 얻은 점수 보상
|
||||||
|
|
||||||
private float stageStartTime; // 스테이지 시작 시간
|
private float stageStartTime; // 스테이지 시작 시간
|
||||||
// private string stageId; // 스테이지 아이디
|
|
||||||
|
|
||||||
|
|
||||||
public void Initialize()
|
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()
|
// 스테이지 시작 시 시작 정보 저장
|
||||||
{
|
public void StartStage()
|
||||||
Assert.IsTrue(JSONLoader.SaveUpdatedJsonToPersistentData(stageClearDatas, "stageClear"));
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StartStage(string stageId)
|
|
||||||
{
|
{
|
||||||
stageStartTime = Time.time;
|
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>
|
||||||
/// 게임 웨이브 진행 시 획득한 골드와 경험치 정보를 저장하게 함
|
/// 게임 웨이브 진행 시 획득한 골드와 경험치 정보를 저장하게 함
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -114,25 +52,13 @@ namespace TON
|
|||||||
{
|
{
|
||||||
string characterId = PlayerPrefs.GetString("BackendCustomID", string.Empty);
|
string characterId = PlayerPrefs.GetString("BackendCustomID", string.Empty);
|
||||||
float clearTime = Time.time - stageStartTime;
|
float clearTime = Time.time - stageStartTime;
|
||||||
// int starCount = GetStarCount(clearTime);
|
|
||||||
|
|
||||||
// TODO: UI 업데이트, 데이터 저장 로직 추가
|
// TODO: UI 업데이트, 데이터 저장 로직 추가
|
||||||
// StageClearData stageClearData = new StageClearData(characterId, stageId, clearTime, starCount);
|
// StageClearData stageClearData = new StageClearData(characterId, stageId, clearTime, starCount);
|
||||||
// stageClearDatas.Add(stageClearData);
|
// 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();
|
SkillDataManager.Singleton.Initalize();
|
||||||
StageManager.Singleton.StartStage(stageId);
|
// StageManager.Singleton.StartStage(stageId);
|
||||||
|
StageManager.Singleton.StartStage();
|
||||||
UIManager.Show<IngameUI>(UIList.IngameUI);
|
UIManager.Show<IngameUI>(UIList.IngameUI);
|
||||||
UIManager.Show<OptionUI>(UIList.OptionUI);
|
UIManager.Show<OptionUI>(UIList.OptionUI);
|
||||||
UIManager.Show<ControllerUI>(UIList.ControllerUI);
|
UIManager.Show<ControllerUI>(UIList.ControllerUI);
|
||||||
|
|||||||
Reference in New Issue
Block a user