源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

205 lines
5.8 KiB

StrengthView = StrengthView or BaseClass(BaseView)
function StrengthView:__init()
self.base_file = "strength"
self.layout_file = "StrengthView"
self.layer_name = "Activity"
self.destroy_imm = false
self.delay_delete_time = 1
self.use_background = false
self.hide_maincancas = false
self.use_show_anim = true
self.use_hide_anim = true
self.item_list = {}
self.open_guide_close = true
self.model = StrengthModel:getInstance()
self.change_scene_close = true
self:AddPreLoadList("strength",{"StrengthItem"})
self.load_callback = function()
self:LoadSuccess()
self:InitEvent()
end
self.open_callback = function()
self:UpdateView()
self:AutoCheckViewNotData()
end
self.close_callback = function()
end
self.destroy_callback = function()
self:Remove()
end
end
function StrengthView:Remove()
for k,v in pairs(self.item_list) do
v:DeleteMe()
end
self.item_list = {}
self:ClearTimer()
end
function StrengthView:LoadSuccess()
local nodes = {
"close_btn:obj",
}
self:GetChildren(nodes)
self.ScrollView,
self.ScrollViewViewport,
self.ScrollViewCon,
self.InfoCon
= GetChildTransforms(self.transform,
{
"InfoCon/ScrollView",
"InfoCon/ScrollView/Viewport",
"InfoCon/ScrollView/Viewport/Content",
"InfoCon",
})
self.firstChargeBtn = self:GetChild("InfoCon/firstChargeBtn").gameObject
self.img_sp_img = self:GetChild("InfoCon/firstChargeBtn/img_sp"):GetComponent("Image")
SetAnchoredPosition(self.transform,(ScreenWidth / 2 - 460 - ClientConfig.iphone_x_offset_right), 230-ScreenHeight / 2 )
SetAnchoredPosition(self.close_btn, - (ScreenWidth / 2 - 460 - ClientConfig.iphone_x_offset_right), -(230-ScreenHeight / 2 ))
SetSizeDelta(self.close_btn, ScreenWidth * 1.5, ScreenHeight*1.5)
end
function StrengthView:InitEvent()
local function onBtnClickHandler(target)
if target == self.firstChargeBtn then
local b,res,module_id,module_sub,module_name,sub_tab_id = self.model:GetOtherOption()
if b then
OpenFun.Open(module_id, module_sub, nil,sub_tab_id)
end
self:Close()
elseif target == self.close_btn_obj then
self:Close()
end
end
AddClickEvent(self.close_btn_obj,onBtnClickHandler)
AddClickEvent(self.firstChargeBtn,onBtnClickHandler)
local function onGuideTrigger()
self:AddToStageHandler()
end
self:BindEvent(GlobalEventSystem, EventName.TRIGGER_GUIDE_TYPE, onGuideTrigger)
end
function StrengthView:UpdateView( )
local call_back = function( vo )
self:ClickOperation(vo)
end
local list = self.model:GetStrengthList()
local b,res,module_id,module_sub,module_name = self.model:GetOtherOption()
if b then
if #list <= 2 then
self.firstChargeBtn.gameObject:SetActive(false)
SetSizeDeltaY(self.ScrollView, 173)
else
lua_resM:setImageSprite(self,self.img_sp_img,"strength_asset",res)
self.firstChargeBtn.gameObject:SetActive(true)
SetSizeDeltaY(self.ScrollView, 110)
end
else
self.firstChargeBtn.gameObject:SetActive(false)
SetSizeDeltaY(self.ScrollView, 162)
end
--如果小于2条的时候,这首充跟着item滑动
if #list > 0 and #list <= 2 then
local b,res,module_id,module_sub,module_name,sub_tab_id = self.model:GetOtherOption()
if b then
table.insert(list, {name = module_name, winId = module_id, subId = module_sub, tabId = nil, sort_id=80, res_name = res, sub_tab_id = sub_tab_id})
end
end
local h = 0
for i,v in ipairs(list) do
local item = self.item_list[i]
if not item then
item = StrengthItem.New(self.ScrollViewCon)
self.item_list[i] = item
end
item:SetVisible(true)
item:SetData(v, call_back)
if v.winId == 159 and v.subId == 1 then
item:SetAnchoredPosition(0, -h - 7)
h = h + 55
else
item:SetAnchoredPosition(0, -(i - 1) * 54 )
h = h + 54
end
end
SetSizeDeltaY(self.ScrollViewCon, h)
for i=#list+1, #self.item_list do
self.item_list[i]:SetVisible(false)
end
self:AddToStageHandler()
end
function StrengthView:ClickOperation( vo )
if vo.winId == 610 and vo.subId == 0 and vo.tabId == 1 then
ExpDunModel:getInstance():Fire(ExpDunModel.CHECK_OPEN_HANGUP_RECEIVE_VIEW)
elseif vo.winId == 610 and vo.subId == 0 and vo.tabId == 2 then
ExpDunModel:getInstance():Fire(ExpDunModel.OPEN_QUICK_HANGUP_VIEW, true)
elseif vo.winId == 210 then
GlobalEventSystem:Fire(EventName.OPEN_SKILL_VIEW, vo.tabId, true)
else
OpenFun.Open(vo.winId, vo.subId, vo.tabId, vo.sub_tab_id)
end
self:Close()
end
-- 有时候界面会出现空白的情况 所以加一个判断机制 在打开界面的情况下 倒计时几秒后检查数据还有没有
function StrengthView:AutoCheckViewNotData()
self:ClearTimer()
if self._use_delete_Method then return end
local function DelayFunc()
local bool = self.model:CanStrength()
if not bool then
self:Close()
end
end
self.timer = setTimeout(DelayFunc, 5)
end
function StrengthView:ClearTimer()
if self.timer then
GlobalTimerQuest:CancelQuest(self.timer)
self.timer = nil
end
end
function StrengthView:AddToStageHandler()
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_SHOW_FIGHT_UP_TIPS,1)
if not helpVo then return end
local help_type = helpVo.help_type
if help_type == HelpType.TYPE_SHOW_FIGHT_UP_TIPS then
local step = helpVo.step
local button = false
if (help_type == HelpType.TYPE_SHOW_FIGHT_UP_TIPS and step == 1) then
button = self.firstChargeBtn
end
if button then
local function call_back()
end
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, button.transform.parent.transform, call_back, helpVo, self.layout_file)
end
end
end
function StrengthView:Close()
--完成引导
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_SHOW_FIGHT_UP_TIPS,1)
if helpVo then
GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
end
BaseView.Close(self)
end