SelectElixirPanel.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. namespace Fort23.Mono
  7. {
  8. [UIBinding(prefab = "SelectElixirPanel")]
  9. public partial class SelectElixirPanel : UIPanel
  10. {
  11. List<ElixirItemWidget> elixirItems = new List<ElixirItemWidget>();
  12. private void Init()
  13. {
  14. }
  15. protected override void AddEvent()
  16. {
  17. }
  18. protected override void DelEvent()
  19. {
  20. }
  21. public override void AddButtonEvent()
  22. {
  23. }
  24. public async void CustomInit()
  25. {
  26. Text_FailDesc.text = $"+{0}%";
  27. Text_SucceedDesc.text = $"-{0}%";
  28. List<ItemConfig> itemConfigs = ConfigComponent.Instance.GetAll<ItemConfig>().ToList();
  29. var showItemConfigs = itemConfigs.Where(i => i.itemTag == 3 && PlayerManager.Instance.myHero.heroData.heroPowerId >= i.itemParam[0] && PlayerManager.Instance.myHero.heroData.heroPowerId <= i.itemParam[1]).ToList();
  30. foreach (var showItemConfig in showItemConfigs)
  31. {
  32. ElixirItemWidget elixirItemWidget = await UIManager.Instance.CreateGComponent<ElixirItemWidget>(null, Content);
  33. elixirItemWidget.CustomInit(showItemConfig.ID);
  34. elixirItemWidget.onClick = OnClick;
  35. elixirItems.Add(elixirItemWidget);
  36. }
  37. }
  38. private void OnClick(ItemWidgetBasic obj)
  39. {
  40. ElixirItemWidget elixirItemWidget = obj as ElixirItemWidget;
  41. Text_FailDesc.text = $"+{elixirItemWidget._itemConfig.itemParam[2]}%";
  42. Text_SucceedDesc.text = $"-{elixirItemWidget._itemConfig.itemParam[3]}%";
  43. }
  44. public override void Close()
  45. {
  46. elixirItems.ForEach(e => UIManager.Instance.DormancyGComponent(e));
  47. elixirItems.Clear();
  48. base.Close();
  49. }
  50. public async static CTask<SelectElixirPanel> OpenPanel()
  51. {
  52. SelectElixirPanel selectElixirPanel = await UIManager.Instance.LoadAndOpenPanel<SelectElixirPanel>(null);
  53. selectElixirPanel.CustomInit();
  54. return selectElixirPanel;
  55. }
  56. }
  57. }