Making attack variations without if statements

So basically I want to throw out a projectile of some sort, but if the player meets a specific requirement (Being at full health lets say), then it will explode upon impact.
Now you could technically achieve this with:

function throwShuriken(plr)
   if plr.Humanoid.Health == plr.Humanoid.MaxHealth then
      -- explode

   --normal projectile 

I want to avoid this approach as there will be many variations on one attack so it will be extremely inefficient and ruins readability.
Any help is appreciated!

I don’t see how this would be inefficient in the least. If there are variations to the attack, doing the one’s that are prioritized variants and using this return method would be the best. Correct me if I’m wrong, but this would actually help you sort everything out and prevent multiple attacks.