DO-78 [Feat] 싱글플레이 무승부 항복 재대결 처리 수정

This commit is contained in:
Lim0_C 2025-03-28 11:47:22 +09:00
parent a06f9809de
commit d0eaf16c3a
4 changed files with 57 additions and 11 deletions

View File

@ -39,14 +39,27 @@ public class GameUIController : MonoBehaviour
}
public void OnClickSurrenderButton()
{
if (GameManager.Instance.CheckIsSinglePlay())
{
GameManager.Instance.SurrenderSinglePlay();
}
else
{
GameManager.Instance.panelManager.OpenConfirmPanel("항복 하시겠습니까?", () =>
{
_multiplayManager.RequestSurrender();
});
}
}
public void OnClickDrawRequestButton()
{
if (GameManager.Instance.CheckIsSinglePlay())
{
GameManager.Instance.DrawSinglePlay();
}
else
{
if (GameManager.Instance.GetRequestDrawChance())
{
@ -61,8 +74,18 @@ public class GameUIController : MonoBehaviour
GameManager.Instance.panelManager.OpenConfirmPanel("무승부 요청이 제한돼있습니다.",()=>{});
}
}
}
public void OnClickRevengeRequestButton()
{
if (GameManager.Instance.CheckIsSinglePlay())
{
GameManager.Instance.panelManager.OpenConfirmPanel("상대방이 방을 나갔습니다.",() =>
{
});
}
else
{
GameManager.Instance.panelManager.OpenConfirmPanel("재대결 신청을\n하시겠습니까?", () =>
{
@ -70,6 +93,7 @@ public class GameUIController : MonoBehaviour
_multiplayManager.RequestRevengeRequest();
});
}
}
public void OnClickSettingsButton()
{

View File

@ -784,7 +784,7 @@ GameObject:
- component: {fileID: 4247753812167816150}
- component: {fileID: 1548693011522092544}
m_Layer: 5
m_Name: Retry Button
m_Name: Draw Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -473,6 +473,7 @@ public partial class GameLogic : IDisposable
// 기존 멀티플레이 상태 초기화
MultiPlayManager = null;
_roomId = null;
GameType = Enums.GameType.SinglePlay;
// 싱글 플레이 상태로 변경
InitializeSinglePlayMode();

View File

@ -131,4 +131,25 @@ public class GameManager : Singleton<GameManager>
if (_gameLogic == null) return;
_gameLogic.RequestDrawChance = false;
}
public bool CheckIsSinglePlay()
{
if (_gameLogic == null) return false;
return _gameLogic.GameType == Enums.GameType.SinglePlay;
}
public void SurrenderSinglePlay()
{
if(_gameLogic == null) return;
panelManager.OpenEffectPanel(Enums.GameResult.Lose);
_gameLogic.EndGame(Enums.GameResult.Lose);
}
public void DrawSinglePlay()
{
if(_gameLogic == null) return;
panelManager.OpenEffectPanel(Enums.GameResult.Draw);
_gameLogic.EndGame(Enums.GameResult.Draw);
}
}