|
|
- UpSuccessView = UpSuccessView or BaseClass(BaseView)
- local UpSuccessView = UpSuccessView
-
- function UpSuccessView:__init()
- self.base_file = "upSuccess"
- self.layout_file = "UpSuccessView"
- self.layer_name = "Top"
- self.destroy_imm = true
- self.change_scene_close = true
- self.append_to_ctl_queue = false --是否要添加进界面堆栈
- self.need_show_money = false --是否要显示顶部的金钱栏
- self.is_set_zdepth = true
- self.click_bg_toClose = true
- self.fire_change_visible_event = true
- ------------------------
- -- 一级全屏界面:
- self.hide_maincancas = false --隐藏主界面
- self.use_background = true --不一定显示遮罩
- -- 二级界面:
- -- self.hide_maincancas = false --是否需要隐藏主界面,看策划需求
- -- self.use_background = true --需要遮罩
- self.attr_item_list = {}
- ------------------------
- FosterModel:GetInstance().is_open_up_success = true
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.close_win_callback = function ( )
- self:Close()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function UpSuccessView:Open( data )
- self.data = data
- BaseView.Open(self)
- end
-
- function UpSuccessView:LoadSuccess()
- local nodes = {
- "img_title:img:obj","con_model","bg_0:raw","lb_name:tmp","lb_name_des:tmp",
- "con_attr/title_attr:tmp","con_attr/scroll_attr","con_attr/scroll_attr/Viewport/Content_attr","con_attr:obj",
- "con_fight/lb_fight:txt","con_fight:obj","con_fight/lb_fight_change:tmp","con_fight/icon_fight_up:obj",
- "con_change/lb_change_2:tmp","con_change:obj","lb_close:tmp",
- "con_goods/scroll_goods/Viewport/Content_goods","con_goods:obj","con_goods/img_goods:img","con_goods/lb_tips:tmp", "con_title_effect", "con_title_effect2",
-
- "con_special_attr/lb_special_attr_value:tmp", "con_special_attr:obj", "con_special_attr/lb_special_attr_name:tmp",
-
- "con_change/con_star_old/lb_change_1:tmp","con_change/con_star_old",
- "con_change/con_star_old/star_1_6:img:obj", "con_change/star_2_1:img:obj", "con_change/star_2_3:img:obj", "con_change/con_star_old/star_1_3:img:obj", "con_change/star_2_5:img:obj", "con_change/con_star_old/star_1_5:img:obj", "con_change/con_star_old/star_1_1:img:obj", "con_change/star_2_4:img:obj", "con_change/con_star_old/star_1_4:img:obj", "con_change/star_2_6:img:obj", "con_change/con_star_old/star_1_2:img:obj", "con_change/star_2_2:img:obj",
- }
- self:GetChildren(nodes)
- -- local function bg_back_func( ... )
- -- if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then
- -- self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend"))
- -- end
- -- end
- -- if self.background_wnd then
- -- bg_back_func()
- -- else
- -- self.bg_back_func = bg_back_func
- -- end
- end
-
- function UpSuccessView:AddEvent()
- local function ChangeVisible( )
- if self.data and self.data.model_info then
- self:ShowModel(self.data.model_info)
- end
- end
- self:BindEvent(GlobalEventSystem, BaseView.ChangeVisible, ChangeVisible)
- end
-
- function UpSuccessView:OpenSuccess()
- self:UpdateView()
- end
-
- function UpSuccessView:UpdateView()
- print("huangcong:UpSuccessView [start:78] self.data:", self.data)
- PrintTable(self.data)
- print("huangcong:UpSuccessView [end]")
- self:SetBigBg(self.data.big_bg_res)
- self:SetBigTitle(self.data.big_title_res)
- self:SetBigTitleEffect(self.data.big_title_effect)
- self:ShowModel(self.data.model_info)
- self:ShowGrade(self.data.grade_change)
- self:ShowPower(self.data.power_data)
- self:ShowAttr(self.data.attr_data)
- self:ShowReward( self.data.reward_data )
- self:ShowCloseClock( self.data.close_time )
- self:ShowSpecialAttr(self.data.special_attr)
- end
-
- function UpSuccessView:ShowCloseClock( time )
- if not time then
- if self.close_clock_id then
- GlobalTimerQuest:CancelQuest(self.close_clock_id)
- self.close_clock_id = nil
- end
- else
- self.time = 10--20201009策划说统一进阶成功界面关闭倒计时
- -- self.time = 10 or time
- local function clockFun()
- if self.time <= 0 then
- self.lb_close_tmp.text = ""
- self:Close()
- else
- self.lb_close_tmp.text = string.format( "<color=#2cf89a>%d</color> 秒后自动关闭" ,self.time)
- self.time = self.time - 1
- end
- end
- self.close_clock_id = self.close_clock_id or GlobalTimerQuest:AddPeriodQuest(clockFun, 1, -1)
- clockFun()
- end
-
- end
-
- function UpSuccessView:ShowModel( model_info )
- --[[
- model_info = {
- model_type = UpSuccessView.ModelType.Foster,
- model_id = 1101,
- name_des = "名字左边的文本",
- name = "坐骑名字",
- }
- --]]
- if not model_info then return end
- -------------------------
- self.lb_name_tmp.text = model_info.name or ""
- self.lb_name_des_tmp.text = model_info.name_des or ""
- if model_info.model_type == SceneBaseType.FWing or
- model_info.model_type == SceneBaseType.Horse or
- model_info.model_type == SceneBaseType.Pet or
- model_info.model_type == SceneBaseType.FCloud or
- model_info.model_type == SceneBaseType.FArmour or
- model_info.model_type == SceneBaseType.FPearl or
- model_info.model_type == SceneBaseType.FWeapon or
- model_info.model_type == SceneBaseType.FGun then
- self:ShowFosterModel(model_info.model_type,model_info.model_id)
- end
- end
-
- function UpSuccessView:SetBigBg( res_name )
- res_name = res_name or "up_success_bg"
- local function func( ... )
- -- self:MoveUIToBack(self.bg_0)
- end
- lua_resM:setOutsideRawImage(self,self.bg_0_raw,GameResPath.GetViewBigBg(res_name),false,func)
- end
-
- function UpSuccessView:SetBigTitle( res_name )
- if res_name then
- res_name = res_name or "upSuccess_title_1"
- lua_resM:setImageSprite(self, self.img_title_img, "upSuccess_asset", res_name,true)
- self.img_title_obj:SetActive(true)
- end
- end
-
- function UpSuccessView:SetBigTitleEffect( big_title_effect )
- if big_title_effect then
- if type(big_title_effect) == "table" then
- if #big_title_effect == 2 then
- if not self.con_title_effect then return end
- -------------------------
- local function end_call_func( ... )
- if not self.con_title_effect2 then return end
- self:AddUIEffect(big_title_effect[2].res,self.con_title_effect2, self.layer_name, Vector3(-37,-180,0), 1, true,nil)
- end
- self:AddUIEffect(big_title_effect[1].res,self.con_title_effect, self.layer_name, Vector3(-37,-180,0), 1, false,nil,nil,end_call_func)
- end
- end
- self.img_title_obj:SetActive(false)
- end
- end
-
- function UpSuccessView:ShowGrade( grade_change )
- --[[
- grade_change = {
- old_grade = "5阶",
- new_grade = "6阶",
- old_star = 1,
- new_star = 2,
- max_star_old = 6,
- max_star_new = 6,
- }
- --]]
- if not grade_change then
- self.con_change_obj:SetActive(false)
- else
- self.con_change_obj:SetActive(true)
- self.lb_change_1_tmp.text = grade_change.old_grade or ""
- self.lb_change_2_tmp.text = grade_change.new_grade or ""
- end
- for i=1,6 do
- lua_resM:setImageSprite(self,self["star_1_"..i.."_img"],'upSuccess_asset', grade_change.old_star >= i and "upSuccess_star_1" or "upSuccess_star_0",true)
- lua_resM:setImageSprite(self,self["star_2_"..i.."_img"],'upSuccess_asset', "upSuccess_star_0",true)
- if grade_change.max_star_old and grade_change.max_star_old < 6 then
- if grade_change.max_star_old < i then
- self["star_1_"..i.."_obj"]:SetActive(false)
- end
- end
- if grade_change.max_star_new and grade_change.max_star_new < 6 then
- if grade_change.max_star_new < i then
- self["star_2_"..i.."_obj"]:SetActive(false)
- end
- end
- end
- if grade_change.max_star_old and grade_change.max_star_old < 6 then
- SetAnchoredPositionX( self.con_star_old.transform, -296 + (6-grade_change.max_star_old)*28.2 )
- end
- end
-
- function UpSuccessView:ShowPower( power_data )
- --[[
- power_data = {
- new_power = 996
- change_power = 110
- }
- --]]
- if not power_data then
- self.con_fight_obj:SetActive(false)
- else
- self.con_fight_obj:SetActive(true)
- self.lb_fight_txt.text = "f" .. power_data.new_power
- if power_data.change_power and power_data.change_power > 0 then
- self.lb_fight_change_tmp.text = power_data.change_power
- self.icon_fight_up_obj:SetActive(true)
- else
- self.lb_fight_change_tmp.text = ""
- self.icon_fight_up_obj:SetActive(false)
- end
- end
- end
-
- function UpSuccessView:ShowAttr( attr_data )
- --[[
- attr_data = {
- title_name = "属性标替文本",
- pos_type = pos_tag,--位置
- attr_old = {
- [1] = {1,100},
- [2] = {2,200},
- },
- attr_new = {
- [1] = {1,110},
- [2] = {2,220},
- },
- }
- --]]
- if not attr_data then
- self.con_attr_obj:SetActive(false)
- else
-
- local attr_pos_tab = {
- ["default"] = {
- ["con_attr_pos"] = {222.46,23.21},
- ["scroll_attr_size"] = {355.99,201.49},
- ["scroll_attr_pos"] = {2.72,-55.68},
- },
- ["foster"] = {
- ["con_attr_pos"] = {222.46,-48.79},
- ["scroll_attr_size"] = {355.99,129.58},
- ["scroll_attr_pos"] = {14.42-12,8.33-30},
- }
- }
- local pos_info = false
- if attr_data.pos_type and attr_pos_tab[attr_data.pos_type] then
- pos_info = attr_pos_tab[attr_data.pos_type]
- else
- pos_info = attr_pos_tab["default"]
- end
- if pos_info then
- local temp = attr_pos_tab[attr_data.pos_type]
- SetAnchoredPosition( self.con_attr.transform, temp.con_attr_pos[1], temp.con_attr_pos[2] )
- -------------------------
- SetSizeDelta(self.scroll_attr.transform, temp.scroll_attr_size[1], temp.scroll_attr_size[2] )
- SetAnchoredPosition( self.scroll_attr.transform, temp.scroll_attr_pos[1], temp.scroll_attr_pos[2] )
- end
- -------------------------
- self.con_attr_obj:SetActive(true)
- self.title_attr_tmp.text = attr_data.title_name or "获得属性"
- -------------------------
- local old_attr = attr_data.attr_old or {}
- local new_attr = attr_data.attr_new or {}
- old_attr,new_attr = GetAttrMatch( old_attr,new_attr )
- old_attr = SortAttrList( old_attr )
- for k,v in pairs(self.attr_item_list) do
- v:SetVisible( false )
- end
- for i,v in ipairs(old_attr) do
- local next_one = false
- for a,b in pairs(new_attr) do
- if b[1] == v[1] then
- next_one = b
- end
- end
- self.attr_item_list[i] = self.attr_item_list[i] or self:CreateItem(UpSuccessAttrItem, self.Content_attr , self.layer_name)
- self.attr_item_list[i]:SetData( i, v, next_one )
- self.attr_item_list[i]:SetVisible( true )
- -- local x = i%2 == 1 and 28 or 380
- -- local y = math.ceil( i/2 ) * 45
- local x = 0
- local y = -32*(i-1)
- self.attr_item_list[i]:SetPosition( x, y )
- end
- SetSizeDeltaY(self.Content_attr.transform, #old_attr*36)
- end
- end
-
-
- --[[
- special_attr = {
- [1] = {1,100},
- [2] = {2,200},
- },
- --]]
- function UpSuccessView:ShowSpecialAttr( special_attr )
- if special_attr and special_attr[1] then
- local _, name1, _, val1 = WordManager:GetPropertyInfo(special_attr[1][1], special_attr[1][2])
- self.con_special_attr_obj:SetActive(true)
- self.lb_special_attr_value_tmp.text = val1
- self.lb_special_attr_name_tmp.text = name1
- else
- self.con_special_attr_obj:SetActive(false)
- end
- end
-
- function UpSuccessView:ShowReward( reward_data )
- --[[
- reward_data = {
- title_res = nil,
- show_list = {
- [1] = {1,100065,100},
- [2] = {1,100065,100},
- }
- show_name = "",
- }
- --]]
- if not reward_data then
- self.con_goods_obj:SetActive(false)
- else
- self.con_goods_obj:SetActive(true)
- local res_name = reward_data.title_res or "upSuccess_title_2"
- lua_resM:setImageSprite(self, self.img_goods_img, "upSuccess_asset", res_name,true)
- -------------------------
- self.tip_award_list = self.tip_award_list or {}
- for k,v in pairs(self.tip_award_list) do
- v:SetVisible( false )
- end
- local show_info = reward_data.show_list or {}
- for i,v in ipairs(show_info) do
- self.tip_award_list[i] = UIObjPool:PopItem(UIObjPool.UIType.AwardItem,self.Content_goods)
- self.tip_award_list[i]:SetItemSize(59,59)
- self.tip_award_list[i]:SetDataWithMapId(v[2], v[3], v[1])
- self.tip_award_list[i]:SetPosition( 70 * (i-1)+6,-15)
- end
- SetSizeDeltaX(self.Content_goods, #show_info * 108)
-
- if reward_data.show_name and reward_data.show_name ~= "" then
- self.lb_tips_tmp.text = string.format("您已成功激活:%s\n现已将等值材料返还给您", HtmlColorTxt(reward_data.show_name, "#2CF86F"))
- else
- self.lb_tips_tmp.text = ""
- end
- end
- end
-
- function UpSuccessView:ShowFosterModel( model_type,model_id )
- local res_data = {
- father_node = self,
- transform = self.con_model,
- fashion_type = self.data.extra_type_id + 1000,
- figure_id = model_id,
- -------------------------
- raycast_size = Vector2(500,530),
- ui_model_type = UIModelCommon.ModelType.Model,
- layer_name = self.layer_name,
- --这个翅膀,是半透明翅膀,使用特殊shader处理一下
- using_material = self.data.extra_type_id == FosterConst.ModuleId.FWing and "render_texture" or false,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
- end
-
- function UpSuccessView:DestroySuccess( )
- if self.close_clock_id then
- GlobalTimerQuest:CancelQuest(self.close_clock_id)
- self.close_clock_id = nil
- end
-
- if self.tip_award_list then
- for k,v in pairs(self.tip_award_list) do
- UIObjPool:PushItem(UIObjPool.UIType.AwardItem, v)
- end
- self.tip_award_list = {}
- end
-
- self:ClearUIEffect(self.con_title_effect)
- self:ClearUIEffect(self.con_title_effect2)
- end
|