|
|
-
- CapsuleEggRewardView = CapsuleEggRewardView or BaseClass(BaseView)
- local CapsuleEggRewardView = CapsuleEggRewardView
-
- function CapsuleEggRewardView:__init()
- self.base_file = "capsuleEgg"
- self.layout_file = "CapsuleEggRewardView"
-
- self.layer_name = "Activity"
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self.model = CapsuleEggModel:getInstance()
- self.destroy_imm = true
- self.use_background = true
- self.hide_clear_role_model = false
- self.change_scene_close = true
- self.append_to_ctl_queue = false
-
- self.close_fog = true
- self.is_set_zdepth = true
-
- self.show_item_list = {}
- self.record_list = {}
- self.play_record_idx = 0
- self.play_record_item = false
- self.last_play_record_item = false
- self.record_item = false
- self.is_ani = false
-
- self.blur_activity_bg = true
- self.use_show_anim = true
- self.use_hide_anim = true
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- end
- self.open_callback = function ()
- self:UpdateView()
- end
-
- self.close_callback = function ()
- self:Remove()
- end
- end
-
- function CapsuleEggRewardView:Open(pool_type)
- self.pool_type = pool_type or 1
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17011,1, self.pool_type, 0)
- BaseView.Open(self)
- end
-
- function CapsuleEggRewardView:Remove()
- for i,v in ipairs(self.show_item_list) do
- v:DeleteMe()
- end
- if self.delay_timer then
- GlobalTimerQuest:CancelQuest(self.delay_timer)
- self.delay_timer = false
- end
- if self.record_item then
- for i,v in ipairs(self.record_item) do
- v:DeleteMe()
- end
- end
- end
-
- function CapsuleEggRewardView:LoadSuccess()
- local nodes = {
- "contain/helpBtn:obj",
- "contain/title_img_3:img",
- "contain/title_img_2:img",
- "contain/title_img_1:img",
- "contain/close:obj",
- "contain/bg:raw",
- "contain/reward_scroll",
- "contain/reward_scroll/Viewport/reward_con",
- "contain/target_scroll",
- "contain/target_scroll/Viewport/target_con",
- "contain/record_scroll/Viewport/record_con",
- "contain/record_scroll",
- "contain/reward_icon/role_con:raw",
- }
- self:GetChildren(nodes)
-
- lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("capsule_egg_bg_2_1238_609"))
- --lua_resM:setOutsideRawImage(self, self.reward_icon_raw, GameResPath.GetCapsuleEggRes("capsule_egg_icon_2"), true)
- lua_resM:setOutsideImageSprite(self, self.title_img_1_img, GameResPath.GetCapsuleEggRes("capsule_egg_draw_type_title_2"), false)
- lua_resM:setOutsideImageSprite(self, self.title_img_2_img, GameResPath.GetCapsuleEggRes("capsule_egg_slogan_3"), false)
- lua_resM:setOutsideImageSprite(self, self.title_img_3_img, GameResPath.GetCapsuleEggRes("capsule_egg_slogan_2"), false)
- local model_pos = CapsuleEggShowAwardItem.HorseRewardShowPos.pos
- SetLocalPosition(self.role_con, model_pos.x, model_pos.y, model_pos.z)
- self:UpdateHourseModelCon(self.role_con, CapsuleEggShowAwardItem.HorseRewardShowPos.model_id)
- self:UpdateScord()
- end
-
- function CapsuleEggRewardView:InitEvent()
- local function onBtnClickHandler(target)
- if target == self.close_obj then
- self:Close()
- elseif target == self.helpBtn_obj then
- EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 17001)
- end
- end
- AddClickEvent(self.close_obj,onBtnClickHandler)
- AddClickEvent(self.helpBtn_obj,onBtnClickHandler)
-
- --刷新结果
- local function on_update_times(pool_type)
- if pool_type == self.pool_type then
- self:UpdateView()
- end
- end
- self:BindEvent(self.model,CapsuleEggConst.OPEN_CAPSULE_EGG_REWARD_UPDATE,on_update_times)
- end
-
- function CapsuleEggRewardView:UpdateView()
- local reward_cfg = self.model:GetTimeRewardCfg(self.pool_type)
- local reward_data_list = {}
- for i,v in ipairs(reward_cfg) do
- local t = DeepCopy(v)
- local status = self.model:GetTimesRewardStatusByTimes(self.pool_type, t.draw_times)
- if status then
- t.status = 1
- else
- t.status = 0
- end
- table.insert(reward_data_list, t)
- end
- table.sort( reward_data_list, function (a, b)
- if a.status ~= b.status then
- return a.status < b.status
- else
- return a.draw_times < b.draw_times
- end
- end)
-
- self.award_item_creator = self.award_item_creator or self:AddUIComponent(UI.ItemListCreator)
- local info = {
- data_list = reward_data_list,
- item_con = self.reward_con,
- scroll_view = self.reward_scroll,
- item_class = CapsuleEggRewardItem,
- item_width = 731,
- item_height = 101,
- space_y = 5,
- create_frequency = 0.01,
- alignment = UnityEngine.TextAnchor.UpperLeft,
- on_update_item = function(item, i, v)
- item:SetData(v, i, self.pool_type)
- end,
- }
- self.award_item_creator:UpdateItems(info)
-
- local show_reward_cfg = self.model:GetShowTimeRewardCfg()
- for i,v in ipairs(self.show_item_list) do
- v:SetVisible(false)
- end
- for i,v in ipairs(show_reward_cfg) do
- local item = self.show_item_list[i]
- if not item then
- item = CapsuleEggTargetItem.New(self.target_con, nil, self.layer_name)
- self.show_item_list[i] = item
- item:SetAnchoredPosition((78 + 40) * (i - 1) + 18, -3)
- end
- item:SetVisible(true)
- item:SetData(v, i, self.pool_type)
- end
- SetSizeDelta(self.target_con, (70 + 45) * (#show_reward_cfg) + 18, 120)
- end
-
- function CapsuleEggRewardView:UpdateScord()
- self.record_list = self.model:GetAllRecordList(self.pool_type)
- if #self.record_list > 0 then
- self:PlayScrodAction()
- end
- end
-
- function CapsuleEggRewardView:PlayScrodAction()
- if not self.record_item then
- self.record_item = {}
- self.record_item[1] = CapsuleEggRecordItemTwo.New(self.record_con, nil ,self.layer_name)
- self.record_item[2] = CapsuleEggRecordItemTwo.New(self.record_con, nil ,self.layer_name)
- self.record_item[1]:SetAnchoredPosition(0, -100)
- self.record_item[2]:SetAnchoredPosition(0, -100)
- end
-
- if self.is_ani then
- return
- end
- self.is_ani = true
- if self.play_record_item ~= self.record_item[1] then
- self.play_record_item = self.record_item[1]
- else
- self.play_record_item = self.record_item[2]
- end
- self.play_record_idx = self.play_record_idx + 1
- if self.play_record_idx > #self.record_list then
- self.play_record_idx = 1
- end
- self.play_record_item:SetData(self.record_list[self.play_record_idx])
- self.play_record_item:MoveIn()
-
- if self.last_play_record_item then
- self.last_play_record_item:MoveOut()
- end
- self.last_play_record_item = self.play_record_item
-
- if self.delay_timer then
- GlobalTimerQuest:CancelQuest(self.delay_timer)
- self.delay_timer = false
- end
- local function delay_func( )
- self.is_ani = false
- self:PlayScrodAction()
- end
- self.delay_timer = GlobalTimerQuest:AddDelayQuest(delay_func,4)
- end
-
-
- function CapsuleEggRewardView:UpdateHourseModelCon(transform,figure_id )
- local res_data = {
- father_node = self,
- transform = transform,
- fashion_type = FuncOpenModel.TypeId.FHorse,
- raycast_size = Vector2(0,0),
- scale = CapsuleEggShowAwardItem.HorseRewardShowPos.scale,
- model_rotation = CapsuleEggShowAwardItem.HorseRewardShowPos.model_rotation,
- figure_id = figure_id,
- action_name_list = {"show"},
- position = Vector3(0,0,0),
- layer_name = self.layer_name,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
- end
|