源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

158 строки
4.8 KiB

1 месяц назад
  1. --只显示装备信息的tips, 可与showiconitem搭配使用
  2. SealShowTips = SealShowTips or BaseClass(SealToolTips)
  3. SealShowTips.ONLY_SHOW = 0 --只展示信息
  4. SealShowTips.COMPOSE_OFF = 1 --显示卸下按钮,点击移除合成物品
  5. SealShowTips.EQUIP_RECOMMAND_TARGET = 2 --显示合成装备的推荐属性
  6. function SealShowTips:__init()
  7. self.base_file = "common"
  8. self.layout_file = "EquipToolTips"
  9. self.layer_name = "Top"
  10. self.use_background = true
  11. self.click_bg_toClose = true
  12. self.close_mode = CloseMode.CloseDestroy
  13. self.destroy_imm = true
  14. self.dynamic = nil
  15. self.is_show_btn = false
  16. self:AddPreLoadList("common",{"SealCompareTips"})
  17. self.model = GoodsModel:getInstance()
  18. self.seal_item_list = {}
  19. self.load_callback = function ()
  20. self:LoadSuccess()
  21. end
  22. self.open_callback = function ()
  23. self:SetData(self.dynamic)
  24. end
  25. self.close_callback = function ()
  26. end
  27. self.destroy_callback = function ()
  28. self:Remove()
  29. end
  30. end
  31. --[[
  32. dynamic: table
  33. type:
  34. ]]
  35. function SealShowTips:Open(dynamic, x, y, type)
  36. self.dynamic = dynamic
  37. self.type = type
  38. self.pos_x = x
  39. self.pos_y = y
  40. BaseView.Open(self)
  41. end
  42. function SealShowTips:Remove()
  43. if self.icon_item then
  44. self.icon_item:DeleteMe()
  45. self.icon_item = nil
  46. end
  47. for i,v in ipairs(self.seal_item_list) do
  48. v:DeleteMe()
  49. v = nil
  50. end
  51. self.seal_item_list = {}
  52. --[[self:DeleteArrowTip()
  53. if self.addNumComponent then
  54. if self.change_count_id then
  55. self.addNumComponent:UnBind(self.change_count_id)
  56. self.change_count_id = nil
  57. end
  58. self.addNumComponent:DeleteMe()
  59. self.addNumComponent = nil
  60. end--]]
  61. end
  62. function SealShowTips:InitEvent()
  63. local function onBtnClickHandler(target)
  64. if target == self.takeBtn then
  65. if self.type == SealShowTips.COMPOSE_OFF then
  66. ComposeModel:getInstance():Fire(ComposeEvent.COMPOSE_GOODS_OFF, self.dynamic.goods_id)
  67. end
  68. end
  69. self:Close()
  70. end
  71. AddClickEvent(self.takeBtn, onBtnClickHandler)
  72. end
  73. function SealShowTips:SetData(dynamic)
  74. self.dynamic = dynamic
  75. self.goods_vo = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.dynamic.type_id)
  76. if self.dynamic == nil or self.goods_vo == nil then
  77. return print("SealShowTips里面没有物品数据")
  78. end
  79. local color_str = ColorUtil.WHITE
  80. if self.goods_vo.level > RoleManager.Instance.mainRoleInfo.level then
  81. color_str = ColorUtil.RED
  82. end
  83. self.level.text = "<color="..color_str..">" .. self.goods_vo.level .. "</color>"
  84. -- local index = Config.ConfigEquipShow[self.goods_vo.equip_type].index
  85. self.equip_pos.text = Trim(Config.Holysealpos[self.goods_vo.subtype].name)
  86. self.fight.text = self.goods_vo.combat_power or 0
  87. color_str = (self.goods_vo.career_id == 0 or RoleManager.Instance.mainRoleInfo.career == self.goods_vo.career_id) and ColorUtil.WHITE or ColorUtil.RED
  88. local career_name = Config.Career[self.goods_vo.career_id] and Config.Career[self.goods_vo.career_id].career_name or "通用"
  89. self.career.text = "<color="..color_str..">" .. career_name .. "</color>"
  90. -- self:CreateStar(8)
  91. self.depot_conta.gameObject:SetActive(false)
  92. local stren = ""
  93. self.dynamic.stren = self.dynamic.stren or 0
  94. if self.dynamic.stren > 0 then
  95. stren = "+" .. self.dynamic.stren
  96. end
  97. self.nameText.text = "<color="..WordManager.GetGoodsColor(self.goods_vo.color)..">" .. self.goods_vo.goods_name .. stren .. "</color>"
  98. local step = Config.Holysealgoods[self.goods_vo.type_id] and Config.Holysealgoods[self.goods_vo.type_id].stage or 0
  99. self.step_num.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color)..">" .. step .. "阶</color>"
  100. self.icon_item:SetData(self.goods_vo)
  101. self.equip_score.text = self.dynamic.rating
  102. self.composite_score.text = self.dynamic.overall_rating or self.dynamic.rating
  103. local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
  104. if basic then
  105. local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist)
  106. self:SetProperty(base_pro, self.dynamic.stren, basic.equip_type)
  107. self.fight.text = self.dynamic.combat_power or 0
  108. end
  109. self:SetAddProperty(self.dynamic)
  110. self:SetSpecialProperty(self.goods_vo)
  111. self:SetSuitProperty(self.dynamic, self.goods_vo.equip_type)
  112. --self:SetSellState(self.dynamic.sell, self.dynamic.price_type, self.dynamic.type_id)
  113. self:Refresh()
  114. end
  115. --按钮显示
  116. function SealShowTips:SetBtns()
  117. for i,v in ipairs(self.btn_list) do
  118. v:SetActive(false)
  119. end
  120. if self.type == SealShowTips.COMPOSE_OFF then
  121. self.takeBtn:SetActive(true)
  122. end
  123. end
  124. --刷新相关控件的位置
  125. function SealShowTips:Refresh()
  126. if self.dynamic then
  127. self:RefreshPosAndSize(self.dynamic)
  128. self:SetRootPos()
  129. self:SetBtns()
  130. end
  131. end