97 lines
2.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Text;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class ReplayCell : MonoBehaviour
{
[SerializeField] private Image winImage;
[SerializeField] private Image loseImage;
[SerializeField] private Image drawImage;
[SerializeField] private TMP_Text playerNicknameText;
[SerializeField] private TMP_Text recordDateText;
private ReplayRecord _storedReplayRecord;
private Enums.PlayerType _myPlayerType;
private string _opponentNickname;
public void SetWinImage(Enums.GameResult gameResult)
{
switch(gameResult)
{
case Enums.GameResult.Win:
winImage.gameObject.SetActive(true);
loseImage.gameObject.SetActive(false);
drawImage.gameObject.SetActive(false);
break;
case Enums.GameResult.Lose:
winImage.gameObject.SetActive(false);
loseImage.gameObject.SetActive(true);
drawImage.gameObject.SetActive(false);
break;
case Enums.GameResult.Draw:
winImage.gameObject.SetActive(false);
loseImage.gameObject.SetActive(false);
drawImage.gameObject.SetActive(true);
break;
}
}
public void SetMyPlayerType(Enums.PlayerType myPlayerType)
{
_myPlayerType = myPlayerType;
}
public void SetOpponentPlayerNickname(string nickname)
{
_opponentNickname = nickname;
playerNicknameText.text = nickname;
}
public void SetRecordDate(string date)
{
if (string.IsNullOrEmpty(date))
{
// 입력이 비어있거나 null인 경우 예외 처리
recordDateText.text = "Invalid Date Format";
return;
}
string[] dateSplit = date.Split(' ');
if (dateSplit.Length == 2)
{
StringBuilder text = new StringBuilder();
// 첫 번째 부분 (날짜) - "-"을 "."으로 교체
text.Append(dateSplit[0].Replace("-", "."));
text.Append("\n");
// 두 번째 부분 (시간) - "_"을 ":"으로 교체
text.Append(dateSplit[1].Replace("_", ":"));
recordDateText.text = text.ToString();
}
else
{
// 잘못된 포맷 처리
recordDateText.text = "Invalid Date Format";
}
}
public void SetReplayRecord(ReplayRecord record)
{
_storedReplayRecord = record;
}
public void OnClickReplayButton()
{
GameManager.Instance.panelManager.OpenConfirmPanel($"{_opponentNickname}님 과의\n대결을 다시 보시겠습니까?",
() => {
ReplayManager.Instance.SetReplayData(_storedReplayRecord);
SceneManager.LoadScene("Replay"); }, true);
}
}