UISettingComponentSystem.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading.Tasks;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. using static ET.GameSetting;
  7. using static System.Net.Mime.MediaTypeNames;
  8. namespace ET.Client
  9. {
  10. [FriendOf(typeof(UISettleComponent))]
  11. public static class UISettleComponentSystem
  12. {
  13. [ObjectSystem]
  14. public class UISettleComponentAwakeSystem : AwakeSystem<UISettleComponent>
  15. {
  16. protected override void Awake(UISettleComponent self, params object[] param)
  17. {
  18. ReferenceCollector rc = self.GetParent<UI>().GameObject.GetComponent<ReferenceCollector>();
  19. self.closeBtn = rc.Get<GameObject>("closeBtn");
  20. self.closeBtn.GetComponent<Button>().onClick.AddListener(() => { self.OnCloseBtn(); });
  21. self.nextBtn = rc.Get<GameObject>("nextBtn");
  22. self.nextBtn.GetComponent<Button>().onClick.AddListener(() => { self.OnNextBtn(); });
  23. for (int i = 0;i < 4;i++)
  24. {
  25. var playItem = rc.Get<GameObject>("playItem" + (i + 1));
  26. var playIcon = rc.Get<GameObject>("playIcon" + (i + 1)).GetComponent<UnityEngine.UI.Image>();
  27. var playName = rc.Get<GameObject>("playName" + (i + 1)).GetComponent<UnityEngine.UI.Text>();
  28. var playId = rc.Get<GameObject>("playId" + (i + 1)).GetComponent<UnityEngine.UI.Text>();
  29. var fightCardContent = rc.Get<GameObject>("fightCardContent" + (i + 1));
  30. var playSettleType = rc.Get<GameObject>("playSettleType" + (i + 1)).GetComponent<UnityEngine.UI.Image>();
  31. if (self.settleItemUIs == null)
  32. {
  33. self.settleItemUIs = new List<SettleItemUI> ();
  34. }
  35. SettleItemUI settleItemUI = new SettleItemUI();
  36. settleItemUI.playItem = playItem;
  37. settleItemUI.playIcon = playIcon;
  38. settleItemUI.playName = playName;
  39. settleItemUI.fightCardContent = fightCardContent;
  40. settleItemUI.playId = playId;
  41. settleItemUI.playSettleType = playSettleType;
  42. self.settleItemUIs.Add(settleItemUI);
  43. }
  44. self.Init();
  45. }
  46. }
  47. private static async void Init(this UISettleComponent self)
  48. {
  49. for (int i = 0;i < self.settleItemUIs.Count;i++)
  50. {
  51. self.settleItemUIs[i].playItem.SetActive( false);
  52. }
  53. var settleInfo = self.ClientScene().GetComponent<StartFightRoomComponment>().GetSettlementInfo();
  54. var playDatas = settleInfo.PlayerInfo;
  55. for (int i = 0;i < playDatas.Count;i++)
  56. {
  57. self.settleItemUIs[i].playItem.SetActive(true);
  58. self.settleItemUIs[i].playName.text = playDatas[i].name;
  59. self.settleItemUIs[i].playId.text = playDatas[i].id.ToString();
  60. //switch (playDatas[i].)
  61. //{
  62. //}
  63. //self.settleItemUIs[i].playSettleType
  64. self.LoadCardList(self.settleItemUIs[i].fightCardContent, playDatas[i].cardInfo.RemainCards);
  65. }
  66. }
  67. private static async void LoadCardList(this UISettleComponent self,GameObject node, List<int> cardList)
  68. {
  69. for (int i = 0; i < node.transform.childCount; i++)
  70. {
  71. var child = node.transform.GetChild(i);
  72. UnityEngine.Object.Destroy(child.gameObject);
  73. }
  74. for (int i = 0; i < cardList.Count; i++)
  75. {
  76. var uifightItem = GameUtil.Instance.InitializeObj(self.fightCardItem);
  77. uifightItem.SetActive(true);
  78. uifightItem.transform.SetParent(node.transform, false);
  79. string spiring = string.Concat(GameSetting.Instance.selfPlayCardCenterSpiteName, cardList[i]);
  80. var sprite = await GameObjectPool.Instance.AcquireSprite(spiring);
  81. UnityEngine.UI.Image icon = uifightItem.GetComponentInChildren<UnityEngine.UI.Image>();
  82. icon.sprite = sprite;
  83. }
  84. }
  85. public static async void OnCloseBtn(this UISettleComponent self)
  86. {
  87. await SoundManager.Instance.PlaySound("clickbtnsound");
  88. self.OnCloseAsync();
  89. }
  90. public static async void OnNextBtn(this UISettleComponent self)
  91. {
  92. await SoundManager.Instance.PlaySound("clickbtnsound");
  93. self.OnCloseAsync();
  94. var ui = self.ClientScene().GetComponent<UIComponent>().Get(UIType.UIStartFightRoom);
  95. var startFightRoomComponentUI = ui.GetComponent<UIStartFightRoomComponent>();
  96. startFightRoomComponentUI.RestartPlayGame();
  97. }
  98. public static async void OnCloseAsync(this UISettleComponent self)
  99. {
  100. await UIHelper.Remove(self.ClientScene(),UIType.UISettle);
  101. }
  102. }
  103. }