|
CSMainBaseView = CSMainBaseView or BaseClass(BaseView)
|
|
local CSMainBaseView = CSMainBaseView
|
|
|
|
function CSMainBaseView:__init()
|
|
self.base_file = "csMain"
|
|
self.layout_file = "CSMainBaseView"
|
|
self.layer_name = "UI"
|
|
self.destroy_imm = true
|
|
self.use_background = true
|
|
self.change_scene_close = true
|
|
self.hide_maincancas = true --是否隐藏主界面
|
|
self.append_to_ctl_queue = true --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.close_fog = true
|
|
self.is_set_zdepth = true
|
|
self.full_screen = true
|
|
|
|
self.need_culling_mask_ground = true --打开界面是否需要摄像机剔除ground层
|
|
|
|
-- self.fire_change_visible_event = true
|
|
self.hide_clear_role_model = false
|
|
|
|
self.model = CSMainModel:getInstance()
|
|
|
|
self.current_index = nil
|
|
|
|
self.anim_time = 0.3
|
|
|
|
self.role_show_item_list = {}
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60300)
|
|
|
|
--切换背景音乐
|
|
self.last_scene_sound = lua_soundM.cur_scene_sound
|
|
if lua_soundM:StopBacksound() then
|
|
lua_soundM.last_backgound_abName = false
|
|
end
|
|
lua_soundM:PlayBackgroundSound("field2", LuaSoundManager.SOUND_TYPE.SCENE, true)
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
|
|
--恢复背景音乐
|
|
local cur_scene_sound = self.last_scene_sound
|
|
if cur_scene_sound then
|
|
if lua_soundM:StopBacksound() then
|
|
lua_soundM.last_backgound_abName = false
|
|
end
|
|
lua_soundM:PlayBackgroundSound(cur_scene_sound, LuaSoundManager.SOUND_TYPE.SCENE, true)
|
|
end
|
|
end
|
|
end
|
|
|
|
function CSMainBaseView:Open()
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function CSMainBaseView:LoadSuccess()
|
|
local nodes = {
|
|
"helpBtn:obj", "rightBtnCon/taskBtn:obj", "closeBtn:obj", "modelCon", "rightBtnCon/militaryRanksBtn:obj", "bg:raw", "rightBtnCon/exploitBtn:obj", "rightBtnCon",
|
|
"sandTableBtn:obj", "appointBtn:obj", "sandTableBtn/sanTableImg:img",
|
|
"rightBtnCon/taskBtn/taskRed:obj", "rightBtnCon/exploitBtn/exploitRed:obj", "rightBtnCon/militaryRanksBtn/militaryRed:obj", "appointBtn/appointRed:obj",
|
|
"sandTableBtn/sandRed:obj",
|
|
"rightBtnCon/sandTableBtn2:obj", "rightBtnCon/sandTableBtn2/sandTableRed2:obj",
|
|
"titleImg1", "titleLabel", "titleImg2", "roleLabel",
|
|
"appointTitle:img",
|
|
|
|
"con_money", "con_money/num_money:tmp", "con_money/add_btn_money:obj", "con_money/des_score:tmp", "con_money/di_money2", "con_money/di_money",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("cs_main_command_bg"))
|
|
lua_resM:setOutsideImageSprite(self, self.sanTableImg_img, GameResPath.GetCSMainImage("cs_main_command_sand_table"))
|
|
lua_resM:setOutsideImageSprite(self, self.appointTitle_img, GameResPath.GetCSMainImage("cs_main_appoint_out_title"))
|
|
|
|
SetSizeDelta(self.transform, ScreenWidth, ScreenHeight)
|
|
self:SetIpxMode()
|
|
|
|
-- SetLocalPositionZ(self.sandTableBtn,-1000)
|
|
|
|
|
|
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.tabWindowComponent.win_bg)
|
|
self:MoveUIToBack(self.bg_raw)
|
|
end
|
|
if self.background_wnd then
|
|
bg_back_func()
|
|
else
|
|
self.bg_back_func = bg_back_func
|
|
end
|
|
|
|
end
|
|
|
|
function CSMainBaseView:AddEvent()
|
|
local on_click = function ( click_obj )
|
|
if self.closeBtn_obj == click_obj then--关闭
|
|
self:Close()
|
|
elseif self.helpBtn_obj == click_obj then--规则
|
|
EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 60301)
|
|
elseif self.taskBtn_obj == click_obj then--任务
|
|
self.model:Fire(CSMainConst.OPEN_CS_MAIN_TASK_VIEW)
|
|
-- self:OpenTaskView()
|
|
elseif self.militaryRanksBtn_obj == click_obj then--军衔
|
|
self.model:Fire(CSMainConst.OPEN_CS_MAIN_MILITARY_RANKS_BSAE_VIEW)
|
|
elseif self.exploitBtn_obj == click_obj then--军功排行
|
|
self.model:Fire(CSMainConst.OPEN_CS_MAIN_EXPLOIT_RANK_VIEW)
|
|
elseif self.appointBtn_obj == click_obj then--任命界面
|
|
self.model:Fire(CSMainConst.OPEN_CS_MAIN_APPOINT_VIEW)
|
|
elseif self.sandTableBtn_obj == click_obj then--沙盘入口
|
|
SandTableModel:getInstance():Fire(SandTableConst.OPEN_MAIN_VIEW)
|
|
elseif self.sandTableBtn2_obj == click_obj then--沙盘入口
|
|
SandTableModel:getInstance():Fire(SandTableConst.OPEN_MAIN_VIEW)
|
|
elseif click_obj == self.add_btn_money_obj then
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(SandTableModel:getInstance().dungeon_cost_id, nil, nil,nil,nil,nil,nil,true)
|
|
end
|
|
end
|
|
AddClickEvent(self.closeBtn_obj, on_click)
|
|
AddClickEvent(self.helpBtn_obj, on_click)
|
|
AddClickEvent(self.taskBtn_obj, on_click)
|
|
AddClickEvent(self.militaryRanksBtn_obj, on_click)
|
|
AddClickEvent(self.exploitBtn_obj, on_click)
|
|
AddClickEvent(self.appointBtn_obj, on_click)
|
|
AddClickEvent(self.sandTableBtn_obj, on_click)
|
|
AddClickEvent(self.sandTableBtn2_obj, on_click)
|
|
AddClickEvent(self.add_btn_money_obj,on_click)
|
|
|
|
--60300后刷新指挥室角色展示
|
|
local function on_update_role_show()
|
|
self.has_got_figure_data = true
|
|
self:UpdateRoleShowCon()
|
|
end
|
|
self:BindEvent(self.model, CSMainConst.UPDATE_CS_MAIN_BASE_VIEW, on_update_role_show)
|
|
|
|
local function update_red_dot(tab_id)
|
|
if not self.is_loaded then return end
|
|
self:RefreshRed(tab_id)
|
|
end
|
|
self:BindEvent(self.model, CSMainConst.ANS_UPDATE_RED_DOT, update_red_dot)
|
|
|
|
local function onOrientationChange()
|
|
self:SetIpxMode()
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
|
|
|
|
local function on_arms_num_change_var()
|
|
self:ShowMoney()
|
|
end
|
|
self.on_arms_num_change_var_id = self.on_arms_num_change_var_id or self.model:BindOne("arms_num", on_arms_num_change_var)
|
|
self:ShowMoney()
|
|
|
|
local function on_exploit_rank_score_change_var()
|
|
self:ShowScore()
|
|
end
|
|
self.on_exploit_rank_score_change_var_id = self.on_exploit_rank_score_change_var_id or self.model:BindOne("exploit_rank_score", on_exploit_rank_score_change_var)
|
|
self:ShowScore()
|
|
|
|
end
|
|
|
|
function CSMainBaseView:ShowScore( )
|
|
self.des_score_tmp.text = string.format( "我的战功 :%d", self.model:GetCSMainExploitRankScore( ))
|
|
SetSizeDeltaX(self.di_money2.transform, self.des_score_tmp.preferredWidth + 20)
|
|
end
|
|
|
|
function CSMainBaseView:ShowMoney( )
|
|
self.money_name = self.money_name or GoodsModel:getInstance():GetGoodsBasicByTypeId( SandTableModel:getInstance().dungeon_cost_id ).goods_name
|
|
local cur = self.model:GetCSMainArmsNum( )
|
|
self.num_money_tmp.text = string.format( "%s :%s" ,self.money_name, cur)
|
|
SetSizeDeltaX(self.di_money.transform, self.num_money_tmp.preferredWidth + 40)
|
|
end
|
|
|
|
function CSMainBaseView:SetIpxMode( )
|
|
if ClientConfig.iphone_x_model then
|
|
self.titleImg1.anchoredPosition = Vector2(0+ClientConfig.iphone_x_offset_left, 333.5)
|
|
self.titleLabel.anchoredPosition = Vector2(43+ClientConfig.iphone_x_offset_left, 333.5)
|
|
self.titleImg2.anchoredPosition = Vector2(-115+ClientConfig.iphone_x_offset_left, 311)
|
|
self.helpBtn.anchoredPosition = Vector2(10.5+ClientConfig.iphone_x_offset_left, -329.5)
|
|
self.roleLabel.anchoredPosition = Vector2(61.5+ClientConfig.iphone_x_offset_left, -328)
|
|
self.closeBtn.anchoredPosition = Vector2(0-ClientConfig.iphone_x_offset_right, 334)
|
|
self.rightBtnCon.anchoredPosition = Vector2(0-ClientConfig.iphone_x_offset_right, 0)
|
|
end
|
|
end
|
|
|
|
function CSMainBaseView:RefreshRed(tab_id)
|
|
local bool = false
|
|
if tab_id == CSMainConst.RedType.Task then
|
|
bool = self.model:GetTaskRed() or self.model:GetActiveRed()
|
|
self.taskRed_obj:SetActive(bool)
|
|
elseif tab_id == CSMainConst.RedType.Active then
|
|
bool = self.model:GetTaskRed() or self.model:GetActiveRed()
|
|
self.taskRed_obj:SetActive(bool)
|
|
elseif tab_id == CSMainConst.RedType.DailyReward then
|
|
bool = self.model:GetDailyRewardRed() or self.model:GetWorShipRed()
|
|
self.exploitRed_obj:SetActive(bool)
|
|
elseif tab_id == CSMainConst.RedType.MilitaryRanks then
|
|
bool = self.model:GetMilitaryRanksRed()
|
|
self.militaryRed_obj:SetActive(bool)
|
|
elseif tab_id == CSMainConst.RedType.SandTable then
|
|
bool = self.model:GetSandTableRed()
|
|
self.sandRed_obj:SetActive(bool)
|
|
self.sandTableRed2_obj:SetActive(bool)
|
|
elseif tab_id == CSMainConst.RedType.WorShip then
|
|
bool = self.model:GetDailyRewardRed() or self.model:GetWorShipRed()
|
|
self.exploitRed_obj:SetActive(bool)
|
|
end
|
|
end
|
|
|
|
|
|
function CSMainBaseView:UpdateAllRed( )
|
|
local taskRed = self.model:GetTaskRed() or self.model:GetActiveRed()
|
|
self.taskRed_obj:SetActive(taskRed)
|
|
|
|
local exploitRed = self.model:GetDailyRewardRed() or self.model:GetWorShipRed()
|
|
self.exploitRed_obj:SetActive(exploitRed)
|
|
|
|
local militaryRed = self.model:GetMilitaryRanksRed()
|
|
self.militaryRed_obj:SetActive(militaryRed)
|
|
|
|
local sandRed = self.model:GetSandTableRed()
|
|
self.sandRed_obj:SetActive(sandRed)
|
|
self.sandTableRed2_obj:SetActive(sandRed)
|
|
end
|
|
|
|
|
|
|
|
function CSMainBaseView:OpenTaskView( )
|
|
self:StopAnim()
|
|
local function onCompleted()
|
|
local function delay_method( )
|
|
self.model:Fire(CSMainConst.OPEN_CS_MAIN_TASK_VIEW)
|
|
-- self.tween_lite_id_3 = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.ANCHORED_POS, Vector2(0,0), self.anim_time)
|
|
-- self.tween_lite_id_4 = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.SCALE, Vector3.New(1,1,1), self.anim_time)
|
|
SetAnchoredPosition(self.transform, 0, 0)
|
|
SetLocalScale(self.transform, 1, 1, 1)
|
|
end
|
|
self.delay_open_id = setTimeout(delay_method, 0.1)
|
|
end
|
|
self.tween_lite_id_1 = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.ANCHORED_POS, Vector2(1854,-713), self.anim_time)
|
|
self.tween_lite_id_2 = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.SCALE, Vector3.New(4,4,4), self.anim_time, onCompleted)
|
|
end
|
|
|
|
function CSMainBaseView:UpdateRoleShowCon( )
|
|
local role_data = {}
|
|
for i=1,7 do
|
|
role_data[i] = self.model:GetCSMainDirectorDataByPos(i)
|
|
end
|
|
for k,v in pairs(self.role_show_item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
for i,v in ipairs(role_data) do
|
|
local item = self.role_show_item_list[i]
|
|
if not item then
|
|
item = CSMainRoleModelItem.New(self.modelCon)
|
|
self.role_show_item_list[i] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetData(i,v)
|
|
item:SetAnchoredPosition(CSMainConst.RoleModelPos[i].x, CSMainConst.RoleModelPos[i].y)
|
|
end
|
|
end
|
|
|
|
function CSMainBaseView:OpenSuccess()
|
|
-- self:UpdateRoleShowCon()
|
|
self:UpdateAllRed()
|
|
end
|
|
|
|
function CSMainBaseView:StopAnim( )
|
|
if self.delay_open_id then
|
|
TimerQuest.CancelQuest(GlobalTimerQuest,self.delay_open_id)
|
|
self.delay_open_id = nil
|
|
end
|
|
if self.tween_lite_id_1 then
|
|
TweenLite.Stop(self.tween_lite_id_1)
|
|
self.tween_lite_id_1 = nil
|
|
end
|
|
if self.tween_lite_id_2 then
|
|
TweenLite.Stop(self.tween_lite_id_2)
|
|
self.tween_lite_id_2 = nil
|
|
end
|
|
if self.tween_lite_id_3 then
|
|
TweenLite.Stop(self.tween_lite_id_3)
|
|
self.tween_lite_id_3 = nil
|
|
end
|
|
if self.tween_lite_id_4 then
|
|
TweenLite.Stop(self.tween_lite_id_4)
|
|
self.tween_lite_id_4 = nil
|
|
end
|
|
end
|
|
|
|
function CSMainBaseView:DestroySuccess( )
|
|
self:StopAnim()
|
|
|
|
for i, v in ipairs(self.role_show_item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.role_show_item_list = {}
|
|
|
|
if self.on_arms_num_change_var_id then
|
|
self.model:UnBind(self.on_arms_num_change_var_id)
|
|
self.on_arms_num_change_var_id = nil
|
|
end
|
|
|
|
if self.on_exploit_rank_score_change_var_id then
|
|
self.model:UnBind(self.on_exploit_rank_score_change_var_id)
|
|
self.on_exploit_rank_score_change_var_id = nil
|
|
end
|
|
end
|