|
-- <*
|
|
-- @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
|