源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
4.6 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 特殊场景活动tips弹窗界面
  4. -- *>
  5. SpercificSceneActivityTipView = SpercificSceneActivityTipView or BaseClass(BaseView)
  6. local SpercificSceneActivityTipView = SpercificSceneActivityTipView
  7. function SpercificSceneActivityTipView:__init()
  8. self.base_file = "common"
  9. self.layout_file = "SpercificSceneActivityTipView"
  10. self.layer_name = "Top"
  11. self.destroy_imm = true
  12. self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
  13. self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
  14. self.is_set_zdepth = true
  15. self.award_list = {}
  16. self.model = CommonModel:getInstance()
  17. self.load_callback = function ()
  18. self:LoadSuccess()
  19. self:AddEvent()
  20. end
  21. self.open_callback = function ( )
  22. self:UpdateView()
  23. end
  24. self.destroy_callback = function ( )
  25. self:DestroySuccess()
  26. end
  27. end
  28. -- ac_data:活动日历Config.Ac中的数据
  29. function SpercificSceneActivityTipView:Open(ac_data)
  30. self.ac_data = ac_data
  31. BaseView.Open(self)
  32. end
  33. function SpercificSceneActivityTipView:LoadSuccess()
  34. local nodes = {
  35. "Window:raw", "Window/windowCloseBtn:obj",
  36. "cancelBtn:obj", "confirmBtn:obj",
  37. "reward_scroll", "reward_scroll/Viewport/reward_con",
  38. "contenText:tmp",
  39. }
  40. self:GetChildren(nodes)
  41. lua_resM:setOutsideRawImage(self, self.Window_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false)
  42. end
  43. function SpercificSceneActivityTipView:AddEvent()
  44. local function click_event(target)
  45. if target == self.cancelBtn_obj then
  46. self:Close()
  47. elseif target == self.confirmBtn_obj then
  48. self:OnConfirmBtnClick()
  49. self:Close()
  50. end
  51. end
  52. AddClickEvent(self.cancelBtn_obj, click_event)
  53. AddClickEvent(self.confirmBtn_obj, click_event)
  54. end
  55. function SpercificSceneActivityTipView:UpdateView()
  56. -- 加载文本
  57. self.contenText_tmp.text = string.format("限时活动 <color=%s>%s</color> 已开启\n是否前往参加活动?",
  58. ColorUtil.BLUE_DARK, Trim(self.ac_data.ac_name))
  59. -- 加载奖励
  60. local reward = stringtotable(self.ac_data.reward)[1][2] or {}
  61. local total_len = #reward * 88
  62. local len_offset = 0
  63. if total_len < 400 then
  64. len_offset = (400 - total_len) / 2
  65. end
  66. for i,v in ipairs(reward) do
  67. self.award_list[i] = self.award_list[i] or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.reward_con)
  68. self.award_list[i]:SetItemSize(78, 78)
  69. self.award_list[i]:SetDataWithMapId(v[2], v[3], v[1])
  70. self.award_list[i]:SetPosition(88 * (i-1) + len_offset, 0)
  71. end
  72. SetSizeDeltaX(self.reward_con, total_len)
  73. end
  74. function SpercificSceneActivityTipView:OnConfirmBtnClick( )
  75. self.click_callback = self.click_callback or {
  76. [418] = function() -- 温泉
  77. BeachModel:GetInstance():Fire(BeachConst.REQ_ENTER_SCENE)
  78. end,
  79. [602] = function() -- 饥饿游戏
  80. WastelandModel:GetInstance():Fire(WastelandConst.REQ_WASTELAND_SCMD, 60201)
  81. end,
  82. [415] = function() -- 狂战领域
  83. RageWarModel:getInstance():Fire(RageWarModel.REQUEST_CCMD_EVENT, 41501)
  84. end,
  85. [600] = function() -- 无尽领域
  86. EndlessModel:GetInstance():Fire(EndlessConst.REQ_ENDLESS_SCMD, 60002)
  87. end,
  88. [500] = function() -- 双倍护送
  89. EscortModel:getInstance():FlyToNpc()
  90. end,
  91. [601] = function() -- 跨国团战
  92. OpenFun.Open(601,0)
  93. end,
  94. [405] = function() -- 本服团战
  95. GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_WAR_SCENE)
  96. end,
  97. [408] = function() -- 封印裂隙
  98. GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
  99. end,
  100. [406] = function() -- 社团boss
  101. GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
  102. end,
  103. [400] = function() -- 社团晚宴
  104. GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
  105. end,
  106. [410] = function() -- 本国团战
  107. GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT, 41002, 0)
  108. end,
  109. }
  110. local callback = self.click_callback[self.ac_data.module]
  111. if callback then
  112. callback()
  113. end
  114. end
  115. function SpercificSceneActivityTipView:DestroySuccess( )
  116. if self.award_list then
  117. for k,v in pairs(self.award_list) do
  118. UIObjPool:PushItem(UIObjPool.UIType.AwardItem, v)
  119. end
  120. self.award_list = {}
  121. end
  122. end