using System.Collections; using CodeJay.Enum; using UnityEngine; public class GoStopPopup : PopupBase { [SerializeField] private TMPro.TextMeshProUGUI tmp; [SerializeField] private TMPro.TextMeshProUGUI goTMP; [SerializeField] private CanvasGroup cg; [SerializeField] private GameObject EndLabelGO; private bool _isClicked = false; public override void ShowPopup(int drawOrder) { base.ShowPopup(drawOrder); long resultScore = GamePanel.Instance.GetTotalScore(true, false); int multiply = 0; var multipleType = GamePanel.Instance.GetAndUpdateScoreMultiplyType(true); if (multipleType != null) { for (int i = 0; i < multipleType.Count; i++) { if (multiply <= 0) multiply = 1; if (multipleType[i] == EScoreMutiplyType.Shake) multiply *= CodeJay.CodeJayUtility.Utility.GetScoreMultiplyValue(multipleType[i]) * GamePanel.Instance.Player_Bell; else if (multipleType[i] == EScoreMutiplyType.ClickedFromResultPopup) multiply *= CodeJay.CodeJayUtility.Utility.GetScoreMultiplyValue(multipleType[i]) * GamePanel.Instance.Player_Milgi; else multiply *= CodeJay.CodeJayUtility.Utility.GetScoreMultiplyValue(multipleType[i]); } } // Add Go Scroe Less than 2 { if (GamePanel.Instance.Player_Go > 0 && GamePanel.Instance.Player_Go <= 2) resultScore += GamePanel.Instance.Player_Go; } if (multiply > 0) resultScore *= multiply; if(GamePanel.Instance.Player_Go >= 3) { resultScore *= GamePanel.Instance.Player_Go - 1; } long resultMoney = resultScore * GamePanel.Instance.Stake; tmp.text = "스톱 시,+" + CodeJay.CodeJayUtility.Converter.MoneyToString_withOutline(resultMoney); goTMP.text = (GamePanel.Instance.Player_Go + 1).ToString() + "고"; cg.alpha = 1f; GameManager.Sound.PlaySFX(ESFXType.Open_Popup); if (GamePanel.Instance.IsChallengeMode) { var remaining = GameManager.DB.GetReaminingTargetCondition(true); EndLabelGO.SetActive(remaining - resultMoney <= 0); if (remaining - resultMoney < 0) { tmp.text = "스톱 시,+" + CodeJay.CodeJayUtility.Converter.MoneyToString_withOutline(remaining); } } else { var remaining = GameManager.DB.GetRemainigNormalGameAIGold(); EndLabelGO.SetActive(remaining - resultMoney <= 0); if (remaining - resultMoney < 0) tmp.text = "스톱 시,+" + CodeJay.CodeJayUtility.Converter.MoneyToString(remaining); } } public void GoButton() { if (!_isClicked) { _isClicked = true; cg.alpha = 0f; cg.blocksRaycasts = false; cg.interactable = false; StartCoroutine(coroClickGoButton()); } } private IEnumerator coroClickGoButton() { GamePanel.Instance.Player_Go++; GameManager.Event.InvokeEvent(EEventType.OnSynchronizeGameData); GameManager.UI.BlindPopupEnabled(false); yield return GamePanel.Instance.EffectPanel.GoDirect(GamePanel.Instance.Player_Go, true); GameManager.UI.HideTopPopup(); GameManager.Sound.PlaySFX(ESFXType.Button_Hit); } public void StopButton() { if (!_isClicked) { _isClicked = true; cg.alpha = 0f; cg.blocksRaycasts = false; cg.interactable = false; StartCoroutine(coroClickStopButton()); GameManager.Sound.PlaySFX(ESFXType.Button_Hit); } } private IEnumerator coroClickStopButton() { cg.alpha = 0f; cg.blocksRaycasts = false; cg.interactable = false; GamePanel.Instance.GameOver = true; GameManager.UI.BlindPopupEnabled(false); yield return new WaitForSeconds(GamePanel.Instance.EffectPanel.Direct(CodeJay.Enum.EEffectDirectType.Stop, true)); GameManager.UI.HideTopPopup(); GameManager.UI.ShowNStackPopup(EPopupType.ResultPopup).SetData(true); } }