HunterGameSettleView.cs 4.8 KB

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