c1_lua/lua/app/module/battle/team/battle_team.lua
2023-04-17 00:09:48 +08:00

71 lines
1.3 KiB
Lua

local BattleTeam = class("BattleTeam")
function BattleTeam:init(side)
self.side = side
self.unitList = {}
self.unitMap = {}
end
function BattleTeam:addUnit(unit, isMainUnit)
self.unitMap[unit:getMatchType()] = unit
table.insert(self.unitList, unit)
if isMainUnit then
self.mainUnit = unit
end
end
function BattleTeam:getMainUnit()
return self.mainUnit
end
function BattleTeam:removeAllUnits()
for k, v in pairs(self.unitMap) do
self.unitMap[k] = nil
end
local count = #self.unitList
for i = 1, count do
self.unitList[i]:recycle()
table.remove(self.unitList)
end
self.mainUnit = nil
end
function BattleTeam:useNormalSkill(matchType, count, callback)
local unit = nil
if matchType == nil then
unit = self.unitList[1]
else
unit = self.unitMap[matchType]
end
if unit == nil then
return callback()
end
self.mainUnit = unit
unit:useNormalSkill(count, callback)
end
function BattleTeam:useSkill(matchType, callback)
local unit = nil
if matchType == nil then
unit = self.unitList[1]
else
unit = self.unitMap[matchType]
end
if unit == nil then
return callback()
end
self.mainUnit = unit
unit:useSkill(1, callback)
end
function BattleTeam:mainUnitUseAllSkills()
self.mainUnit:useAllSkills()
end
function BattleTeam:tick(dt)
for k, v in ipairs(self.unitList) do
v:tick(dt)
end
end
return BattleTeam