From 68fdee7e85ed111a35f758b08d2b9055c41f640a Mon Sep 17 00:00:00 2001 From: iTracerFacer <134304944+iTracerFacer@users.noreply.github.com> Date: Tue, 4 Nov 2025 17:05:59 -0600 Subject: [PATCH] Worked on Artilery fire missoins. --- Moose_CTLD_Pure/Moose_CTLD.lua | 84 ++++++++++++++++++++- Moose_CTLD_Pure/Moose_CTLD_FAC.lua | 109 ++++++++++++++++++++++++---- Moose_CTLD_Pure/Moose_CTLD_Pure.miz | Bin 829636 -> 831950 bytes 3 files changed, 176 insertions(+), 17 deletions(-) diff --git a/Moose_CTLD_Pure/Moose_CTLD.lua b/Moose_CTLD_Pure/Moose_CTLD.lua index a881cc4..c1c4549 100644 --- a/Moose_CTLD_Pure/Moose_CTLD.lua +++ b/Moose_CTLD_Pure/Moose_CTLD.lua @@ -124,6 +124,7 @@ CTLD.Messages = { -- Coach & nav vectors_to_crate = "Nearest crate {id}: bearing {brg}°, range {rng} {rng_u}.", + vectors_to_pickup_zone = "Nearest supply zone {zone}: bearing {brg}°, range {rng} {rng_u}.", coach_enabled = "Hover Coach enabled.", coach_disabled = "Hover Coach disabled.", @@ -158,6 +159,12 @@ CTLD.Config = { PickupZoneSmokeColor = trigger.smokeColor.Green, -- default smoke color when spawning crates at pickup zones RequirePickupZoneForCrateRequest = true, -- enforce that crate requests must be near a Supply (Pickup) Zone PickupZoneMaxDistance = 10000, -- meters; nearest pickup zone must be within this distance to allow a request + -- Crate spawn placement within pickup zones + PickupZoneSpawnRandomize = true, -- if true, spawn crates at a random point within the pickup zone (avoids stacking) + PickupZoneSpawnEdgeBuffer = 10, -- meters: keep spawns at least this far inside the zone edge + PickupZoneSpawnMinOffset = 100, -- meters: keep spawns at least this far from the exact center + CrateSpawnMinSeparation = 7, -- meters: try not to place a new crate closer than this to an existing one + CrateSpawnSeparationTries = 6, -- attempts to find a non-overlapping position before accepting best effort BuildRequiresGroundCrates = true, -- if true, all required crates must be on the ground (won't count/consume carried crates) -- Hover pickup configuration (Ciribob-style inspired) @@ -836,6 +843,37 @@ function CTLD:BuildGroupMenus(group) _msgGroup(group, 'No friendly crates found.') end end) + MENU_GROUP_COMMAND:New(group, 'Vectors to Nearest Pickup Zone', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local zone = nil + local dist = nil + -- Prefer configured pickup zones list; fallback to runtime zones converted to name list + local list = nil + if self.Config and self.Config.Zones and self.Config.Zones.PickupZones then + list = self.Config.Zones.PickupZones + elseif self.PickupZones and #self.PickupZones > 0 then + list = {} + for _,mz in ipairs(self.PickupZones) do + if mz and mz.GetName then table.insert(list, { name = mz:GetName() }) end + end + else + list = {} + end + zone, dist = _nearestZonePoint(unit, list) + if not zone then + _eventSend(self, group, nil, 'no_pickup_zones', {}) + return + end + local up = unit:GetPointVec3() + local zp = zone:GetPointVec3() + local from = { x = up.x, z = up.z } + local to = { x = zp.x, z = zp.z } + local brg = _bearingDeg(from, to) + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(dist, isMetric) + _eventSend(self, group, nil, 'vectors_to_pickup_zone', { zone = zone:GetName(), brg = brg, rng = rngV, rng_u = rngU }) + end) MENU_GROUP_COMMAND:New(group, 'Re-mark Nearest Crate (Smoke)', navRoot, function() local unit = group:GetUnit(1) if not unit or not unit:IsAlive() then return end @@ -898,8 +936,50 @@ function CTLD:RequestCrateForGroup(group, crateKey) end if zone and dist <= maxd then - spawnPoint = zone:GetPointVec3() - -- if pickup zone has smoke configured, mark it + -- Compute a random spawn point within the pickup zone to avoid stacking crates + local center = zone:GetPointVec3() + local rZone = self:_getZoneRadius(zone) + local edgeBuf = math.max(0, self.Config.PickupZoneSpawnEdgeBuffer or 10) + local minOff = math.max(0, self.Config.PickupZoneSpawnMinOffset or 5) + local rMax = math.max(0, (rZone or 150) - edgeBuf) + local tries = math.max(1, self.Config.CrateSpawnSeparationTries or 6) + local minSep = math.max(0, self.Config.CrateSpawnMinSeparation or 7) + + local function candidate() + if (self.Config.PickupZoneSpawnRandomize == false) or rMax <= 0 then + return { x = center.x, z = center.z } + end + local rr + if rMax > minOff then + rr = minOff + math.sqrt(math.random()) * (rMax - minOff) + else + rr = rMax + end + local th = math.random() * 2 * math.pi + return { x = center.x + rr * math.cos(th), z = center.z + rr * math.sin(th) } + end + + local function isClear(pt) + if minSep <= 0 then return true end + for _,meta in pairs(CTLD._crates) do + if meta and meta.side == self.Side and meta.point then + local dx = (meta.point.x - pt.x) + local dz = (meta.point.z - pt.z) + if (dx*dx + dz*dz) < (minSep*minSep) then return false end + end + end + return true + end + + local chosen = candidate() + if not isClear(chosen) then + for _=1,tries-1 do + local c = candidate() + if isClear(c) then chosen = c; break end + end + end + spawnPoint = { x = chosen.x, z = chosen.z } + -- if pickup zone has smoke configured, mark the spawn location local zdef = self._ZoneDefs.PickupZones[zone:GetName()] local smokeColor = (zdef and zdef.smoke) or self.Config.PickupZoneSmokeColor if smokeColor then diff --git a/Moose_CTLD_Pure/Moose_CTLD_FAC.lua b/Moose_CTLD_Pure/Moose_CTLD_FAC.lua index 891ca3d..9071b1e 100644 --- a/Moose_CTLD_Pure/Moose_CTLD_FAC.lua +++ b/Moose_CTLD_Pure/Moose_CTLD_FAC.lua @@ -248,6 +248,16 @@ local function _isBomberOrFighter(u) return u:hasAttribute('Strategic bombers') or u:hasAttribute('Bombers') or u:hasAttribute('Multirole fighters') end +local function _artyMaxRangeForUnit(u) + -- Heuristic max range (meters) by unit type name; conservative to avoid "never fires" when out of range + local tn = string.lower(u:getTypeName() or '') + if tn:find('mortar') or tn:find('2b11') or tn:find('m252') then return 6000 end + if tn:find('mlrs') or tn:find('m270') or tn:find('bm%-21') or tn:find('grad') then return 30000 end + if tn:find('howitzer') or tn:find('m109') or tn:find('paladin') or tn:find('2s19') or tn:find('msta') or tn:find('2s3') or tn:find('akatsiya') then return 20000 end + -- generic tube artillery fallback + return 12000 +end + local function _coalitionOpposite(side) return (side == coalition.side.BLUE) and coalition.side.RED or coalition.side.BLUE end @@ -494,6 +504,21 @@ function FAC:_buildGroupMenus(group) -- RECCE MENU_GROUP_COMMAND:New(group, 'RECCE: Sweep & Mark', root, function() self:_recceDetect(group) end) + -- Debug controls (mission-maker convenience; per-instance toggle) + local dbg = MENU_GROUP:New(group, 'Debug', root) + MENU_GROUP_COMMAND:New(group, 'Enable Debug Logging', dbg, function() + self.Config.Debug = true + local u = group:GetUnit(1); local who = (u and u:GetName()) or 'Unknown' + env.info(string.format('[FAC] Debug ENABLED by %s', who)) + MESSAGE:New('FAC Debug logging ENABLED', 8):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'Disable Debug Logging', dbg, function() + self.Config.Debug = false + local u = group:GetUnit(1); local who = (u and u:GetName()) or 'Unknown' + env.info(string.format('[FAC] Debug DISABLED by %s', who)) + MESSAGE:New('FAC Debug logging DISABLED', 8):ToGroup(group) + end) + MESSAGE:New('FAC/RECCE menu ready (F10)', 10):ToGroup(group) return { root = root } end @@ -554,6 +579,7 @@ function FAC:_setOnStation(group, on) local u = group:GetUnit(1) if not u or not u:IsAlive() then return end local uname = u:GetName() + _dbg(self, string.format('Action:SetOnStation unit=%s on=%s', uname, tostring(on and true or false))) -- init defaults if not self._laserCodes[uname] then self._laserCodes[uname] = self.Config.FAC_laser_codes[1] end if not self._markerType[uname] then self._markerType[uname] = self.Config.MarkerDefault end @@ -577,6 +603,7 @@ function FAC:_setLaserCode(group, code) -- Set the laser code for this FAC; updates status if on-station local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() + _dbg(self, string.format('Action:SetLaserCode unit=%s code=%s', uname, tostring(code))) self._laserCodes[uname] = tostring(code) if self._facOnStation[uname] then trigger.action.outTextForCoalition(u:GetCoalition(), string.format('[FAC "%s" on-station using CODE %s]', self:_facName(uname), self._laserCodes[uname]), 10) @@ -586,6 +613,7 @@ end function FAC:_setLaserDigit(group, digit, val) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() + _dbg(self, string.format('Action:SetLaserDigit unit=%s digit=%d val=%s', uname, digit, tostring(val))) local cur = self._laserCodes[uname] or '1688' local s = tostring(cur) if #s ~= 4 then s = '1688' end @@ -598,6 +626,7 @@ end function FAC:_setMarker(group, typ, color) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() + _dbg(self, string.format('Action:SetMarker unit=%s type=%s color=%s', uname, tostring(typ), tostring(color))) self._markerType[uname] = typ self._markerColor[uname] = color local colorStr = ({[trigger.smokeColor.Green]='GREEN',[trigger.smokeColor.Red]='RED',[trigger.smokeColor.White]='WHITE',[trigger.smokeColor.Orange]='ORANGE',[trigger.smokeColor.Blue]='BLUE'})[color] or 'WHITE' @@ -615,6 +644,7 @@ function FAC:_setMapMarker(group) if not tgt then MESSAGE:New('No Target to Mark', 10):ToGroup(group); return end local t = Unit.getByName(tgt.name) if not t or not t:isActive() then return end + _dbg(self, string.format('Action:MapMarker unit=%s target=%s', uname, tgt.name)) local dms, mgrs, altM, altF, hdg, mph = _formatUnitGeo(t) local text = string.format('%s - DMS %s Alt %dm/%dft\nHeading %d Speed %d MPH\nSpotted by %s', t:getTypeName(), dms, altM, altF, hdg, mph, self:_facName(uname)) local id = math.floor(timer.getTime()*1000 + 0.5) @@ -660,6 +690,7 @@ function FAC:_autolase(uname) local enemy = self:_currentOrFindEnemy(u, uname) if enemy then + _dbg(self, string.format('AutoLase: unit=%s target=%s type=%s', uname, enemy:getName(), enemy:getTypeName())) self:_laseUnit(enemy, u, uname, self._laserCodes[uname]) -- variable next tick based on target speed local v = enemy:getVelocity() or {x=0,z=0} @@ -670,6 +701,7 @@ function FAC:_autolase(uname) local nm = self._smokeMarks[enemy:getName()] if nm and nm < timer.getTime() then self:_createMarker(enemy, uname) end else + _dbg(self, string.format('AutoLase: unit=%s no-visible-target -> cancel', uname)) self:_cancelLase(uname) timer.scheduleFunction(function(args) self:_autolase(args[1]) end, {uname}, timer.getTime()+5) end @@ -690,6 +722,7 @@ function FAC:_currentOrFindEnemy(facUnit, uname) end end -- find nearest visible + _dbg(self, string.format('FindNearest: unit=%s mode=%s', uname, tostring(self.Config.FAC_lock))) return self:_findNearestEnemy(facUnit, self.Config.FAC_lock) end @@ -698,6 +731,7 @@ function FAC:_findNearestEnemy(facUnit, targetType) local enemySide = _coalitionOpposite(facSide) local nearest, best = nil, self.Config.FAC_maxDistance or 18520 local origin = facUnit:getPoint() + _dbg(self, string.format('Search: origin=(%.0f,%.0f) radius=%d targetType=%s', origin.x, origin.z, self.Config.FAC_maxDistance or 18520, tostring(targetType))) local volume = { id = world.VolumeType.SPHERE, params = { point = origin, radius = self.Config.FAC_maxDistance or 18520 } } local function search(u) @@ -720,6 +754,7 @@ function FAC:_findNearestEnemy(facUnit, targetType) self._currentTargets[uname] = { name = nearest:getName(), unitType = nearest:getTypeName(), unitId = nearest:getID() } self:_announceNewTarget(facUnit, nearest, uname) self:_createMarker(nearest, uname) + _dbg(self, string.format('Search: selected target=%s type=%s dist=%.0f', nearest:getName(), nearest:getTypeName(), best)) end return nearest end @@ -728,6 +763,7 @@ function FAC:_announceNewTarget(facUnit, enemy, uname) local col = self._markerColor[uname] local colorStr = ({[trigger.smokeColor.Green]='GREEN',[trigger.smokeColor.Red]='RED',[trigger.smokeColor.White]='WHITE',[trigger.smokeColor.Orange]='ORANGE',[trigger.smokeColor.Blue]='BLUE'})[col or trigger.smokeColor.White] or 'WHITE' local dms, mgrs, altM, altF, hdg, mph = _formatUnitGeo(enemy) + _dbg(self, string.format('AnnounceTarget: fac=%s target=%s code=%s mark=%s %s', self:_facName(uname), enemy:getName(), self._laserCodes[uname] or '1688', colorStr, self._markerType[uname] or 'FLARES')) local msg = string.format('[%s lasing new target %s. CODE %s @ DMS %s MGRS %s Alt %dm/%dft\nMarked %s %s]', self:_facName(uname), enemy:getTypeName(), self._laserCodes[uname] or '1688', dms, mgrs, altM, altF, colorStr, self._markerType[uname] or 'FLARES') trigger.action.outTextForCoalition(facUnit:getCoalition(), msg, 10) @@ -739,6 +775,7 @@ function FAC:_createMarker(enemy, uname) local when = (typ == 'SMOKE') and 300 or 5 self._smokeMarks[enemy:getName()] = timer.getTime() + when local p = enemy:getPoint() + _dbg(self, string.format('CreateMarker: target=%s type=%s color=%s ttl=%.0fs', enemy:getName(), typ, tostring(col or trigger.smokeColor.White), when)) if typ == 'SMOKE' then trigger.action.smoke({x=p.x, y=p.y+2, z=p.z}, col or trigger.smokeColor.White) else @@ -794,7 +831,11 @@ end function FAC:_scanManualList(group) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() - local origin = u:GetPoint() + -- Use DCS Unit position for robust coords + local du = Unit.getByName(uname) + if not du or not du:getPoint() then return end + local origin = du:getPoint() + _dbg(self, string.format('Action:ScanManual unit=%s origin=(%.0f,%.0f) radius=%d', uname, origin.x, origin.z, self.Config.FAC_maxDistance)) local enemySide = _coalitionOpposite(u:GetCoalition()) local foundAA, foundOther = {}, {} local function ins(tbl, item) table.insert(tbl, item) end @@ -814,6 +855,7 @@ function FAC:_scanManualList(group) local list = {} for i=1,10 do list[i] = foundAA[i] or foundOther[i] end self._manualLists[uname] = list + _dbg(self, string.format('Action:ScanManual unit=%s results=%d', uname, #list)) -- print bearings/ranges local gid = group:GetDCSObject() and group:GetDCSObject():getID() or nil for i,v in ipairs(list) do @@ -836,6 +878,7 @@ end function FAC:_setManualTarget(group, idx) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() + _dbg(self, string.format('Action:SetManualTarget unit=%s index=%d', uname, idx)) local list = self._manualLists[uname] if not list or not list[idx] then MESSAGE:New('Invalid Target', 10):ToGroup(group) @@ -847,8 +890,10 @@ function FAC:_setManualTarget(group, idx) self:_setOnStation(group, true) self:_createMarker(enemy, uname) MESSAGE:New(string.format('Designating Target %d: %s', idx, enemy:getTypeName()), 10):ToGroup(group) + _dbg(self, string.format('Action:SetManualTarget unit=%s target=%s type=%s', uname, enemy:getName(), enemy:getTypeName())) else MESSAGE:New(string.format('Target %d already dead', idx), 10):ToGroup(group) + _dbg(self, string.format('Action:SetManualTarget unit=%s index=%d dead', uname, idx)) end end @@ -856,6 +901,7 @@ function FAC:_multiStrike(group) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() local list = self._manualLists[uname] or {} + _dbg(self, string.format('Action:MultiStrike unit=%s targets=%d', uname, #list)) for _,t in ipairs(list) do if t and t:isExist() then self:_callFireMission(group, 10, 0, t) end end end -- #endregion Manual Scan/Select @@ -865,7 +911,11 @@ function FAC:_recceDetect(group) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end local uname = u:GetName() local side = u:GetCoalition() - local pos = u:GetPoint() + -- Use DCS Unit API for coordinates to avoid relying on MOOSE point methods + local du = Unit.getByName(uname) + if not du or not du:getPoint() then return end + local pos = du:getPoint() + _dbg(self, string.format('Action:RecceSweep unit=%s center=(%.0f,%.0f) radius=%d', uname, pos.x, pos.z, self.Config.RecceScanRadius)) local enemySide = _coalitionOpposite(side) local temp = {} local count = 0 @@ -886,6 +936,7 @@ function FAC:_recceDetect(group) world.searchObjects(Object.Category.UNIT, { id=world.VolumeType.SPHERE, params={ point = pos, radius = self.Config.RecceScanRadius } }, cb) world.searchObjects(Object.Category.STATIC, { id=world.VolumeType.SPHERE, params={ point = pos, radius = self.Config.RecceScanRadius } }, cb) self._manualLists[uname] = temp + _dbg(self, string.format('Action:RecceSweep unit=%s results=%d', uname, #temp)) end function FAC:_executeRecceMark(pos, coal) @@ -941,7 +992,16 @@ end function FAC:_getArtyFor(point, facUnit, mode) -- mode: 0 HE, 1 illum, 2 mortar only, 3 heavy only (no smart), 4 guided/naval/air, -1 any except bombers - local side = facUnit and facUnit:getCoalition() or self.Side + -- Accept either a MOOSE Unit (GetCoalition) or a DCS Unit (getCoalition) + local side + if facUnit then + if facUnit.GetCoalition then + side = facUnit:GetCoalition() + elseif facUnit.getCoalition then + side = facUnit:getCoalition() + end + end + side = side or self.Side local bestName local candidates = {} local function consider(found) @@ -978,8 +1038,8 @@ function FAC:_getArtyFor(point, facUnit, mode) local tot, rng = self:_navalGunStats(g:getUnits()) if tot>0 and rng >= d then table.insert(filtered, gname) end elseif _isArtilleryUnit(u1) then - -- crude range gates by type name buckets - table.insert(filtered, gname) + local r = _artyMaxRangeForUnit(u1) + if d <= r then table.insert(filtered, gname) end end end end @@ -996,11 +1056,17 @@ end function FAC:_checkArty(group) local u = group:GetUnit(1); if not u or not u:IsAlive() then return end - local pos = u:GetPoint() - local g = self:_getArtyFor(pos, u, 0) + -- Resolve using DCS Unit position + local du = Unit.getByName(u:GetName()) + if not du or not du:getPoint() then return end + local pos = du:getPoint() + _dbg(self, string.format('Action:CheckArty unit=%s at=(%.0f,%.0f)', u:GetName(), pos.x, pos.z)) + local g = self:_getArtyFor(pos, du, 0) if g then + _dbg(self, string.format('Action:CheckArty unit=%s found=%s', u:GetName(), g:getName())) MESSAGE:New('Arty available: '..g:getName(), 10):ToGroup(group) else + _dbg(self, string.format('Action:CheckArty unit=%s none-found', u:GetName())) MESSAGE:New('No untasked arty/bomber/naval in range', 10):ToGroup(group) end end @@ -1013,30 +1079,37 @@ function FAC:_callFireMission(group, rounds, mode, specificTarget) local attackPoint if enemy and enemy:isActive() then attackPoint = enemy:getPoint() else -- offset forward of FAC as fallback - local hdg = _getHeading(u) - attackPoint = { x = u:GetPoint().x + math.cos(hdg)*self.Config.facOffsetDist, y = u:GetPoint().y, z = u:GetPoint().z + math.sin(hdg)*self.Config.facOffsetDist } + local du = Unit.getByName(uname) + if not du or not du:getPoint() then return end + local hdg = _getHeading(du) + local up = du:getPoint() + attackPoint = { x = up.x + math.cos(hdg)*self.Config.facOffsetDist, y = up.y, z = up.z + math.sin(hdg)*self.Config.facOffsetDist } end - local arty = self:_getArtyFor(attackPoint, u, mode) + _dbg(self, string.format('Action:CallFireMission unit=%s rounds=%s mode=%s target=%s', uname, tostring(rounds), tostring(mode), enemy and enemy:getName() or 'offset')) + local arty = self:_getArtyFor(attackPoint, Unit.getByName(uname), mode) if not arty then + _dbg(self, string.format('Action:CallFireMission unit=%s no-asset-in-range', uname)) MESSAGE:New('Unable to process fire mission: no asset in range', 10):ToGroup(group) return end local firepoint = { x = attackPoint.x, y = attackPoint.z, altitude = arty:getUnit(1):getPoint().y, altitudeEnabled = true, attackQty = 1, expend = 'One', weaponType = 268402702 } local task if _isNavalUnit(arty:getUnit(1)) then - task = { id='FireAtPoint', params = { point = { x = attackPoint.x, y = attackPoint.y, z = attackPoint.z }, expendQty = 1, dispersion = 50, attackQty = 1, weaponType = 0 } } + -- FireAtPoint expects a 2D vec2 where y=z; do not pass altitude here + task = { id='FireAtPoint', params = { point = { x = attackPoint.x, y = attackPoint.z }, expendQty = 1, radius = 50, weaponType = 0 } } elseif _isBomberOrFighter(arty:getUnit(1)) then task = { id='Bombing', params = { y = attackPoint.z, x = attackPoint.x, altitude = firepoint.altitude, altitudeEnabled = true, attackQty = 1, groupAttack = true, weaponType = 2147485694 } } else - task = { id='FireAtPoint', params = { point = { x = attackPoint.x, y = attackPoint.y, z = attackPoint.z }, expendQty = rounds or 1, dispersion = 50, attackQty = 1, weaponType = 0 } } + -- Ground artillery + task = { id='FireAtPoint', params = { point = { x = attackPoint.x, y = attackPoint.z }, expendQty = rounds or 1, radius = 50, weaponType = 0 } } end local ctrl = arty:getController() - ctrl:setOption(1,1) ctrl:pushTask(task) - ctrl:setOption(10,3221225470) + -- Avoid forcing unknown option ids; rely on group's ROE/AlarmState from mission editor local ammo = self:_artyAmmo(arty:getUnits()) self._ArtyTasked[arty:getName()] = { name = arty:getName(), tasked = rounds or 1, timeTasked = timer.getTime(), tgt = enemy, requestor = self:_facName(uname) } trigger.action.outTextForCoalition(u:GetCoalition(), string.format('Fire mission sent: %s firing %d rounds. Requestor: %s', arty:getUnit(1):getTypeName(), rounds or 1, self:_facName(uname)), 10) + _dbg(self, string.format('Action:CallFireMission unit=%s asset=%s rounds=%s point=(%.0f,%.0f)', uname, arty:getName(), tostring(rounds), attackPoint.x, attackPoint.z)) end function FAC:_callFireMissionMulti(group, rounds, mode) @@ -1047,6 +1120,7 @@ function FAC:_callFireMissionMulti(group, rounds, mode) local first = list[1] local arty = self:_getArtyFor(first:getPoint(), u, 4) if not arty then MESSAGE:New('No guided asset available', 10):ToGroup(group) return end + _dbg(self, string.format('Action:CallFireMissionMulti unit=%s targets=%d asset=%s', uname, #list, arty:getName())) local tasks = {} local guided = self:_guidedAmmo(arty:getUnits()) for i,t in ipairs(list) do @@ -1061,6 +1135,7 @@ function FAC:_callFireMissionMulti(group, rounds, mode) ctrl:setOption(10,3221225470) self._ArtyTasked[arty:getName()] = { name=arty:getName(), tasked = #tasks, timeTasked=timer.getTime(), tgt=nil, requestor=self:_facName(uname) } trigger.action.outTextForCoalition(u:GetCoalition(), string.format('Guided strike queued on %d targets', #tasks), 10) + _dbg(self, string.format('Action:CallFireMissionMulti unit=%s queuedTasks=%d', uname, #tasks)) end function FAC:_callCarpetOnCurrent(group) @@ -1071,7 +1146,10 @@ function FAC:_callCarpetOnCurrent(group) if not tgt then MESSAGE:New('No current target', 10):ToGroup(group) return end local enemy = Unit.getByName(tgt.name) if not enemy or not enemy:isActive() then MESSAGE:New('Target invalid', 10):ToGroup(group) return end - self:_executeCarpetOrTALD(enemy:getPoint(), u:GetCoalition(), 'CARPET', math.floor(_getHeading(u)*180/math.pi)) + local du = Unit.getByName(uname) + local attackHdgDeg = du and math.floor(_getHeading(du)*180/math.pi) or 0 + _dbg(self, string.format('Action:Carpet unit=%s target=%s hdg=%d', uname, enemy:getName(), attackHdgDeg)) + self:_executeCarpetOrTALD(enemy:getPoint(), u:GetCoalition(), 'CARPET', attackHdgDeg) end function FAC:_executeCarpetOrTALD(point, coal, mode, attackHeadingDeg) @@ -1086,6 +1164,7 @@ function FAC:_executeCarpetOrTALD(point, coal, mode, attackHeadingDeg) local hdg = attackHeadingDeg and math.rad(attackHeadingDeg) or 0 local weaponType = (mode=='TALD') and 8589934592 or 2147485694 local altitude = (mode=='TALD') and 10000 or pos.y + _dbg(self, string.format('Action:%s asset=%s heading=%d', tostring(mode or 'CARPET'), u1:getName(), attackHeadingDeg or -1)) local task = { id='Bombing', params={ x=point.x, y=point.z, altitude=altitude, altitudeEnabled=true, attackQty=1, groupAttack=true, weaponType=weaponType, direction=hdg, directionEnabled=true } } local ctrl = arty:getController() ctrl:setOption(1,1) diff --git a/Moose_CTLD_Pure/Moose_CTLD_Pure.miz b/Moose_CTLD_Pure/Moose_CTLD_Pure.miz index 6ebc2d5e3e1d13a7aa6da566726cd6464f87412d..44f40997ca3a4682406045374af08d2dc0258575 100644 GIT binary patch delta 37582 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 delta 35299 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 CEXFbb