Moved capture related methods to ZONE_CAPTURE_COALITION

This commit is contained in:
FlightControl_Master 2017-10-07 22:14:05 +02:00
parent 7f04c98d61
commit 57cb31c86b
17 changed files with 1358 additions and 89286 deletions

View File

@ -1,11 +1,7 @@
--- **Functional (wIP)** -- Base class that models processes to capture a Zone for a Coalition, guarded by another Coalition.
--- **Functional (wIP)** -- Models the process to capture a Zone for a Coalition, which is guarded by another Coalition.
--
-- ====
--
-- ZONE_CAPTURE_COALITION models processes that have an objective with a defined achievement involving a Zone. Derived classes implement the ways how the achievements can be realized.
--
-- ====
--
-- ### Author: **Sven Van de Velde (FlightControl)**
--
-- ====
@ -20,7 +16,14 @@ do -- ZoneGoal
--- # ZONE_CAPTURE_COALITION class, extends @{ZoneGoalCoalition#ZONE_GOAL_COALITION}
--
-- ZONE_CAPTURE_COALITION models processes that have an objective with a defined achievement involving a Zone. Derived classes implement the ways how the achievements can be realized.
-- Models the process to capture a Zone for a Coalition, which is guarded by another Coalition.
--
-- The Zone is initially **Guarded** by the __owning coalition__, which is the coalition that initially occupies the zone with units of its coalition.
-- Once units of an other coalition are entering the Zone, the state will change to **Attacked**. As long as these units remain in the zone, the state keeps set to Attacked.
-- When all units are destroyed in the Zone, the state will change to **Empty**, which expresses that the Zone is empty, and can be captured.
-- When units of the other coalition are in the Zone, and no other units of the owning coalition is in the Zone, the Zone is captured, and its state will change to **Captured**.
--
-- Event handlers can be defined by the mission designer to action on the state transitions.
--
-- ## 1. ZONE_CAPTURE_COALITION constructor
--
@ -30,8 +33,18 @@ do -- ZoneGoal
--
-- ### 2.1 ZONE_CAPTURE_COALITION States
--
-- * **Captured**: The Zone has been captured by an other coalition.
-- * **Attacked**: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.
-- * **Guarded**: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.
-- * **Empty**: The Zone is empty. There is not valid unit in the Zone.
--
-- ### 2.2 ZONE_CAPTURE_COALITION Events
--
-- * **Capture**: The Zone has been captured by an other coalition.
-- * **Attack**: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.
-- * **Guard**: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.
-- * **Empty**: The Zone is empty. There is not valid unit in the Zone.
--
-- @field #ZONE_CAPTURE_COALITION
ZONE_CAPTURE_COALITION = {
ClassName = "ZONE_CAPTURE_COALITION",
@ -50,7 +63,190 @@ do -- ZoneGoal
local self = BASE:Inherit( self, ZONE_GOAL_COALITION:New( Zone, Coalition ) ) -- #ZONE_CAPTURE_COALITION
self:F( { Zone = Zone, Coalition = Coalition } )
do
--- Captured State Handler OnLeave for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnLeaveCaptured
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Captured State Handler OnEnter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnEnterCaptured
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
do
--- Attacked State Handler OnLeave for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnLeaveAttacked
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Attacked State Handler OnEnter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnEnterAttacked
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
do
--- Guarded State Handler OnLeave for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnLeaveGuarded
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Guarded State Handler OnEnter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnEnterGuarded
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
do
--- Empty State Handler OnLeave for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnLeaveEmpty
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Empty State Handler OnEnter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnEnterEmpty
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
self:AddTransition( "*", "Guard", "Guarded" )
--- Guard Handler OnBefore for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnBeforeGuard
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Guard Handler OnAfter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnAfterGuard
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Guard Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] Guard
-- @param #ZONE_CAPTURE_COALITION self
--- Guard Asynchronous Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] __Guard
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number Delay
self:AddTransition( "*", "Empty", "Empty" )
--- Empty Handler OnBefore for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnBeforeEmpty
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Empty Handler OnAfter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnAfterEmpty
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Empty Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] Empty
-- @param #ZONE_CAPTURE_COALITION self
--- Empty Asynchronous Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] __Empty
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number Delay
self:AddTransition( { "Guarded", "Empty" }, "Attack", "Attacked" )
--- Attack Handler OnBefore for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnBeforeAttack
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Attack Handler OnAfter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnAfterAttack
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Attack Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] Attack
-- @param #ZONE_CAPTURE_COALITION self
--- Attack Asynchronous Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] __Attack
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number Delay
self:AddTransition( { "Guarded", "Attacked", "Empty" }, "Capture", "Captured" )
--- Capture Handler OnBefore for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnBeforeCapture
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Capture Handler OnAfter for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] OnAfterCapture
-- @param #ZONE_CAPTURE_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Capture Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] Capture
-- @param #ZONE_CAPTURE_COALITION self
--- Capture Asynchronous Trigger for ZONE_CAPTURE_COALITION
-- @function [parent=#ZONE_CAPTURE_COALITION] __Capture
-- @param #ZONE_CAPTURE_COALITION self
-- @param #number Delay
return self
end
@ -62,6 +258,166 @@ do -- ZoneGoal
self.Goal:Achieved()
end
function ZONE_CAPTURE_COALITION:IsGuarded()
local IsGuarded = self.Zone:IsAllInZoneOfCoalition( self.Coalition )
self:E( { IsGuarded = IsGuarded } )
return IsGuarded
end
function ZONE_CAPTURE_COALITION:IsEmpty()
local IsEmpty = self.Zone:IsNoneInZone()
self:E( { IsEmpty = IsEmpty } )
return IsEmpty
end
function ZONE_CAPTURE_COALITION:IsCaptured()
local IsCaptured = self.Zone:IsAllInZoneOfOtherCoalition( self.Coalition )
self:E( { IsCaptured = IsCaptured } )
return IsCaptured
end
function ZONE_CAPTURE_COALITION:IsAttacked()
local IsAttacked = self.Zone:IsSomeInZoneOfCoalition( self.Coalition )
self:E( { IsAttacked = IsAttacked } )
return IsAttacked
end
--- Mark.
-- @param #ZONE_CAPTURE_COALITION self
function ZONE_CAPTURE_COALITION:Mark()
local Coord = self.Zone:GetCoordinate()
local ZoneName = self:GetZoneName()
local State = self:GetState()
if self.MarkRed and self.MarkBlue then
self:E( { MarkRed = self.MarkRed, MarkBlue = self.MarkBlue } )
Coord:RemoveMark( self.MarkRed )
Coord:RemoveMark( self.MarkBlue )
end
if self.Coalition == coalition.side.BLUE then
self.MarkBlue = Coord:MarkToCoalitionBlue( "Guard Zone: " .. ZoneName .. "\nStatus: " .. State )
self.MarkRed = Coord:MarkToCoalitionRed( "Capture Zone: " .. ZoneName .. "\nStatus: " .. State )
else
self.MarkRed = Coord:MarkToCoalitionRed( "Guard Zone: " .. ZoneName .. "\nStatus: " .. State )
self.MarkBlue = Coord:MarkToCoalitionBlue( "Capture Zone: " .. ZoneName .. "\nStatus: " .. State )
end
end
--- Bound.
-- @param #ZONE_CAPTURE_COALITION self
function ZONE_CAPTURE_COALITION:onenterGuarded()
--self:GetParent( self ):onenterGuarded()
if self.Coalition == coalition.side.BLUE then
--elf.ProtectZone:BoundZone( 12, country.id.USA )
else
--self.ProtectZone:BoundZone( 12, country.id.RUSSIA )
end
self:Mark()
end
function ZONE_CAPTURE_COALITION:onenterCaptured()
--self:GetParent( self ):onenterCaptured()
local NewCoalition = self.Zone:GetCoalition()
self:E( { NewCoalition = NewCoalition } )
self:SetCoalition( NewCoalition )
self:Mark()
end
function ZONE_CAPTURE_COALITION:onenterEmpty()
--self:GetParent( self ):onenterEmpty()
self:Mark()
end
function ZONE_CAPTURE_COALITION:onenterAttacked()
--self:GetParent( self ):onenterAttacked()
self:Mark()
end
--- When started, check the Coalition status.
-- @param #ZONE_CAPTURE_COALITION self
function ZONE_CAPTURE_COALITION:onafterGuard()
--self:E({BASE:GetParent( self )})
--BASE:GetParent( self ).onafterGuard( self )
if not self.SmokeScheduler then
self.SmokeScheduler = self:ScheduleRepeat( 1, 1, 0.1, nil, self.StatusSmoke, self )
end
if not self.ScheduleStatusZone then
self.ScheduleStatusZone = self:ScheduleRepeat( 15, 15, 0.1, nil, self.StatusZone, self )
end
end
function ZONE_CAPTURE_COALITION:IsCaptured()
local IsCaptured = self.Zone:IsAllInZoneOfOtherCoalition( self.Coalition )
self:E( { IsCaptured = IsCaptured } )
return IsCaptured
end
function ZONE_CAPTURE_COALITION:IsAttacked()
local IsAttacked = self.Zone:IsSomeInZoneOfCoalition( self.Coalition )
self:E( { IsAttacked = IsAttacked } )
return IsAttacked
end
--- Check status Coalition ownership.
-- @param #ZONE_CAPTURE_COALITION self
function ZONE_CAPTURE_COALITION:StatusZone()
local State = self:GetState()
self:E( { State = self:GetState() } )
self:GetParent( self, ZONE_CAPTURE_COALITION ).StatusZone( self )
if State ~= "Guarded" and self:IsGuarded() then
self:Guard()
end
if State ~= "Empty" and self:IsEmpty() then
self:Empty()
end
if State ~= "Attacked" and self:IsAttacked() then
self:Attack()
end
if State ~= "Captured" and self:IsCaptured() then
self:Capture()
end
end
end

View File

@ -31,19 +31,9 @@ do -- ZoneGoal
-- ## 2. ZONE_GOAL_COALITION is a finite state machine (FSM).
--
-- ### 2.1 ZONE_GOAL_COALITION States
--
-- * **Captured**: The Zone has been captured by an other coalition.
-- * **Attacked**: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.
-- * **Guarded**: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.
-- * **Empty**: The Zone is empty. There is not valid unit in the Zone.
--
-- ### 2.2 ZONE_GOAL_COALITION Events
--
-- * **Capture**: The Zone has been captured by an other coalition.
-- * **Attack**: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.
-- * **Guard**: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.
-- * **Empty**: The Zone is empty. There is not valid unit in the Zone.
--
-- ### 2.3 ZONE_GOAL_COALITION State Machine
--
-- @field #ZONE_GOAL_COALITION
@ -66,188 +56,6 @@ do -- ZoneGoal
self:SetCoalition( Coalition )
do
--- Captured State Handler OnLeave for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnLeaveCaptured
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Captured State Handler OnEnter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnEnterCaptured
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
do
--- Attacked State Handler OnLeave for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnLeaveAttacked
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Attacked State Handler OnEnter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnEnterAttacked
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
do
--- Guarded State Handler OnLeave for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnLeaveGuarded
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Guarded State Handler OnEnter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnEnterGuarded
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
do
--- Empty State Handler OnLeave for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnLeaveEmpty
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Empty State Handler OnEnter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnEnterEmpty
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
end
self:AddTransition( "*", "Guard", "Guarded" )
--- Guard Handler OnBefore for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnBeforeGuard
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Guard Handler OnAfter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnAfterGuard
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Guard Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] Guard
-- @param #ZONE_GOAL_COALITION self
--- Guard Asynchronous Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] __Guard
-- @param #ZONE_GOAL_COALITION self
-- @param #number Delay
self:AddTransition( "*", "Empty", "Empty" )
--- Empty Handler OnBefore for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnBeforeEmpty
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Empty Handler OnAfter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnAfterEmpty
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Empty Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] Empty
-- @param #ZONE_GOAL_COALITION self
--- Empty Asynchronous Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] __Empty
-- @param #ZONE_GOAL_COALITION self
-- @param #number Delay
self:AddTransition( { "Guarded", "Empty" }, "Attack", "Attacked" )
--- Attack Handler OnBefore for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnBeforeAttack
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Attack Handler OnAfter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnAfterAttack
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Attack Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] Attack
-- @param #ZONE_GOAL_COALITION self
--- Attack Asynchronous Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] __Attack
-- @param #ZONE_GOAL_COALITION self
-- @param #number Delay
self:AddTransition( { "Guarded", "Attacked", "Empty" }, "Capture", "Captured" )
--- Capture Handler OnBefore for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnBeforeCapture
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
-- @return #boolean
--- Capture Handler OnAfter for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] OnAfterCapture
-- @param #ZONE_GOAL_COALITION self
-- @param #string From
-- @param #string Event
-- @param #string To
--- Capture Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] Capture
-- @param #ZONE_GOAL_COALITION self
--- Capture Asynchronous Trigger for ZONE_GOAL_COALITION
-- @function [parent=#ZONE_GOAL_COALITION] __Capture
-- @param #ZONE_GOAL_COALITION self
-- @param #number Delay
return self
end
@ -290,137 +98,6 @@ do -- ZoneGoal
end
function ZONE_GOAL_COALITION:IsGuarded()
local IsGuarded = self.Zone:IsAllInZoneOfCoalition( self.Coalition )
self:E( { IsGuarded = IsGuarded } )
return IsGuarded
end
function ZONE_GOAL_COALITION:IsEmpty()
local IsEmpty = self.Zone:IsNoneInZone()
self:E( { IsEmpty = IsEmpty } )
return IsEmpty
end
function ZONE_GOAL_COALITION:IsCaptured()
local IsCaptured = self.Zone:IsAllInZoneOfOtherCoalition( self.Coalition )
self:E( { IsCaptured = IsCaptured } )
return IsCaptured
end
function ZONE_GOAL_COALITION:IsAttacked()
local IsAttacked = self.Zone:IsSomeInZoneOfCoalition( self.Coalition )
self:E( { IsAttacked = IsAttacked } )
return IsAttacked
end
--- Mark.
-- @param #ZONE_GOAL_COALITION self
function ZONE_GOAL_COALITION:Mark()
local Coord = self.Zone:GetCoordinate()
local ZoneName = self:GetZoneName()
local State = self:GetState()
if self.MarkRed and self.MarkBlue then
self:E( { MarkRed = self.MarkRed, MarkBlue = self.MarkBlue } )
Coord:RemoveMark( self.MarkRed )
Coord:RemoveMark( self.MarkBlue )
end
if self.Coalition == coalition.side.BLUE then
self.MarkBlue = Coord:MarkToCoalitionBlue( "Guard Zone: " .. ZoneName .. "\nStatus: " .. State )
self.MarkRed = Coord:MarkToCoalitionRed( "Capture Zone: " .. ZoneName .. "\nStatus: " .. State )
else
self.MarkRed = Coord:MarkToCoalitionRed( "Guard Zone: " .. ZoneName .. "\nStatus: " .. State )
self.MarkBlue = Coord:MarkToCoalitionBlue( "Capture Zone: " .. ZoneName .. "\nStatus: " .. State )
end
end
--- Bound.
-- @param #ZONE_GOAL_COALITION self
function ZONE_GOAL_COALITION:onenterGuarded()
--self:GetParent( self ):onenterGuarded()
if self.Coalition == coalition.side.BLUE then
--elf.ProtectZone:BoundZone( 12, country.id.USA )
else
--self.ProtectZone:BoundZone( 12, country.id.RUSSIA )
end
self:Mark()
end
function ZONE_GOAL_COALITION:onenterCaptured()
--self:GetParent( self ):onenterCaptured()
local NewCoalition = self.Zone:GetCoalition()
self:E( { NewCoalition = NewCoalition } )
self:SetCoalition( NewCoalition )
self:Mark()
end
function ZONE_GOAL_COALITION:onenterEmpty()
--self:GetParent( self ):onenterEmpty()
self:Mark()
end
function ZONE_GOAL_COALITION:onenterAttacked()
--self:GetParent( self ):onenterAttacked()
self:Mark()
end
--- When started, check the Coalition status.
-- @param #ZONE_GOAL_COALITION self
function ZONE_GOAL_COALITION:onafterGuard()
--self:E({BASE:GetParent( self )})
--BASE:GetParent( self ).onafterGuard( self )
if not self.SmokeScheduler then
self.SmokeScheduler = self:ScheduleRepeat( 1, 1, 0.1, nil, self.StatusSmoke, self )
end
if not self.ScheduleStatusZone then
self.ScheduleStatusZone = self:ScheduleRepeat( 15, 15, 0.1, nil, self.StatusZone, self )
end
end
function ZONE_GOAL_COALITION:IsCaptured()
local IsCaptured = self.Zone:IsAllInZoneOfOtherCoalition( self.Coalition )
self:E( { IsCaptured = IsCaptured } )
return IsCaptured
end
function ZONE_GOAL_COALITION:IsAttacked()
local IsAttacked = self.Zone:IsSomeInZoneOfCoalition( self.Coalition )
self:E( { IsAttacked = IsAttacked } )
return IsAttacked
end
--- Check status Coalition ownership.
-- @param #ZONE_GOAL_COALITION self
function ZONE_GOAL_COALITION:StatusZone()
@ -430,22 +107,6 @@ do -- ZoneGoal
self.Zone:Scan()
if State ~= "Guarded" and self:IsGuarded() then
self:Guard()
end
if State ~= "Empty" and self:IsEmpty() then
self:Empty()
end
if State ~= "Attacked" and self:IsAttacked() then
self:Attack()
end
if State ~= "Captured" and self:IsCaptured() then
self:Capture()
end
end
end

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -933,9 +933,6 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
<p> This table contains the targets detected during patrol.</p>
</dd>
</dl>
<dl class="function">

View File

@ -3424,6 +3424,7 @@ The range till cargo will board.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(CARGO_UNIT).CargoCarrier" >
<strong>CARGO_UNIT.CargoCarrier</strong>
</a>
@ -3549,7 +3550,6 @@ The range till cargo will board.</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(CARGO_UNIT).RunCount" >
<strong>CARGO_UNIT.RunCount</strong>
</a>

View File

@ -2466,6 +2466,7 @@ The index of the DetectedItem.</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemCount" >
<strong>DETECTION_BASE.DetectedItemCount</strong>
</a>
@ -2479,6 +2480,7 @@ The index of the DetectedItem.</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemMax" >
<strong>DETECTION_BASE.DetectedItemMax</strong>
</a>
@ -4056,7 +4058,7 @@ Return false to cancel Transition.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(DETECTION_BASE).RefreshTimeInterval" >
<strong>DETECTION_BASE.RefreshTimeInterval</strong>
</a>

View File

@ -1605,7 +1605,7 @@ A string defining the start state.</p>
<dl class="function">
<dt>
<em>#string</em>
<em></em>
<a id="#(FSM)._StartState" >
<strong>FSM._StartState</strong>
</a>
@ -1904,6 +1904,7 @@ A string defining the start state.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(FSM).current" >
<strong>FSM.current</strong>
</a>

View File

@ -234,6 +234,7 @@ on defined intervals (currently every minute).</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong>
</a>
@ -242,6 +243,9 @@ on defined intervals (currently every minute).</p>
<p> Contains the counter how many units are currently alive</p>
</dd>
</dl>
<dl class="function">

View File

@ -1980,7 +1980,6 @@ The height in meters to add to the altitude of the positionable.</p>
<dl class="function">
<dt>
<em><a href="Core.Spot.html##(SPOT)">Core.Spot#SPOT</a></em>
<a id="#(POSITIONABLE).Spot" >
<strong>POSITIONABLE.Spot</strong>
</a>

View File

@ -2786,9 +2786,6 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd>
</dl>
<dl class="function">
@ -2824,7 +2821,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em>#number</em>
<em></em>
<a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong>
</a>
@ -2841,7 +2838,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em>#number</em>
<em></em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a>
@ -3169,7 +3166,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<dl class="function">
<dt>
<em>#boolean</em>
<em></em>
<a id="#(SPAWN).SpawnUnControlled" >
<strong>SPAWN.SpawnUnControlled</strong>
</a>

View File

@ -772,6 +772,7 @@ true if it is lasing</p>
<dl class="function">
<dt>
<em></em>
<a id="#(SPOT).ScheduleID" >
<strong>SPOT.ScheduleID</strong>
</a>
@ -785,6 +786,7 @@ true if it is lasing</p>
<dl class="function">
<dt>
<em></em>
<a id="#(SPOT).SpotIR" >
<strong>SPOT.SpotIR</strong>
</a>
@ -798,6 +800,7 @@ true if it is lasing</p>
<dl class="function">
<dt>
<em></em>
<a id="#(SPOT).SpotLaser" >
<strong>SPOT.SpotLaser</strong>
</a>
@ -811,6 +814,7 @@ true if it is lasing</p>
<dl class="function">
<dt>
<em></em>
<a id="#(SPOT).Target" >
<strong>SPOT.Target</strong>
</a>

View File

@ -573,7 +573,6 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function">
<dt>
<em></em>
<a id="#(FSM_PROCESS).DeployZone" >
<strong>FSM_PROCESS.DeployZone</strong>
</a>
@ -638,7 +637,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(TASK_CARGO).CargoLimit" >
<strong>TASK_CARGO.CargoLimit</strong>
</a>

View File

@ -112,14 +112,10 @@
<div id="content">
<h1>Module <code>ZoneCaptureCoalition</code></h1>
<p><strong>Functional (wIP)</strong> -- Base class that models processes to capture a Zone for a Coalition, guarded by another Coalition.</p>
<p><strong>Functional (wIP)</strong> -- Models the process to capture a Zone for a Coalition, which is guarded by another Coalition.</p>
<hr/>
<p>ZONE<em>CAPTURE</em>COALITION models processes that have an objective with a defined achievement involving a Zone. Derived classes implement the ways how the achievements can be realized.</p>
<hr/>
<h3>Author: <strong>Sven Van de Velde (FlightControl)</strong></h3>
@ -134,28 +130,208 @@
<td class="summary">
<h1>ZONE<em>CAPTURE</em>COALITION class, extends <a href="ZoneGoalCoalition.html##(ZONE_GOAL_COALITION)">ZoneGoalCoalition#ZONE<em>GOAL</em>COALITION</a></h1>
<p>ZONE<em>CAPTURE</em>COALITION models processes that have an objective with a defined achievement involving a Zone.</p>
<p>Models the process to capture a Zone for a Coalition, which is guarded by another Coalition.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_CAPTURE_COALITION)">Type <code>ZONE_CAPTURE_COALITION</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).Attack">ZONE_CAPTURE_COALITION:Attack()</a></td>
<td class="summary">
<p>Attack Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).Capture">ZONE_CAPTURE_COALITION:Capture()</a></td>
<td class="summary">
<p>Capture Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).Empty">ZONE_CAPTURE_COALITION:Empty()</a></td>
<td class="summary">
<p>Empty Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).Guard">ZONE_CAPTURE_COALITION:Guard()</a></td>
<td class="summary">
<p>Guard Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).IsAttacked">ZONE_CAPTURE_COALITION:IsAttacked()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).IsCaptured">ZONE_CAPTURE_COALITION:IsCaptured()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).IsEmpty">ZONE_CAPTURE_COALITION:IsEmpty()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).IsGuarded">ZONE_CAPTURE_COALITION:IsGuarded()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).Mark">ZONE_CAPTURE_COALITION:Mark()</a></td>
<td class="summary">
<p>Mark.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).MarkBlue">ZONE_CAPTURE_COALITION.MarkBlue</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).MarkRed">ZONE_CAPTURE_COALITION.MarkRed</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).New">ZONE_CAPTURE_COALITION:New(Zone, Coalition)</a></td>
<td class="summary">
<p>ZONE<em>CAPTURE</em>COALITION Constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnAfterAttack">ZONE_CAPTURE_COALITION:OnAfterAttack(From, Event, To)</a></td>
<td class="summary">
<p>Attack Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnAfterCapture">ZONE_CAPTURE_COALITION:OnAfterCapture(From, Event, To)</a></td>
<td class="summary">
<p>Capture Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnAfterEmpty">ZONE_CAPTURE_COALITION:OnAfterEmpty(From, Event, To)</a></td>
<td class="summary">
<p>Empty Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnAfterGuard">ZONE_CAPTURE_COALITION:OnAfterGuard(From, Event, To)</a></td>
<td class="summary">
<p>Guard Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnBeforeAttack">ZONE_CAPTURE_COALITION:OnBeforeAttack(From, Event, To)</a></td>
<td class="summary">
<p>Attack Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnBeforeCapture">ZONE_CAPTURE_COALITION:OnBeforeCapture(From, Event, To)</a></td>
<td class="summary">
<p>Capture Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnBeforeEmpty">ZONE_CAPTURE_COALITION:OnBeforeEmpty(From, Event, To)</a></td>
<td class="summary">
<p>Empty Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).OnBeforeGuard">ZONE_CAPTURE_COALITION:OnBeforeGuard(From, Event, To)</a></td>
<td class="summary">
<p>Guard Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).ScheduleStatusZone">ZONE_CAPTURE_COALITION.ScheduleStatusZone</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).SmokeScheduler">ZONE_CAPTURE_COALITION.SmokeScheduler</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).States">ZONE_CAPTURE_COALITION.States</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).StatusZone">ZONE_CAPTURE_COALITION:StatusZone()</a></td>
<td class="summary">
<p>Check status Coalition ownership.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).__Attack">ZONE_CAPTURE_COALITION:__Attack(Delay)</a></td>
<td class="summary">
<p>Attack Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).__Capture">ZONE_CAPTURE_COALITION:__Capture(Delay)</a></td>
<td class="summary">
<p>Capture Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).__Empty">ZONE_CAPTURE_COALITION:__Empty(Delay)</a></td>
<td class="summary">
<p>Empty Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).__Guard">ZONE_CAPTURE_COALITION:__Guard(Delay)</a></td>
<td class="summary">
<p>Guard Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).onafterGuard">ZONE_CAPTURE_COALITION:onafterGuard()</a></td>
<td class="summary">
<p>When started, check the Coalition status.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).onenterAttacked">ZONE_CAPTURE_COALITION:onenterAttacked()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).onenterCaptured">ZONE_CAPTURE_COALITION:onenterCaptured()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).onenterEmpty">ZONE_CAPTURE_COALITION:onenterEmpty()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_CAPTURE_COALITION).onenterGuarded">ZONE_CAPTURE_COALITION:onenterGuarded()</a></td>
<td class="summary">
<p>Bound.</p>
</td>
</tr>
</table>
@ -173,10 +349,16 @@
<h1>ZONE<em>CAPTURE</em>COALITION class, extends <a href="ZoneGoalCoalition.html##(ZONE_GOAL_COALITION)">ZoneGoalCoalition#ZONE<em>GOAL</em>COALITION</a></h1>
<p>ZONE<em>CAPTURE</em>COALITION models processes that have an objective with a defined achievement involving a Zone.</p>
<p>Models the process to capture a Zone for a Coalition, which is guarded by another Coalition.</p>
<p>Derived classes implement the ways how the achievements can be realized.</p>
<p>The Zone is initially <strong>Guarded</strong> by the <strong>owning coalition</strong>, which is the coalition that initially occupies the zone with units of its coalition.
Once units of an other coalition are entering the Zone, the state will change to <strong>Attacked</strong>. As long as these units remain in the zone, the state keeps set to Attacked.
When all units are destroyed in the Zone, the state will change to <strong>Empty</strong>, which expresses that the Zone is empty, and can be captured.
When units of the other coalition are in the Zone, and no other units of the owning coalition is in the Zone, the Zone is captured, and its state will change to <strong>Captured</strong>.</p>
<p>Event handlers can be defined by the mission designer to action on the state transitions.</p>
<h2>1. ZONE<em>CAPTURE</em>COALITION constructor</h2>
@ -188,8 +370,22 @@
<h3>2.1 ZONE<em>CAPTURE</em>COALITION States</h3>
<ul>
<li><strong>Captured</strong>: The Zone has been captured by an other coalition.</li>
<li><strong>Attacked</strong>: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.</li>
<li><strong>Guarded</strong>: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.</li>
<li><strong>Empty</strong>: The Zone is empty. There is not valid unit in the Zone.</li>
</ul>
<h3>2.2 ZONE<em>CAPTURE</em>COALITION Events</h3>
<ul>
<li><strong>Capture</strong>: The Zone has been captured by an other coalition.</li>
<li><strong>Attack</strong>: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.</li>
<li><strong>Guard</strong>: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.</li>
<li><strong>Empty</strong>: The Zone is empty. There is not valid unit in the Zone.
</li>
</ul>
</dd>
</dl>
@ -200,6 +396,151 @@
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).Attack" >
<strong>ZONE_CAPTURE_COALITION:Attack()</strong>
</a>
</dt>
<dd>
<p>Attack Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).Capture" >
<strong>ZONE_CAPTURE_COALITION:Capture()</strong>
</a>
</dt>
<dd>
<p>Capture Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).Empty" >
<strong>ZONE_CAPTURE_COALITION:Empty()</strong>
</a>
</dt>
<dd>
<p>Empty Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).Guard" >
<strong>ZONE_CAPTURE_COALITION:Guard()</strong>
</a>
</dt>
<dd>
<p>Guard Trigger for ZONE<em>CAPTURE</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).IsAttacked" >
<strong>ZONE_CAPTURE_COALITION:IsAttacked()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).IsCaptured" >
<strong>ZONE_CAPTURE_COALITION:IsCaptured()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).IsEmpty" >
<strong>ZONE_CAPTURE_COALITION:IsEmpty()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).IsGuarded" >
<strong>ZONE_CAPTURE_COALITION:IsGuarded()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).Mark" >
<strong>ZONE_CAPTURE_COALITION:Mark()</strong>
</a>
</dt>
<dd>
<p>Mark.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_CAPTURE_COALITION).MarkBlue" >
<strong>ZONE_CAPTURE_COALITION.MarkBlue</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_CAPTURE_COALITION).MarkRed" >
<strong>ZONE_CAPTURE_COALITION.MarkRed</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).New" >
<strong>ZONE_CAPTURE_COALITION:New(Zone, Coalition)</strong>
</a>
@ -228,6 +569,302 @@ The initial coalition owning the zone.</p>
<p><em><a href="##(ZONE_CAPTURE_COALITION)">#ZONE<em>CAPTURE</em>COALITION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnAfterAttack" >
<strong>ZONE_CAPTURE_COALITION:OnAfterAttack(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Attack Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnAfterCapture" >
<strong>ZONE_CAPTURE_COALITION:OnAfterCapture(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Capture Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnAfterEmpty" >
<strong>ZONE_CAPTURE_COALITION:OnAfterEmpty(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Empty Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnAfterGuard" >
<strong>ZONE_CAPTURE_COALITION:OnAfterGuard(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Guard Handler OnAfter for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnBeforeAttack" >
<strong>ZONE_CAPTURE_COALITION:OnBeforeAttack(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Attack Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnBeforeCapture" >
<strong>ZONE_CAPTURE_COALITION:OnBeforeCapture(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Capture Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnBeforeEmpty" >
<strong>ZONE_CAPTURE_COALITION:OnBeforeEmpty(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Empty Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).OnBeforeGuard" >
<strong>ZONE_CAPTURE_COALITION:OnBeforeGuard(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Guard Handler OnBefore for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_CAPTURE_COALITION).ScheduleStatusZone" >
<strong>ZONE_CAPTURE_COALITION.ScheduleStatusZone</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_CAPTURE_COALITION).SmokeScheduler" >
<strong>ZONE_CAPTURE_COALITION.SmokeScheduler</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -242,6 +879,129 @@ The initial coalition owning the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).StatusZone" >
<strong>ZONE_CAPTURE_COALITION:StatusZone()</strong>
</a>
</dt>
<dd>
<p>Check status Coalition ownership.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).__Attack" >
<strong>ZONE_CAPTURE_COALITION:__Attack(Delay)</strong>
</a>
</dt>
<dd>
<p>Attack Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).__Capture" >
<strong>ZONE_CAPTURE_COALITION:__Capture(Delay)</strong>
</a>
</dt>
<dd>
<p>Capture Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).__Empty" >
<strong>ZONE_CAPTURE_COALITION:__Empty(Delay)</strong>
</a>
</dt>
<dd>
<p>Empty Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).__Guard" >
<strong>ZONE_CAPTURE_COALITION:__Guard(Delay)</strong>
</a>
</dt>
<dd>
<p>Guard Asynchronous Trigger for ZONE<em>CAPTURE</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).onafterGuard" >
<strong>ZONE_CAPTURE_COALITION:onafterGuard()</strong>
</a>
</dt>
<dd>
<p>When started, check the Coalition status.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).onenterAttacked" >
<strong>ZONE_CAPTURE_COALITION:onenterAttacked()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -255,6 +1015,32 @@ The initial coalition owning the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).onenterEmpty" >
<strong>ZONE_CAPTURE_COALITION:onenterEmpty()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_CAPTURE_COALITION).onenterGuarded" >
<strong>ZONE_CAPTURE_COALITION:onenterGuarded()</strong>
</a>
</dt>
<dd>
<p>Bound.</p>
</dd>
</dl>

View File

@ -486,6 +486,7 @@ The name of the player.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_GOAL).SmokeTime" >
<strong>ZONE_GOAL.SmokeTime</strong>
</a>
@ -494,6 +495,9 @@ The name of the player.</p>
<p>self.SmokeColor = nil</p>
</dd>
</dl>
<dl class="function">

View File

@ -142,27 +142,9 @@ Derived classes implement the ways how the achievements can be realized.</p>
<h2><a id="#(ZONE_GOAL_COALITION)">Type <code>ZONE_GOAL_COALITION</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).Attack">ZONE_GOAL_COALITION:Attack()</a></td>
<td class="summary">
<p>Attack Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).Capture">ZONE_GOAL_COALITION:Capture()</a></td>
<td class="summary">
<p>Capture Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).Coalition">ZONE_GOAL_COALITION.Coalition</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).Empty">ZONE_GOAL_COALITION:Empty()</a></td>
<td class="summary">
<p>Empty Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
@ -175,126 +157,18 @@ Derived classes implement the ways how the achievements can be realized.</p>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).GetCoalitionName">ZONE_GOAL_COALITION:GetCoalitionName()</a></td>
<td class="summary">
<p>Get the owning coalition name of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).Guard">ZONE_GOAL_COALITION:Guard()</a></td>
<td class="summary">
<p>Guard Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).IsAttacked">ZONE_GOAL_COALITION:IsAttacked()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).IsCaptured">ZONE_GOAL_COALITION:IsCaptured()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).IsEmpty">ZONE_GOAL_COALITION:IsEmpty()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).IsGuarded">ZONE_GOAL_COALITION:IsGuarded()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).Mark">ZONE_GOAL_COALITION:Mark()</a></td>
<td class="summary">
<p>Mark.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).MarkBlue">ZONE_GOAL_COALITION.MarkBlue</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).MarkRed">ZONE_GOAL_COALITION.MarkRed</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).New">ZONE_GOAL_COALITION:New(Zone, Coalition)</a></td>
<td class="summary">
<p>ZONE<em>GOAL</em>COALITION Constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnAfterAttack">ZONE_GOAL_COALITION:OnAfterAttack(From, Event, To)</a></td>
<td class="summary">
<p>Attack Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnAfterCapture">ZONE_GOAL_COALITION:OnAfterCapture(From, Event, To)</a></td>
<td class="summary">
<p>Capture Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnAfterEmpty">ZONE_GOAL_COALITION:OnAfterEmpty(From, Event, To)</a></td>
<td class="summary">
<p>Empty Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnAfterGuard">ZONE_GOAL_COALITION:OnAfterGuard(From, Event, To)</a></td>
<td class="summary">
<p>Guard Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnBeforeAttack">ZONE_GOAL_COALITION:OnBeforeAttack(From, Event, To)</a></td>
<td class="summary">
<p>Attack Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnBeforeCapture">ZONE_GOAL_COALITION:OnBeforeCapture(From, Event, To)</a></td>
<td class="summary">
<p>Capture Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnBeforeEmpty">ZONE_GOAL_COALITION:OnBeforeEmpty(From, Event, To)</a></td>
<td class="summary">
<p>Empty Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).OnBeforeGuard">ZONE_GOAL_COALITION:OnBeforeGuard(From, Event, To)</a></td>
<td class="summary">
<p>Guard Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).ScheduleStatusZone">ZONE_GOAL_COALITION.ScheduleStatusZone</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).SetCoalition">ZONE_GOAL_COALITION:SetCoalition(Coalition)</a></td>
<td class="summary">
<p>Set the owning coalition of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).SmokeScheduler">ZONE_GOAL_COALITION.SmokeScheduler</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -307,60 +181,6 @@ Derived classes implement the ways how the achievements can be realized.</p>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).StatusZone">ZONE_GOAL_COALITION:StatusZone()</a></td>
<td class="summary">
<p>Check status Coalition ownership.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).__Attack">ZONE_GOAL_COALITION:__Attack(Delay)</a></td>
<td class="summary">
<p>Attack Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).__Capture">ZONE_GOAL_COALITION:__Capture(Delay)</a></td>
<td class="summary">
<p>Capture Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).__Empty">ZONE_GOAL_COALITION:__Empty(Delay)</a></td>
<td class="summary">
<p>Empty Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).__Guard">ZONE_GOAL_COALITION:__Guard(Delay)</a></td>
<td class="summary">
<p>Guard Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).onafterGuard">ZONE_GOAL_COALITION:onafterGuard()</a></td>
<td class="summary">
<p>When started, check the Coalition status.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).onenterAttacked">ZONE_GOAL_COALITION:onenterAttacked()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).onenterCaptured">ZONE_GOAL_COALITION:onenterCaptured()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).onenterEmpty">ZONE_GOAL_COALITION:onenterEmpty()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GOAL_COALITION).onenterGuarded">ZONE_GOAL_COALITION:onenterGuarded()</a></td>
<td class="summary">
<p>Bound.</p>
</td>
</tr>
</table>
@ -393,22 +213,8 @@ Derived classes implement the ways how the achievements can be realized.</p>
<h3>2.1 ZONE<em>GOAL</em>COALITION States</h3>
<ul>
<li><strong>Captured</strong>: The Zone has been captured by an other coalition.</li>
<li><strong>Attacked</strong>: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.</li>
<li><strong>Guarded</strong>: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.</li>
<li><strong>Empty</strong>: The Zone is empty. There is not valid unit in the Zone.</li>
</ul>
<h3>2.2 ZONE<em>GOAL</em>COALITION Events</h3>
<ul>
<li><strong>Capture</strong>: The Zone has been captured by an other coalition.</li>
<li><strong>Attack</strong>: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.</li>
<li><strong>Guard</strong>: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.</li>
<li><strong>Empty</strong>: The Zone is empty. There is not valid unit in the Zone.</li>
</ul>
<h3>2.3 ZONE<em>GOAL</em>COALITION State Machine</h3>
@ -421,32 +227,6 @@ Derived classes implement the ways how the achievements can be realized.</p>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).Attack" >
<strong>ZONE_GOAL_COALITION:Attack()</strong>
</a>
</dt>
<dd>
<p>Attack Trigger for ZONE<em>GOAL</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).Capture" >
<strong>ZONE_GOAL_COALITION:Capture()</strong>
</a>
</dt>
<dd>
<p>Capture Trigger for ZONE<em>GOAL</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_GOAL_COALITION).Coalition" >
<strong>ZONE_GOAL_COALITION.Coalition</strong>
@ -456,19 +236,6 @@ Derived classes implement the ways how the achievements can be realized.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).Empty" >
<strong>ZONE_GOAL_COALITION:Empty()</strong>
</a>
</dt>
<dd>
<p>Empty Trigger for ZONE<em>GOAL</em>COALITION</p>
</dd>
</dl>
<dl class="function">
@ -505,112 +272,6 @@ Coalition.</p>
<p><em>#string:</em>
Coalition name.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).Guard" >
<strong>ZONE_GOAL_COALITION:Guard()</strong>
</a>
</dt>
<dd>
<p>Guard Trigger for ZONE<em>GOAL</em>COALITION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).IsAttacked" >
<strong>ZONE_GOAL_COALITION:IsAttacked()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).IsCaptured" >
<strong>ZONE_GOAL_COALITION:IsCaptured()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).IsEmpty" >
<strong>ZONE_GOAL_COALITION:IsEmpty()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).IsGuarded" >
<strong>ZONE_GOAL_COALITION:IsGuarded()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).Mark" >
<strong>ZONE_GOAL_COALITION:Mark()</strong>
</a>
</dt>
<dd>
<p>Mark.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_GOAL_COALITION).MarkBlue" >
<strong>ZONE_GOAL_COALITION.MarkBlue</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_GOAL_COALITION).MarkRed" >
<strong>ZONE_GOAL_COALITION.MarkRed</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -644,288 +305,6 @@ The initial coalition owning the zone.</p>
<p><em><a href="##(ZONE_GOAL_COALITION)">#ZONE<em>GOAL</em>COALITION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnAfterAttack" >
<strong>ZONE_GOAL_COALITION:OnAfterAttack(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Attack Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnAfterCapture" >
<strong>ZONE_GOAL_COALITION:OnAfterCapture(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Capture Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnAfterEmpty" >
<strong>ZONE_GOAL_COALITION:OnAfterEmpty(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Empty Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnAfterGuard" >
<strong>ZONE_GOAL_COALITION:OnAfterGuard(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Guard Handler OnAfter for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnBeforeAttack" >
<strong>ZONE_GOAL_COALITION:OnBeforeAttack(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Attack Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnBeforeCapture" >
<strong>ZONE_GOAL_COALITION:OnBeforeCapture(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Capture Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnBeforeEmpty" >
<strong>ZONE_GOAL_COALITION:OnBeforeEmpty(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Empty Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).OnBeforeGuard" >
<strong>ZONE_GOAL_COALITION:OnBeforeGuard(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Guard Handler OnBefore for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_GOAL_COALITION).ScheduleStatusZone" >
<strong>ZONE_GOAL_COALITION.ScheduleStatusZone</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -947,20 +326,6 @@ The initial coalition owning the zone.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_GOAL_COALITION).SmokeScheduler" >
<strong>ZONE_GOAL_COALITION.SmokeScheduler</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -988,155 +353,6 @@ The initial coalition owning the zone.</p>
<p>Check status Coalition ownership.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).__Attack" >
<strong>ZONE_GOAL_COALITION:__Attack(Delay)</strong>
</a>
</dt>
<dd>
<p>Attack Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).__Capture" >
<strong>ZONE_GOAL_COALITION:__Capture(Delay)</strong>
</a>
</dt>
<dd>
<p>Capture Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).__Empty" >
<strong>ZONE_GOAL_COALITION:__Empty(Delay)</strong>
</a>
</dt>
<dd>
<p>Empty Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).__Guard" >
<strong>ZONE_GOAL_COALITION:__Guard(Delay)</strong>
</a>
</dt>
<dd>
<p>Guard Asynchronous Trigger for ZONE<em>GOAL</em>COALITION</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).onafterGuard" >
<strong>ZONE_GOAL_COALITION:onafterGuard()</strong>
</a>
</dt>
<dd>
<p>When started, check the Coalition status.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).onenterAttacked" >
<strong>ZONE_GOAL_COALITION:onenterAttacked()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).onenterCaptured" >
<strong>ZONE_GOAL_COALITION:onenterCaptured()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).onenterEmpty" >
<strong>ZONE_GOAL_COALITION:onenterEmpty()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GOAL_COALITION).onenterGuarded" >
<strong>ZONE_GOAL_COALITION:onenterGuarded()</strong>
</a>
</dt>
<dd>
<p>Bound.</p>
</dd>
</dl>

View File

@ -711,7 +711,7 @@ which are excellent tools to be reused in an OO environment!.</p>
<tr>
<td class="name" nowrap="nowrap"><a href="ZoneCaptureCoalition.html">ZoneCaptureCoalition</a></td>
<td class="summary">
<p><strong>Functional (wIP)</strong> -- Base class that models processes to capture a Zone for a Coalition, guarded by another Coalition.</p>
<p><strong>Functional (wIP)</strong> -- Models the process to capture a Zone for a Coalition, which is guarded by another Coalition.</p>
</td>
</tr>
<tr>