PKGameSettleView.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. /* PK模式的结算界面 */
  7. public class PKGameSettleView : MonoBehaviour
  8. {
  9. void Start()
  10. {
  11. GameMode gameMode = GameMgr.ins.gameMode;
  12. if (PKGameView.ins) {
  13. PKGameView.ins.gameObject.SetActive(false);
  14. }
  15. string[] results = (string[]) gameMode.Settle();
  16. for (int i = 1; i <= 2; i++) {
  17. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  18. int playerIndex = i - 1;
  19. int avatarID = GlobalData.matchPlayerInfos[playerIndex].avatarID;
  20. string avatarUrl = GlobalData.matchPlayerInfos[playerIndex].avatarUrl;
  21. string nickName = GlobalData.matchPlayerInfos[playerIndex].nickname;
  22. RoleMgr.SetAvatarToImage(this.transform.Find("Avatar" + i + "/Sprite").GetComponent<Image>(),
  23. avatarID, avatarUrl);
  24. this.transform.Find("Name" + i).GetComponent<Text>().text = nickName;
  25. } else if (GlobalData.pkMatchType == PKMatchType.LocalPK) {
  26. string nickName = RoleMgr.GetRoleInfo(PKGameMode.playerRoleIDs[i - 1],
  27. this.transform.Find("Avatar" + i + "/Sprite").GetComponent<Image>());
  28. this.transform.Find("Name" + i).GetComponent<Text>().text = nickName;
  29. }
  30. this.transform.Find("Win" + i).gameObject.SetActive(results[i - 1] == "胜利");
  31. this.transform.Find("Fail" + i).gameObject.SetActive(results[i - 1] == "失败");
  32. if (GlobalData.pkMatchType == PKMatchType.LocalPK) {
  33. this.transform.Find("Score" + i + "/Text").GetComponent<Text>().text = ((PKGameMode)gameMode).totalScores[i - 1].ToString();
  34. } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  35. this.transform.Find("Score" + i + "/Text").GetComponent<Text>().text = ((PKGameMode_OnlinePK)gameMode).gameLogic.totalScores[i - 1].ToString();
  36. }
  37. }
  38. AudioMgr.ins.PlayWin();
  39. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  40. int gameRes = 2;
  41. if (results[0] == "胜利") {
  42. gameRes = 0;
  43. } else if (results[1] == "胜利") {
  44. gameRes = 1;
  45. }
  46. try {
  47. RankComp.Instance.uploadPKGameRes(gameRes);
  48. } catch (System.Exception e) { Debug.LogError(e.Message); }
  49. }
  50. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  51. if (SocketPlayer.ins) SocketPlayer.ins.isGameOver = true;
  52. }
  53. SimulateMouseController.ins?.AddOpenLocker("NotGame");
  54. GameOverInterface.OnGameOver(GameMgr.gameType);
  55. }
  56. public void OnClick_Back() {
  57. AudioMgr.ins.PlayBtn();
  58. GoHomeLogic();
  59. }
  60. private void GoHomeLogic() {
  61. SceneManager.LoadScene("Home", LoadSceneMode.Single);
  62. }
  63. JCUnityLib.Throttler throttlerTryAgainOnline = new JCUnityLib.Throttler(3000);
  64. public void OnClick_Again() {
  65. AudioMgr.ins.PlayBtn();
  66. if (GameAssistUI.ins) GameAssistUI.ins.recordPlayerRecordsWhenGameTryAgain();
  67. if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  68. if (throttlerTryAgainOnline.CanPass() == false) {
  69. PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("操作过于频繁"));
  70. return;
  71. }
  72. PKMatchingView view = PKMatchingView.Create();
  73. view.InitForInviterToTryAgain();
  74. view.eventOnRejectPKInvite += () => {
  75. view.banBackBtnLogic = true;
  76. DoTweenUtil.CallDelay(2f, GoHomeLogic);
  77. };
  78. } else {
  79. SceneManager.LoadScene("Game", LoadSceneMode.Single);
  80. }
  81. }
  82. }