From 3d5dfc422d543c85520887c546d7fcca69925d19 Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Mon, 30 Sep 2024 11:36:19 +0200 Subject: [PATCH] xx --- Moose Development/Moose/Core/Spawn.lua | 21 ++++++++++++------- Moose Development/Moose/Functional/Sead.lua | 8 +++---- Moose Development/Moose/Wrapper/Group.lua | 3 +++ .../Moose/Wrapper/Positionable.lua | 3 +++ 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Moose Development/Moose/Core/Spawn.lua b/Moose Development/Moose/Core/Spawn.lua index b0aa78852..b9450f99d 100644 --- a/Moose Development/Moose/Core/Spawn.lua +++ b/Moose Development/Moose/Core/Spawn.lua @@ -3956,12 +3956,17 @@ end -- @return #number count function SPAWN:_CountAliveUnits() local count = 0 + self:I("self.SpawnAliasPrefix="..tostring(self.SpawnAliasPrefix).." | self.SpawnTemplatePrefix="..tostring(self.SpawnTemplatePrefix)) if self.SpawnAliasPrefix then if not self.SpawnAliasPrefixEscaped then self.SpawnAliasPrefixEscaped = string.gsub(self.SpawnAliasPrefix,"[%p%s]",".") end + self:I("self.SpawnAliasPrefixEscaped="..tostring(self.SpawnAliasPrefixEscaped)) local SpawnAliasPrefix = self.SpawnAliasPrefixEscaped local agroups = GROUP:FindAllByMatching(SpawnAliasPrefix) for _,_grp in pairs(agroups) do + self:I("Group Name = " .. _grp:GetName()) local game = self:_GetPrefixFromGroupName(_grp.GroupName) + self:I("Game = "..game) + self:I("Count = ".._grp:CountAliveUnits()) if game and game == self.SpawnAliasPrefix then count = count + _grp:CountAliveUnits() end @@ -3977,15 +3982,16 @@ function SPAWN:_CountAliveUnits() end end end - return count + self.AliveUnits = count + return self end --- -- @param #SPAWN self -- @param Core.Event#EVENTDATA EventData function SPAWN:_OnDeadOrCrash( EventData ) - --self:T2( "Dead or crash event ID "..tostring(EventData.id or 0)) - --self:T2( "Dead or crash event for "..tostring(EventData.IniUnitName or "none") ) + self:I( "Dead or crash event ID "..tostring(EventData.id or 0)) + self:I( "Dead or crash event for "..tostring(EventData.IniUnitName or "none") ) --if EventData.id == EVENTS.Dead then return end @@ -3997,11 +4003,12 @@ function SPAWN:_OnDeadOrCrash( EventData ) local EventPrefix = self:_GetPrefixFromGroupName(unit.GroupName) if EventPrefix then -- EventPrefix can be nil if no # is found, which means, no spawnable group! - --self:T2(string.format("EventPrefix = %s | SpawnAliasPrefix = %s | Old AliveUnits = %d",EventPrefix or "",self.SpawnAliasPrefix or "",self.AliveUnits or 0)) + self:I(string.format("EventPrefix = %s | SpawnAliasPrefix = %s | Old AliveUnits = %d",EventPrefix or "",self.SpawnAliasPrefix or "",self.AliveUnits or 0)) if EventPrefix == self.SpawnTemplatePrefix or ( self.SpawnAliasPrefix and EventPrefix == self.SpawnAliasPrefix ) and self.AliveUnits > 0 then - --self:I( { "Dead event: " .. EventPrefix } ) - --self.AliveUnits = self.AliveUnits - 1 - self.AliveUnits = self:_CountAliveUnits() + self:I( { "Dead event: " .. EventPrefix } ) + --self.AliveUnits = self.AliveUnits - 1 + self:ScheduleOnce(1,self._CountAliveUnits,self) + --self.AliveUnits = self:_CountAliveUnits() --self:I( "New Alive Units: " .. self.AliveUnits ) end end diff --git a/Moose Development/Moose/Functional/Sead.lua b/Moose Development/Moose/Functional/Sead.lua index 64ee1dc7d..314c9422f 100644 --- a/Moose Development/Moose/Functional/Sead.lua +++ b/Moose Development/Moose/Functional/Sead.lua @@ -19,7 +19,7 @@ -- -- ### Authors: **applevangelist**, **FlightControl** -- --- Last Update: Dec 2023 +-- Last Update: Oct 2024 -- -- === -- @@ -37,7 +37,7 @@ -- @field #function CallBack Callback function for suppression plans. -- @field #boolean UseCallBack Switch for callback function to be used. -- @field #boolean debug Debug switch. --- @field #boolen WeaponTrack Track switch, if true track weapon speed for 15 secs. +-- @field #boolen WeaponTrack Track switch, if true track weapon speed for 30 secs. -- @extends Core.Base#BASE --- Make SAM sites execute evasive and defensive behaviour when being fired upon. @@ -70,7 +70,7 @@ SEAD = { CallBack = nil, UseCallBack = false, debug = false, - WeaponTrack = true, + WeaponTrack = false, } --- Missile enumerators @@ -481,7 +481,7 @@ function SEAD:HandleEventShot( EventData ) self:T( '*** SEAD - Weapon Match' ) if self.WeaponTrack == true then WeaponWrapper:SetFuncTrack(function(weapon) env.info(string.format("*** Weapon Speed: %d m/s",weapon:GetSpeed() or -1)) end) - WeaponWrapper:StartTrack() + WeaponWrapper:StartTrack(0.1) WeaponWrapper:StopTrack(30) end local _targetskill = "Random" diff --git a/Moose Development/Moose/Wrapper/Group.lua b/Moose Development/Moose/Wrapper/Group.lua index a8f27de21..ab0992161 100644 --- a/Moose Development/Moose/Wrapper/Group.lua +++ b/Moose Development/Moose/Wrapper/Group.lua @@ -492,13 +492,16 @@ function GROUP:Destroy( GenerateEvent, delay ) if GenerateEvent and GenerateEvent == true then if self:IsAir() then self:CreateEventCrash( timer.getTime(), UnitData ) + --self:ScheduleOnce(1,self.CreateEventCrash,self,timer.getTime(),UnitData) else self:CreateEventDead( timer.getTime(), UnitData ) + --self:ScheduleOnce(1,self.CreateEventDead,self,timer.getTime(),UnitData) end elseif GenerateEvent == false then -- Do nothing! else self:CreateEventRemoveUnit( timer.getTime(), UnitData ) + --self:ScheduleOnce(1,self.CreateEventRemoveUnit,self,timer.getTime(),UnitData) end end USERFLAG:New( self:GetName() ):Set( 100 ) diff --git a/Moose Development/Moose/Wrapper/Positionable.lua b/Moose Development/Moose/Wrapper/Positionable.lua index 9d8c77873..735760430 100644 --- a/Moose Development/Moose/Wrapper/Positionable.lua +++ b/Moose Development/Moose/Wrapper/Positionable.lua @@ -110,14 +110,17 @@ function POSITIONABLE:Destroy( GenerateEvent ) if GenerateEvent and GenerateEvent == true then if self:IsAir() then + --self:ScheduleOnce(1,self.CreateEventCrash,self,timer.getTime(),DCSObject) self:CreateEventCrash( timer.getTime(), DCSObject ) else + --self:ScheduleOnce(1,self.CreateEventDead,self,timer.getTime(),DCSObject) self:CreateEventDead( timer.getTime(), DCSObject ) end elseif GenerateEvent == false then -- Do nothing! else self:CreateEventRemoveUnit( timer.getTime(), DCSObject ) + --self:ScheduleOnce(1,self.CreateEventRemoveUnit,self,timer.getTime(),DCSObject) end USERFLAG:New( UnitGroupName ):Set( 100 )