ZONE CAP COAL

This commit is contained in:
Frank 2019-12-27 23:03:19 +01:00
parent 8337058306
commit d3a3d96436
2 changed files with 57 additions and 14 deletions

View File

@ -187,7 +187,7 @@ end
function DATABASE:AddUnit( DCSUnitName )
if not self.UNITS[DCSUnitName] then
self:I( { "Add UNIT:", DCSUnitName } )
self:T( { "Add UNIT:", DCSUnitName } )
local UnitRegister = UNIT:Register( DCSUnitName )
self.UNITS[DCSUnitName] = UNIT:Register( DCSUnitName )
@ -509,7 +509,7 @@ end
function DATABASE:AddGroup( GroupName )
if not self.GROUPS[GroupName] then
self:I( { "Add GROUP:", GroupName } )
self:T( { "Add GROUP:", GroupName } )
self.GROUPS[GroupName] = GROUP:Register( GroupName )
end
@ -521,7 +521,7 @@ end
function DATABASE:AddPlayer( UnitName, PlayerName )
if PlayerName then
self:I( { "Add player for unit:", UnitName, PlayerName } )
self:T( { "Add player for unit:", UnitName, PlayerName } )
self.PLAYERS[PlayerName] = UnitName
self.PLAYERUNITS[PlayerName] = self:FindUnit( UnitName )
self.PLAYERSJOINED[PlayerName] = PlayerName
@ -533,7 +533,7 @@ end
function DATABASE:DeletePlayer( UnitName, PlayerName )
if PlayerName then
self:I( { "Clean player:", PlayerName } )
self:T( { "Clean player:", PlayerName } )
self.PLAYERS[PlayerName] = nil
self.PLAYERUNITS[PlayerName] = nil
end
@ -698,11 +698,11 @@ function DATABASE:_RegisterGroupTemplate( GroupTemplate, CoalitionSide, Category
UnitNames[#UnitNames+1] = self.Templates.Units[UnitTemplate.name].UnitName
end
self:I( { Group = self.Templates.Groups[GroupTemplateName].GroupName,
self:T( { Group = self.Templates.Groups[GroupTemplateName].GroupName,
Coalition = self.Templates.Groups[GroupTemplateName].CoalitionID,
Category = self.Templates.Groups[GroupTemplateName].CategoryID,
Country = self.Templates.Groups[GroupTemplateName].CountryID,
Units = UnitNames
Category = self.Templates.Groups[GroupTemplateName].CategoryID,
Country = self.Templates.Groups[GroupTemplateName].CountryID,
Units = UnitNames
}
)
end
@ -847,9 +847,9 @@ function DATABASE:_RegisterGroupsAndUnits()
end
end
self:I("Groups:")
self:T("Groups:")
for GroupName, Group in pairs( self.GROUPS ) do
self:I( { "Group:", GroupName } )
self:T( { "Group:", GroupName } )
end
return self
@ -861,7 +861,7 @@ end
function DATABASE:_RegisterClients()
for ClientName, ClientTemplate in pairs( self.Templates.ClientsByName ) do
self:I( { "Register Client:", ClientName } )
self:T( { "Register Client:", ClientName } )
self:AddClient( ClientName )
end
@ -879,7 +879,7 @@ function DATABASE:_RegisterStatics()
if DCSStatic:isExist() then
local DCSStaticName = DCSStatic:getName()
self:I( { "Register Static:", DCSStaticName } )
self:T( { "Register Static:", DCSStaticName } )
self:AddStatic( DCSStaticName )
else
self:E( { "Static does not exist: ", DCSStatic } )
@ -899,7 +899,7 @@ function DATABASE:_RegisterAirbases()
local DCSAirbaseName = DCSAirbase:getName()
self:I( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } )
self:T( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } )
self:AddAirbase( DCSAirbaseName )
end
end

View File

@ -544,6 +544,41 @@ do -- ZONE_CAPTURE_COALITION
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number Delay
self:AddTransition( "*", "ChangeCoalition", "*" )
--- ChangeCoalition Handler OnBefore for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnBeforeChangeCoalition
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @param #number NewCoalition New coalition ID, i.e. after the change.
-- @param #number OldCoalition Old coalition ID, i.e. before the change.
-- @return #boolean
--- ChangeCoalition Handler OnAfter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnAfterChangeCoalition
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @param #number NewCoalition New coalition ID, i.e. after the change.
-- @param #number OldCoalition Old coalition ID, i.e. before the change.
--- ChangeCoalition Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] ChangeCoalition
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number NewCoalition New coalition ID, i.e. after the change.
-- @param #number OldCoalition Old coalition ID, i.e. before the change.
--- ChangeCoalition Asynchronous Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] __ChangeCoalition
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number Delay
-- @param #number NewCoalition New coalition ID, i.e. after the change.
-- @param #number OldCoalition Old coalition ID, i.e. before the change.
-- We check if a unit within the zone is hit.
-- If it is, then we must move the zone to attack state.
self:HandleEvent( EVENTS.Hit, self.OnEventHit )
@ -586,6 +621,8 @@ do -- ZONE_CAPTURE_COALITION
end
self.ScheduleStatusZone = self:ScheduleRepeat( self.StartInterval, self.RepeatInterval, 1.5, nil, self.StatusZone, self )
self:StatusZone()
end
@ -671,7 +708,7 @@ do -- ZONE_CAPTURE_COALITION
self:F( { NewCoalition = NewCoalition } )
-- Set new owner of zone.
self:SetCoalition( NewCoalition )
self:ChangeCoalition(NewCoalition, self.Coalition)
-- Update mark.
self:Mark()
@ -680,6 +717,12 @@ do -- ZONE_CAPTURE_COALITION
self.Goal:Achieved()
end
--- On after "ChangeCoalition" state.
-- @param #ZONE_CAPTURE_COALITION self
function ZONE_CAPTURE_COALITION:onafterChangeCoalition(From, Event, To, NewCoalition, OldCoalition)
self:SetCoalition(NewCoalition)
end
--- On enter "Empty" state.
-- @param #ZONE_CAPTURE_COALITION self
function ZONE_CAPTURE_COALITION:onenterEmpty()