diff --git a/Moose Development/Moose/Controllable.lua b/Moose Development/Moose/Controllable.lua index 289bace82..c0753dbe9 100644 --- a/Moose Development/Moose/Controllable.lua +++ b/Moose Development/Moose/Controllable.lua @@ -224,6 +224,7 @@ function CONTROLLABLE:SetTask( DCSTask, WaitTime ) if DCSControllable then local Controller = self:_GetController() + self:E(Controller) -- When a controllable SPAWNs, it takes about a second to get the controllable in the simulator. Setting tasks to unspawned controllables provides unexpected results. -- Therefore we schedule the functions to set the mission and options for the Controllable. @@ -418,7 +419,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At -- AttackControllable = { -- id = 'AttackControllable', -- params = { - -- controllableId = Controllable.ID, + -- groupId = Group.ID, -- weaponType = number, -- expend = enum AI.Task.WeaponExpend, -- attackQty = number, @@ -443,7 +444,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At local DCSTask DCSTask = { id = 'AttackControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, expend = WeaponExpend, attackQty = AttackQty, @@ -802,27 +803,28 @@ function CONTROLLABLE:TaskFollow( FollowControllable, Vec3, LastWaypointIndex ) -- Follow = { -- id = 'Follow', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- pos = Vec3, -- lastWptIndexFlag = boolean, -- lastWptIndex = number -- } -- } - local LastWaypointIndexFlag = nil + local LastWaypointIndexFlag = false if LastWaypointIndex then LastWaypointIndexFlag = true end local DCSTask - DCSTask = { id = 'Follow', + DCSTask = { + id = 'Follow', params = { - controllableId = FollowControllable:GetID(), + groupId = FollowControllable:GetID(), pos = Vec3, lastWptIndexFlag = LastWaypointIndexFlag, - lastWptIndex = LastWaypointIndex, - }, - }, + lastWptIndex = LastWaypointIndex + } + } self:T3( { DCSTask } ) return DCSTask @@ -845,7 +847,7 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E -- Escort = { -- id = 'Escort', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- pos = Vec3, -- lastWptIndexFlag = boolean, -- lastWptIndex = number, @@ -854,15 +856,15 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E -- } -- } - local LastWaypointIndexFlag = nil + local LastWaypointIndexFlag = false if LastWaypointIndex then LastWaypointIndexFlag = true end local DCSTask - DCSTask = { id = 'Follow', + DCSTask = { id = 'Escort', params = { - controllableId = FollowControllable:GetID(), + groupId = FollowControllable:GetID(), pos = Vec3, lastWptIndexFlag = LastWaypointIndexFlag, lastWptIndex = LastWaypointIndex, @@ -946,7 +948,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation, -- FAC_AttackControllable = { -- id = 'FAC_AttackControllable', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- weaponType = number, -- designation = enum AI.Task.Designation, -- datalink = boolean @@ -956,7 +958,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation, local DCSTask DCSTask = { id = 'FAC_AttackControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, designation = Designation, datalink = Datalink, @@ -1054,7 +1056,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType, -- EngageControllable = { -- id = 'EngageControllable ', -- params = { - -- controllableId = Controllable.ID, + -- groupId = Group.ID, -- weaponType = number, -- expend = enum AI.Task.WeaponExpend, -- attackQty = number, @@ -1080,7 +1082,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType, local DCSTask DCSTask = { id = 'EngageControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, expend = WeaponExpend, attackQty = AttackQty, @@ -1235,7 +1237,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT -- FAC_EngageControllable = { -- id = 'FAC_EngageControllable', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- weaponType = number, -- designation = enum AI.Task.Designation, -- datalink = boolean, @@ -1246,7 +1248,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT local DCSTask DCSTask = { id = 'FAC_EngageControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, designation = Designation, datalink = Datalink, diff --git a/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua b/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua index 285a01d19..8db5aea17 100644 --- a/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua +++ b/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE STATIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20160812_0800' ) +env.info( 'Moose Generation Timestamp: 20161205_1227' ) local base = _G Include = {} @@ -4216,6 +4216,7 @@ function CONTROLLABLE:SetTask( DCSTask, WaitTime ) if DCSControllable then local Controller = self:_GetController() + self:E(Controller) -- When a controllable SPAWNs, it takes about a second to get the controllable in the simulator. Setting tasks to unspawned controllables provides unexpected results. -- Therefore we schedule the functions to set the mission and options for the Controllable. @@ -4410,7 +4411,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At -- AttackControllable = { -- id = 'AttackControllable', -- params = { - -- controllableId = Controllable.ID, + -- groupId = Group.ID, -- weaponType = number, -- expend = enum AI.Task.WeaponExpend, -- attackQty = number, @@ -4435,7 +4436,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At local DCSTask DCSTask = { id = 'AttackControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, expend = WeaponExpend, attackQty = AttackQty, @@ -4794,27 +4795,28 @@ function CONTROLLABLE:TaskFollow( FollowControllable, Vec3, LastWaypointIndex ) -- Follow = { -- id = 'Follow', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- pos = Vec3, -- lastWptIndexFlag = boolean, -- lastWptIndex = number -- } -- } - local LastWaypointIndexFlag = nil + local LastWaypointIndexFlag = false if LastWaypointIndex then LastWaypointIndexFlag = true end local DCSTask - DCSTask = { id = 'Follow', + DCSTask = { + id = 'Follow', params = { - controllableId = FollowControllable:GetID(), + groupId = FollowControllable:GetID(), pos = Vec3, lastWptIndexFlag = LastWaypointIndexFlag, - lastWptIndex = LastWaypointIndex, - }, - }, + lastWptIndex = LastWaypointIndex + } + } self:T3( { DCSTask } ) return DCSTask @@ -4837,7 +4839,7 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E -- Escort = { -- id = 'Escort', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- pos = Vec3, -- lastWptIndexFlag = boolean, -- lastWptIndex = number, @@ -4846,15 +4848,15 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E -- } -- } - local LastWaypointIndexFlag = nil + local LastWaypointIndexFlag = false if LastWaypointIndex then LastWaypointIndexFlag = true end local DCSTask - DCSTask = { id = 'Follow', + DCSTask = { id = 'Escort', params = { - controllableId = FollowControllable:GetID(), + groupId = FollowControllable:GetID(), pos = Vec3, lastWptIndexFlag = LastWaypointIndexFlag, lastWptIndex = LastWaypointIndex, @@ -4938,7 +4940,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation, -- FAC_AttackControllable = { -- id = 'FAC_AttackControllable', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- weaponType = number, -- designation = enum AI.Task.Designation, -- datalink = boolean @@ -4948,7 +4950,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation, local DCSTask DCSTask = { id = 'FAC_AttackControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, designation = Designation, datalink = Datalink, @@ -5046,7 +5048,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType, -- EngageControllable = { -- id = 'EngageControllable ', -- params = { - -- controllableId = Controllable.ID, + -- groupId = Group.ID, -- weaponType = number, -- expend = enum AI.Task.WeaponExpend, -- attackQty = number, @@ -5072,7 +5074,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType, local DCSTask DCSTask = { id = 'EngageControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, expend = WeaponExpend, attackQty = AttackQty, @@ -5227,7 +5229,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT -- FAC_EngageControllable = { -- id = 'FAC_EngageControllable', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- weaponType = number, -- designation = enum AI.Task.Designation, -- datalink = boolean, @@ -5238,7 +5240,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT local DCSTask DCSTask = { id = 'FAC_EngageControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, designation = Designation, datalink = Datalink, diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index 285a01d19..8db5aea17 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE STATIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20160812_0800' ) +env.info( 'Moose Generation Timestamp: 20161205_1227' ) local base = _G Include = {} @@ -4216,6 +4216,7 @@ function CONTROLLABLE:SetTask( DCSTask, WaitTime ) if DCSControllable then local Controller = self:_GetController() + self:E(Controller) -- When a controllable SPAWNs, it takes about a second to get the controllable in the simulator. Setting tasks to unspawned controllables provides unexpected results. -- Therefore we schedule the functions to set the mission and options for the Controllable. @@ -4410,7 +4411,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At -- AttackControllable = { -- id = 'AttackControllable', -- params = { - -- controllableId = Controllable.ID, + -- groupId = Group.ID, -- weaponType = number, -- expend = enum AI.Task.WeaponExpend, -- attackQty = number, @@ -4435,7 +4436,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At local DCSTask DCSTask = { id = 'AttackControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, expend = WeaponExpend, attackQty = AttackQty, @@ -4794,27 +4795,28 @@ function CONTROLLABLE:TaskFollow( FollowControllable, Vec3, LastWaypointIndex ) -- Follow = { -- id = 'Follow', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- pos = Vec3, -- lastWptIndexFlag = boolean, -- lastWptIndex = number -- } -- } - local LastWaypointIndexFlag = nil + local LastWaypointIndexFlag = false if LastWaypointIndex then LastWaypointIndexFlag = true end local DCSTask - DCSTask = { id = 'Follow', + DCSTask = { + id = 'Follow', params = { - controllableId = FollowControllable:GetID(), + groupId = FollowControllable:GetID(), pos = Vec3, lastWptIndexFlag = LastWaypointIndexFlag, - lastWptIndex = LastWaypointIndex, - }, - }, + lastWptIndex = LastWaypointIndex + } + } self:T3( { DCSTask } ) return DCSTask @@ -4837,7 +4839,7 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E -- Escort = { -- id = 'Escort', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- pos = Vec3, -- lastWptIndexFlag = boolean, -- lastWptIndex = number, @@ -4846,15 +4848,15 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E -- } -- } - local LastWaypointIndexFlag = nil + local LastWaypointIndexFlag = false if LastWaypointIndex then LastWaypointIndexFlag = true end local DCSTask - DCSTask = { id = 'Follow', + DCSTask = { id = 'Escort', params = { - controllableId = FollowControllable:GetID(), + groupId = FollowControllable:GetID(), pos = Vec3, lastWptIndexFlag = LastWaypointIndexFlag, lastWptIndex = LastWaypointIndex, @@ -4938,7 +4940,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation, -- FAC_AttackControllable = { -- id = 'FAC_AttackControllable', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- weaponType = number, -- designation = enum AI.Task.Designation, -- datalink = boolean @@ -4948,7 +4950,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation, local DCSTask DCSTask = { id = 'FAC_AttackControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, designation = Designation, datalink = Datalink, @@ -5046,7 +5048,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType, -- EngageControllable = { -- id = 'EngageControllable ', -- params = { - -- controllableId = Controllable.ID, + -- groupId = Group.ID, -- weaponType = number, -- expend = enum AI.Task.WeaponExpend, -- attackQty = number, @@ -5072,7 +5074,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType, local DCSTask DCSTask = { id = 'EngageControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, expend = WeaponExpend, attackQty = AttackQty, @@ -5227,7 +5229,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT -- FAC_EngageControllable = { -- id = 'FAC_EngageControllable', -- params = { --- controllableId = Controllable.ID, +-- groupId = Group.ID, -- weaponType = number, -- designation = enum AI.Task.Designation, -- datalink = boolean, @@ -5238,7 +5240,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT local DCSTask DCSTask = { id = 'FAC_EngageControllable', params = { - controllableId = AttackGroup:GetID(), + groupId = AttackGroup:GetID(), weaponType = WeaponType, designation = Designation, datalink = Datalink, diff --git a/Moose Test Missions/Moose_Test_GROUP_TaskFollow/Moose_Test_GROUP_TaskFollow.lua b/Moose Test Missions/Moose_Test_GROUP_TaskFollow/Moose_Test_GROUP_TaskFollow.lua new file mode 100644 index 000000000..176f507c9 --- /dev/null +++ b/Moose Test Missions/Moose_Test_GROUP_TaskFollow/Moose_Test_GROUP_TaskFollow.lua @@ -0,0 +1,24 @@ + +--Create Spawn Groups +local SpawnPlane1 = SPAWN:New("Plane 1") +local SpawnPlane2 = SPAWN:New("Plane 2") + +--Spawn Groups into world +local GroupPlane1 = SpawnPlane1:Spawn() +--local GroupPlane1 = GROUP:FindByName( "Plane 1" ) +local GroupPlane2 = SpawnPlane2:Spawn() +--local GroupPlane2 = GROUP:FindByName( "Plane 2" ) + +--Create Task for plane2 (follow groupPlane1 at Vec3 offset) (Note: I think I need to be using controllers here) +--i.e. cntrlPlane1 = groupPlane1.getController(groupPlane1) + +local PointVec3 = POINT_VEC3:New( 100, 0, -100 ) -- This is a Vec3 class. + +local FollowDCSTask = GroupPlane2:TaskFollow( GroupPlane1, PointVec3:GetVec3() ) + +--Activate Task (Either PushTask/SetTask?) +-- PushTask will push a task on the execution queue of the group. +-- SetTask will delete all tasks from the current group queue, and executes this task. + +GroupPlane2:SetTask( FollowDCSTask, 1 ) + diff --git a/Moose Test Missions/Moose_Test_GROUP_TaskFollow/Moose_Test_GROUP_TaskFollow.miz b/Moose Test Missions/Moose_Test_GROUP_TaskFollow/Moose_Test_GROUP_TaskFollow.miz new file mode 100644 index 000000000..cfd60b143 Binary files /dev/null and b/Moose Test Missions/Moose_Test_GROUP_TaskFollow/Moose_Test_GROUP_TaskFollow.miz differ