Help with Sigma Knocback Ability

I’m trying my hand at replacing Sigma’s barrier ability with a radius AOE knock back ability. The general idea is to push enemies off you in all directions (sides, and above).

For the most part I have this working.

I kind of cheated and used “Direction Towards(Event Player, Player.CurrentPlayerInRadius)” where I set Player.CurrentPlayerInRadius to the current player I’m evaluating in a loop. I then modify the Y value and add 2.0 to it to give it an upward thrust so it’s more of a “throw” than a “push”.

The obvious problems I have are:

  • If Event Player and Player.CurrentPlayerInRadius are not on the same Y plane, it doesn’t work properly after I add to the Y value. For example if Player.CurrentPlayerInRadius is lower, it actually doesn’t “pick up” the character. But if Player.CurrentPlayerInRadius is higher, the “throw” is more pronounced.
  • The distance of the throw varies on the distance between Event Player and Player.CurrentPlayerInRadius.

What I want is to have the same upward thrust and just enough distance to throw the player(s) inside the radius outside the radius (or perhaps a second larger radius). I want it to work the same regardless of the vertical relationship of the two players.

Another issue (but not super important right now) is if the ability manages to throw someone off the edge of the map, Sigma does not get credit for the kill. I’ve tried applying damage to the target, but that doesn’t seem to matter.

You can probably fix this by replacing “Direction Towards(Event Player, Player.CurrentPlayerInRadius)” with:

normalize(direction towards(event player * vector(1, 0, 1), player.CurrentPlayerInRadius * vector(1, 0, 1))) + vector(0, 2, 0)

I’m not sure if you can fix this.
Though an idea would be to set a player variable A = (simga player) when a player gets thrown by sigma and set A =null when he lands on the ground. In a new rule you check for a players position having a low Y value (he is about to die to the environment) and his player variable A != null, then in the action list you kill the player with the killer being his variable A.

Here’s a recommendation for the launch direction:

Direction From Angles(Horizontal Angle From Direction(Direction Towards(Event Player, Event Player.CurrentPlayerInRadius)), -45)

This will knock away players at a 45° angle vertically, which is the exact same as Junkrat’s Concussion Mine. You can, of course, change the angle if you wish.

1 Like

Thank you!

How would I know for certain they are about to die to environment? They could be just barely over the edge and apply enough forward momentum to survive.

I don’t suppose there is a way to apply killer credit after the “killed” event fires.

I was really hoping that applying damage from Sigma while the player is in the air would apply credit. It didn’t work, although maybe the timing was off - perhaps it actually applied while they were still on the ground. I know in the game if you get shot in the air and then fall off, the shooter usually gets credit.

This works great thank you!! That works out quite well. Being able to control the angle really helps lock in the effect.

The only thing I have to figure out (which shouldn’t be too difficult) is to modify the impulse speed depending on the distance between characters relative to the outer edge of the radius. Right now the knock back effect is the same regardless of position. I think I can do that by calculating a percentage from distance from and the radius and applying that to my base impulse speed. Assuming distance is a single number value (if not, may be more complicated with x,y,z :laughing:). I didn’t have time to tinker with that this morning, but I’ll give it a shot later tonight.

If I can lock all that down, I think I’m going to play with reducing gravity on a player, raising them up just slightly, then applying the impulse to give it a “gravity effect”.

Sadly Sigma won’t do any animating himself. I wish there was a way to trick him into moving his right arm like when he projects the shield, but without the shield.

You need to find out the height (Y value) that triggers the environment kill, then you kill them when they are slightly above it.

Yes.

It is.

1 Like

I actually figured out the kill credit! Easier than I thought. Just apply a stun status effect for 0.001 seconds with the impulse and the kill credit applies. The duration is so low it doesn’t even animate the stun. I believe the same thing happens with knockdown.

2 Likes