| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- local UIGuildWarCtr = class("UIGuildWarCtr", require("UICtrBase"))
- function UIGuildWarCtr:Init(view)
- self.view = view
- end
- function UIGuildWarCtr:SetData(data)
- self.asyncIdx = 0
- if data == nil then return end
- self.data = data
- end
- function UIGuildWarCtr:GetAsyncIdx()
- self.asyncIdx = self.asyncIdx + 1
- return self.asyncIdx
- end
- function UIGuildWarCtr:GetData()
- return self.data
- end
- function UIGuildWarCtr:OnDispose()
- self.battleIdx = nil
- self.rebornMaxTime = nil
- self.buyChallengeCosts = nil
- self.buyRebornCosts = nil
- self.showRawIdxs = nil
- self.lastAttackAreaId = nil
- local battleFieldData = self:GetBattleFieldData()
- if battleFieldData then
- battleFieldData:Clear()
- end
- self.data = nil
- self.view = nil
- end
- function UIGuildWarCtr:InitData()
- self.battleIdx = self.data
- self.rebornMaxTime = GlobalConfig.Instance:GetConfigIntValue(291)
- local costStr = GlobalConfig.Instance:GetConfigStrValue(295)
- self.buyChallengeCosts = CommonUtil.DeserializeGlobalStrToNumberTable(costStr)
- costStr = GlobalConfig.Instance:GetConfigStrValue(296)
- self.buyRebornCosts = CommonUtil.DeserializeGlobalStrToNumberTable(costStr)
- self.defaultHeroCute = GlobalConfig.Instance:GetConfigStrValue(259)
- self.showRawIdxs = {}
- local guildWarDataMgr = ManagerContainer.DataMgr.GuildWarDataMgr
- if guildWarDataMgr then
- self.lastAttackAreaId = guildWarDataMgr:GetLastAttackAreaId()
- guildWarDataMgr:ClearLastAttackInfo()
- else
- self.lastAttackAreaId = nil
- end
- end
- function UIGuildWarCtr:GetDefaultHeroCute()
- return self.defaultHeroCute
- end
- function UIGuildWarCtr:GetRebornMaxTime()
- return self.rebornMaxTime
- end
- function UIGuildWarCtr:GetBuyChallengeCountCost()
- if self.buyChallengeCosts then
- local buyCost = self.buyChallengeCosts[1]
- if buyCost then
- return buyCost[1], buyCost[2]
- end
- end
- return 1, 100
- end
- function UIGuildWarCtr:GetBuyRebornCost()
- if self.buyRebornCosts then
- local buyCost = self.buyRebornCosts[1]
- if buyCost then
- return buyCost[1], buyCost[2]
- end
- end
- return 1, 100
- end
- function UIGuildWarCtr:GetBattleFieldData()
- return ManagerContainer.DataMgr.GuildWarDataMgr:GetBattleFieldData()
- end
- function UIGuildWarCtr:GetCurGuildData()
- return ManagerContainer.DataMgr.GuildDataMgr:GetCurGuildData()
- end
- function UIGuildWarCtr:ResetBattleIdx()
- local battleFieldData = self:GetBattleFieldData()
- if not battleFieldData then
- return
- end
- self.battleIdx = battleFieldData.id
- end
- function UIGuildWarCtr:GetBattleIdx()
- return self.battleIdx
- end
- function UIGuildWarCtr:GetUserNickname()
- return ManagerContainer.DataMgr.UserData:GetUserNickname()
- end
- function UIGuildWarCtr:GetTotalFightPower()
- return ManagerContainer.DataMgr.UserData:GetTotalFightPower()
- end
- function UIGuildWarCtr:GetUserRoleId()
- return ManagerContainer.DataMgr.UserData:GetUserRoleId()
- end
- function UIGuildWarCtr:IsSelfArea(id)
- local battleFieldData = self:GetBattleFieldData()
- if battleFieldData then
- local areaData = battleFieldData:GetAreaDataById(id)
- if areaData and areaData:IsValidData() then
- return areaData:IsPeopleUid() == battleFieldData.uid
- end
- end
- return false
- end
- function UIGuildWarCtr:IsSameGuildArea(id)
- local battleFieldData = self:GetBattleFieldData()
- if battleFieldData then
- local areaData = battleFieldData:GetAreaDataById(id)
- if areaData and areaData:IsValidData() then
- return areaData:GetGuildId() == battleFieldData.guildId
- end
- end
- return false
- end
- function UIGuildWarCtr:GetAreaDataById(id)
- local battleFieldData = self:GetBattleFieldData()
- if battleFieldData then
- return battleFieldData:GetAreaDataById(id)
- end
- return nil
- end
- function UIGuildWarCtr:GetLastAttackAreaId()
- return self.lastAttackAreaId
- end
- function UIGuildWarCtr:GetAreaMaxId()
- local battleFieldData = self:GetBattleFieldData()
- if battleFieldData then
- return battleFieldData:GetAreaMaxId()
- end
- return 0
- end
- function UIGuildWarCtr:GetRawCount()
- local areaMaxId = self:GetAreaMaxId()
- local rawCount = Mathf.Floor(areaMaxId / 5)
- local remain = (areaMaxId - rawCount * 5)
- rawCount = rawCount * 2
- if remain > 2 then
- rawCount = rawCount + 2
- elseif remain > 0 then
- rawCount = rawCount + 1
- end
- return rawCount
- end
- function UIGuildWarCtr:GetRawAreaStartAndEnd(rawIdx)
- local normalRawIdx = rawIdx + 1
- local count = Mathf.Floor(normalRawIdx / 2) * 5
- local remain = normalRawIdx % 2
- local startId, endId
- if remain == 1 then
- startId = count + 1
- endId = count + 2
- else
- startId = count - 2
- endId = count
- end
- local areaMaxId = self:GetAreaMaxId()
- if startId > areaMaxId then
- startId = areaMaxId
- end
- if endId > areaMaxId then
- endId = areaMaxId
- end
- return startId, endId
- end
- function UIGuildWarCtr:GetRawIdxByAreaId(areaId)
- local rawIdx = Mathf.Floor(areaId / 5)
- local remain = (areaId - rawIdx * 5)
- rawIdx = rawIdx * 2
- if remain > 2 then
- rawIdx = rawIdx + 1
- remain = remain - 2
- elseif remain == 0 then
- rawIdx = rawIdx - 1
- remain = 3
- elseif remain < 0 then
- LogError('[wboy] calc error ' .. tostring(areaId))
- end
- return rawIdx, remain
- end
- function UIGuildWarCtr:GetShowRawIdxs()
- return self.showRawIdxs
- end
- function UIGuildWarCtr:AddShowRawIdx(rawIdx)
- if not CommonUtil.EleInTable(rawIdx, self.showRawIdxs) then
- self.showRawIdxs[#self.showRawIdxs+1] = rawIdx
- end
- end
- function UIGuildWarCtr:RemoveShowRawIdx(rawIdx)
- for k,v in pairs(self.showRawIdxs) do
- if v == rawIdx then
- table.remove(self.showRawIdxs, k)
- break
- end
- end
- end
- function UIGuildWarCtr:GetOwnResCountByItemId(itemCfgId)
- return CommonUtil.GetOwnResCountByItemId(itemCfgId)
- end
- function UIGuildWarCtr:SendGuildWarInfoReq()
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarInfoReq(self.battleIdx) then
- return 100007
- end
- return 0
- end
- function UIGuildWarCtr:SendGuildWarScoreDataReq()
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarScoreDataReq(self.battleIdx) then
- return 100007
- end
- return 0
- end
- function UIGuildWarCtr:SendGuildWarAreaDatasReq(areaIds)
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarAreaDatasReq(self.battleIdx, areaIds) then
- return 100007
- end
- return 0
- end
- function UIGuildWarCtr:SendGuildWarChallengeReq(areaId)
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarChallengeReq(self.battleIdx, areaId) then
- return 100007
- end
- return 0
- end
- function UIGuildWarCtr:SendGuildWarSettingReq(autoChallenge, autoReborn)
- local battleFieldData = self:GetBattleFieldData()
- if not battleFieldData then
- return 'GuildWarBattle10'
- end
- if not battleFieldData:IsBattlingMy() then
- return 'GuildWarBattle11'
- end
- if autoChallenge then
- local costCfgId, costNum = self:GetBuyChallengeCountCost()
- local ownNum = self:GetOwnResCountByItemId(costCfgId)
- if ownNum < costNum then
- return 1, costCfgId
- end
- elseif autoChallenge == nil then
- autoChallenge = battleFieldData.autoChallenge
- end
- if autoReborn then
- local costCfgId, costNum = self:GetBuyRebornCost()
- local ownNum = self:GetOwnResCountByItemId(costCfgId)
- if ownNum < costNum then
- return 1, costCfgId
- end
- elseif autoReborn == nil then
- autoReborn = battleFieldData.autoReborn
- end
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarSettingReq(self.battleIdx, autoChallenge, autoReborn) then
- return 100007
- end
- return 0
- end
- function UIGuildWarCtr:SendGuildWarBuyChallengeNumReq()
- local costCfgId, costNum = self:GetBuyChallengeCountCost()
- local ownNum = self:GetOwnResCountByItemId(costCfgId)
- if ownNum < costNum then
- return 1, costCfgId
- end
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarBuyChallengeNumReq(self.battleIdx) then
- return 100007, nil
- end
- return 0, nil
- end
- function UIGuildWarCtr:SendGuildWarBuyRebornReq()
- local costCfgId, costNum = self:GetBuyRebornCost()
- local ownNum = self:GetOwnResCountByItemId(costCfgId)
- if ownNum < costNum then
- return 1, costCfgId
- end
- if not ManagerContainer.DataMgr.GuildWarDataMgr:SendGuildWarBuyRebornReq(self.battleIdx) then
- return 100007, nil
- end
- return 0, nil
- end
- return UIGuildWarCtr
|