CardSkillView.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. using FairyGUI;
  2. using UI.Card;
  3. namespace GFGGame
  4. {
  5. public class CardSkillView : BaseWindow
  6. {
  7. private UI_CardSkillUI _ui;
  8. // private PassivitySkillCfg _viewData;
  9. private int _cardId;
  10. private int _skillId;
  11. private PassivitySkillCfg passivitySkillCfg;
  12. public override void Dispose()
  13. {
  14. base.Dispose();
  15. }
  16. protected override void OnInit()
  17. {
  18. base.OnInit();
  19. _ui = UI_CardSkillUI.Create();
  20. this.viewCom = _ui.target;
  21. this.viewCom.Center();
  22. this.modal = true;
  23. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  24. _ui.m_btnUpLv.onClick.Add(OnClickBtnUp);
  25. _ui.m_listConsume.itemRenderer = RenderListStarConsumeItem;
  26. EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateView);
  27. }
  28. protected override void OnShown()
  29. {
  30. base.OnShown();
  31. _cardId = (int)(viewData as object[])[0];
  32. _skillId = (int)(viewData as object[])[1];
  33. SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
  34. passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv);
  35. _ui.m_txtName.text = passivitySkillCfg.name;
  36. _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(passivitySkillCfg.res);
  37. UpdateView();
  38. }
  39. private void UpdateView()
  40. {
  41. _ui.m_c1.selectedIndex = 0;
  42. SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
  43. int lv = skillData == null ? 1 : skillData.lv;
  44. UpdateComLv(_ui.m_comCurLV, lv, lv + "级");
  45. if (skillData != null && skillData.lv == SkillDataManager.Instance.dicPassivitySkill[_cardId][_skillId].Count) //已满级
  46. {
  47. _ui.m_c1.selectedIndex = 1;
  48. return;
  49. }
  50. _ui.m_comConsume.m_txtCount.text = passivitySkillCfg.costNum.ToString();
  51. UpdateComLv(_ui.m_comNextLv, lv + 1, "下一级");
  52. _ui.m_listConsume.numItems = passivitySkillCfg.materiarsArr.Length;
  53. }
  54. private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)
  55. {
  56. com.m_txtLv.text = title;
  57. com.m_txtDiscribe.text = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, lv).describe;
  58. }
  59. private void RenderListStarConsumeItem(int index, GObject obj)
  60. {
  61. UI_ComStarConsume listItem = UI_ComStarConsume.Proxy(obj);
  62. SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
  63. passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv);
  64. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.materiarsArr[index][0]);
  65. listItem.target.data = passivitySkillCfg.materiarsArr[index][0];
  66. listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
  67. int needCount = passivitySkillCfg.materiarsArr[index][1];
  68. int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[index][0]);
  69. listItem.m_txtNeedCount.text = StringUtil.GetColorText(needCount.ToString(), hasCount < needCount ? "#FCBCBA" : "#FFF8EA"); ;
  70. listItem.m_txtHasCount.text = hasCount.ToString();
  71. listItem.m_btnPlus.visible = false;
  72. if (listItem.m_btnPlus.data == null)
  73. {
  74. listItem.m_btnPlus.onClick.Add(() => OnClickBtnPlusStarConsum(index));
  75. }
  76. listItem.m_btnPlus.data = passivitySkillCfg.materiarsArr[index][0];
  77. if (hasCount < needCount)
  78. {
  79. //材料不足显示加号
  80. listItem.m_btnPlus.visible = true;
  81. }
  82. }
  83. private void OnClickBtnPlusStarConsum(int index)
  84. {
  85. int itemId = int.Parse(UI_ComStarConsume.Proxy(_ui.m_listConsume.GetChildAt(index)).target.data.ToString());
  86. ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData } });
  87. }
  88. private void OnClickBtnUp()
  89. {
  90. if (ItemDataManager.GetItemNum(passivitySkillCfg.costID) < passivitySkillCfg.costNum)
  91. {
  92. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.costID);
  93. PromptController.Instance.ShowFloatTextPrompt(itemCfg.name + "不足");
  94. return;
  95. }
  96. bool isEnough = true;
  97. for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++)
  98. {
  99. int needCount = passivitySkillCfg.materiarsArr[i][1];
  100. int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[i][0]);
  101. if (hasCount < needCount)
  102. {
  103. isEnough = false;
  104. PromptController.Instance.ShowFloatTextPrompt("升级材料不足");
  105. break;
  106. }
  107. }
  108. if (!isEnough) return;
  109. ItemDataManager.Remove(passivitySkillCfg.costID, passivitySkillCfg.costNum);
  110. for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++)
  111. {
  112. ItemDataManager.Remove(passivitySkillCfg.materiarsArr[i][0], passivitySkillCfg.materiarsArr[i][1]);
  113. }
  114. SkillDataManager.Instance.UpSkill(_cardId, _skillId);
  115. }
  116. protected override void OnHide()
  117. {
  118. base.OnHide();
  119. }
  120. }
  121. }