Merge pull request #1642 from FlightControl-Master/Applevangelist-Armor-1

Auftrag - Added type ARMORATTACK
This commit is contained in:
Frank 2021-11-24 13:17:13 +01:00 committed by GitHub
commit 06fa585f69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -274,6 +274,9 @@
-- --
-- An arty mission can be created with the @{#AUFTRAG.NewARTY}() function. -- An arty mission can be created with the @{#AUFTRAG.NewARTY}() function.
-- --
-- ## ARMORATTACK
--
-- A mission to send a tank group can be created with the @{#AUFTRAG.NewARMORATTACK}() function.
-- --
-- # Options and Parameters -- # Options and Parameters
-- --
@ -378,6 +381,7 @@ _AUFTRAGSNR=0
-- @field #string ALERT5 Alert 5. -- @field #string ALERT5 Alert 5.
-- @field #string ONGUARD On guard. -- @field #string ONGUARD On guard.
-- @field #string BARRAGE Barrage. -- @field #string BARRAGE Barrage.
-- @field #STRING ARMORATTACK Armor attack.
AUFTRAG.Type={ AUFTRAG.Type={
ANTISHIP="Anti Ship", ANTISHIP="Anti Ship",
AWACS="AWACS", AWACS="AWACS",
@ -408,6 +412,7 @@ AUFTRAG.Type={
ALERT5="Alert5", ALERT5="Alert5",
ONGUARD="On Guard", ONGUARD="On Guard",
BARRAGE="Barrage", BARRAGE="Barrage",
ARMORATTACK="Armor Attack",
} }
--- Mission status of an assigned group. --- Mission status of an assigned group.
@ -427,6 +432,7 @@ AUFTRAG.SpecialTask={
ALERT5="Alert5", ALERT5="Alert5",
ONGUARD="On Guard", ONGUARD="On Guard",
BARRAGE="Barrage", BARRAGE="Barrage",
ARMORATTACK="AmorAttack",
} }
--- Mission status. --- Mission status.
@ -1664,6 +1670,35 @@ function AUFTRAG:NewPATROLZONE(Zone, Speed, Altitude)
return mission return mission
end end
--- **[GROUND]** Create a ARMORATTACK mission. Armoured ground group(s) will go to the zone and attack.
-- @param #AUFTRAG self
-- @param Wrapper.Positionable#POSITIONABLE Target The target to attack. Can be a GROUP, UNIT or STATIC object.
-- @param #number Speed Speed in knots.
-- @param #string Formation The attack formation, e.g. "Wedge", "Vee" etc.
-- @return #AUFTRAG self
function AUFTRAG:NewARMORATTACK(Target, Speed, Formation)
local mission=AUFTRAG:New(AUFTRAG.Type.ARMORATTACK)
mission:_TargetFromObject(Target)
mission.missionTask=mission:GetMissionTaskforMissionType(AUFTRAG.Type.ARMORATTACK)
mission.optionROE=ENUMS.ROE.OpenFire
mission.optionAlarm=ENUMS.AlarmState.Auto
mission.optionFormation="On Road"
mission.optionAttackFormation=Formation or "Wedge"
mission.missionFraction=1.0
mission.missionSpeed=Speed and UTILS.KnotsToKmph(Speed) or 20
mission.categories={AUFTRAG.Category.GROUND}
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
--- **[AIR, GROUND, NAVAL]** Create a RECON mission. --- **[AIR, GROUND, NAVAL]** Create a RECON mission.
-- @param #AUFTRAG self -- @param #AUFTRAG self
-- @param Core.Set#SET_ZONE ZoneSet The recon zones. -- @param Core.Set#SET_ZONE ZoneSet The recon zones.
@ -1819,6 +1854,8 @@ function AUFTRAG:NewFromTarget(Target, MissionType)
mission=self:NewSEAD(Target, Altitude) mission=self:NewSEAD(Target, Altitude)
elseif MissionType==AUFTRAG.Type.STRIKE then elseif MissionType==AUFTRAG.Type.STRIKE then
mission=self:NewSTRIKE(Target, Altitude) mission=self:NewSTRIKE(Target, Altitude)
elseif MissionType==AUFTRAG.Type.ARMORATTACK then
mission=self:NewARMORATTACK(Target,Speed)
else else
return nil return nil
end end
@ -4848,6 +4885,26 @@ function AUFTRAG:GetDCSMissionTask(TaskControllable)
DCStask.params=param DCStask.params=param
table.insert(DCStasks, DCStask) table.insert(DCStasks, DCStask)
elseif self.type==AUFTRAG.Type.ARMORATTACK then
-------------------------
-- ARMOR ATTACK Mission --
-------------------------
local DCStask={}
DCStask.id=AUFTRAG.SpecialTask.ARMORATTACK
-- We create a "fake" DCS task and pass the parameters to the ARMYGROUP.
local param={}
param.zone=self:GetObjective()
param.action="Wedge"
param.speed=self.missionSpeed
DCStask.params=param
table.insert(DCStasks, DCStask)
elseif self.type==AUFTRAG.Type.AMMOSUPPLY then elseif self.type==AUFTRAG.Type.AMMOSUPPLY then
@ -5035,6 +5092,8 @@ function AUFTRAG:GetMissionTaskforMissionType(MissionType)
mtask=ENUMS.MissionTask.REFUELING mtask=ENUMS.MissionTask.REFUELING
elseif MissionType==AUFTRAG.Type.TROOPTRANSPORT then elseif MissionType==AUFTRAG.Type.TROOPTRANSPORT then
mtask=ENUMS.MissionTask.TRANSPORT mtask=ENUMS.MissionTask.TRANSPORT
elseif MissionType==AUFTRAG.Type.ARMORATTACK then
mtask=ENUMS.MissionTask.NOTHING
end end
return mtask return mtask