|
|
- -- <*
- -- @Author: Saber
- -- @Description: 圣物系统魂环装备界面
- -- *>
- PsionicEffectEquipView = PsionicEffectEquipView or BaseClass(BaseView)
- local PsionicEffectEquipView = PsionicEffectEquipView
-
- function PsionicEffectEquipView:__init()
- self.base_file = "psionic"
- self.layout_file = "PsionicEffectEquipView"
- self.layer_name = "Activity"
- self.destroy_imm = true
- self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
-
- self.model = PsionicModel:getInstance()
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:UpdateView()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function PsionicEffectEquipView:Open( )
- --self.data = data
- BaseView.Open(self)
- end
-
- function PsionicEffectEquipView:LoadSuccess()
- local nodes = {
- "content",
- -- 魂环1
- "content/node1",
- "content/node1/role_con1",
- "content/node1/equip_btn1:obj:img", "content/node1/equip_btn1/equip_btn1_lb:tmp", "content/node1/equip_btn1/equip_btn1_red:obj",
- "content/node1/cond_bg1:img",
- "content/node1/equip_cond1:tmp",
- "content/node1/effect_name1:tmp",
- -- 魂环2
- "content/node2",
- "content/node2/role_con2",
- "content/node2/equip_btn2:obj:img", "content/node2/equip_btn2/equip_btn2_lb:tmp", "content/node2/equip_btn2/equip_btn2_red:obj",
- "content/node2/cond_bg2:img",
- "content/node2/equip_cond2:tmp",
- "content/node2/effect_name2:tmp",
- -- 魂环3
- "content/node3",
- "content/node3/role_con3",
- "content/node3/equip_btn3:obj:img", "content/node3/equip_btn3/equip_btn3_lb:tmp", "content/node3/equip_btn3/equip_btn3_red:obj",
- "content/node3/cond_bg3:img",
- "content/node3/equip_cond3:tmp",
- "content/node3/effect_name3:tmp",
- }
- self:GetChildren(nodes)
- local close_callback = function()
- self:Close()
- end
- self.tabWindowComponent = UITabWindow.New(self.transform, nil, nil, close_callback, self.background_wnd,
- self.transform, UITabWindow.SizeSmallNoTab)
- self.tabWindowComponent:SetBackgroundRes("ps_effect_equip_bg")
- self.tabWindowComponent:SetTitleText("圣环激活")
- end
-
- function PsionicEffectEquipView:AddEvent()
- local function click_event(target)
- if target == self.equip_btn1_obj then
- self:OnEquipEffectBtnClick(1)
- elseif target == self.equip_btn2_obj then
- self:OnEquipEffectBtnClick(2)
- elseif target == self.equip_btn3_obj then
- self:OnEquipEffectBtnClick(3)
- end
- end
- AddClickEvent(self.equip_btn1_obj, click_event)
- AddClickEvent(self.equip_btn2_obj, click_event)
- AddClickEvent(self.equip_btn3_obj, click_event)
-
- local function update_effect_status()
- self:UpdateEffectStatus()
- end
- self:BindEvent(self.model, PsionicConst.UPDATE_PSIONIC_EFFECT, update_effect_status)
-
- local function update_btns_red(tab_id)
- if tab_id and tab_id == PsionicConst.TabId.PArmor then
- self:UpdateBtnsRed()
- end
- end
- self:BindEvent(self.model, PsionicConst.UPDATE_RED_BY_TABID, update_btns_red)
- end
-
- function PsionicEffectEquipView:UpdateView()
- self:UpdateBasicData()
- self:UpdateEffectStatus()
- self:UpdateBtnsRed()
- end
-
- function PsionicEffectEquipView:UpdateBasicData( )
- -- 加载模型
- local function create_role_model(index)
- local res_data = {
- father_node = self,
- layer_name = self.layer_name,
- transform = self["role_con" .. index],
- fashion_type = FuncOpenModel.TypeId.Clothes,
- size = Vector2(720,720),
- raycast_size = Vector2(240, 380),
- scale = 160,
- position = Vector3(-10, 10, -500),
- ui_model_type = UIModelCommon.ModelType.Model,
- psionic_effect = "effect_hunhuan_00" .. index,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
- end
- create_role_model(1)
- create_role_model(2)
- create_role_model(3)
- -- 加载名称
- self.effect_name1_tmp.text = PsionicConst.EffectName[1]
- self.effect_name2_tmp.text = PsionicConst.EffectName[2]
- self.effect_name3_tmp.text = PsionicConst.EffectName[3]
- end
-
- -- 更新圣环当前状态
- function PsionicEffectEquipView:UpdateEffectStatus( )
- local stage, color_list = self.model:GetPsionicEffectStage()
- local status_cookie = self.model:GetPsionicEffectShowStatus()
- local cur_effect_index = status_cookie and status_cookie[1] or 0
- local function update_status(index)
- if stage >= index then -- 可以佩戴
- self["cond_bg" .. index .. "_img"].enabled = false
- self["equip_cond" .. index .. "_tmp"].text = ""
- self["equip_btn" .. index .. "_obj"]:SetActive(true)
- self["equip_btn" .. index .. "_lb_tmp"].text = cur_effect_index == index and "卸下" or "穿戴"
- SetTMPSharedMaterial(self["equip_btn" .. index .. "_lb_tmp"], cur_effect_index == index and
- ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn or
- ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
- lua_resM:setImageSprite(self, self["equip_btn" .. index .."_img"], "alphaCommon_asset", cur_effect_index == index and
- "tyui_middlel_btn1" or "tyui_middlel_btn2")
- else -- 装备品质达不到要求
- local condition = PsionicConst.EffectCondition[index]
- self["cond_bg" .. index .. "_img"].enabled = true
- self["equip_cond" .. index .. "_tmp"].text =
- string.format("穿戴<color=%s>%s</color>/<color=#ffffff>4</color>件<color=%s>%s圣物</color>可激活",
- ColorUtil.RED_DARK, color_list[condition.color], condition.color_hex, condition.str)
- self["equip_btn" .. index .. "_obj"]:SetActive(false)
- end
- end
- update_status(1)
- update_status(2)
- update_status(3)
- end
-
- function PsionicEffectEquipView:UpdateBtnsRed( )
- local status_cookie = self.model:GetPsionicEffectShowStatus()
- local red_list = status_cookie and status_cookie[3] or {}
- self.equip_btn1_red_obj:SetActive(red_list[1] and true or false)
- self.equip_btn2_red_obj:SetActive(red_list[2] and true or false)
- self.equip_btn3_red_obj:SetActive(red_list[3] and true or false)
- end
-
- function PsionicEffectEquipView:OnEquipEffectBtnClick(index)
- local status_cookie = self.model:GetPsionicEffectShowStatus()
- local cur_effect_index = status_cookie and status_cookie[1] or 0
- if status_cookie and status_cookie[3] and status_cookie[3][index] then -- 存在红点,则需要消除红点并存储缓存
- self.model:SavePsionicEffectStatusRed(index, false, true)
- end
- self.model:SavePsionicEffectShowStatus(cur_effect_index == index and 0 or index)
- Message.show(cur_effect_index == index and "卸下成功" or "穿戴成功", "success")
- end
-
- function PsionicEffectEquipView:DestroySuccess( )
- if self.tabWindowComponent then
- self.tabWindowComponent:DeleteMe()
- self.tabWindowComponent = nil
- end
- end
|