UserCenterView.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using AppUI.Config;
  2. using AppUI.Manager.View;
  3. using Newtonsoft.Json.Linq;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. using UHomeView = AppUI.View.Home.Main.HomeView;
  9. namespace AppUI.View.Home.UserCenter
  10. {
  11. public class UserCenterView : MonoBehaviour, MenuBackInterface
  12. {
  13. //处理分数叠加的情况
  14. List<GamePlayInfo> playGameInfos = new List<GamePlayInfo>();
  15. public List<GamePlayInfo> PlayGameInfos { get => playGameInfos; }
  16. // Start is called before the first frame update
  17. void Start()
  18. {
  19. PersistenHandler.ins?.menuBackCtr.views.Add(this);
  20. getPlayTimeByGameType();
  21. }
  22. void OnDestroy()
  23. {
  24. PersistenHandler.ins?.menuBackCtr.views.Remove(this);
  25. }
  26. // Update is called once per frame
  27. void Update()
  28. {
  29. }
  30. public bool OnMenuBack()
  31. {
  32. ViewManager.HideView(UIViewType.UserCenterView);
  33. return true;
  34. }
  35. public void OnClick_Back()
  36. {
  37. AudioMgr.ins.PlayBtn();
  38. ViewManager.HideView(UIViewType.UserCenterView);
  39. }
  40. public void NotifyUserInfoRefresh()
  41. {
  42. //RenderUserInfo();
  43. UHomeView.ins.RenderNameOrGender();
  44. UHomeView.ins.RenderMyAvatarSprite();
  45. }
  46. void getPlayTimeByGameType()
  47. {
  48. System.Action<JArray> cb = delegate (JArray result)
  49. {
  50. //Debug.Log(result);
  51. playGameInfos.Clear();
  52. foreach (var itemInfo in result)
  53. {
  54. string scoreType = "";
  55. int currentGameType = -1; // 选一个 gameType用以查询数据
  56. int time = itemInfo.Value<int>("totalDuration");
  57. int gameType = itemInfo.Value<int>("gameType");
  58. //Debug.Log(gameType+" = " + time);
  59. switch (gameType)
  60. {
  61. case 1: //静止靶 (单人)
  62. case 2: //静止靶 (本地PK)
  63. case 9: //静止靶 (联机PK)
  64. scoreType = "OlynpicArchery";
  65. currentGameType = 1;
  66. break;
  67. case 3://兔子关卡 (单人)
  68. case 6://兔子关卡 (本地PK)
  69. case 10://兔子关卡 (联机PK)
  70. scoreType = "HareHunt";
  71. currentGameType = 3;
  72. break;
  73. case 4: //野鸡关卡 (单人)
  74. case 7: //野鸡关卡 (本地PK)
  75. case 11://野鸡关卡 (联机PK)
  76. scoreType = "PheasuntHunt";
  77. currentGameType = 4;
  78. break;
  79. case 5: //野狼关卡 (单人)
  80. case 8: //野狼关卡 (本地PK)
  81. case 12://野狼关卡 (联机PK)
  82. scoreType = "WolfHunt";
  83. currentGameType = 5;
  84. break;
  85. case 13: //野鸭关卡 (单人)
  86. scoreType = "LevelDuckHunter";
  87. currentGameType = 13;
  88. break;
  89. case 14: //荒野射击 (单人)
  90. scoreType = "LevelWildAttack";
  91. currentGameType = 14;
  92. break;
  93. case 15: //水果达人 (单人)
  94. scoreType = "FruitExpert";
  95. currentGameType = 15;
  96. break;
  97. }
  98. if (scoreType != "")
  99. {
  100. bool bCanAdd = true;
  101. foreach (GamePlayInfo _item in playGameInfos)
  102. {
  103. if (_item.ScoreType == scoreType)
  104. {
  105. _item.PlayTime += time;
  106. bCanAdd = false;
  107. }
  108. }
  109. if (bCanAdd)
  110. {
  111. GamePlayInfo gamePlayInfo = new GamePlayInfo();
  112. gamePlayInfo.PlayTime = time;
  113. gamePlayInfo.ScoreType = scoreType;
  114. gamePlayInfo.GameType = currentGameType;
  115. playGameInfos.Add(gamePlayInfo);
  116. }
  117. }
  118. }
  119. };
  120. UserPlayer.ins.call("UserGameAnalyseComp.getUserGamePlayTime", null, cb);
  121. }
  122. }
  123. }