42 lines
1.2 KiB
Lua
42 lines
1.2 KiB
Lua
local FormationManager = class("FormationManager", BaseModule)
|
|
|
|
function FormationManager:upHeroToStageFormation(heroId, matchType)
|
|
local formation = DataManager.FormationData:getStageFormation()
|
|
if formation[matchType] == heroId then
|
|
return
|
|
end
|
|
local args = {
|
|
formationType = GConst.BattleConst.BATTLE_TYPE.STAGE,
|
|
matchType = matchType,
|
|
heroId = heroId
|
|
}
|
|
ServerDataManager:dataOperate(GConst.ServerDataConst.DATA_OP_BEHAVIOR.UPDATE_FORMATION, args, function(msgData)
|
|
if msgData.status == 0 then
|
|
DataManager.FormationData:upHeroToFormation(GConst.BattleConst.BATTLE_TYPE.STAGE, matchType, heroId)
|
|
DataManager.HeroData:setDirty()
|
|
end
|
|
end)
|
|
end
|
|
|
|
function FormationManager:formationIsFull()
|
|
local actvieMap = DataManager.HeroData:getMatchActiveHeroMap()
|
|
local formation = DataManager.FormationData:getStageFormation()
|
|
local count = 0
|
|
for matchtype = 1, GConst.BattleConst.ELEMENT_TYPE_COUNT do
|
|
if not formation[matchtype] or formation[matchtype] <= 0 then
|
|
if actvieMap[matchtype] and table.nums(actvieMap[matchtype]) > 0 then
|
|
return false
|
|
end
|
|
else
|
|
count = count + 1
|
|
end
|
|
end
|
|
|
|
if count <= 0 then
|
|
return false
|
|
end
|
|
|
|
return true
|
|
end
|
|
|
|
return FormationManager |