HunterGameSettleView.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. public class HunterGameSettleView : MonoBehaviour
  7. {
  8. // Start is called before the first frame update
  9. void Start()
  10. {
  11. ChallengeGameMode gameMode = (ChallengeGameMode) GameMgr.ins.gameMode;
  12. string res = gameMode.Settle()[0].ToString();
  13. if (res == "胜利") {
  14. #region
  15. if (GlobalData.pkMatchType == PKMatchType.None) {
  16. LoginMgr.myUserInfo.SetChallengeLevelPass(GameMgr.gameType, gameMode.currentlevel);
  17. LoginMgr.myUserInfo.Save();
  18. }
  19. #endregion
  20. this.transform.Find("Fail").gameObject.SetActive(false);
  21. AudioMgr.ins.PlayWin();
  22. }
  23. else if (res == "失败") {
  24. this.transform.Find("Win").gameObject.SetActive(false);
  25. }
  26. this.transform.Find("Btns/Btn1").GetComponent<Button>().onClick.AddListener(TryAgain);
  27. this.transform.Find("Btns/Btn3").GetComponent<Button>().onClick.AddListener(BackHome);
  28. CheckOpenNextLevelBtn(gameMode, res);
  29. if (GlobalData.pkMatchType == PKMatchType.OnlinePK && res == "胜利") {
  30. ChallengeGameModeLocalPK gm = (ChallengeGameModeLocalPK)gameMode;
  31. HunterGamePlayerScoreCounter counter = gm.getHunterGamePlayerScoreCounter();
  32. int gameRes = 2; //平局
  33. if (counter.hitScores[0] > counter.hitScores[1]) {
  34. gameRes = 0; //玩家1胜利
  35. } else if (counter.hitScores[1] > counter.hitScores[0]) {
  36. gameRes = 1; //玩家2胜利
  37. }
  38. try {
  39. RankComp.ins.uploadPKGameRes(gameRes);
  40. } catch (System.Exception e) { Debug.LogError(e.Message); }
  41. }
  42. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  43. if (SocketPlayer.ins) SocketPlayer.ins.isGameOver = true;
  44. }
  45. }
  46. void CheckOpenNextLevelBtn(ChallengeGameMode gameMode, string gameRes) {
  47. Transform btnT = this.transform.Find("Btns/Btn2");
  48. if (GlobalData.pkMatchType != PKMatchType.None) {
  49. btnT.gameObject.SetActive(false);
  50. return;
  51. }
  52. bool open = gameRes == "胜利" && gameMode.currentlevel < 5;
  53. btnT.gameObject.SetActive(open);
  54. if (open) {
  55. btnT.GetComponent<Button>().onClick.AddListener(delegate() {
  56. ChallengeGameMode.enterNextLevel = (gameMode.currentlevel + 1).ToString();
  57. TryAgain();
  58. });
  59. }
  60. }
  61. public void TryAgain() {
  62. AudioMgr.ins.PlayBtn();
  63. if (GameAssistUI.ins) GameAssistUI.ins.recordPlayerRecordsWhenGameTryAgain();
  64. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  65. PKMatchingView view = PKMatchingView.Create();
  66. view.InitForInviterToTryAgain();
  67. view.eventOnRejectPKInvite += GoHomeLogic;
  68. } else {
  69. SceneManager.LoadScene("GameChallenge", LoadSceneMode.Single);
  70. }
  71. }
  72. public void BackHome() {
  73. AudioMgr.ins.PlayBtn();
  74. GoHomeLogic();
  75. }
  76. private void GoHomeLogic() {
  77. SceneManager.LoadScene("Home", LoadSceneMode.Single);
  78. HomeMgr.DestroyCacheViews();
  79. }
  80. }