Merge remote-tracking branch 'refs/remotes/origin/master' into Template-the-Statemachines

# Conflicts:
#	Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua
#	Moose Mission Setup/Moose.lua
This commit is contained in:
FlightControl 2016-12-06 08:37:32 +01:00
commit 931464dfec
3 changed files with 45 additions and 19 deletions

View File

@ -224,6 +224,7 @@ function CONTROLLABLE:SetTask( DCSTask, WaitTime )
if DCSControllable then if DCSControllable then
local Controller = self:_GetController() 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. -- 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. -- Therefore we schedule the functions to set the mission and options for the Controllable.
@ -419,7 +420,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At
-- AttackControllable = { -- AttackControllable = {
-- id = 'AttackControllable', -- id = 'AttackControllable',
-- params = { -- params = {
-- controllableId = Controllable.ID, -- groupId = Group.ID,
-- weaponType = number, -- weaponType = number,
-- expend = enum AI.Task.WeaponExpend, -- expend = enum AI.Task.WeaponExpend,
-- attackQty = number, -- attackQty = number,
@ -444,7 +445,7 @@ function CONTROLLABLE:TaskAttackGroup( AttackGroup, WeaponType, WeaponExpend, At
local DCSTask local DCSTask
DCSTask = { id = 'AttackControllable', DCSTask = { id = 'AttackControllable',
params = { params = {
controllableId = AttackGroup:GetID(), groupId = AttackGroup:GetID(),
weaponType = WeaponType, weaponType = WeaponType,
expend = WeaponExpend, expend = WeaponExpend,
attackQty = AttackQty, attackQty = AttackQty,
@ -803,27 +804,28 @@ function CONTROLLABLE:TaskFollow( FollowControllable, Vec3, LastWaypointIndex )
-- Follow = { -- Follow = {
-- id = 'Follow', -- id = 'Follow',
-- params = { -- params = {
-- controllableId = Controllable.ID, -- groupId = Group.ID,
-- pos = Vec3, -- pos = Vec3,
-- lastWptIndexFlag = boolean, -- lastWptIndexFlag = boolean,
-- lastWptIndex = number -- lastWptIndex = number
-- } -- }
-- } -- }
local LastWaypointIndexFlag = nil local LastWaypointIndexFlag = false
if LastWaypointIndex then if LastWaypointIndex then
LastWaypointIndexFlag = true LastWaypointIndexFlag = true
end end
local DCSTask local DCSTask
DCSTask = { id = 'Follow', DCSTask = {
id = 'Follow',
params = { params = {
controllableId = FollowControllable:GetID(), groupId = FollowControllable:GetID(),
pos = Vec3, pos = Vec3,
lastWptIndexFlag = LastWaypointIndexFlag, lastWptIndexFlag = LastWaypointIndexFlag,
lastWptIndex = LastWaypointIndex, lastWptIndex = LastWaypointIndex
}, }
}, }
self:T3( { DCSTask } ) self:T3( { DCSTask } )
return DCSTask return DCSTask
@ -846,7 +848,7 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E
-- Escort = { -- Escort = {
-- id = 'Escort', -- id = 'Escort',
-- params = { -- params = {
-- controllableId = Controllable.ID, -- groupId = Group.ID,
-- pos = Vec3, -- pos = Vec3,
-- lastWptIndexFlag = boolean, -- lastWptIndexFlag = boolean,
-- lastWptIndex = number, -- lastWptIndex = number,
@ -855,15 +857,15 @@ function CONTROLLABLE:TaskEscort( FollowControllable, Vec3, LastWaypointIndex, E
-- } -- }
-- } -- }
local LastWaypointIndexFlag = nil local LastWaypointIndexFlag = false
if LastWaypointIndex then if LastWaypointIndex then
LastWaypointIndexFlag = true LastWaypointIndexFlag = true
end end
local DCSTask local DCSTask
DCSTask = { id = 'Follow', DCSTask = { id = 'Escort',
params = { params = {
controllableId = FollowControllable:GetID(), groupId = FollowControllable:GetID(),
pos = Vec3, pos = Vec3,
lastWptIndexFlag = LastWaypointIndexFlag, lastWptIndexFlag = LastWaypointIndexFlag,
lastWptIndex = LastWaypointIndex, lastWptIndex = LastWaypointIndex,
@ -947,7 +949,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation,
-- FAC_AttackControllable = { -- FAC_AttackControllable = {
-- id = 'FAC_AttackControllable', -- id = 'FAC_AttackControllable',
-- params = { -- params = {
-- controllableId = Controllable.ID, -- groupId = Group.ID,
-- weaponType = number, -- weaponType = number,
-- designation = enum AI.Task.Designation, -- designation = enum AI.Task.Designation,
-- datalink = boolean -- datalink = boolean
@ -957,7 +959,7 @@ function CONTROLLABLE:TaskFAC_AttackGroup( AttackGroup, WeaponType, Designation,
local DCSTask local DCSTask
DCSTask = { id = 'FAC_AttackControllable', DCSTask = { id = 'FAC_AttackControllable',
params = { params = {
controllableId = AttackGroup:GetID(), groupId = AttackGroup:GetID(),
weaponType = WeaponType, weaponType = WeaponType,
designation = Designation, designation = Designation,
datalink = Datalink, datalink = Datalink,
@ -1055,7 +1057,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType,
-- EngageControllable = { -- EngageControllable = {
-- id = 'EngageControllable ', -- id = 'EngageControllable ',
-- params = { -- params = {
-- controllableId = Controllable.ID, -- groupId = Group.ID,
-- weaponType = number, -- weaponType = number,
-- expend = enum AI.Task.WeaponExpend, -- expend = enum AI.Task.WeaponExpend,
-- attackQty = number, -- attackQty = number,
@ -1081,7 +1083,7 @@ function CONTROLLABLE:EnRouteTaskEngageGroup( AttackGroup, Priority, WeaponType,
local DCSTask local DCSTask
DCSTask = { id = 'EngageControllable', DCSTask = { id = 'EngageControllable',
params = { params = {
controllableId = AttackGroup:GetID(), groupId = AttackGroup:GetID(),
weaponType = WeaponType, weaponType = WeaponType,
expend = WeaponExpend, expend = WeaponExpend,
attackQty = AttackQty, attackQty = AttackQty,
@ -1236,7 +1238,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT
-- FAC_EngageControllable = { -- FAC_EngageControllable = {
-- id = 'FAC_EngageControllable', -- id = 'FAC_EngageControllable',
-- params = { -- params = {
-- controllableId = Controllable.ID, -- groupId = Group.ID,
-- weaponType = number, -- weaponType = number,
-- designation = enum AI.Task.Designation, -- designation = enum AI.Task.Designation,
-- datalink = boolean, -- datalink = boolean,
@ -1247,7 +1249,7 @@ function CONTROLLABLE:EnRouteTaskFAC_EngageGroup( AttackGroup, Priority, WeaponT
local DCSTask local DCSTask
DCSTask = { id = 'FAC_EngageControllable', DCSTask = { id = 'FAC_EngageControllable',
params = { params = {
controllableId = AttackGroup:GetID(), groupId = AttackGroup:GetID(),
weaponType = WeaponType, weaponType = WeaponType,
designation = Designation, designation = Designation,
datalink = Datalink, datalink = Datalink,

View File

@ -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 )