Merge branch 'main' of https://github.com/Degulleo/DegullMok-Client into DO-84-버튼들-바인딩-추가
This commit is contained in:
commit
9aa10f3dd5
@ -174,7 +174,7 @@ public class GameManager : Singleton<GameManager>
|
|||||||
private void OnApplicationQuit()
|
private void OnApplicationQuit()
|
||||||
{
|
{
|
||||||
Debug.Log("앱 종료 감지: 소켓 연결 정리 중...");
|
Debug.Log("앱 종료 감지: 소켓 연결 정리 중...");
|
||||||
|
if (_gameLogic == null) return;
|
||||||
if(_gameLogic.GameInProgress)
|
if(_gameLogic.GameInProgress)
|
||||||
_gameLogic?.ForceQuit();
|
_gameLogic?.ForceQuit();
|
||||||
else
|
else
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -19,35 +20,45 @@ public class RatingPointsController : MonoBehaviour
|
|||||||
private int _oldRequiredScore;
|
private int _oldRequiredScore;
|
||||||
private int _newRequiredScore;
|
private int _newRequiredScore;
|
||||||
private int _oldScore;
|
private int _oldScore;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 포인트 오르고 내려가는 애니메이션 재생
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="imageOBject"></param>
|
||||||
|
/// <param name="color"></param>
|
||||||
|
private void ChangeImageColor(GameObject imageOBject, Color32 color)
|
||||||
|
{
|
||||||
|
Sequence sequence = DOTween.Sequence();
|
||||||
|
|
||||||
|
sequence.Append(
|
||||||
|
imageOBject.GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
||||||
|
sequence.Append(
|
||||||
|
imageOBject.GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
||||||
|
sequence.Join(
|
||||||
|
imageOBject.GetComponent<Image>().DOColor(color, flipDuration/2).SetEase(Ease.OutExpo));
|
||||||
|
|
||||||
|
sequence.OnComplete(()=>
|
||||||
|
{
|
||||||
|
SetScoreCountText();
|
||||||
|
});
|
||||||
|
}
|
||||||
public void InitRatingPoints(int oldScore,Enums.GameResult gameResult, int defaultRequiredScore)
|
public void InitRatingPoints(int oldScore,Enums.GameResult gameResult, int defaultRequiredScore)
|
||||||
{
|
{
|
||||||
// TODO: [인덱스계산 ㅇㅖ외처리 ] 계산한 값 절대값이 defaultRequiredScore보다 큰 경우 return. 근데 이런 값이 나온다는게 이미 계산 오류가 어디서 생긴 것이겠죠..?
|
// TODO: [인덱스계산 ㅇㅖ외처리 ] 계산한 값 절대값이 defaultRequiredScore보다 큰 경우 return. 근데 이런 값이 나온다는게 이미 계산 오류가 어디서 생긴 것이겠죠..?
|
||||||
_oldScore = oldScore;
|
_oldScore = oldScore;
|
||||||
Sequence sequence = DOTween.Sequence();
|
_oldRequiredScore = defaultRequiredScore;
|
||||||
if (_oldScore == 0)
|
if (_oldScore == 0)
|
||||||
{
|
{
|
||||||
if (gameResult == Enums.GameResult.Win)
|
if (gameResult == Enums.GameResult.Win)
|
||||||
{
|
{
|
||||||
sequence.Append(
|
ChangeImageColor(plusImage[0], _plusColor);
|
||||||
plusImage[0].GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
|
||||||
sequence.Append(
|
|
||||||
plusImage[0].GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
|
||||||
sequence.Join(
|
|
||||||
plusImage[0].GetComponent<Image>().DOColor(_plusColor, flipDuration/2).SetEase(Ease.OutExpo));
|
|
||||||
|
|
||||||
//승급까지 남은 판수 계산
|
//승급까지 남은 판수 계산
|
||||||
_newRequiredScore = defaultRequiredScore-1;
|
_newRequiredScore = defaultRequiredScore-1;
|
||||||
}
|
}
|
||||||
else if(gameResult == Enums.GameResult.Lose)
|
else if(gameResult == Enums.GameResult.Lose)
|
||||||
{
|
{
|
||||||
sequence.Append(
|
ChangeImageColor(minusImages[defaultRequiredScore-1],_minusColor);
|
||||||
minusImages[defaultRequiredScore-1].GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
|
||||||
sequence.Append(
|
|
||||||
minusImages[defaultRequiredScore-1].GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
|
||||||
sequence.Join(
|
|
||||||
minusImages[defaultRequiredScore-1].GetComponent<Image>().DOColor(_minusColor, flipDuration/2).SetEase(Ease.OutExpo));
|
|
||||||
|
|
||||||
//승급까지 남은 판수 계산
|
|
||||||
_newRequiredScore = defaultRequiredScore+1;
|
_newRequiredScore = defaultRequiredScore+1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -60,24 +71,13 @@ public class RatingPointsController : MonoBehaviour
|
|||||||
}
|
}
|
||||||
if (gameResult == Enums.GameResult.Win)
|
if (gameResult == Enums.GameResult.Win)
|
||||||
{
|
{
|
||||||
sequence.Append(
|
ChangeImageColor(plusImage[_oldScore], _plusColor);
|
||||||
plusImage[_oldScore].GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
|
||||||
sequence.Append(
|
|
||||||
plusImage[_oldScore].GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
|
||||||
sequence.Join(
|
|
||||||
plusImage[_oldScore].GetComponent<Image>().DOColor(_plusColor, flipDuration/2).SetEase(Ease.OutExpo));
|
|
||||||
|
|
||||||
//승급까지 남은 판수 계산
|
|
||||||
_newRequiredScore = defaultRequiredScore-oldScore-1;
|
_newRequiredScore = defaultRequiredScore-oldScore-1;
|
||||||
}
|
}
|
||||||
else if(gameResult == Enums.GameResult.Lose)
|
else if(gameResult == Enums.GameResult.Lose)
|
||||||
{
|
{
|
||||||
sequence.Append(
|
ChangeImageColor(plusImage[_oldScore-1], _defaultColor);
|
||||||
plusImage[_oldScore-1].GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
|
||||||
sequence.Append(
|
|
||||||
plusImage[_oldScore-1].GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
|
||||||
sequence.Join(
|
|
||||||
plusImage[_oldScore-1].GetComponent<Image>().DOColor(_defaultColor, flipDuration/2).SetEase(Ease.OutExpo));
|
|
||||||
|
|
||||||
//승급까지 남은 판수 계산
|
//승급까지 남은 판수 계산
|
||||||
_newRequiredScore = defaultRequiredScore-oldScore+1;
|
_newRequiredScore = defaultRequiredScore-oldScore+1;
|
||||||
@ -93,26 +93,14 @@ public class RatingPointsController : MonoBehaviour
|
|||||||
}
|
}
|
||||||
if (gameResult == Enums.GameResult.Win)
|
if (gameResult == Enums.GameResult.Win)
|
||||||
{
|
{
|
||||||
sequence.Append(
|
ChangeImageColor(minusImages[minusImages.Length+_oldScore], _defaultColor);
|
||||||
minusImages[minusImages.Length+_oldScore].GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
|
||||||
sequence.Append(
|
|
||||||
minusImages[minusImages.Length+_oldScore].GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
|
||||||
sequence.Join(
|
|
||||||
minusImages[minusImages.Length+_oldScore].GetComponent<Image>().DOColor(_defaultColor, flipDuration/2).SetEase(Ease.OutExpo));
|
|
||||||
|
|
||||||
//승급까지 남은 판수 계산
|
|
||||||
_newRequiredScore = defaultRequiredScore-oldScore-1;
|
_newRequiredScore = defaultRequiredScore-oldScore-1;
|
||||||
}
|
}
|
||||||
else if(gameResult == Enums.GameResult.Lose)
|
else if(gameResult == Enums.GameResult.Lose)
|
||||||
{
|
{
|
||||||
sequence.Append(
|
ChangeImageColor(minusImages[minusImages.Length+_oldScore-1], _minusColor);
|
||||||
minusImages[minusImages.Length+_oldScore-1].GetComponent<Transform>().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo));
|
|
||||||
sequence.Append(
|
|
||||||
minusImages[minusImages.Length+_oldScore-1].GetComponent<Transform>().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo));
|
|
||||||
sequence.Join(
|
|
||||||
minusImages[minusImages.Length+_oldScore-1].GetComponent<Image>().DOColor(_minusColor, flipDuration/2).SetEase(Ease.OutExpo));
|
|
||||||
|
|
||||||
//승급까지 남은 판수 계산
|
|
||||||
_newRequiredScore = defaultRequiredScore-oldScore+1;
|
_newRequiredScore = defaultRequiredScore-oldScore+1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -122,32 +110,36 @@ public class RatingPointsController : MonoBehaviour
|
|||||||
_newRequiredScore = defaultRequiredScore-oldScore;
|
_newRequiredScore = defaultRequiredScore-oldScore;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetScoreCountText(_newRequiredScore,defaultRequiredScore);
|
SetScoreCountText();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 승급까지 남은 승수 계산
|
/// 승급까지 남은 승수 계산
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="scoreCount">새로 업데이트 된 승급까지 필요한 승 수</param>
|
/// <param name="_newRequiredScore">새로 업데이트 된 승급까지 필요한 승 수</param>
|
||||||
/// <param name="defaultRequiredScore">해당 급수에서 0에서 승급까지 필요한 승수</param>
|
/// <param name="_oldRequiredScore">해당 급수에서 0에서 승급까지 필요한 승수</param>
|
||||||
private void SetScoreCountText(int scoreCount,int defaultRequiredScore)
|
private void SetScoreCountText()
|
||||||
{
|
{
|
||||||
// 남은 승리수가 0인 경우 승급점수 도달 혹은 강등점수 도달
|
// 남은 승리수가 0인 경우 승급점수 도달 혹은 강등점수 도달
|
||||||
if (scoreCount == 0 || scoreCount == defaultRequiredScore * 2)
|
if (_newRequiredScore == 0)
|
||||||
{
|
{
|
||||||
scoreCountText.text = "";
|
scoreCountText.text = "승급 포인트에 달성했습니다 !";
|
||||||
}
|
}
|
||||||
else if (scoreCount < 0)
|
else if (_newRequiredScore == _oldRequiredScore * 2)
|
||||||
|
{
|
||||||
|
scoreCountText.text = "점수가 낮아 강등됩니다..";
|
||||||
|
}
|
||||||
|
else if (_newRequiredScore < 0)
|
||||||
{
|
{
|
||||||
scoreCountText.text = "더 이상 승급 할 수 없습니다.";
|
scoreCountText.text = "더 이상 승급 할 수 없습니다.";
|
||||||
}
|
}
|
||||||
else if (scoreCount > defaultRequiredScore * 2)
|
else if (_newRequiredScore > _oldRequiredScore * 2)
|
||||||
{
|
{
|
||||||
scoreCountText.text = "더이상 강등 될 수 없습니다.";
|
scoreCountText.text = "더이상 강등 될 수 없습니다.";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
scoreCountText.text = $"{scoreCount} 게임을 승리하면 승급하게 됩니다.";
|
scoreCountText.text = $"{_newRequiredScore} 게임을 승리하면 승급하게 됩니다.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,8 +148,8 @@ public class RatingPointsController : MonoBehaviour
|
|||||||
for (int i = 0; i < 10; i++)
|
for (int i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
plusImage[i].GetComponent<Image>().color = _plusColor;
|
plusImage[i].GetComponent<Image>().color = _plusColor;
|
||||||
scoreCountText.text = $"더 이상 승급 할 수 없습니다.\n누적 {winCount} 승 하셨습니다.";
|
|
||||||
}
|
}
|
||||||
|
scoreCountText.text = $"더 이상 승급 할 수 없습니다.\n누적 {winCount} 승 하셨습니다.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetRatingDownLimit(int loseCount)
|
public void SetRatingDownLimit(int loseCount)
|
||||||
@ -165,9 +157,35 @@ public class RatingPointsController : MonoBehaviour
|
|||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
minusImages[i].GetComponent<Image>().color = _minusColor;
|
minusImages[i].GetComponent<Image>().color = _minusColor;
|
||||||
scoreCountText.text = $"더 이상 강등 될 수 없습니다.\n누적 {loseCount*-1} 패 하셨습니다.";
|
|
||||||
}
|
}
|
||||||
|
scoreCountText.text = $"더 이상 강등 될 수 없습니다.\n누적 {loseCount*-1} 패 하셨습니다.";
|
||||||
}
|
}
|
||||||
|
|
||||||
//승급, 강등시 패널을 초기화해서 띄워주는 함수 추가
|
//승급, 강등시 패널을 초기화해서 띄워주는 함수 추가
|
||||||
|
public void InitRatingUpPoints()
|
||||||
|
{
|
||||||
|
StartCoroutine(RatingUpPoints());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator RatingUpPoints()
|
||||||
|
{
|
||||||
|
foreach (var plusPoint in plusImage)
|
||||||
|
{
|
||||||
|
ChangeImageColor(plusPoint, _defaultColor);
|
||||||
|
yield return new WaitForSeconds(0.2f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void InitRatingDownPoints()
|
||||||
|
{
|
||||||
|
StartCoroutine(RatingDownPoints());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator RatingDownPoints()
|
||||||
|
{
|
||||||
|
for (int i = minusImages.Length; i >0; i--)
|
||||||
|
{
|
||||||
|
ChangeImageColor(minusImages[i-1], _defaultColor);
|
||||||
|
yield return new WaitForSeconds(0.2f);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,10 @@ public class RatingPanelController : PanelController
|
|||||||
if (scoreResultInfo.isAdvancement == 1)
|
if (scoreResultInfo.isAdvancement == 1)
|
||||||
{
|
{
|
||||||
GameManager.Instance.panelManager.OpenRatingEffectPanel(1);
|
GameManager.Instance.panelManager.OpenRatingEffectPanel(1);
|
||||||
|
|
||||||
|
//패널의 포인트들 초기화
|
||||||
|
_ratingPointsController.InitRatingUpPoints();
|
||||||
|
//TODO: 승급이 10->9 그리고 5->4일 때 패널 바꿔주기
|
||||||
}
|
}
|
||||||
},() => { });
|
},() => { });
|
||||||
break;
|
break;
|
||||||
@ -69,6 +73,9 @@ public class RatingPanelController : PanelController
|
|||||||
if (scoreResultInfo.isAdvancement == -1)
|
if (scoreResultInfo.isAdvancement == -1)
|
||||||
{
|
{
|
||||||
GameManager.Instance.panelManager.OpenRatingEffectPanel(-1);
|
GameManager.Instance.panelManager.OpenRatingEffectPanel(-1);
|
||||||
|
|
||||||
|
_ratingPointsController.InitRatingDownPoints();
|
||||||
|
//TODO: 강등이 4->5 그리고 9->10일 때 패널 바꿔주기
|
||||||
}
|
}
|
||||||
}, () => { });
|
}, () => { });
|
||||||
break;
|
break;
|
||||||
@ -161,6 +168,6 @@ public class RatingPanelController : PanelController
|
|||||||
getPointsText.text = $"게임에서 {win}했습니다.\n{Constants.RAING_POINTS} 승급 포인트를 {get}";
|
getPointsText.text = $"게임에서 {win}했습니다.\n{Constants.RAING_POINTS} 승급 포인트를 {get}";
|
||||||
}
|
}
|
||||||
// 애니메이션 실행 완료를 위한 wait
|
// 애니메이션 실행 완료를 위한 wait
|
||||||
yield return new WaitForSecondsRealtime(1.5f);
|
yield return new WaitForSecondsRealtime(1.8f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user