You can use behavior trees and the Environment Query System.
https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/index.html
https://docs.unrealengine.com/latest/INT/Engine/AI/EnvironmentQuerySystem/index.html
With BT and EQS, you can do all you just described.
I will warn you have BT has a learning curve, so take your time.