Launch Character Based on 2 Vectors and Velocity

I have a vector math question. I have spent a lot of time getting my head around vector math, but I don’t know where to start on this one and am reaching out to the community for some help.

I am making a game where I need two AIs to push on each other. One blocking in a certain direction and the other trying to get around the blocker (think offensive/defensive linemen in American football).

The idea I have for integrating this is as follows:

Blocking AI takes in a variable that sets a blocking direction (left, forward, right, stationary) that will be set using a enum paired with a target point position based on the blocking direction.

Blocking AI uses EQS to find the AI to block based on the play (again, think American football: the left guard is assigned to block the closest defensive tackle to the right).

Blocking AI calculates the momentum to apply to the defensive AI based on the direction to block location relative to the blocking AI, assigned player to block location, and momentum of blocking AI based on velocity and mass of the blocking AI.

I was planning on running a loop in the Blocking AI: Acquire target defensive AI → apply LaunchCharacter() to defensive AI in direction to push defensive AI → reacquire defensive AI → etc etc etc. Defensive AI just tries to get past the blocking AI.

If anyone could give me some input I would greatly appreciate it.

Thanks!
-Trevor