KLBossOfferRewardModelItem.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. ---@class KLBossOfferRewardModelItem:UIKmlLuaPanelBase
  2. ---@field view KLBossOfferRewardModelItemView
  3. local KLBossOfferRewardModelItem = class(UIKmlLuaPanelBase)
  4. local this =KLBossOfferRewardModelItem
  5. ---创建时调用一次
  6. function this:Init()
  7. self.startY = GUI:getPositionY(self.view.node)
  8. end
  9. ---创建或者刷新界面数据时调用
  10. function this:Refresh()
  11. end
  12. ---@param data cfg_newarea_offerreward_column
  13. function this:RefreshItem(data)
  14. self.monsterId = data.monsterId
  15. self.state = InfoManager.bossOfferRewardInfo:GetMonsterStateByMonserId(self.monsterId)
  16. ---@type cfg_monster_column
  17. local tab = SL:GetConfigMultiKeys('cfg_monster', self.monsterId, 'id')
  18. local appr = tab.appr
  19. local path = SL:GetConfigMultiKeys('cfg_model_monster', appr, 'id').path
  20. self.monsterType = SL:GetConfigMultiKeys('cfg_BOSS_challenge', self.monsterId, 'monsterid').monsterType
  21. local scale = tab.UIscale
  22. if data.monsterId == 500023 then
  23. GUI:setPosition(self.view.node,-36,12)
  24. else
  25. GUI:setPosition(self.view.node,0,self.startY)
  26. end
  27. if scale == 0 then
  28. GUI:Model_setSrc(self.view.monster,path,nil,"0,-150,0",nil,"300,300")
  29. else
  30. scale = string.format("%d,%d",200*scale,200*scale)
  31. GUI:Model_setSrc(self.view.monster,path,nil,"0,-150,0",nil,scale)
  32. end
  33. --GUI:Model_setSrc(self.view.monster,path)
  34. if not self.item then
  35. self.item = GUI:Item_Create(self.view.modelExp,{
  36. width = "60",
  37. height = "60",
  38. itemid = data.reward[1],
  39. mfixsize = "60,60",
  40. tips = "1",
  41. itemcustomcount = SL:GetSimpleNumber(data.reward[2],0),
  42. textcolor = "#FBD994"
  43. })
  44. else
  45. GUI:Item_UpdataData(self.item,{
  46. itemcustomcount = SL:GetSimpleNumber(data.reward[2],0),
  47. })
  48. end
  49. GUI:AddOnClickEvent(self.item,self,function()
  50. SL:OpenTips(nil, data.reward[1])
  51. end)
  52. self:ShowMonsterInfo(tab)
  53. end
  54. ---@param monster cfg_monster_column
  55. function this:ShowMonsterInfo(monster)
  56. local name = monster.name
  57. local nameStr
  58. if monster.type == MonsterType.GoldMonster then
  59. name = SL:GetColorText(name,SL:GetColorCfg(2001).color)
  60. else
  61. name = SL:GetColorText(name,SL:GetColorCfg(271).color)
  62. end
  63. if self.state == E_MonsterShowState.Go then
  64. nameStr = SL:GetColorText(table.concat({0,"/","1"}),SL:GetColorCfg(271).color)
  65. nameStr = table.concat({name," ",nameStr})
  66. self:ShowGoState()
  67. elseif self.state == E_MonsterShowState.CanReceive then
  68. nameStr = SL:GetColorText(table.concat({1,"/","1"}),SL:GetColorCfg(2).color)
  69. nameStr = table.concat({name," ",nameStr})
  70. self:ShowCanReceiveState()
  71. elseif self.state == E_MonsterShowState.HadReceive then
  72. nameStr = SL:GetColorText(table.concat({1,"/","1"}),SL:GetColorCfg(2).color)
  73. nameStr = table.concat({name," ",nameStr})
  74. self:ShowHadReceiveState()
  75. end
  76. GUI:Text_setString(self.view.name,nameStr)
  77. end
  78. ---未击杀状态展示
  79. function this:ShowGoState()
  80. GUI:setVisible(self.view.img_receive,false)
  81. GUI:Button_setTitleText(self.view.btn_go_get,"前往击杀")
  82. GUI:setVisible(self.view.btn_go_get,true)
  83. GUI:Button_loadTextures(self.view.btn_go_get,"button_interface_window11",nil,nil,"Atlas/Common.spriteatlas")
  84. end
  85. ---可领取状态展示
  86. function this:ShowCanReceiveState()
  87. GUI:setVisible(self.view.btn_go_get,true)
  88. GUI:setVisible(self.view.img_receive,false)
  89. GUI:Button_setTitleText(self.view.btn_go_get,"领取")
  90. GUI:Button_loadTextures(self.view.btn_go_get,"button_interface_window9",nil,nil,"Atlas/Common.spriteatlas")
  91. end
  92. ---已领取状态展示
  93. function this:ShowHadReceiveState()
  94. GUI:setVisible(self.view.img_receive,true)
  95. GUI:setVisible(self.view.btn_go_get,false)
  96. end
  97. ---注册UI事件和服务器消息
  98. function this:RegistEvents()
  99. GUI:AddOnClickEvent(self.view.btn_go_get,self,self.OnclickBtn)
  100. end
  101. function this:OnclickBtn()
  102. if self.state == E_MonsterShowState.Go then
  103. SL.HideMainPanel()
  104. GUI:UIPanel_Close("dev/outui/BossOfferReward/Panel/KLBossOfferReward/KLBossOfferRewardPanel")
  105. GUI:UIPanel_Open("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel",nil,
  106. nil,{monsterId = self.monsterId,monsterType = self.monsterType })
  107. elseif self.state == E_MonsterShowState.CanReceive then
  108. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BOUNTY_MONSTER_REWARD,{id=self.monsterId})
  109. end
  110. end
  111. function this:Close()
  112. self.item = nil
  113. end
  114. return this