EquipmentShowSlotItemCtr.lua 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. --这个脚本是UIRoleMessage界面中用来显示角色装备的装备槽位控制脚本
  2. local EquipmentShowSlotItemCtr = {}
  3. local IconItemCtr = require("Common/IconItemCtr")
  4. function EquipmentShowSlotItemCtr:SetData(_wnd, _item, _data, _index, _slotsData, _slotIndex, _id, _jobConfigId,_name)
  5. _item.tipButton.button.onClick:RemoveAllListeners();
  6. --[[
  7. --只要招募了就能开启装备槽位,所以显示的时候只有
  8. if not _data then
  9. _item.mask.gameObject:SetActive(true);
  10. _item.equipState.gameObject:SetActive(false);
  11. _item.cardPlus.gameObject:SetActive(false);
  12. _item.equipItem.gameObject:SetActive(false);
  13. _item.lv.gameObject:SetActive(false);
  14. else]]--
  15. --_item.mask.gameObject:SetActive(false);
  16. if _data and _data.equip_id and _data.equip_id > 0 then --装备了武器
  17. _item.cardPlus.gameObject:SetActive(true);
  18. _item.iconItem.gameObject:SetActive(true);
  19. --_item.position.gameObject:SetActive(false);
  20. --设置装备的插卡信息start
  21. for i = 1, Constant.CARD_SLOT_LIMIT do
  22. _item["slot" .. i]:SetActive(false)
  23. _item["card" .. i]:SetActive(false)
  24. end
  25. local _showCardBg = false;
  26. for i = 1, Constant.CARD_SLOT_LIMIT do
  27. local id = _data.card_id_list[i] or 0
  28. local condition = ManagerContainer.CfgMgr:GetCardUnlockConditionById(_index * 100 + i)
  29. if condition ~= nil then
  30. local result = id > 0--ConditionJudge:ConditionPassResult1(condition.UnlockingCondition[1])
  31. _item["slot" .. i]:SetActive(result)
  32. _item["card" .. i]:SetActive(result and id > 0)
  33. if result then
  34. _showCardBg = true;
  35. if id > 0 then
  36. local cardData = ManagerContainer.CfgMgr:GetCardDataById(id)
  37. CommonUtil.LoadIcon(_wnd, Constant.Card_Quality_Icons[cardData.CardType], function (sprite)
  38. _item["card" .. i].image.sprite = sprite
  39. end)
  40. end
  41. end
  42. end
  43. end
  44. _item.cardPlus:SetActive(_showCardBg);
  45. if _showCardBg then
  46. local equipData = ManagerContainer.CfgMgr:GetEquipById(_data.equip_id)
  47. if equipData == nil then
  48. LogError(slots[idx].equip_id.. " isnt exist in EquipCfg")
  49. return
  50. end
  51. local divide = Constant.Quality_Equip_Divide[equipData.EquipLevel]
  52. local quality = divide[1]
  53. CommonUtil.LoadIcon(_wnd, Constant.Quality_EquipPlus_Icons[quality], function (sprite)
  54. _item.bgPlus.image.sprite = sprite
  55. end)
  56. end
  57. --设置装备的插卡信息end
  58. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(_data.equip_id)
  59. local equipCfgData = ManagerContainer.CfgMgr:GetEquipById(_data.equip_id)
  60. if not itemCfgData then
  61. LogError("在道具表中找不到该装备" .. _data.equip_id)
  62. end
  63. if not equipCfgData then
  64. LogError("在装备表中找不到该装备" .. _data.equip_id)
  65. end
  66. _item.iconItem.num:SetActive(_index <= #_slotsData and _slotsData[_index].level > 0)
  67. local _iconItemLogic = {
  68. cfgId = _data.equip_id;
  69. num = _data.level;
  70. }
  71. IconItemCtr:SetData(_wnd, _item.iconItem, _iconItemLogic, Enum.ItemIEnterType.EquipTips)
  72. if _data._jobData then
  73. --设置tip
  74. local _tipData = {
  75. cfgId = _data.equip_id,
  76. num = 0,
  77. slotIndex = _slotIndex,
  78. id = _id,
  79. slotType = _index,
  80. cbOwner = _wnd,
  81. cb = nil,
  82. cb1 = nil,
  83. jobType = _data._jobData.JobType,
  84. canRefine = false,
  85. _isView = true; --仅仅是为了查看
  86. _slots = _slotsData, --这个要是传过去,就不去找自己的slots了,而是要用这个参数
  87. _cardIdList = _data.card_id_list,
  88. heroConfigId = _jobConfigId,
  89. nickName = _name;
  90. }
  91. local _openTips = function()
  92. local _data = {_tipData, Enum.ItemIEnterType.HeroEquip, true}
  93. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIEquipTips, _data)
  94. end
  95. _wnd.uiBase:AddButtonEventListener(_item.tipButton.button, _openTips);
  96. end
  97. else --槽位是开启了,但是没装备上武器
  98. _item.cardPlus.gameObject:SetActive(false);
  99. _item.iconItem.gameObject:SetActive(false);
  100. --_item.position.gameObject:SetActive(true);
  101. --_item.lv.gameObject:SetActive(false);
  102. _wnd.uiBase:AddButtonEventListener(_item.tipButton.button, function()
  103. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("该槽位还未装备!");
  104. end);
  105. end
  106. --end
  107. end
  108. return EquipmentShowSlotItemCtr