diff --git a/Moose Development/Moose/Fsm/Fsm.lua b/Moose Development/Moose/Fsm/Fsm.lua index eb2bf8646..5c5c81492 100644 --- a/Moose Development/Moose/Fsm/Fsm.lua +++ b/Moose Development/Moose/Fsm/Fsm.lua @@ -597,10 +597,10 @@ FSM_SET = { -- @param #table FSMT Finite State Machine Table -- @param Set_SET_BASE FSMSet (optional) The Set object that the FSM_SET governs. -- @return #FSM_SET -function FSM_SET:New( FSMT, FSMSet ) +function FSM_SET:New( FSMSet ) -- Inherits from BASE - local self = BASE:Inherit( self, FSM:New( FSMT ) ) -- Fsm.Fsm#FSM_SET + local self = BASE:Inherit( self, FSM:New() ) -- Fsm.Fsm#FSM_SET if FSMSet then self:Set( FSMSet ) diff --git a/Moose Development/Moose/Fsm/Patrol.lua b/Moose Development/Moose/Fsm/Patrol.lua index 7b1fd5185..2a1d3421e 100644 --- a/Moose Development/Moose/Fsm/Patrol.lua +++ b/Moose Development/Moose/Fsm/Patrol.lua @@ -177,20 +177,16 @@ PATROLZONE = { -- PatrolArea = PATROLZONE:New( PatrolZone, 3000, 6000, 600, 900 ) function PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) - local FSMT = { - initial = 'None', - events = { - { name = 'Start', from = '*', to = 'Route' }, - { name = 'Route', from = '*', to = 'Route' }, - { name = 'Patrol', from = { 'Patrol', 'Route' }, to = 'Patrol' }, - { name = 'RTB', from = 'Patrol', to = 'RTB' }, - { name = 'End', from = '*', to = 'End' }, - { name = 'Dead', from = '*', to = 'End' }, - }, - } - -- Inherits from BASE - local self = BASE:Inherit( self, FSM_CONTROLLABLE:New( FSMT ) ) + local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- Fsm.Fsm#FSM_CONTROLLABLE + + self:SetStartState( "None" ) + self:AddTransition( "*", "Start", "Route" ) + self:AddTransition( "*", "Route", "Route" ) + self:AddTransition( { "Patrol", "Route" }, "Patrol", "Patrol" ) + self:AddTransition( "Patrol", "RTB", "RTB" ) + self:AddTransition( "*", "End", "End" ) + self:AddTransition( "*", "Dead", "End" ) self.PatrolZone = PatrolZone self.PatrolFloorAltitude = PatrolFloorAltitude diff --git a/Moose Development/Moose/Functional/AIBalancer.lua b/Moose Development/Moose/Functional/AIBalancer.lua index 8e54bd38f..a2cd679e6 100644 --- a/Moose Development/Moose/Functional/AIBalancer.lua +++ b/Moose Development/Moose/Functional/AIBalancer.lua @@ -89,22 +89,20 @@ AIBALANCER = { -- @usage -- -- Define a new AIBALANCER Object. function AIBALANCER:New( SetClient, SpawnAI ) - - local FSMT = { - initial = 'None', - events = { - { name = 'Start', from = '*', to = 'Monitoring' }, - { name = 'Monitor', from = '*', to = 'Monitoring' }, - { name = 'Spawn', from = '*', to = 'Spawning' }, - { name = 'Destroy', from = '*', to = 'Destroying' }, - { name = 'Return', from = '*', to = 'Returning' }, - { name = 'End', from = '*', to = 'End' }, - { name = 'Dead', from = '*', to = 'End' }, - }, - } -- Inherits from BASE - local self = BASE:Inherit( self, FSM_SET:New( FSMT, SET_GROUP:New() ) ) + local self = BASE:Inherit( self, FSM_SET:New( SET_GROUP:New() ) ) -- Fsm.Fsm#FSM_SET + + self:SetStartState( "None" ) + self:AddTransition( "*", "Start", "Monitoring" ) + self:AddTransition( "*", "Monitor", "Monitoring" ) + self:AddTransition( "*", "Spawn", "Spawning" ) + self:AddTransition( "*", "Destroy", "Destroying" ) + self:AddTransition( "*", "Return", "Returning" ) + self:AddTransition( "*", "End", "End" ) + self:AddTransition( "*", "Dead", "End" ) + + self.SetClient = SetClient self.SpawnAI = SpawnAI diff --git a/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.lua b/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.lua index e3a5249b3..807ac6a75 100644 --- a/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.lua +++ b/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.lua @@ -2,11 +2,11 @@ local US_PlanesClientSet = SET_CLIENT:New():FilterCountries( "USA" ):FilterCategories( "plane" ):FilterStart() local US_PlanesSpawn = SPAWN:New( "AI US" ):InitCleanUp( 20 ) -local US_AIBalancer = AISET_BALANCER:New( US_PlanesClientSet, US_PlanesSpawn ) +local US_AIBalancer = AIBALANCER:New( US_PlanesClientSet, US_PlanesSpawn ) local RU_PlanesClientSet = SET_CLIENT:New():FilterCountries( "RUSSIA" ):FilterCategories( "plane" ):FilterStart() local RU_PlanesSpawn = SPAWN:New( "AI RU" ):InitCleanUp( 20 ) -local RU_AIBalancer = AISET_BALANCER:New( RU_PlanesClientSet, RU_PlanesSpawn ) +local RU_AIBalancer = AIBALANCER:New( RU_PlanesClientSet, RU_PlanesSpawn ) local RU_AirbasesSet = SET_AIRBASE:New():FilterCoalitions("red"):FilterStart() RU_AirbasesSet:Flush() diff --git a/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.miz b/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.miz index adf0909b9..2c3beac38 100644 Binary files a/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.miz and b/Moose Test Missions/AI Balancer/Moose_Test_AIBALANCER.miz differ diff --git a/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz b/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz index 723555e63..d4d38246d 100644 Binary files a/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz and b/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz differ