HunterGameSettleView.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. /* 动物关卡结算界面 */
  7. public class HunterGameSettleView : MonoBehaviour
  8. {
  9. // Start is called before the first frame update
  10. void Start()
  11. {
  12. //设置一下需要上传排行榜的分数,先写死了
  13. // LocalRank.RankManager.SetCurrentScore(1500);
  14. ChallengeGameMode gameMode = (ChallengeGameMode) GameMgr.ins.gameMode;
  15. string res = gameMode.Settle()[0].ToString();
  16. if (res == "胜利") {
  17. #region
  18. if (GlobalData.pkMatchType == PKMatchType.None && !UserSettings.ins.trainMode) {
  19. LoginMgr.myUserInfo.SetChallengeLevelPass(GameMgr.gameType, gameMode.currentlevel);
  20. LoginMgr.myUserInfo.Save();
  21. }
  22. #endregion
  23. this.transform.Find("Fail").gameObject.SetActive(false);
  24. AudioMgr.ins.PlayWin();
  25. }
  26. else if (res == "失败") {
  27. this.transform.Find("Win").gameObject.SetActive(false);
  28. }
  29. this.transform.Find("Btns/Btn1").GetComponent<Button>().onClick.AddListener(TryAgain);
  30. this.transform.Find("Btns/Btn3").GetComponent<Button>().onClick.AddListener(BackHome);
  31. CheckOpenNextLevelBtn(gameMode, res);
  32. if (GlobalData.pkMatchType == PKMatchType.OnlinePK && res == "胜利") {
  33. ChallengeGameModeLocalPK gm = (ChallengeGameModeLocalPK)gameMode;
  34. HunterGamePlayerScoreCounter counter = gm.getHunterGamePlayerScoreCounter();
  35. int gameRes = 2; //平局
  36. if (counter.hitScores[0] > counter.hitScores[1]) {
  37. gameRes = 0; //玩家1胜利
  38. } else if (counter.hitScores[1] > counter.hitScores[0]) {
  39. gameRes = 1; //玩家2胜利
  40. }
  41. try {
  42. RankComp.Instance.uploadPKGameRes(gameRes);
  43. } catch (System.Exception e) { Debug.LogError(e.Message); }
  44. }
  45. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  46. if (SocketPlayer.ins) SocketPlayer.ins.isGameOver = true;
  47. }
  48. SimulateMouseController.ins?.AddOpenLocker("NotGame");
  49. GameOverInterface.OnGameOver(GameMgr.gameType);
  50. }
  51. void CheckOpenNextLevelBtn(ChallengeGameMode gameMode, string gameRes) {
  52. Transform btnT = this.transform.Find("Btns/Btn2");
  53. if (GlobalData.pkMatchType != PKMatchType.None) {
  54. btnT.gameObject.SetActive(false);
  55. return;
  56. }
  57. bool open = gameRes == "胜利" && gameMode.currentlevel < 5;
  58. btnT.gameObject.SetActive(open);
  59. if (open) {
  60. btnT.GetComponent<Button>().onClick.AddListener(delegate() {
  61. ChallengeGameMode.enterNextLevel = (gameMode.currentlevel + 1).ToString();
  62. TryAgain();
  63. });
  64. }
  65. }
  66. JCUnityLib.Throttler throttlerTryAgainOnline = new JCUnityLib.Throttler(3000);
  67. public void TryAgain() {
  68. AudioMgr.ins.PlayBtn();
  69. if (GameAssistUI.ins) GameAssistUI.ins.recordPlayerRecordsWhenGameTryAgain();
  70. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  71. if (throttlerTryAgainOnline.CanPass() == false) {
  72. PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("操作过于频繁"));
  73. return;
  74. }
  75. PKMatchingView view = PKMatchingView.Create();
  76. view.InitForInviterToTryAgain();
  77. view.eventOnRejectPKInvite += () => {
  78. view.banBackBtnLogic = true;
  79. DoTweenUtil.CallDelay(2f, GoHomeLogic);
  80. };
  81. } else {
  82. if (GlobalData.pkMatchType == PKMatchType.None) {
  83. if (ChallengeGameMode.enterNextLevel == null) {
  84. ChallengeGameMode.enterNextLevel = (GameMgr.ins.gameMode as ChallengeGameMode).currentlevel.ToString();
  85. }
  86. }
  87. SceneManager.LoadScene("GameChallenge", LoadSceneMode.Single);
  88. //这里设置需要播放开始音效
  89. AudioMgr.bNeedPlayStartAudio = true;
  90. }
  91. }
  92. public void BackHome() { //现在的逻辑是返回上一页 2022-10-8
  93. AudioMgr.ins.PlayBtn();
  94. //240716 更改为点击‘返回上一页’,先进入运动结算页面后,返回到主界面。以减少用户对左上角返回键的操作(太边缘了)
  95. GoHomeLogic();
  96. //if (GlobalData.pkMatchType == PKMatchType.None) {
  97. // SceneManager.LoadScene("GameChallenge", LoadSceneMode.Single);
  98. //} else {
  99. // GoHomeLogic();
  100. //}
  101. }
  102. private void GoHomeLogic() {
  103. ChallengeGameMode gameMode = (ChallengeGameMode)GameMgr.ins.gameMode;
  104. gameMode.gameMgr.userGameAnalyse.showResultView(() => {
  105. SceneManager.LoadScene("Home", LoadSceneMode.Single);
  106. });
  107. //SceneManager.LoadScene("Home", LoadSceneMode.Single);
  108. // HomeMgr.DestroyCacheViews();
  109. }
  110. }