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

166 строки
7.0 KiB

1 месяц назад
  1. NewMainRoleHatredView = NewMainRoleHatredView or BaseClass(BaseView)
  2. local NewMainRoleHatredView = NewMainRoleHatredView
  3. function NewMainRoleHatredView:__init()
  4. self.base_file = "newMainRole"
  5. self.layout_file = "NewMainRoleHatredView"
  6. self.layer_name = "Activity"
  7. self.destroy_imm = true
  8. self.use_background = true
  9. self.is_set_zdepth = true
  10. self.blur_activity_bg = true
  11. self.hatred_item = nil -- 免罪券awardItem
  12. self.hatred_item_goodID = 102001 -- 免罪券道具id
  13. self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
  14. --self.append_to_ctl_queue = false --是否要添加进界面堆栈
  15. --self.need_show_money = false --是否要显示顶部的金钱栏
  16. self.model = NewMainRoleModel:getInstance()
  17. self.load_callback = function ()
  18. self:LoadSuccess()
  19. self:AddEvent()
  20. end
  21. self.open_callback = function ( )
  22. self:OpenSuccess()
  23. end
  24. self.destroy_callback = function ( )
  25. self:DestroySuccess()
  26. end
  27. end
  28. function NewMainRoleHatredView:Open( )
  29. --self.data = data
  30. BaseView.Open(self)
  31. end
  32. function NewMainRoleHatredView:LoadSuccess()
  33. local nodes = {
  34. "window:raw","window/closeBtn:obj", "window/windowTitleText:tmp", "confirmBtn:obj", "itemCon",
  35. "cur_hatred:tmp", "item_name:tmp", "item_num:tmp",
  36. "intro1:tmp", "intro2:tmp",
  37. }
  38. self:GetChildren(nodes)
  39. self.windowTitleText_tmp.text = "罪恶值"
  40. self.cur_hatred_tmp.text = "罪恶值:"
  41. lua_resM:setOutsideRawImage(self, self.window_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false)
  42. end
  43. function NewMainRoleHatredView:AddEvent()
  44. local function click_event(target)
  45. if target == self.closeBtn_obj then
  46. self:Close()
  47. elseif target == self.confirmBtn_obj then
  48. if RoleManager.Instance.mainRoleInfo.hatred <= 0 then
  49. Message.show("当前善恶值为0,无需减少")
  50. return
  51. end
  52. local type_id = self.hatred_item_goodID
  53. local goods_num = GoodsModel:getInstance():GetTypeGoodsNum(type_id)
  54. if goods_num >= 1 then
  55. GlobalEventSystem:Fire(EventName.REDUCE_ROLE_HATRED, 1)
  56. else
  57. -- 获取物品价格及类型
  58. local buy_price, _, price_type = GoodsModel:getInstance():GetGoodsPrice(type_id)
  59. -- 获取货币goodsid
  60. local price_id = WordManager:GetPriceTypeId(price_type)
  61. local goods_name = GoodsModel:getInstance():getGoodsName(type_id, true)
  62. local price_name = GoodsModel:getInstance():getGoodsName(price_id)
  63. local price_color = GoodsModel:getInstance():GetGoodsColor(price_id)
  64. local price_asset, price_icon = WordManager:GetCommonMoneyIcon(price_type)
  65. local ask_str1 = string.format("您的 %s 不足!", goods_name)
  66. local ask_str2 = string.format("<color=%s>%s</color> 补全物品?", price_color, buy_price)
  67. local function ok_callback()
  68. GlobalEventSystem:Fire(EventName.REDUCE_ROLE_HATRED, 1)
  69. end
  70. local function rechanger_callback()
  71. if price_type == 1 then
  72. local function ok()
  73. self:Close()
  74. end
  75. local qc_data = {
  76. close_callback = ok,
  77. }
  78. GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true, qc_data)
  79. elseif price_type == 2 then
  80. Message.show("您的红钻不足")
  81. end
  82. end
  83. local data = {
  84. gold_ab_res = price_asset,
  85. gold_res = price_icon,
  86. price = buy_price,
  87. insufficientText = ask_str1,
  88. priceText = ask_str2,
  89. titleText = "购买免罪券",
  90. ok_callback = ok_callback,
  91. rechanger_callback = rechanger_callback,
  92. no_need_toggle = true,
  93. }
  94. GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, data)
  95. end
  96. end
  97. end
  98. AddClickEvent(self.closeBtn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
  99. AddClickEvent(self.confirmBtn_obj, click_event)
  100. local function on_change_hatred()
  101. self:UpdateView()
  102. end
  103. self.on_change_hatred_id = RoleManager.Instance.mainRoleInfo:BindOne("hatred", on_change_hatred)
  104. --背包物品发生变动时刷新免罪券数据(特指购买)
  105. local function refresh_hatred_item()
  106. self:UpdateView()
  107. end
  108. self.refresh_hatred_item_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, refresh_hatred_item)
  109. local function OPEN_VIP_VIEW( )
  110. --vip界面打开了就关掉自己
  111. self:Close()
  112. end
  113. self:BindEvent(GlobalEventSystem, EventName.OPEN_VIP_VIEW, OPEN_VIP_VIEW)
  114. end
  115. function NewMainRoleHatredView:OpenSuccess()
  116. self:UpdateView()
  117. end
  118. function NewMainRoleHatredView:UpdateView()
  119. self.intro1_tmp.text = "在野外击杀其他玩家会增加您的<color=#f558ff>善恶值</color>"
  120. self.intro2_tmp.text = "使用<color=#f558ff>免罪券</color>可减少<color=#f558ff>10点</color>善恶值,每在线30分钟会减少<color=#f558ff>1点</color>善恶值"
  121. local role_hatred = RoleManager.Instance.mainRoleInfo.hatred
  122. local goods_effect = Config.Goodseffect[self.hatred_item_goodID].effect_list
  123. local cost = stringtotable(goods_effect)[1][2]
  124. local str_3 = HtmlColorTxt( string.format("(惩罚:罪恶值大于0时被其他玩家击杀将失去%s红钻)", cost ) , '#ff203a', 0.7)
  125. self.cur_hatred_tmp.text = "罪恶值:" .. HtmlColorTxt( role_hatred , '#fdffc2') .. str_3
  126. if not self.hatred_item then
  127. self.hatred_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.itemCon)
  128. self.hatred_item:SetAnchoredPosition(0, 0)
  129. end
  130. self.hatred_item:SetOpenShowGetWay(true)
  131. self.hatred_item:SetData(self.hatred_item_goodID)
  132. self.hatred_item:SetItemSize(78, 78)
  133. local goods_num = GoodsModel:getInstance():GetTypeGoodsNum(self.hatred_item_goodID)
  134. local goods_name = GoodsModel:getInstance():getGoodsName(self.hatred_item_goodID, true)
  135. self.item_num_tmp.text = string.format("<color=%s>%s</color>/1", goods_num>0 and ColorUtil.GREEN or ColorUtil.RED, goods_num)
  136. self.item_name_tmp.text = goods_name
  137. end
  138. function NewMainRoleHatredView:DestroySuccess( )
  139. if self.hatred_item then
  140. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.hatred_item)
  141. end
  142. self.hatred_item = nil
  143. if self.on_change_hatred_id then
  144. RoleManager.Instance.mainRoleInfo:UnBind(self.on_change_hatred_id)
  145. self.on_change_hatred_id = nil
  146. end
  147. if self.refresh_hatred_item_id then
  148. GoodsModel:getInstance():UnBind(self.refresh_hatred_item_id)
  149. self.refresh_hatred_item_id = nil
  150. end
  151. end