Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.59 KB | None | 0 0
  1.             if bp.MinAoA then
  2.                 --2013 find angle
  3.                 --LOG('Got the target')                
  4.                 --DefaultProjectileWeapon.IdleState.OnGotTarget(self)
  5.                 local selfpos = self.unit:GetPosition()
  6.                 selfpos[2] = GetSurfaceHeight(selfpos[1], selfpos[3])
  7.                 --LOG('Unit at ', repr(selfpos))
  8.                 local targetpos = self:GetCurrentTargetPos()
  9.                
  10.                 --LOG('Target at ', repr(targetpos))
  11.                 local gtadistance = Utilities.GetDistanceBetweenTwoPoints(selfpos[1], selfpos[2], selfpos[3], targetpos[1], targetpos[2], targetpos[3])
  12.                 local gtgdistance = Utilities.GetDistanceBetweenTwoPoints(selfpos[1], selfpos[2], selfpos[3], targetpos[1], selfpos[2], targetpos[3])
  13.                 local firingangle = (math.acos(gtgdistance / gtadistance))*(360/(math.pi*2))
  14.                 --LOG('Fireangle at ', firingangle, ' minfiringangle from BP is ', bp.MinAoA)                  
  15.                 --LOG('Got the target at angle ', firingangle, ' from unit at ', selfpos, ' targeting ', targetpos)
  16.                 if firingangle < bp.MinAoA then
  17.                     --LOG('FIRE ANGLE TOO LOW, Resetting target')
  18.                     self:ResetTarget()
  19.                     self.AimControl:SetResetPoseTimer(0.1)                 
  20.                     --LOG('Target and Pose Reset!')                
  21.                     --self:SetTargetEntity()                   
  22.                     --LOG('Target entity nulled!')
  23.                     self.NeedNewTarget = true
  24.                     --LOG('Set self to need new target success')
  25.                     local aiBrain = self.unit:GetAIBrain()     
  26.                     --LOG('AIBrain Assigned to parent unit')
  27.                     local enemies = aiBrain:GetUnitsAroundPoint( categories.AIR, self.unit:GetPosition(), bp.MaxRadius * bp.TrackingRadius, 'Enemy' )
  28.                     --LOG('Enemies found')
  29.                     for k,v in enemies do
  30.                         --if v != self:GetCurrentTarget() then
  31.                             if self.NeedNewTarget then
  32.                                 local vselfpos = self.unit:GetPosition()
  33.                                 vselfpos[2] = GetSurfaceHeight(vselfpos[1], vselfpos[3])
  34.                                 --LOG('retarget Unit at ', repr(vselfpos))
  35.                                 local vtargetpos = v:GetPosition()
  36.                                 --LOG('retarget Target at ', repr(vtargetpos))
  37.                                 local vgtadistance = Utilities.GetDistanceBetweenTwoPoints(vselfpos[1], vselfpos[2], vselfpos[3], vtargetpos[1], vtargetpos[2], vtargetpos[3])
  38.                                 local vgtgdistance = Utilities.GetDistanceBetweenTwoPoints(vselfpos[1], vselfpos[2], vselfpos[3], vtargetpos[1], vselfpos[2], vtargetpos[3])
  39.                                 local vfiringangle = (math.acos(vgtgdistance / vgtadistance))*(360/(math.pi*2))
  40.                                 --LOG('retarget Fireangle at ', vfiringangle, ' minfiringangle from BP is ', bp.MinAoA)                
  41.                                 --LOG('retarget Got the target at angle ', vfiringangle, ' from unit at ', vselfpos, ' targeting ', vtargetpos)                        
  42.                                 if vfiringangle > bp.MinAoA then
  43.                                     --LOG('retarget Found viable Target', v)
  44.                                     self:SetTargetEntity(v)
  45.                                     --LOG('retarget NEW TARGET SET!')
  46.                                     self.NeedNewTarget = false
  47.                                     self:SetEnabled(true)
  48.                                 else
  49.                                     --LOG('retarget failure on pass', v)
  50.                                     self:ResetTarget()
  51.                                     self:SetEnabled(false)
  52.                                     self.AimControl:SetResetPoseTimer(0.1)
  53.                                     --WaitSeconds(bp.TargetCheckInterval or 1)
  54.                                     --self:SetEnabled(true)                                
  55.                                     --LOG('retarget RESET on fail pass', v)
  56.                                 end
  57.                             end
  58.                         --end
  59.                     end
  60.                     if self.NeedNewTarget then
  61.                         --LOG('OOOOH NOOOOOESSS, NO NEW TARGET FOUND!!!')
  62.                         self:ResetTarget()
  63.                         self:SetEnabled(false)
  64.                         self.AimControl:SetResetPoseTimer(0.1)
  65.                         --WaitSeconds(bp.TargetCheckInterval or 1)
  66.                         self:SetEnabled(true)                          
  67.                         --LOG('OOOOH NOOOOOESSS, TARGET RESET SUCCESS!!!')                     
  68.                         --self:SetTargetEntity()                       
  69.                         --LOG('OOOOH NOOOOOESSS, TARGET ENTITY BLANKED!!!')        
  70.                     else
  71.                         self:SetEnabled(true)
  72.                     end
  73.                 end
  74.             end
  75.         end,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement