KLUIInfoChangeItem.lua 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. ---@class KLUIInfoChangeItem:UIKmlLuaPanelBase
  2. ---@field view KLUIInfoChangeItemView
  3. local KLUIInfoChangeItem = class(UIKmlLuaPanelBase)
  4. local this =KLUIInfoChangeItem
  5. ---创建时调用一次
  6. function this:Init()
  7. ---@type KLUIInfoPanel
  8. self.baseUI = self.args.baseUI
  9. end
  10. ---创建或者刷新界面数据时调用
  11. function this:Refresh()
  12. end
  13. function this:RefreshUI(v, dcNum, mcNum, zzNum, time)
  14. if self.isShow then
  15. self.baseUI:RefreshTotalItemNum()
  16. end
  17. if SL:HasConfig("cfg_att_info", v.type) and SL:HasConfig("cfg_string",63) then
  18. local info = SL:GetConfig("cfg_att_info",v.type)
  19. GUI:Image_setAlpha(self.view.img_effect, 0)
  20. GUI:Image_setAlpha(self.view.img_up, 0)
  21. GUI:Text_setTextColorAlpha(self.view.text_attr, 0)
  22. local numStr = tostring(v.num)
  23. local dcNumStr = tostring(dcNum)
  24. if info.remarks == EAttInfoType.percentage then
  25. numStr = tostring(v.num / 100) .. "%"
  26. dcNumStr = tostring(dcNum / 100).."%"
  27. end
  28. if v.num > 0 then
  29. GUI:Text_setTextColor(self.view.text_attr, "#5EFF0000")
  30. GUI:setRotation(self.view.img_up, "0")
  31. GUI:Text_setString(self.view.text_attr, info.name.." + "..numStr)
  32. if dcNum ~= 0 and v.type == EMUCharacterAttrType.maxDC then
  33. GUI:Text_setString(self.view.text_attr, "攻击力".." + "..dcNumStr.." ~ "..numStr)
  34. elseif mcNum ~= 0 and v.type == EMUCharacterAttrType.maxMC then
  35. GUI:Text_setString(self.view.text_attr, "魔法攻击力".." + "..mcNum.." ~ "..numStr)
  36. elseif zzNum ~= 0 and v.type == EMUCharacterAttrType.maxZuZhou then
  37. GUI:Text_setString(self.view.text_attr, "诅咒攻击力".." + "..zzNum.." ~ "..numStr)
  38. end
  39. else
  40. GUI:Text_setTextColor(self.view.text_attr, "#FF1A0000")
  41. GUI:setRotation(self.view.img_up, "180")
  42. GUI:Text_setString(self.view.text_attr, info.name.." "..numStr)
  43. if dcNum ~= 0 and v.type == EMUCharacterAttrType.maxDC then
  44. GUI:Text_setString(self.view.text_attr, "攻击力"..dcNumStr.." ~ "..numStr)
  45. elseif mcNum ~= 0 and v.type == EMUCharacterAttrType.maxMC then
  46. GUI:Text_setString(self.view.text_attr, "魔法攻击力"..mcNum.." ~ "..numStr)
  47. elseif zzNum ~= 0 and v.type == EMUCharacterAttrType.maxZuZhou then
  48. GUI:Text_setString(self.view.text_attr, "诅咒攻击力"..zzNum.." ~ "..numStr)
  49. end
  50. end
  51. end
  52. self.hideTime = time
  53. end
  54. function this:ShowUI()
  55. self.isShow = true
  56. GUI:SetActive(self.view.item_root, true)
  57. ---重置
  58. if self.scheduleHideId then
  59. SL:UnSchedule(self.scheduleHideId)
  60. self.scheduleHideId = nil
  61. end
  62. self.alpha = 0
  63. GUI:Image_setAlpha(self.view.img_effect, self.alpha)
  64. GUI:Image_setAlpha(self.view.img_up, self.alpha)
  65. GUI:Text_setTextColorAlpha(self.view.text_attr, self.alpha)
  66. ---开始展示
  67. self.scheduleShowId = SL:Schedule(self.scheduleShowId, 0, Time.deltaTime, -1, function()
  68. self.alpha = self.alpha + 0.1
  69. GUI:Image_setAlpha(self.view.img_effect, self.alpha)
  70. GUI:Image_setAlpha(self.view.img_up, self.alpha)
  71. GUI:Text_setTextColorAlpha(self.view.text_attr, self.alpha)
  72. if self.alpha >= 1 then
  73. SL:UnSchedule(self.scheduleShowId)
  74. self.scheduleShowId = nil
  75. self.scheduleHideId = SL:Schedule(self.scheduleHideId, self.hideTime, Time.deltaTime, -1, function()
  76. self.alpha = self.alpha - 0.1
  77. GUI:Image_setAlpha(self.view.img_effect, self.alpha)
  78. GUI:Image_setAlpha(self.view.img_up, self.alpha)
  79. GUI:Text_setTextColorAlpha(self.view.text_attr, self.alpha)
  80. if self.alpha <= 0 then
  81. SL:UnSchedule(self.scheduleHideId)
  82. self.scheduleHideId = nil
  83. self.isShow = false
  84. GUI:SetActive(self.view.item_root, false)
  85. self.baseUI:RefreshTotalItemNum()
  86. end
  87. end)
  88. end
  89. end)
  90. end
  91. ---注册UI事件和服务器消息
  92. function this:RegistEvents()
  93. end
  94. function this:Close()
  95. if self.scheduleShowId then
  96. SL:UnSchedule(self.scheduleShowId)
  97. end
  98. if self.scheduleHideId then
  99. SL:UnSchedule(self.scheduleHideId)
  100. end
  101. end
  102. return this