From 5ddeb8d3963e825b00810cd39f993dcdf2a9a576 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Fri, 3 Mar 2017 12:34:52 +0100 Subject: [PATCH] Progress on SEAD --- Moose Development/Moose/Actions/Act_Route.lua | 4 +- Moose Development/Moose/Tasking/Task_SEAD.lua | 2 +- .../TSK-010 - Task Modelling - SEAD.lua | 39 ++++++++++++------ .../TSK-010 - Task Modelling - SEAD.miz | Bin 31872 -> 32032 bytes 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/Moose Development/Moose/Actions/Act_Route.lua b/Moose Development/Moose/Actions/Act_Route.lua index 02fbe0fff..1a35c89a5 100644 --- a/Moose Development/Moose/Actions/Act_Route.lua +++ b/Moose Development/Moose/Actions/Act_Route.lua @@ -198,7 +198,7 @@ do -- ACT_ROUTE_POINT local self = BASE:Inherit( self, ACT_ROUTE:New() ) -- #ACT_ROUTE_POINT self.PointVec2 = PointVec2 - self.Range = Range + self.Range = Range or 0 self.DisplayInterval = 30 self.DisplayCount = 30 @@ -211,7 +211,7 @@ do -- ACT_ROUTE_POINT function ACT_ROUTE_POINT:Init( FsmRoute ) self.PointVec2 = FsmRoute.PointVec2 - self.Range = FsmRoute.Range + self.Range = FsmRoute.Range or 0 self.DisplayInterval = 30 self.DisplayCount = 30 diff --git a/Moose Development/Moose/Tasking/Task_SEAD.lua b/Moose Development/Moose/Tasking/Task_SEAD.lua index c35717b5a..e15e77491 100644 --- a/Moose Development/Moose/Tasking/Task_SEAD.lua +++ b/Moose Development/Moose/Tasking/Task_SEAD.lua @@ -57,7 +57,7 @@ do -- TASK_SEAD Fsm:AddProcess ( "RoutingToRendezVous", "RouteToRendezVousPoint", ACT_ROUTE_POINT:New(), { Arrived = "ArriveAtRendezVous" } ) Fsm:AddProcess ( "RoutingToRendezVous", "RouteToRendezVousZone", ACT_ROUTE_ZONE:New(), { Arrived = "ArriveAtRendezVous" } ) - Fsm:AddTransition( "Arrived", "ArriveAtRendezVous", "ArrivedAtRendezVous" ) + Fsm:AddTransition( { "Arrived", "RoutingToRendezVous" }, "ArriveAtRendezVous", "ArrivedAtRendezVous" ) Fsm:AddTransition( { "ArrivedAtRendezVous", "HoldingAtRendezVous" }, "Engage", "Engaging" ) Fsm:AddTransition( { "ArrivedAtRendezVous", "HoldingAtRendezVous" }, "HoldAtRendezVous", "HoldingAtRendezVous" ) diff --git a/Moose Test Missions/TSK - Task Modelling/TSK-010 - Task Modelling - SEAD/TSK-010 - Task Modelling - SEAD.lua b/Moose Test Missions/TSK - Task Modelling/TSK-010 - Task Modelling - SEAD/TSK-010 - Task Modelling - SEAD.lua index affea8f0f..afae5e5b1 100644 --- a/Moose Test Missions/TSK - Task Modelling/TSK-010 - Task Modelling - SEAD/TSK-010 - Task Modelling - SEAD.lua +++ b/Moose Test Missions/TSK - Task Modelling/TSK-010 - Task Modelling - SEAD/TSK-010 - Task Modelling - SEAD.lua @@ -106,16 +106,29 @@ local TargetZone = ZONE:New( "Target Zone" ) -- 1. The Mission for which the Task needs to be achieved. -- 2. The set of groups of planes that pilots can join. -- 3. The name of the Task... This can be any name, and will be provided when the Pilot joins the task. --- 4. A type of the Task. When Tasks are in state Planned, then a menu can be provided that group the task based on this given type. -local SEADTask = TASK_SEAD:New( - Mission, - SEADSet, - "SEAD Radars Vector 1", - TargetSet - ) -- Tasking.Task_SEAD#TASK_SEAD +-- 4. A set of Targets for the Task. -SEADTask:SetRendezVousPointVec2( RendezVousZone:GetPointVec2(), 6000 ) -- Done to test the RendezVousPointVec2 mechanism. -SEADTask:SetTargetZone( TargetZone ) +-- We are going to create a couple of variations of TASK_SEAD... + +-- A TASK_SEAD that will route the player towards a Rendez-Vous point, and once arrived, route the player to the Target Zone. +local SEADTaskRendezVousPoint = TASK_SEAD:New( Mission, SEADSet, "Route to Rendez-Vous Point, then route to Target Zone", TargetSet ) -- Tasking.Task_SEAD#TASK_SEAD +SEADTaskRendezVousPoint:SetRendezVousPointVec2( RendezVousZone:GetPointVec2(), 6000 ) -- Done to test the RendezVousPointVec2 mechanism. +SEADTaskRendezVousPoint:SetTargetZone( TargetZone ) + +-- A TASK_SEAD that will route the player towards a Rendez-Vous zone, +-- and once arrived, route the player to the Target Zone. +local SEADTaskRendezVousZone = TASK_SEAD:New( Mission, SEADSet, "Route to Rendez-Vous Zone, then route to Target Zone", TargetSet ) -- Tasking.Task_SEAD#TASK_SEAD +SEADTaskRendezVousZone:SetRendezVousZone( RendezVousZone ) -- Done to test the Route to Zone mechanism. +SEADTaskRendezVousZone:SetTargetZone( TargetZone ) + +-- A TASK_SEAD that has no Rendez_vous, +-- and routes the player straight to the Target Zone. +local SEADTaskToTargetZone = TASK_SEAD:New( Mission, SEADSet, "Route to Target Zone", TargetSet ) -- Tasking.Task_SEAD#TASK_SEAD +SEADTaskToTargetZone:SetTargetZone( TargetZone ) + +-- A TASK_SEAD that has no Rendez_vous, +-- and routes the player to each Target in the Set. +local SEADTaskToTargetNoZone = TASK_SEAD:New( Mission, SEADSet, "Route to Target per Target", TargetSet ) -- Tasking.Task_SEAD#TASK_SEAD -- This is now an important part of the Task process definition. -- Each TASK contains a "Process Template". @@ -127,7 +140,7 @@ SEADTask:SetTargetZone( TargetZone ) -- The reason why this is done, is that each unit as a role within the Task, and can have different status. -- Therefore, the FsmSEAD is a TEMPLATE PROCESS of the TASK, and must be designed as a UNIT with a player is executing that PROCESS. -local SEADProcess = SEADTask:GetUnitProcess() -- #SEADProcess +local SEADProcess = SEADTaskToTargetNoZone:GetUnitProcess() -- #SEADProcess SEADProcess:AddScoreProcess( "Engaging", "Account", "Account", "destroyed a radar", 25 ) SEADProcess:AddScoreProcess( "Engaging", "Account", "Failed", "failed to destroy a radar", -10 ) @@ -142,9 +155,9 @@ SEADProcess:AddScore( "Failed", "Failed to destroy all target radars", -100 ) -- we check if the SEADTask has still AlivePlayers assigned to the Task. -- If not, the Task will Abort. -- And it will be Replanned within 30 seconds. -function SEADTask:OnEnterPlayerCrashed( PlayerUnit, PlayerName ) - if not SEADTask:HasAliveUnits() then - SEADTask:__Abort() +function SEADTaskToTargetNoZone:OnEnterPlayerCrashed( PlayerUnit, PlayerName ) + if not SEADTaskToTargetNoZone:HasAliveUnits() then + SEADTaskToTargetNoZone:__Abort() end end diff --git a/Moose Test Missions/TSK - Task Modelling/TSK-010 - Task Modelling - SEAD/TSK-010 - Task Modelling - SEAD.miz b/Moose Test Missions/TSK - Task Modelling/TSK-010 - Task Modelling - SEAD/TSK-010 - Task Modelling - SEAD.miz index 3fc5e53515e4e7661624a08aba0c2c1c3ad6f7e2..b54574e94128a730d4f56ac8b8405d86bd85f373 100644 GIT binary patch delta 17069 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