Merge remote-tracking branch 'refs/remotes/origin/master' into release-2-2-pre

This commit is contained in:
FlightControl 2017-06-25 07:41:47 +02:00
commit 0203e73c71
17 changed files with 1697 additions and 344 deletions

View File

@ -46,6 +46,7 @@ function MISSION:New( CommandCenter, MissionName, MissionPriority, MissionBriefi
self.MissionCoalition = MissionCoalition
self.Tasks = {}
self.PlayerNames = {} -- These are the players that achieved progress in the mission.
self:SetStartState( "IDLE" )
@ -501,7 +502,8 @@ function MISSION:GetMenu( TaskGroup ) -- R2.1 -- Changed Menu Structure
Menu.ReportFailedTasksMenu = Menu.ReportFailedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Failed Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Failed" )
Menu.ReportHeldTasksMenu = Menu.ReportHeldTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Held Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Hold" )
Menu.PlayerReportsMenu = Menu.PlayerReportsMenu or MENU_GROUP:New( TaskGroup, "Player Reports", Menu.MainMenu )
Menu.PlayerReportsMenu = Menu.PlayerReportsMenu or MENU_GROUP:New( TaskGroup, "Statistics Reports", Menu.MainMenu )
Menu.ReportMissionHistory = Menu.ReportPlayersHistory or MENU_GROUP_COMMAND:New( TaskGroup, "Report Mission Progress", Menu.PlayerReportsMenu, self.MenuReportPlayersProgress, self, TaskGroup )
Menu.ReportPlayersPerTaskMenu = Menu.ReportPlayersPerTaskMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Players per Task", Menu.PlayerReportsMenu, self.MenuReportPlayersPerTask, self, TaskGroup )
return Menu.MainMenu
@ -661,6 +663,18 @@ function MISSION:GetTaskTypes()
return TaskTypeList
end
function MISSION:AddPlayerName( PlayerName )
self.PlayerNames = self.PlayerNames or {}
self.PlayerNames[PlayerName] = PlayerName
return self
end
function MISSION:GetPlayerNames()
return self.PlayerNames
end
--- Create a briefing report of the Mission.
-- @param #MISSION self
-- @return #string
@ -736,6 +750,7 @@ function MISSION:ReportStatus()
return Report:Text()
end
--- Create an active player report of the Mission.
-- This reports provides a one liner of the mission status. It indicates how many players and how many Tasks.
--
@ -777,6 +792,56 @@ function MISSION:ReportPlayersPerTask( ReportGroup )
return Report:Text()
end
--- Create an Mission Progress report of the Mission.
-- This reports provides a one liner per player of the mission achievements per task.
--
-- Mission "<MissionName>" - <MissionStatus> - Active Players Report
-- - Player <PlayerName>: Task <TaskName> <TaskStatus>: <Progress>
-- - Player <PlayerName>: Task <TaskName> <TaskStatus>: <Progress>
-- - ..
--
-- @param #MISSION self
-- @return #string
function MISSION:ReportPlayersProgress( ReportGroup )
local Report = REPORT:New()
-- List the name of the mission.
local Name = self:GetName()
-- Determine the status of the mission.
local Status = self:GetState()
Report:Add( string.format( '%s - %s - Players per Task Progress Report', Name, Status ) )
local PlayerList = {}
-- Determine how many tasks are remaining.
for TaskID, Task in pairs( self:GetTasks() ) do
local Task = Task -- Tasking.Task#TASK
local TaskGoalTotal = Task:GetGoalTotal() or 0
local TaskName = Task:GetName()
PlayerList[TaskName] = PlayerList[TaskName] or {}
if TaskGoalTotal ~= 0 then
local PlayerNames = self:GetPlayerNames()
for PlayerName, PlayerData in pairs( PlayerNames ) do
PlayerList[TaskName][PlayerName] = string.format( 'Player (%s): Task "%s": %d%%', PlayerName, TaskName, Task:GetPlayerProgress( PlayerName ) * 100 / TaskGoalTotal )
end
else
PlayerList[TaskName]["_"] = string.format( 'Player (---): Task "%s": %d%%', TaskName, 0 )
end
end
for TaskName, TaskData in pairs( PlayerList ) do
for PlayerName, TaskText in pairs( TaskData ) do
Report:Add( string.format( ' - %s', TaskText ) )
end
end
return Report:Text()
end
--- Create a summary report of the Mission (one line).
-- @param #MISSION self
@ -902,6 +967,15 @@ function MISSION:MenuReportPlayersPerTask( ReportGroup )
self:GetCommandCenter():MessageToGroup( Report, ReportGroup )
end
--- @param #MISSION self
-- @param Wrapper.Group#GROUP ReportGroup
function MISSION:MenuReportPlayersProgress( ReportGroup )
local Report = self:ReportPlayersProgress()
self:GetCommandCenter():MessageToGroup( Report, ReportGroup )
end

View File

@ -1183,6 +1183,11 @@ function TASK:onenterAssigned( From, Event, To, PlayerUnit, PlayerName )
if From ~= "Assigned" then
self:GetMission():GetCommandCenter():MessageToCoalition( "Task " .. self:GetName() .. " is assigned." )
-- Set the total Progress to be achieved.
self:SetGoalTotal() -- Polymorphic to set the initial goal total!
if self.Dispatcher then
self:E( "Firing Assign event " )
self.Dispatcher:Assign( self, PlayerUnit, PlayerName )
@ -1485,8 +1490,19 @@ do -- Additional Task Scoring and Task Progress
self.TaskProgress[ProgressTime].PlayerName = PlayerName
self.TaskProgress[ProgressTime].ProgressText = ProgressText
self.TaskProgress[ProgressTime].ProgressPoints = ProgressPoints
self:GetMission():AddPlayerName( PlayerName )
return self
end
function TASK:GetPlayerProgress( PlayerName )
local ProgressPlayer = 0
for ProgressTime, ProgressData in pairs( self.TaskProgress ) do
if PlayerName == ProgressData.PlayerName then
ProgressPlayer = ProgressPlayer + ProgressData.ProgressPoints
end
end
return ProgressPlayer
end
--- Set a score when progress has been made by the player.
-- @param #TASK self

View File

@ -266,6 +266,18 @@ do -- TASK_A2A
local ActRouteTarget = ProcessUnit:GetProcess( "Engaging", "RouteToTargetZone" ) -- Actions.Act_Route#ACT_ROUTE_ZONE
return ActRouteTarget:GetZone()
end
function TASK_A2A:SetGoalTotal()
self.GoalTotal = self.TargetSetUnit:Count()
end
function TASK_A2A:GetGoalTotal()
return self.GoalTotal
end
end
@ -386,8 +398,7 @@ do -- TASK_A2A_INTERCEPT
return self
end
end

View File

@ -60,7 +60,7 @@ do -- TASK_A2G
self.TargetSetUnit = TargetSetUnit
self.TaskType = TaskType
local Fsm = self:GetUnitProcess()
@ -266,7 +266,17 @@ do -- TASK_A2G
local ActRouteTarget = ProcessUnit:GetProcess( "Engaging", "RouteToTargetZone" ) -- Actions.Act_Route#ACT_ROUTE_ZONE
return ActRouteTarget:GetZone()
end
function TASK_A2G:SetGoalTotal()
self.GoalTotal = self.TargetSetUnit:Count()
end
function TASK_A2G:GetGoalTotal()
return self.GoalTotal
end
end

View File

@ -223,6 +223,18 @@
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).New">ACT_ACCOUNT_DEADS:New(TargetSetUnit, TaskName)</a></td>
<td class="summary">
<p>Creates a new DESTROY process.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).OnEventHit">ACT_ACCOUNT_DEADS:OnEventHit(EventData)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).PlayerHits">ACT_ACCOUNT_DEADS.PlayerHits</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -238,13 +250,19 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onafterEvent">ACT_ACCOUNT_DEADS:onafterEvent(ProcessUnit, Event, From, To, Task)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onafterEvent">ACT_ACCOUNT_DEADS:onafterEvent(ProcessClient, Task, From, Event, To, EventData)</a></td>
<td class="summary">
<p>StateMachine callback function</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onenterAccount">ACT_ACCOUNT_DEADS:onenterAccount(ProcessUnit, Event, From, To, Task, EventData)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onenterAccountForOther">ACT_ACCOUNT_DEADS:onenterAccountForOther(ProcessClient, Task, From, Event, To, EventData)</a></td>
<td class="summary">
<p>StateMachine callback function</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onenterAccountForPlayer">ACT_ACCOUNT_DEADS:onenterAccountForPlayer(ProcessClient, Task, From, Event, To, EventData)</a></td>
<td class="summary">
<p>StateMachine callback function</p>
</td>
@ -253,6 +271,12 @@
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onenterReport">ACT_ACCOUNT_DEADS:onenterReport(ProcessUnit, Event, From, To, Task)</a></td>
<td class="summary">
<p>StateMachine callback function</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).onfuncEventCrash">ACT_ACCOUNT_DEADS:onfuncEventCrash(EventData)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -674,6 +698,40 @@ Each successful dead will trigger an Account state transition that can be scored
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ACT_ACCOUNT_DEADS).OnEventHit" >
<strong>ACT_ACCOUNT_DEADS:OnEventHit(EventData)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ACT_ACCOUNT_DEADS).PlayerHits" >
<strong>ACT_ACCOUNT_DEADS.PlayerHits</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -708,7 +766,7 @@ Each successful dead will trigger an Account state transition that can be scored
<dt>
<a id="#(ACT_ACCOUNT_DEADS).onafterEvent" >
<strong>ACT_ACCOUNT_DEADS:onafterEvent(ProcessUnit, Event, From, To, Task)</strong>
<strong>ACT_ACCOUNT_DEADS:onafterEvent(ProcessClient, Task, From, Event, To, EventData)</strong>
</a>
</dt>
<dd>
@ -719,12 +777,12 @@ Each successful dead will trigger an Account state transition that can be scored
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> ProcessUnit </em></code>: </p>
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> ProcessClient </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
<p><code><em><a href="Tasking.Task.html##(TASK)">Tasking.Task#TASK</a> Task </em></code>: </p>
</li>
<li>
@ -734,12 +792,17 @@ Each successful dead will trigger an Account state transition that can be scored
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em> Task </em></code>: </p>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>
@ -748,8 +811,8 @@ Each successful dead will trigger an Account state transition that can be scored
<dl class="function">
<dt>
<a id="#(ACT_ACCOUNT_DEADS).onenterAccount" >
<strong>ACT_ACCOUNT_DEADS:onenterAccount(ProcessUnit, Event, From, To, Task, EventData)</strong>
<a id="#(ACT_ACCOUNT_DEADS).onenterAccountForOther" >
<strong>ACT_ACCOUNT_DEADS:onenterAccountForOther(ProcessClient, Task, From, Event, To, EventData)</strong>
</a>
</dt>
<dd>
@ -760,12 +823,12 @@ Each successful dead will trigger an Account state transition that can be scored
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> ProcessUnit </em></code>: </p>
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> ProcessClient </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
<p><code><em><a href="Tasking.Task.html##(TASK)">Tasking.Task#TASK</a> Task </em></code>: </p>
</li>
<li>
@ -775,17 +838,63 @@ Each successful dead will trigger an Account state transition that can be scored
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em> Task </em></code>: </p>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ACT_ACCOUNT_DEADS).onenterAccountForPlayer" >
<strong>ACT_ACCOUNT_DEADS:onenterAccountForPlayer(ProcessClient, Task, From, Event, To, EventData)</strong>
</a>
</dt>
<dd>
<p>StateMachine callback function</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> ProcessClient </em></code>: </p>
</li>
<li>
<p><code><em> EventData </em></code>: </p>
<p><code><em><a href="Tasking.Task.html##(TASK)">Tasking.Task#TASK</a> Task </em></code>: </p>
</li>
<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>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>
@ -835,6 +944,27 @@ Each successful dead will trigger an Account state transition that can be scored
<dl class="function">
<dt>
<a id="#(ACT_ACCOUNT_DEADS).onfuncEventCrash" >
<strong>ACT_ACCOUNT_DEADS:onfuncEventCrash(EventData)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Event.html##(EVENTDATA)">Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ACT_ACCOUNT_DEADS).onfuncEventDead" >
<strong>ACT_ACCOUNT_DEADS:onfuncEventDead(EventData)</strong>
</a>

View File

@ -3059,6 +3059,7 @@ 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

@ -900,7 +900,6 @@ function below will use the range 1-7 just in case</p>
<dl class="function">
<dt>
<em></em>
<a id="#(DESIGNATE).LaserCodes" >
<strong>DESIGNATE.LaserCodes</strong>
</a>

View File

@ -2393,6 +2393,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>
@ -2406,6 +2407,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>

View File

@ -633,12 +633,6 @@ Additionally, I've added extendability and created an API that allows seamless F
<td class="name" nowrap="nowrap"><a href="##(FSM_PROCESS).onenterFailed">FSM_PROCESS:onenterFailed(ProcessUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_PROCESS).onenterSuccess">FSM_PROCESS:onenterSuccess(ProcessUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -2619,27 +2613,6 @@ self</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> ProcessUnit </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_PROCESS).onenterSuccess" >
<strong>FSM_PROCESS:onenterSuccess(ProcessUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>

View File

@ -227,6 +227,7 @@ on defined intervals (currently every minute).</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong>
</a>
@ -235,6 +236,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

@ -2799,7 +2799,6 @@ The y coordinate.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(POINT_VEC2).z" >
<strong>POINT_VEC2.z</strong>
</a>

View File

@ -822,12 +822,6 @@ and any spaces before and after the resulting name are removed.</p>
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).uncontrolled">SPAWN.uncontrolled</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -2200,9 +2194,6 @@ The group that was spawned. You can use this group for further actions.</p>
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
</dd>
</dl>
<dl class="function">
@ -2735,6 +2726,9 @@ when nothing was spawned.</p>
<p> Overwrite unit names by default with group name.</p>
</dd>
</dl>
<dl class="function">
@ -3129,7 +3123,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>
@ -3153,7 +3147,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p>
</dd>
</dl>
@ -3733,20 +3727,6 @@ True = Continue Scheduler</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).uncontrolled" >
<strong>SPAWN.uncontrolled</strong>
</a>
</dt>
<dd>
</dd>
</dl>

View File

@ -141,6 +141,12 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).AbortGroup">TASK:AbortGroup(PlayerUnit, PlayerGroup)</a></td>
<td class="summary">
<p>Abort a PlayerUnit from a Task.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).AddProgress">TASK:AddProgress(PlayerName, ProgressText, ProgressTime, ProgressPoints)</a></td>
<td class="summary">
<p>Add Task Progress for a Player Name</p>
</td>
</tr>
<tr>
@ -297,6 +303,12 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).GetUnitProcess">TASK:GetUnitProcess(TaskUnit)</a></td>
<td class="summary">
<p>Get the Task FSM Process Template</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).Goal">TASK:Goal()</a></td>
<td class="summary">
<p>Goal Trigger for TASK</p>
</td>
</tr>
<tr>
@ -411,6 +423,12 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).New">TASK:New(Mission, SetGroupAssign, TaskName, TaskType, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).OnAfterGoal">TASK:OnAfterGoal(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>Goal Handler OnAfter for TASK</p>
</td>
</tr>
<tr>
@ -429,6 +447,12 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).OnAfterPlayerDead">TASK:OnAfterPlayerDead(PlayerUnit, PlayerName)</a></td>
<td class="summary">
<p>FSM PlayerDead event handler prototype for TASK.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).OnBeforeGoal">TASK:OnBeforeGoal(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>Goal Handler OnBefore for TASK</p>
</td>
</tr>
<tr>
@ -549,6 +573,24 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).SetPlannedMenuForGroup">TASK:SetPlannedMenuForGroup(TaskGroup, MenuText, MenuTime)</a></td>
<td class="summary">
<p>Set the planned menu option of the <a href="Task.html">Task</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).SetScoreOnFail">TASK:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).SetScoreOnProgress">TASK:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when progress has been made by the player.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).SetScoreOnSuccess">TASK:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
@ -645,6 +687,12 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).TaskName">TASK.TaskName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).TaskProgress">TASK.TaskProgress</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -699,6 +747,12 @@
<td class="name" nowrap="nowrap"><a href="##(TASK).__Fail">TASK:__Fail()</a></td>
<td class="summary">
<p>FSM Fail asynchronous event function for TASK.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).__Goal">TASK:__Goal(Delay)</a></td>
<td class="summary">
<p>Goal Asynchronous Trigger for TASK</p>
</td>
</tr>
<tr>
@ -883,6 +937,50 @@ The CLIENT or UNIT of the Player aborting the Task.</p>
<p><em><a href="##(TASK)">#TASK</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).AddProgress" >
<strong>TASK:AddProgress(PlayerName, ProgressText, ProgressTime, ProgressPoints)</strong>
</a>
</dt>
<dd>
<p>Add Task Progress for a Player Name</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#string ProgressText </em></code>:
The text that explains the Progress achieved.</p>
</li>
<li>
<p><code><em>#number ProgressTime </em></code>:
The time the progress was achieved.</p>
</li>
<li>
<p><code><em> ProgressPoints </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK)">#TASK</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -1407,6 +1505,19 @@ TaskType</p>
<p><em><a href="Core.Fsm.html##(FSM_PROCESS)">Core.Fsm#FSM_PROCESS</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).Goal" >
<strong>TASK:Goal()</strong>
</a>
</dt>
<dd>
<p>Goal Trigger for TASK</p>
</dd>
</dl>
<dl class="function">
@ -1801,6 +1912,42 @@ self</p>
<dl class="function">
<dt>
<a id="#(TASK).OnAfterGoal" >
<strong>TASK:OnAfterGoal(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Goal Handler OnAfter for TASK</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>: </p>
</li>
<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="#(TASK).OnAfterPlayerAborted" >
<strong>TASK:OnAfterPlayerAborted(PlayerUnit, PlayerName)</strong>
</a>
@ -1885,6 +2032,47 @@ The name of the Player.</p>
<dl class="function">
<dt>
<a id="#(TASK).OnBeforeGoal" >
<strong>TASK:OnBeforeGoal(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Goal Handler OnBefore for TASK</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>: </p>
</li>
<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="#(TASK).RefreshMenus" >
<strong>TASK:RefreshMenus(TaskGroup, MenuTime)</strong>
</a>
@ -2392,6 +2580,120 @@ The menu text.</p>
<p><em><a href="##(TASK)">#TASK</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).SetScoreOnFail" >
<strong>TASK:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK)">#TASK</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).SetScoreOnProgress" >
<strong>TASK:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when progress has been made by the player.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK)">#TASK</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).SetScoreOnSuccess" >
<strong>TASK:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK)">#TASK</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -2663,6 +2965,19 @@ Fsm#FSM_PROCESS</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).TaskProgress" >
<strong>TASK.TaskProgress</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -2818,6 +3133,27 @@ self</p>
<dl class="function">
<dt>
<a id="#(TASK).__Goal" >
<strong>TASK:__Goal(Delay)</strong>
</a>
</dt>
<dd>
<p>Goal Asynchronous Trigger for TASK</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).__Replan" >
<strong>TASK:__Replan()</strong>
</a>

View File

@ -192,12 +192,6 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A).New">TASK_A2A:New(Mission, SetAttack, TaskName, UnitSetTargets, TargetDistance, TargetZone, TargetSetUnit, TaskType, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK_A2A.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A).SetPenaltyOnFailed">TASK_A2A:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
@ -210,18 +204,6 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A).SetRendezVousZone">TASK_A2A:SetRendezVousZone(RendezVousZone, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A).SetScoreOnDestroy">TASK_A2A:SetScoreOnDestroy(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A).SetScoreOnSuccess">TASK_A2A:SetScoreOnSuccess(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
@ -250,12 +232,36 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_ENGAGE).New">TASK_A2A_ENGAGE:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>A2A</em>ENGAGE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_ENGAGE).SetScoreOnFail">TASK_A2A_ENGAGE:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_ENGAGE).SetScoreOnProgress">TASK_A2A_ENGAGE:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_ENGAGE).SetScoreOnSuccess">TASK_A2A_ENGAGE:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_ENGAGE).TargetSetUnit">TASK_A2A_ENGAGE.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_ENGAGE).onafterGoal">TASK_A2A_ENGAGE:onafterGoal(TaskUnit, From, Event, To)</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -266,12 +272,36 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_INTERCEPT).New">TASK_A2A_INTERCEPT:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>A2A</em>INTERCEPT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_INTERCEPT).SetScoreOnFail">TASK_A2A_INTERCEPT:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_INTERCEPT).SetScoreOnProgress">TASK_A2A_INTERCEPT:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_INTERCEPT).SetScoreOnSuccess">TASK_A2A_INTERCEPT:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_INTERCEPT).TargetSetUnit">TASK_A2A_INTERCEPT.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_INTERCEPT).onafterGoal">TASK_A2A_INTERCEPT:onafterGoal(TaskUnit, From, Event, To)</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -282,12 +312,36 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_SWEEP).New">TASK_A2A_SWEEP:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>A2A</em>SWEEP.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_SWEEP).SetScoreOnFail">TASK_A2A_SWEEP:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_SWEEP).SetScoreOnProgress">TASK_A2A_SWEEP:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_SWEEP).SetScoreOnSuccess">TASK_A2A_SWEEP:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_SWEEP).TargetSetUnit">TASK_A2A_SWEEP.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2A_SWEEP).onafterGoal">TASK_A2A_SWEEP:onafterGoal(TaskUnit, From, Event, To)</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -617,44 +671,6 @@ If the TargetZone parameter is specified, the player will be routed to the cente
<p><em><a href="##(TASK_A2A)">#TASK_A2A</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A).SetPenaltyOnFailed" >
<strong>TASK_A2A:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when the A2A attack has failed.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A)">#TASK_A2A</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -720,82 +736,6 @@ The Zone object where the RendezVous is located on the map.</p>
<dl class="function">
<dt>
<a id="#(TASK_A2A).SetScoreOnDestroy" >
<strong>TASK_A2A:SetScoreOnDestroy(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when the target has been destroyed.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A)">#TASK_A2A</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A).SetScoreOnSuccess" >
<strong>TASK_A2A:SetScoreOnSuccess(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when all targets hav been destroyed.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A)">#TASK_A2A</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A).SetTargetCoordinate" >
<strong>TASK_A2A:SetTargetCoordinate(TargetCoordinate, TaskUnit)</strong>
</a>
@ -924,6 +864,120 @@ The briefing of the task.</p>
<p><em><a href="##(TASK_A2A_ENGAGE)">#TASK<em>A2A</em>ENGAGE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_ENGAGE).SetScoreOnFail" >
<strong>TASK_A2A_ENGAGE:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_ENGAGE)">#TASK<em>A2A</em>ENGAGE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_ENGAGE).SetScoreOnProgress" >
<strong>TASK_A2A_ENGAGE:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_ENGAGE)">#TASK<em>A2A</em>ENGAGE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_ENGAGE).SetScoreOnSuccess" >
<strong>TASK_A2A_ENGAGE:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_ENGAGE)">#TASK<em>A2A</em>ENGAGE</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -938,6 +992,42 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_ENGAGE).onafterGoal" >
<strong>TASK_A2A_ENGAGE:onafterGoal(TaskUnit, From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
@ -990,8 +1080,122 @@ The briefing of the task.</p>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_INTERCEPT)">#TASK<em>A2A</em>INTERCEPT</a>:</em>
self</p>
<p><em><a href="##(TASK_A2A_INTERCEPT)">#TASK<em>A2A</em>INTERCEPT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_INTERCEPT).SetScoreOnFail" >
<strong>TASK_A2A_INTERCEPT:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_INTERCEPT)">#TASK<em>A2A</em>INTERCEPT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_INTERCEPT).SetScoreOnProgress" >
<strong>TASK_A2A_INTERCEPT:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_INTERCEPT)">#TASK<em>A2A</em>INTERCEPT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_INTERCEPT).SetScoreOnSuccess" >
<strong>TASK_A2A_INTERCEPT:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_INTERCEPT)">#TASK<em>A2A</em>INTERCEPT</a>:</em></p>
</dd>
</dl>
@ -1007,6 +1211,42 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_INTERCEPT).onafterGoal" >
<strong>TASK_A2A_INTERCEPT:onafterGoal(TaskUnit, From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
@ -1062,6 +1302,120 @@ The briefing of the task.</p>
<p><em><a href="##(TASK_A2A_SWEEP)">#TASK<em>A2A</em>SWEEP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_SWEEP).SetScoreOnFail" >
<strong>TASK_A2A_SWEEP:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_SWEEP)">#TASK<em>A2A</em>SWEEP</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_SWEEP).SetScoreOnProgress" >
<strong>TASK_A2A_SWEEP:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_SWEEP)">#TASK<em>A2A</em>SWEEP</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_SWEEP).SetScoreOnSuccess" >
<strong>TASK_A2A_SWEEP:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2A_SWEEP)">#TASK<em>A2A</em>SWEEP</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -1076,6 +1430,42 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2A_SWEEP).onafterGoal" >
<strong>TASK_A2A_SWEEP:onafterGoal(TaskUnit, From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
</ul>
</dd>
</dl>

View File

@ -340,6 +340,45 @@ You need to evaluate the value of this parameter carefully.
If too small, more intercept missions may be triggered upon detected target areas.
If too large, any airborne cap may not be able to reach the detected target area in time, because it is too far.</p>
<h2>4. Set <strong>Scoring</strong> and <strong>Messages</strong>:</h2>
<p>The TASK_A2A_DISPATCHER is a state machine. It triggers the event Assign when a new player joins a <a href="Task.html">Task</a> dispatched by the TASK_A2A_DISPATCHER.
An <em>event handler</em> can be defined to catch the <strong>Assign</strong> event, and add <strong>additional processing</strong> to set <em>scoring</em> and to <em>define messages</em>,
when the player reaches certain achievements in the task.</p>
<p>The prototype to handle the <strong>Assign</strong> event needs to be developed as follows:</p>
<pre><code> TaskDispatcher = TASK_A2A_DISPATCHER:New( ... )
--- @param #TaskDispatcher self
-- @param #string From Contains the name of the state from where the Event was triggered.
-- @param #string Event Contains the name of the event that was triggered. In this case Assign.
-- @param #string To Contains the name of the state that will be transitioned to.
-- @param Tasking.Task_A2A#TASK_A2A Task The Task object, which is any derived object from TASK_A2A.
-- @param Wrapper.Unit#UNIT TaskUnit The Unit or Client that contains the Player.
-- @param #string PlayerName The name of the Player that joined the TaskUnit.
function TaskDispatcher:OnAfterAssign( From, Event, To, Task, TaskUnit, PlayerName )
Task:SetScoreOnProgress( PlayerName, 20, TaskUnit )
Task:SetScoreOnSuccess( PlayerName, 200, TaskUnit )
Task:SetScoreOnFail( PlayerName, -100, TaskUnit )
end
</code></pre>
<p>The <strong>OnAfterAssign</strong> method (function) is added to the TaskDispatcher object.
This method will be called when a new player joins a unit in the set of groups in scope of the dispatcher.
So, this method will be called only <strong>ONCE</strong> when a player joins a unit in scope of the task.</p>
<p>The TASK class implements various methods to additional <strong>set scoring</strong> for player achievements:</p>
<ul>
<li><p><a href="Tasking.Task.html##(TASK).SetScoreOnProgress">Tasking.Task#TASK.SetScoreOnProgress</a>() will add additional scores when a player achieves <strong>Progress</strong> while executing the task.
Examples of <strong>task progress</strong> can be destroying units, arriving at zones etc.</p></li>
<li><p><a href="Tasking.Task.html##(TASK).SetScoreOnSuccess">Tasking.Task#TASK.SetScoreOnSuccess</a>() will add additional scores when the task goes into <strong>Success</strong> state.
This means the <strong>task has been successfully completed</strong>.</p></li>
<li><p><a href="Tasking.Task.html##(TASK).SetScoreOnSuccess">Tasking.Task#TASK.SetScoreOnSuccess</a>() will add additional (negative) scores when the task goes into <strong>Failed</strong> state.
This means the <strong>task has not been successfully completed</strong>, and the scores must be given with a negative value!</p></li>
</ul>
</dd>
</dl>

View File

@ -192,12 +192,6 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).New">TASK_A2G:New(Mission, SetGroup, TaskName, UnitSetTargets, TargetDistance, TargetZone, TargetSetUnit, TaskType, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK_A2G.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).SetPenaltyOnFailed">TASK_A2G:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2G attack has failed.</p>
</td>
</tr>
<tr>
@ -210,18 +204,6 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).SetRendezVousZone">TASK_A2G:SetRendezVousZone(RendezVousZone, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).SetScoreOnDestroy">TASK_A2G:SetScoreOnDestroy(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2G attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).SetScoreOnSuccess">TASK_A2G:SetScoreOnSuccess(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2G attack, have been destroyed.</p>
</td>
</tr>
<tr>
@ -250,12 +232,36 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).New">TASK_A2G_BAI:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>A2G</em>BAI.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).SetScoreOnFail">TASK_A2G_BAI:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).SetScoreOnProgress">TASK_A2G_BAI:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).SetScoreOnSuccess">TASK_A2G_BAI:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).TargetSetUnit">TASK_A2G_BAI.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).onafterGoal">TASK_A2G_BAI:onafterGoal(TaskUnit, From, Event, To)</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -266,12 +272,36 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).New">TASK_A2G_CAS:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>A2G</em>CAS.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).SetScoreOnFail">TASK_A2G_CAS:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).SetScoreOnProgress">TASK_A2G_CAS:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).SetScoreOnSuccess">TASK_A2G_CAS:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).TargetSetUnit">TASK_A2G_CAS.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).onafterGoal">TASK_A2G_CAS:onafterGoal(TaskUnit, From, Event, To)</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -282,12 +312,36 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).New">TASK_A2G_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>A2G</em>SEAD.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).SetScoreOnFail">TASK_A2G_SEAD:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2A attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).SetScoreOnProgress">TASK_A2G_SEAD:SetScoreOnProgress(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).SetScoreOnSuccess">TASK_A2G_SEAD:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).TargetSetUnit">TASK_A2G_SEAD.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).onafterGoal">TASK_A2G_SEAD:onafterGoal(TaskUnit, From, Event, To)</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -607,44 +661,6 @@ If the TargetZone parameter is specified, the player will be routed to the cente
<p><em><a href="##(TASK_A2G)">#TASK_A2G</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G).SetPenaltyOnFailed" >
<strong>TASK_A2G:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2G attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when the A2G attack has failed.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G)">#TASK_A2G</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -710,82 +726,6 @@ The Zone object where the RendezVous is located on the map.</p>
<dl class="function">
<dt>
<a id="#(TASK_A2G).SetScoreOnDestroy" >
<strong>TASK_A2G:SetScoreOnDestroy(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2G attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when the target has been destroyed.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G)">#TASK_A2G</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G).SetScoreOnSuccess" >
<strong>TASK_A2G:SetScoreOnSuccess(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2G attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when all targets hav been destroyed.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G)">#TASK_A2G</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G).SetTargetCoordinate" >
<strong>TASK_A2G:SetTargetCoordinate(TargetCoordinate, TaskUnit)</strong>
</a>
@ -904,6 +844,120 @@ The briefing of the task.</p>
<p><em><a href="##(TASK_A2G_BAI)">#TASK<em>A2G</em>BAI</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_BAI).SetScoreOnFail" >
<strong>TASK_A2G_BAI:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_BAI)">#TASK<em>A2G</em>BAI</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_BAI).SetScoreOnProgress" >
<strong>TASK_A2G_BAI:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_BAI)">#TASK<em>A2G</em>BAI</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_BAI).SetScoreOnSuccess" >
<strong>TASK_A2G_BAI:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_BAI)">#TASK<em>A2G</em>BAI</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -918,6 +972,42 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_BAI).onafterGoal" >
<strong>TASK_A2G_BAI:onafterGoal(TaskUnit, From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
@ -973,6 +1063,120 @@ The briefing of the task.</p>
<p><em><a href="##(TASK_A2G_CAS)">#TASK<em>A2G</em>CAS</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_CAS).SetScoreOnFail" >
<strong>TASK_A2G_CAS:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_CAS)">#TASK<em>A2G</em>CAS</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_CAS).SetScoreOnProgress" >
<strong>TASK_A2G_CAS:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_CAS)">#TASK<em>A2G</em>CAS</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_CAS).SetScoreOnSuccess" >
<strong>TASK_A2G_CAS:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_CAS)">#TASK<em>A2G</em>CAS</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -987,6 +1191,42 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_CAS).onafterGoal" >
<strong>TASK_A2G_CAS:onafterGoal(TaskUnit, From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
@ -1042,6 +1282,120 @@ The briefing of the task.</p>
<p><em><a href="##(TASK_A2G_SEAD)">#TASK<em>A2G</em>SEAD</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_SEAD).SetScoreOnFail" >
<strong>TASK_A2G_SEAD:SetScoreOnFail(PlayerName, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2A attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points, must be a negative value!</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_SEAD)">#TASK<em>A2G</em>SEAD</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_SEAD).SetScoreOnProgress" >
<strong>TASK_A2G_SEAD:SetScoreOnProgress(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2A attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points to be granted when task process has been achieved.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_SEAD)">#TASK<em>A2G</em>SEAD</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_SEAD).SetScoreOnSuccess" >
<strong>TASK_A2G_SEAD:SetScoreOnSuccess(PlayerName, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2A attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string PlayerName </em></code>:
The name of the player.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_A2G_SEAD)">#TASK<em>A2G</em>SEAD</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -1056,6 +1410,42 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_SEAD).onafterGoal" >
<strong>TASK_A2G_SEAD:onafterGoal(TaskUnit, From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
</ul>
</dd>
</dl>

View File

@ -252,13 +252,13 @@ and various dedicated deployment zones.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetPenaltyOnFailed">TASK_CARGO:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</a></td>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetScoreOnFail">TASK_CARGO:SetScoreOnFail(Text, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2G attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetScoreOnDestroy">TASK_CARGO:SetScoreOnDestroy(Text, Score, TaskUnit)</a></td>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetScoreOnProgress">TASK_CARGO:SetScoreOnProgress(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2G attack, has been destroyed .</p>
</td>
@ -510,7 +510,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function">
<dt>
<em><a href="Core.Cargo.html##(CARGO_GROUP)">Core.Cargo#CARGO_GROUP</a></em>
<em></em>
<a id="#(FSM_PROCESS).Cargo" >
<strong>FSM_PROCESS.Cargo</strong>
</a>
@ -524,7 +524,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>
@ -881,8 +880,8 @@ ist<Core.Zone#ZONE> DeployZones</p>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetPenaltyOnFailed" >
<strong>TASK_CARGO:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</strong>
<a id="#(TASK_CARGO).SetScoreOnFail" >
<strong>TASK_CARGO:SetScoreOnFail(Text, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
@ -919,8 +918,8 @@ The penalty in points.</p>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetScoreOnDestroy" >
<strong>TASK_CARGO:SetScoreOnDestroy(Text, Score, TaskUnit)</strong>
<a id="#(TASK_CARGO).SetScoreOnProgress" >
<strong>TASK_CARGO:SetScoreOnProgress(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>