|
|
- ChildHeartTaskView = ChildHeartTaskView or BaseClass(BaseView)
- local ChildHeartTaskView = ChildHeartTaskView
-
- function ChildHeartTaskView:__init()
- self.base_file = "child"
- self.layout_file = "ChildHeartTaskView"
- self.layer_name = "UI"
- self.destroy_imm = true
- self.use_background = G_USING_BG --全屏界面默认使用这个参数
- self.hide_maincancas = true --全屏界面需要放开隐藏主UI
- self.change_scene_close = true
- self.append_to_ctl_queue = false --是否要添加进界面堆栈
- self.need_show_money = false --是否要显示顶部的金钱栏
- self.fire_change_visible_event = true
- self.blur_activity_bg = true
- self.close_fog = true
-
- self.task_item_list = {} -- 同心每日任务item
- self.reward_item_list = {} -- 奖励item
-
- self.model = ChildModel:getInstance()
- self.model:ChangeHeartTaskChildSex( )
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.switch_callback = function(index)
- self:SwitchTab(index)
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function ChildHeartTaskView:Open( )
- --self.data = data
- BaseView.Open(self)
- end
-
- function ChildHeartTaskView:LoadSuccess()
- local nodes = {
- "taskScroll/Viewport/taskCon", "taskScroll", "rewardCon",
- "fillImg:img", "heartValue:txt","close:obj", "modelCon",
- "bg:raw", "tipDes:tmp", "modelCon2", "btn_buy:obj:img",
- -- "btn_buy/lb_btn_buy:tmp",
- "btn_buy/con_btn_buy_effect",
- "black_bg:obj", "black_bg/lb_price:tmp",
- }
- self:GetChildren(nodes)
- self:UpdateBaseView( )
- end
-
- function ChildHeartTaskView:UpdateBaseView( )
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("child_heart_bg_1186_601"), false)
- self.tipDes_tmp.text = string.format("任务每日%s刷新", HtmlColorTxt( "04:00", ColorUtil.GREEN_DARK))
- local function bg_back_func( ... )
- if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then
- self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend"))
- end
- self:MoveUIToBack(self.bg_raw)
- end
- if self.background_wnd then
- bg_back_func()
- else
- self.bg_back_func = bg_back_func
- end
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- self.btn_buy_obj:SetActive(open_day >= 6) -- 开服6天后开放这个
- self.lb_price_tmp.text = ""
- if open_day >= 6 then
- SetAnchoredPositionY(self.con_btn_buy_effect, 2.5)
- self:AddUIEffect("ui_effect_shouchong05_2", self.con_btn_buy_effect, self.layer_name, nil, 0.9, false,nil,nil,nil,nil,nil,UIPartical.RenderingOther_List.UIBackward)
- end
- end
-
- function ChildHeartTaskView:AddEvent()
- local on_click = function ( click_obj )
- if self.close_obj == click_obj then
- self:Close()
- elseif self.btn_buy_obj == click_obj then
- local cur_heart_value = self.child_info.heart_link_exp or 0
- local buy_count = self.model:GetMaxHeartValue() - cur_heart_value
- if buy_count <= 0 then
- Message.show("同心值已满,请尽快领取奖励!")
- return
- end
- local price_cfg = Config.Goodsprice[260001] -- 同心值价值配在价格表
- local per_heart_link_price = price_cfg.price
- local ask_str = string.format('%s 补充 %s点 同心值?',
- HtmlColorTxt(buy_count * per_heart_link_price, ColorUtil.YELLOW_DARK),
- HtmlColorTxt(buy_count, ColorUtil.YELLOW_DARK) )
-
- local function ok_callback( )
- self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16506, 3, 0, 0)
- end
- local function use_function( toggle_tip_data,call_fun_sum )
- if not self.model.recovery_toggle then
- GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, toggle_tip_data)
- else
- call_fun_sum()
- end
- end
- local buy_tip_data = {
- gold_type = price_cfg.price_type,--货币类型
- cost_price = buy_count * per_heart_link_price,--消耗金额
- ok_callback = ok_callback,--成功
- togglePriceStr = ask_str,--提示语
- use_function = use_function,--最终调用
- no_need_toggle = true,
- }
- CustomActivityModel:getInstance():BuyTips(buy_tip_data)
- end
- end
- AddClickEvent(self.close_obj, on_click)
- AddClickEvent(self.btn_buy_obj, on_click)
-
- -- 更新任务
- local function updata_child_task_info_fun()
- self:UpdateTaskCon()
- end
- self.updata_child_task_info_id = self.model:Bind(ChildConst.UPDATA_CHILD_TASK_INFO, updata_child_task_info_fun)
- -- 更新同心值
- local function update_heart_link_value()
- self:UpdateHeartLink( )
- self:UpdateRewardCon( )
- end
- self.update_heart_link_value_id = self.model:Bind(ChildConst.UPDATE_HEART_LINK_VALUE, update_heart_link_value)
-
- -- 更新同心奖励状态
- local function update_heartlink_reward_status()
- self:UpdateRewardCon( )
- end
- self.update_heartlink_reward_status_id = self.model:Bind(ChildConst.UPDATE_HEARTLINK_REWARD_STATUS, update_heartlink_reward_status)
- end
-
- -- 更新孩子模型
- function ChildHeartTaskView:UpdateRoleModel( )
- -- local child_sex = self.model:GetHeartTaskChildSex( )
- SetLocalPositionX(self.modelCon, -248 + 82)
- SetLocalPositionX(self.modelCon2, -248 - 82)
- local show_figure_id = self.model:GetChildOriginalModelID(1)
- local res_data = {
- father_node = self,
- transform = self.modelCon,
- fashion_type = FuncOpenModel.TypeId.Child,
- figure_id = show_figure_id,
- ui_model_type = UIModelCommon.ModelType.BackModel,
- can_rotate = false,
- scale = 400
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
-
- local show_figure_id = self.model:GetChildOriginalModelID(2)
- local res_data = {
- father_node = self,
- transform = self.modelCon2,
- fashion_type = FuncOpenModel.TypeId.Child,
- figure_id = show_figure_id,
- ui_model_type = UIModelCommon.ModelType.BackModel,
- can_rotate = false,
- scale = 400
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
- end
-
- function ChildHeartTaskView:OpenSuccess()
- self:UpdateView()
- end
-
- function ChildHeartTaskView:UpdateView()
- self:UpdateHeartLink( )
- self:UpdateTaskCon()
- self:UpdateRewardCon()
- self:UpdateRoleModel( )
- end
-
- function ChildHeartTaskView:UpdateShowPrice( )
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- local need_show = false
- if open_day >= 6 then
- local cur_heart_value = self.child_info.heart_link_exp or 0
- local buy_count = self.model:GetMaxHeartValue() - cur_heart_value
- local price_cfg = Config.Goodsprice[260001] -- 同心值价值配在价格表
- local per_heart_link_price = price_cfg.price
- if buy_count > 0 then
- need_show = true
- self.lb_price_tmp.text = WordManager:GetMoneyFaceStr( 2 ) .. HtmlColorTxt( (per_heart_link_price * buy_count), ColorUtil.YELLOW_DARK)
- end
- end
- self.black_bg_obj:SetActive(need_show)
- end
-
- -- 更新同心值
- function ChildHeartTaskView:UpdateHeartLink( )
- self.child_info = self.model:GetChildInfo()
- if not self.child_info then
- -- logWarn('=======Msh:ChildHeartTaskView.lua[67]====没有宝宝信息哦===')
- return
- end
- local info = self.child_info
- local exp = info.heart_link_exp or 0
- exp = Mathf.Clamp(exp, 0, self.model:GetMaxHeartValue())
- -- 当前同心值
- self.heartValue_txt.text = exp
- -- 同心进度条
- self.fillImg_img.fillAmount = exp / self.model:GetMaxHeartValue()
-
- if self.model:IsHeartValueMax() then
- SetImageGray(self.btn_buy_img, true)
- -- SetTMPSharedMaterial(self.lb_btn_buy_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
- else
- SetImageGray(self.btn_buy_img, false)
- -- SetTMPSharedMaterial(self.lb_btn_buy_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
- end
- self:UpdateShowPrice()
- end
-
- -- 每日任务
- function ChildHeartTaskView:UpdateTaskCon( )
- local ITEM_HEIGHT = 83
- local INTERVAL_X = 5
- local count = 0
- -- logWarn('=======Msh:ChildHeartTaskView.lua[97]=======')
- -- PrintTable(self.model:GetChildDailyTaskList())
- local index = 0
- for i, v in ipairs(self.model:GetChildDailyTaskList()) do
- if v.task_id ~= 11 then -- 11 是孩子培养任务 不需要显示
- index = index + 1
- local item = self.task_item_list[index]
- if item == nil then
- item = ChildMainTaskItem.New(self.taskCon)
- self.task_item_list[index] = item
- end
- item:SetData(v)
- -- item:SetAnchoredPosition(0, -(index - 1) * (INTERVAL_X + ITEM_HEIGHT))
- end
- end
- -- SetSizeDeltaY(self.taskCon, index * (INTERVAL_X + ITEM_HEIGHT))
- end
-
- -- 同心阶段奖励
- function ChildHeartTaskView:UpdateRewardCon( )
- --local reward_list = self.model:GetHeartRewardData( )
- local FILLIMG_WIDTH = GetSizeDeltaX(self.fillImg)
- local PER_WIDTH = FILLIMG_WIDTH / self.model:GetMaxHeartValue()
- local click_callback = function (reward_id)
- self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16539, 1, reward_id)
- end
-
- for heart_value, data in pairsByKeys(self.model:GetChildLinkHeartInfo()) do
- local item = self.reward_item_list[heart_value]
- if item == nil then
- item = ChildHeartRewardItem.New(self.rewardCon)
- self.reward_item_list[heart_value] = item
- end
- item:SetData(data, click_callback)
- item:SetAnchoredPosition( heart_value * PER_WIDTH, 0)
- end
-
- end
-
- function ChildHeartTaskView:SwitchTab( index )
-
- end
-
- function ChildHeartTaskView:DestroySuccess( )
- for i,v in pairs(self.task_item_list) do
- v:DeleteMe()
- end
-
- for i,v in pairs(self.reward_item_list) do
- v:DeleteMe()
- end
-
- if self.updata_child_task_info_id then
- self.model:UnBind(self.updata_child_task_info_id)
- self.updata_child_task_info_id = nil
- end
-
- if self.update_heart_link_value_id then
- self.model:UnBind(self.update_heart_link_value_id)
- self.update_heart_link_value_id = nil
- end
-
- if self.update_heartlink_reward_status_id then
- self.model:UnBind(self.update_heartlink_reward_status_id)
- self.update_heartlink_reward_status_id = nil
- end
-
- self:ClearUIEffect(self.con_btn_buy_effect)
- end
|