mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
#PLAYERRECCE
This commit is contained in:
parent
d09f409359
commit
51be801637
@ -2425,6 +2425,26 @@ do -- SET_UNIT
|
|||||||
return CountU
|
return CountU
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Gets the alive set.
|
||||||
|
-- @param #SET_UNIT self
|
||||||
|
-- @return #table Table of SET objects
|
||||||
|
-- @return #SET_UNIT AliveSet
|
||||||
|
function SET_UNIT:GetAliveSet()
|
||||||
|
|
||||||
|
local AliveSet = SET_UNIT:New()
|
||||||
|
|
||||||
|
-- Clean the Set before returning with only the alive Groups.
|
||||||
|
for GroupName, GroupObject in pairs(self.Set) do
|
||||||
|
local GroupObject=GroupObject --Wrapper.Client#CLIENT
|
||||||
|
|
||||||
|
if GroupObject and GroupObject:IsAlive() then
|
||||||
|
AliveSet:Add(GroupName, GroupObject)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return AliveSet.Set or {}, AliveSet
|
||||||
|
end
|
||||||
|
|
||||||
--- [Internal] Private function for use of continous zone filter
|
--- [Internal] Private function for use of continous zone filter
|
||||||
-- @param #SET_UNIT self
|
-- @param #SET_UNIT self
|
||||||
-- @return #SET_UNIT self
|
-- @return #SET_UNIT self
|
||||||
@ -2820,7 +2840,13 @@ do -- SET_UNIT
|
|||||||
-- @return Core.Point#COORDINATE The center coordinate of all the units in the set, including heading in degrees and speed in mps in case of moving units.
|
-- @return Core.Point#COORDINATE The center coordinate of all the units in the set, including heading in degrees and speed in mps in case of moving units.
|
||||||
function SET_UNIT:GetCoordinate()
|
function SET_UNIT:GetCoordinate()
|
||||||
|
|
||||||
local Coordinate = self:GetRandom():GetCoordinate()
|
local Coordinate = nil
|
||||||
|
local unit = self:GetRandom()
|
||||||
|
if self:Count() == 1 and unit then
|
||||||
|
return unit:GetCoordinate()
|
||||||
|
end
|
||||||
|
if unit then
|
||||||
|
local Coordinate = unit:GetCoordinate()
|
||||||
--self:F({Coordinate:GetVec3()})
|
--self:F({Coordinate:GetVec3()})
|
||||||
|
|
||||||
|
|
||||||
@ -2834,7 +2860,7 @@ do -- SET_UNIT
|
|||||||
local AvgHeading = nil
|
local AvgHeading = nil
|
||||||
local MovingCount = 0
|
local MovingCount = 0
|
||||||
|
|
||||||
for UnitName, UnitData in pairs( self:GetSet() ) do
|
for UnitName, UnitData in pairs( self:GetAliveSet() ) do
|
||||||
|
|
||||||
local Unit = UnitData -- Wrapper.Unit#UNIT
|
local Unit = UnitData -- Wrapper.Unit#UNIT
|
||||||
local Coordinate = Unit:GetCoordinate()
|
local Coordinate = Unit:GetCoordinate()
|
||||||
@ -2864,6 +2890,7 @@ do -- SET_UNIT
|
|||||||
Coordinate:SetVelocity( MaxVelocity )
|
Coordinate:SetVelocity( MaxVelocity )
|
||||||
|
|
||||||
self:F( { Coordinate = Coordinate } )
|
self:F( { Coordinate = Coordinate } )
|
||||||
|
end
|
||||||
return Coordinate
|
return Coordinate
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -916,7 +916,8 @@ function PLAYERRECCE:_LaseTarget(client,targetset)
|
|||||||
-- still looking at target?
|
-- still looking at target?
|
||||||
local target=self.LaserTarget[playername] -- Ops.Target#TARGET
|
local target=self.LaserTarget[playername] -- Ops.Target#TARGET
|
||||||
local oldtarget = target:GetObject() --or laser.Target
|
local oldtarget = target:GetObject() --or laser.Target
|
||||||
self:T("Targetstate: "..target:GetState())
|
--self:I("Targetstate: "..target:GetState())
|
||||||
|
--self:I("Laser State: "..tostring(laser:IsLasing()))
|
||||||
if not oldtarget or targetset:IsNotInSet(oldtarget) or target:IsDead() or target:IsDestroyed() then
|
if not oldtarget or targetset:IsNotInSet(oldtarget) or target:IsDead() or target:IsDestroyed() then
|
||||||
-- lost LOS or dead
|
-- lost LOS or dead
|
||||||
laser:LaseOff()
|
laser:LaseOff()
|
||||||
@ -928,12 +929,20 @@ function PLAYERRECCE:_LaseTarget(client,targetset)
|
|||||||
self.LaserTarget[playername] = nil
|
self.LaserTarget[playername] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if oldtarget and (not laser:IsLasing()) then
|
||||||
|
--self:I("Switching laser back on ..")
|
||||||
|
local lasercode = self.UnitLaserCodes[playername] or laser.LaserCode or 1688
|
||||||
|
local lasingtime = self.lasingtime or 60
|
||||||
|
--local targettype = target:GetTypeName()
|
||||||
|
laser:LaseOn(oldtarget,lasercode,lasingtime)
|
||||||
|
--self:__TargetLasing(-1,client,oldtarget,lasercode,lasingtime)
|
||||||
|
end
|
||||||
elseif not laser:IsLasing() and target then
|
elseif not laser:IsLasing() and target then
|
||||||
local relativecam = self.LaserRelativePos[client:GetTypeName()]
|
local relativecam = self.LaserRelativePos[client:GetTypeName()]
|
||||||
laser:SetRelativeStartPosition(relativecam)
|
laser:SetRelativeStartPosition(relativecam)
|
||||||
local lasercode = self.UnitLaserCodes[playername] or laser.LaserCode or 1688
|
local lasercode = self.UnitLaserCodes[playername] or laser.LaserCode or 1688
|
||||||
local lasingtime = self.lasingtime or 60
|
local lasingtime = self.lasingtime or 60
|
||||||
local targettype = target:GetTypeName()
|
--local targettype = target:GetTypeName()
|
||||||
laser:LaseOn(target,lasercode,lasingtime)
|
laser:LaseOn(target,lasercode,lasingtime)
|
||||||
self.LaserTarget[playername] = TARGET:New(target)
|
self.LaserTarget[playername] = TARGET:New(target)
|
||||||
self.LaserTarget[playername].TStatus = 9
|
self.LaserTarget[playername].TStatus = 9
|
||||||
@ -1101,9 +1110,13 @@ function PLAYERRECCE:_SmokeTargets(client,group,playername)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local coordinate = nil
|
||||||
|
local setthreat = 0
|
||||||
-- smoke everything else
|
-- smoke everything else
|
||||||
|
if cameraset:CountAlive() > 1 then
|
||||||
local coordinate = cameraset:GetCoordinate()
|
local coordinate = cameraset:GetCoordinate()
|
||||||
local setthreat = cameraset:CalculateThreatLevelA2G()
|
local setthreat = cameraset:CalculateThreatLevelA2G()
|
||||||
|
end
|
||||||
|
|
||||||
if coordinate then
|
if coordinate then
|
||||||
local color = lowsmoke
|
local color = lowsmoke
|
||||||
@ -1983,7 +1996,7 @@ function PLAYERRECCE:onafterTargetLasing(From, Event, To, Client, Target, Laserc
|
|||||||
coordtext = coord:ToStringFromRPShort(self.ReferencePoint,self.RPName,client,Settings)
|
coordtext = coord:ToStringFromRPShort(self.ReferencePoint,self.RPName,client,Settings)
|
||||||
end
|
end
|
||||||
local coordtext = coord:ToStringA2G(client,Settings)
|
local coordtext = coord:ToStringA2G(client,Settings)
|
||||||
local text = string.format("All stations, %s lasing %s\nat %s!\nCode %d, Duration %d seconds!",callsign, targettype, coordtext, Lasercode, Lasingtime)
|
local text = string.format("All stations, %s lasing %s\nat %s!\nCode %d, Duration %d plus seconds!",callsign, targettype, coordtext, Lasercode, Lasingtime)
|
||||||
MESSAGE:New(text,15,self.Name or "FACA"):ToClient(client)
|
MESSAGE:New(text,15,self.Name or "FACA"):ToClient(client)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user