Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ActionFunction = function(unit, action)
- local result = false
- local actionBp = HeroAIActionTemplates[action.ActionName]
- local aiBrain = unit:GetAIBrain()
- -- Check to see if there is a nearby flag that we control - if not, then don't continue
- local flags = aiBrain:GetUnitsAroundPoint( categories.FLAG, unit:GetPosition(), 32, 'Ally' )
- if table.empty(flags) then
- return
- end
- flags = SortEntitiesByDistanceXZ(unit.Position, flags)
- --# 0.27.07 added local flag = false per miri - this SHOULD keep the ai from recasting locks on locked flags
- local flag = false
- for k,v in flags do --Mithy: Add check for being locked before proceeding
- if aiBrain:GetBlipsAroundPoint( categories.HERO, v.Position, 20, 'Enemy' ) > 0 and v.CanBeCaptured and not v.BeingLocked then
- flag = v
- break
- end
- end
- if not flag then
- return
- end
- local ready = GetReadyAbility(unit, actionBp.Abilities)
- if(ready) then
- result = true
- end
- if(result) then
- local captureUnits = flag:GetCaptureList()
- for k,v in captureUnits do
- if (v == 'ugbportal01') then
- local announcement = "Lock Portal flag."
- AIUtils.AIChat(unit, announcement)
- elseif (v == 'unbidol01') then
- local announcement = "Lock Valor flag."
- AIUtils.AIChat(unit, announcement)
- else
- #Do nothing
- end
- end
- --Mithy: Mark this flag as being locked until we're done casting (at which point it will be non-capturable)
- flag.BeingLocked = true
- local endResult = AIAbility.UseTargetedAbility(unit, ready, flag, actionBp.ActionTimeout)
- flag.BeingLocked = nil
- return endResult
- else
- return false
- end
- end,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement