Hacky method: send several projectiles, without any spread. Make them of different types, all derived from each other through inheritance.
Use code this form:
- Code: Select all • Expand view
Actor BulletThatGoesABitFarther : BulletThatStopsAfterAWhile
{
States
{
Spawn:
BULL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1
Goto Super::Spawn
}
}
The number of A in the spawn state determines how long it exists, and therefore, how long it travels. The first class should be the one that travels the least, then you can just copy/paste the exact same code, changing only the name of the bullet actor and its parent, to get even increments in this way.
Shoot all of these projectiles at once and without any sort of variance (you can use args[] or user variables if you do want random spread, compute it once and use the same values for each projectile) so that they'll overlap and just disappear when they run out of their range. There will be gradually less bullets, and therefore gradually less damage.