ro-webgl/Assets/Lua/UI/UIClimbingTower/UIClimbingTowerCtr.lua

169 lines
4.3 KiB
Lua

local UIClimbingTowerCtr = class("UIClimbingTowerCtr", require("UICtrBase"))
local TowerDataMgr = ManagerContainer.DataMgr.TowerDataMgr
local PeakTowerDataMgr = ManagerContainer.DataMgr.PeakTowerDataMgr
function UIClimbingTowerCtr:Init(view)
self.view = view
end
function UIClimbingTowerCtr:SetData(data)
self:GetLastUITowerType()
self.asyncIdx = 0
if data == nil then return end
self.data = data
end
function UIClimbingTowerCtr:GetAsyncIdx()
self.asyncIdx = self.asyncIdx + 1
return self.asyncIdx
end
function UIClimbingTowerCtr:GetData()
return self.data
end
function UIClimbingTowerCtr:OnDispose()
self.data = nil
self.view = nil
end
function UIClimbingTowerCtr:GetLastUITowerType()
self.type = PeakTowerDataMgr:GetCurUITowerType()
return self.type
end
function UIClimbingTowerCtr:ChangeToOtherType()
self.type = 1 - self.type
self:SaveCurUITowerType(self.type)
end
function UIClimbingTowerCtr:SaveCurUITowerType()
PeakTowerDataMgr:SaveCurUITowerType(self.type)
end
function UIClimbingTowerCtr:GetCurTowerType()
return self.type
end
function UIClimbingTowerCtr:SendTowerInfoReq(type)
local changeTower = type ~= nil
if not type then
type = self.type
end
local needQuery = self:NeedQueryNewDataList(type)
if type == Enum.UnlimitTowerType.ClimbingTower then
if needQuery then
TowerDataMgr:SendClimbingTowerInfoReq(changeTower)
end
elseif type == Enum.UnlimitTowerType.PeakTower then
if needQuery then
PeakTowerDataMgr:SendTowerFightListReq(changeTower)
end
end
return needQuery
end
function UIClimbingTowerCtr:GetLevelsData()
return TowerDataMgr:GetShowLevels()
end
function UIClimbingTowerCtr:CurrentLevel()
self.curPeakTowerFloorIdx = TowerDataMgr:GetCurChallengeLevel()
end
function UIClimbingTowerCtr:GetLevelInfo(levelId)
return TowerDataMgr:FindLevelData(levelId)
end
function UIClimbingTowerCtr:EnterBattle(levelId)
-- TowerDataMgr:EnterBattle(levelId)
TowerDataMgr:SendClimbingTowerBeginReq(levelId)
end
function UIClimbingTowerCtr:SendFriendPassTowerInfo()
if self.tempFriendLevelNum < 1 then
return
end
local startIdx = self.tempFriendLevelNum - 10
if startIdx < 1 then
startIdx = 1
end
TowerDataMgr:SendFriendPassTowerInfoReq(startIdx,self.tempFriendLevelNum)
self.tempFriendLevelNum = self.tempFriendLevelNum - 10
end
function UIClimbingTowerCtr:SetTempFriendLevelNum()
self.tempFriendLevelNum = TowerDataMgr:GetCurChallengeLevel()
end
function UIClimbingTowerCtr:GetPeakTowerListDatas()
return PeakTowerDataMgr:GetTowerFightList()
end
--根据当前塔类型返回对应塔数据
function UIClimbingTowerCtr:RefreshTowerDatas()
if self.type == Enum.UnlimitTowerType.ClimbingTower then
self:SetTempFriendLevelNum()
self:CurrentLevel()
self.showDatas = self:GetLevelsData()
elseif self.type == Enum.UnlimitTowerType.PeakTower then
self.showDatas = self:GetPeakTowerListDatas()
self.curPeakTowerFloorIdx = 1000
for _,v in pairs(self.showDatas) do
local idx = v.floorIdx
local rewardState = v:GetRoleRewardState()
if self.curPeakTowerFloorIdx > idx and not rewardState then
self.curPeakTowerFloorIdx = idx
end
end
end
end
function UIClimbingTowerCtr:GetCurTowerFloorIdx()
return self.curPeakTowerFloorIdx
end
function UIClimbingTowerCtr:GetShowDataLength()
return self.showDatas and #self.showDatas or 0
end
function UIClimbingTowerCtr:GetShowDataByIdx(idx)
return self.showDatas and self.showDatas[idx + 1] or nil
end
function UIClimbingTowerCtr:SendPeakTowerBuyReq(idx)
PeakTowerDataMgr:SendTowerForceWinReq(idx)
end
function UIClimbingTowerCtr:SendChallengeReq(idx)
PeakTowerDataMgr:SendChallengeReq(idx)
end
function UIClimbingTowerCtr:EnterPeakTowerChallengeBattle(idx)
PeakTowerDataMgr:EnterBattle(idx, {})
end
function UIClimbingTowerCtr:ShowPlayerInfo(uid)
ManagerContainer.LuaUIMgr:OpenRoleMessagePanel(uid)
end
function UIClimbingTowerCtr:NeedQueryNewDataList(type)
if type == Enum.UnlimitTowerType.ClimbingTower then
return true
elseif type == Enum.UnlimitTowerType.PeakTower then
return ManagerContainer.DataMgr.PeakTowerDataMgr:NeedRefreshFightList()
end
return false
end
function UIClimbingTowerCtr:QueryCrossFightInfo(idx)
PeakTowerDataMgr:QueryCrossChallengeInfoReq(idx)
end
return UIClimbingTowerCtr