TowerLevelWidget.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Core.Language;
  4. using Excel2Json;
  5. using Fort23.UTool;
  6. using GameLogic.Bag;
  7. namespace Fort23.Mono
  8. {
  9. [UIBinding(prefab = "TowerLevelWidget")]
  10. public partial class TowerLevelWidget : ItemWidgetBasic
  11. {
  12. public TowerInfoConfig _towerInfoConfig;
  13. public AccountFileInfo.TowerData towerData;
  14. public AccountFileInfo.TowerLevelData towerLevelData;
  15. public AccountFileInfo.TowerLevelData lastTowerLevelData;
  16. public bool isLock;
  17. private void Init()
  18. {
  19. }
  20. public override void AddEvent()
  21. {
  22. }
  23. public override void DelEvent()
  24. {
  25. }
  26. public override void AddButtonEvent()
  27. {
  28. base.AddButtonEvent();
  29. Btn_GetWard.onClick.AddListener(async () =>
  30. {
  31. if (towerLevelData == null || towerLevelData.reward || !towerLevelData.finish)
  32. {
  33. ItemDetailsPanel.OpenPanel(
  34. new ItemInfo(_towerInfoConfig.reward[0], _towerInfoConfig.rewardCount[0]));
  35. return;
  36. }
  37. List<ItemInfo> itemInfos = new List<ItemInfo>();
  38. for (var i = 0; i < _towerInfoConfig.reward.Length; i++)
  39. {
  40. ItemInfo itemInfo = new ItemInfo(_towerInfoConfig.reward[i], _towerInfoConfig.rewardCount[i]);
  41. PlayerManager.Instance.BagController.AddItem(itemInfo);
  42. itemInfos.Add(itemInfo);
  43. }
  44. towerLevelData.reward = true;
  45. AccountFileInfo.Instance.SavePlayerData();
  46. RewardsPanel rewardsPanel = await RewardsPanel.OpenPanel(itemInfos);
  47. await rewardsPanel.UIClosed();
  48. CustomInit(towerData, _towerInfoConfig);
  49. });
  50. }
  51. public async void CustomInit(AccountFileInfo.TowerData towerData, TowerInfoConfig towerInfoConfig)
  52. {
  53. this.towerData = towerData;
  54. this._towerInfoConfig = towerInfoConfig;
  55. towerLevelData = towerData.towerLevelDatas.FirstOrDefault(t => t.id == _towerInfoConfig.ID);
  56. lastTowerLevelData = towerData.towerLevelDatas.FirstOrDefault(t => t.id == _towerInfoConfig.ID - 1);
  57. Text_Name.text = LanguageManager.Instance.Text(10365, _towerInfoConfig.ID);
  58. ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(_towerInfoConfig.reward[0]);
  59. Icon_Item.icon_name = itemConfig.icon;
  60. Text_Num.text = _towerInfoConfig.rewardCount[0].ToString();
  61. GetWard.transform.RecoverColor();
  62. //上一层已经通关
  63. if ((lastTowerLevelData != null && lastTowerLevelData.finish)
  64. || _towerInfoConfig.level == 1)
  65. {
  66. isLock = true;
  67. // if()
  68. if (towerLevelData != null && towerLevelData.finish)
  69. {
  70. Csc.ChangeState(0);
  71. //可以领取奖励
  72. if (towerLevelData != null && !towerLevelData.reward)
  73. {
  74. Icon_Item.transform.parent.transform.RecoverColor();
  75. fx_ui_jiangli_loop.gameObject.SetActive(true);
  76. fx_ui_jiangli_loop.Play();
  77. GetWard.transform.RecoverColor();
  78. }
  79. //领了奖励
  80. else if (towerLevelData != null && towerLevelData.reward)
  81. {
  82. Icon_Item.transform.parent.transform.RecoverColor();
  83. fx_ui_jiangli_loop.gameObject.SetActive(false);
  84. GetWard.transform.Gray();
  85. }
  86. //通关了但是没有完成时间
  87. else
  88. {
  89. Icon_Item.transform.parent.transform.Gray();
  90. fx_ui_jiangli_loop.gameObject.SetActive(false);
  91. GetWard.transform.RecoverColor();
  92. }
  93. }
  94. else
  95. {
  96. Csc.ChangeState(1);
  97. GetWard.transform.RecoverColor();
  98. fx_ui_jiangli_loop.gameObject.SetActive(false);
  99. }
  100. }
  101. else
  102. {
  103. isLock = false;
  104. Csc.ChangeState(2);
  105. GetWard.transform.RecoverColor();
  106. fx_ui_jiangli_loop.gameObject.SetActive(false);
  107. }
  108. }
  109. }
  110. }