mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
ZONE CAP COAL
This commit is contained in:
@@ -187,7 +187,7 @@ end
|
|||||||
function DATABASE:AddUnit( DCSUnitName )
|
function DATABASE:AddUnit( DCSUnitName )
|
||||||
|
|
||||||
if not self.UNITS[DCSUnitName] then
|
if not self.UNITS[DCSUnitName] then
|
||||||
self:I( { "Add UNIT:", DCSUnitName } )
|
self:T( { "Add UNIT:", DCSUnitName } )
|
||||||
local UnitRegister = UNIT:Register( DCSUnitName )
|
local UnitRegister = UNIT:Register( DCSUnitName )
|
||||||
self.UNITS[DCSUnitName] = UNIT:Register( DCSUnitName )
|
self.UNITS[DCSUnitName] = UNIT:Register( DCSUnitName )
|
||||||
|
|
||||||
@@ -509,7 +509,7 @@ end
|
|||||||
function DATABASE:AddGroup( GroupName )
|
function DATABASE:AddGroup( GroupName )
|
||||||
|
|
||||||
if not self.GROUPS[GroupName] then
|
if not self.GROUPS[GroupName] then
|
||||||
self:I( { "Add GROUP:", GroupName } )
|
self:T( { "Add GROUP:", GroupName } )
|
||||||
self.GROUPS[GroupName] = GROUP:Register( GroupName )
|
self.GROUPS[GroupName] = GROUP:Register( GroupName )
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -521,7 +521,7 @@ end
|
|||||||
function DATABASE:AddPlayer( UnitName, PlayerName )
|
function DATABASE:AddPlayer( UnitName, PlayerName )
|
||||||
|
|
||||||
if PlayerName then
|
if PlayerName then
|
||||||
self:I( { "Add player for unit:", UnitName, PlayerName } )
|
self:T( { "Add player for unit:", UnitName, PlayerName } )
|
||||||
self.PLAYERS[PlayerName] = UnitName
|
self.PLAYERS[PlayerName] = UnitName
|
||||||
self.PLAYERUNITS[PlayerName] = self:FindUnit( UnitName )
|
self.PLAYERUNITS[PlayerName] = self:FindUnit( UnitName )
|
||||||
self.PLAYERSJOINED[PlayerName] = PlayerName
|
self.PLAYERSJOINED[PlayerName] = PlayerName
|
||||||
@@ -533,7 +533,7 @@ end
|
|||||||
function DATABASE:DeletePlayer( UnitName, PlayerName )
|
function DATABASE:DeletePlayer( UnitName, PlayerName )
|
||||||
|
|
||||||
if PlayerName then
|
if PlayerName then
|
||||||
self:I( { "Clean player:", PlayerName } )
|
self:T( { "Clean player:", PlayerName } )
|
||||||
self.PLAYERS[PlayerName] = nil
|
self.PLAYERS[PlayerName] = nil
|
||||||
self.PLAYERUNITS[PlayerName] = nil
|
self.PLAYERUNITS[PlayerName] = nil
|
||||||
end
|
end
|
||||||
@@ -698,11 +698,11 @@ function DATABASE:_RegisterGroupTemplate( GroupTemplate, CoalitionSide, Category
|
|||||||
UnitNames[#UnitNames+1] = self.Templates.Units[UnitTemplate.name].UnitName
|
UnitNames[#UnitNames+1] = self.Templates.Units[UnitTemplate.name].UnitName
|
||||||
end
|
end
|
||||||
|
|
||||||
self:I( { Group = self.Templates.Groups[GroupTemplateName].GroupName,
|
self:T( { Group = self.Templates.Groups[GroupTemplateName].GroupName,
|
||||||
Coalition = self.Templates.Groups[GroupTemplateName].CoalitionID,
|
Coalition = self.Templates.Groups[GroupTemplateName].CoalitionID,
|
||||||
Category = self.Templates.Groups[GroupTemplateName].CategoryID,
|
Category = self.Templates.Groups[GroupTemplateName].CategoryID,
|
||||||
Country = self.Templates.Groups[GroupTemplateName].CountryID,
|
Country = self.Templates.Groups[GroupTemplateName].CountryID,
|
||||||
Units = UnitNames
|
Units = UnitNames
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
@@ -847,9 +847,9 @@ function DATABASE:_RegisterGroupsAndUnits()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self:I("Groups:")
|
self:T("Groups:")
|
||||||
for GroupName, Group in pairs( self.GROUPS ) do
|
for GroupName, Group in pairs( self.GROUPS ) do
|
||||||
self:I( { "Group:", GroupName } )
|
self:T( { "Group:", GroupName } )
|
||||||
end
|
end
|
||||||
|
|
||||||
return self
|
return self
|
||||||
@@ -861,7 +861,7 @@ end
|
|||||||
function DATABASE:_RegisterClients()
|
function DATABASE:_RegisterClients()
|
||||||
|
|
||||||
for ClientName, ClientTemplate in pairs( self.Templates.ClientsByName ) do
|
for ClientName, ClientTemplate in pairs( self.Templates.ClientsByName ) do
|
||||||
self:I( { "Register Client:", ClientName } )
|
self:T( { "Register Client:", ClientName } )
|
||||||
self:AddClient( ClientName )
|
self:AddClient( ClientName )
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -879,7 +879,7 @@ function DATABASE:_RegisterStatics()
|
|||||||
if DCSStatic:isExist() then
|
if DCSStatic:isExist() then
|
||||||
local DCSStaticName = DCSStatic:getName()
|
local DCSStaticName = DCSStatic:getName()
|
||||||
|
|
||||||
self:I( { "Register Static:", DCSStaticName } )
|
self:T( { "Register Static:", DCSStaticName } )
|
||||||
self:AddStatic( DCSStaticName )
|
self:AddStatic( DCSStaticName )
|
||||||
else
|
else
|
||||||
self:E( { "Static does not exist: ", DCSStatic } )
|
self:E( { "Static does not exist: ", DCSStatic } )
|
||||||
@@ -899,7 +899,7 @@ function DATABASE:_RegisterAirbases()
|
|||||||
|
|
||||||
local DCSAirbaseName = DCSAirbase:getName()
|
local DCSAirbaseName = DCSAirbase:getName()
|
||||||
|
|
||||||
self:I( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } )
|
self:T( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } )
|
||||||
self:AddAirbase( DCSAirbaseName )
|
self:AddAirbase( DCSAirbaseName )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -544,6 +544,41 @@ do -- ZONE_CAPTURE_COALITION
|
|||||||
-- @param #ZONE_CAPTURE_COALITION self
|
-- @param #ZONE_CAPTURE_COALITION self
|
||||||
-- @param #number Delay
|
-- @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.
|
-- We check if a unit within the zone is hit.
|
||||||
-- If it is, then we must move the zone to attack state.
|
-- If it is, then we must move the zone to attack state.
|
||||||
self:HandleEvent( EVENTS.Hit, self.OnEventHit )
|
self:HandleEvent( EVENTS.Hit, self.OnEventHit )
|
||||||
@@ -586,6 +621,8 @@ do -- ZONE_CAPTURE_COALITION
|
|||||||
end
|
end
|
||||||
|
|
||||||
self.ScheduleStatusZone = self:ScheduleRepeat( self.StartInterval, self.RepeatInterval, 1.5, nil, self.StatusZone, self )
|
self.ScheduleStatusZone = self:ScheduleRepeat( self.StartInterval, self.RepeatInterval, 1.5, nil, self.StatusZone, self )
|
||||||
|
|
||||||
|
self:StatusZone()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -671,7 +708,7 @@ do -- ZONE_CAPTURE_COALITION
|
|||||||
self:F( { NewCoalition = NewCoalition } )
|
self:F( { NewCoalition = NewCoalition } )
|
||||||
|
|
||||||
-- Set new owner of zone.
|
-- Set new owner of zone.
|
||||||
self:SetCoalition( NewCoalition )
|
self:ChangeCoalition(NewCoalition, self.Coalition)
|
||||||
|
|
||||||
-- Update mark.
|
-- Update mark.
|
||||||
self:Mark()
|
self:Mark()
|
||||||
@@ -680,6 +717,12 @@ do -- ZONE_CAPTURE_COALITION
|
|||||||
self.Goal:Achieved()
|
self.Goal:Achieved()
|
||||||
end
|
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.
|
--- On enter "Empty" state.
|
||||||
-- @param #ZONE_CAPTURE_COALITION self
|
-- @param #ZONE_CAPTURE_COALITION self
|
||||||
function ZONE_CAPTURE_COALITION:onenterEmpty()
|
function ZONE_CAPTURE_COALITION:onenterEmpty()
|
||||||
|
|||||||
Reference in New Issue
Block a user