Anti-Bullet Poof Stages

This chapter covers how to create fragments that do not produce (or minimize) PSPs, SPs, and DPs.

There is included an [example of a clean fragment transition]

Anti-Primary Spawn Poof (Anti-PSP Stages)

There is no known way to fully get rid of a PSP, only to make them as invisible as possible and to prevent them from overlapping to reduce the accumulation of noticable opaqueness.

{ 17000
	features=CANNON
    cannon={
    -- Anti-PSP stage:
        roundsPerSec=0.3
        power=10
		
        damage=50
        muzzleVel=200
        range=    200*1.2
		color=0xFFFF0000
		fragment={
    -- Genuine projectile stage:
			damage=50
			muzzleVel=1
			range=    1*1.2
			color=0xFF0000FF
			explosive=FRAG_NOFLASH
		}
    }
}

Anti-Spawn Poof (Anti-SP Stages)

Spawn poofs of non-primary stages are simple to remove using explosive=FRAG_NOFLASH on the stage which spawns the SP.

{ 17000
	features=CANNON
    cannon={
    -- Red, other primary stage.
        roundsPerSec=0.3
        power=10
        damage=50
        muzzleVel=200
        range=    200*1.2
		color=0xFFFF0000
		fragment={
    -- Blue, non-primary anti-SP stage:
			damage=50
			muzzleVel=1
			range=    1*1.2
			color=0xFF0000FF
			explosive=FRAG_NOFLASH -- Makes this stage anti-SP.
		}
    }
}

Anti-Despawn Poof (Anti-DP Stages)

Getting rid of despawn poofs is less simple than for spawn poofs. DPs can either be removed by:

  1. Declaring explosive=FINAL on the stage which spawns the DP with the side effect that the bullet cannot to deal damage.
  2. Declaring explosive=FINAL and explodeRadius=1 on the stage with the side effect that the bullet always plays the explosion sound effect on despawn.

Case 1: explosive=FINAL

Only having explosive=FINAL with no definition of explodeRadius makes the bullet use the default explodeRadius of zero, making it never hit anything and play no sound.

{ 17000
	features=CANNON
    cannon={
        damage=50
        roundsPerSec=1
        power=10
        muzzleVel=300
        range=200
		color=0xFFFFFFFF
		explosive=FINAL -- Makes this stage anti-DP.
    }
}

Case 2: explosvie=FINAL and explodeRadius=1

Having explosive=FINAL and defining explodeRadius=1 makes the bullet able to deal damage and makes it play the explosion sound effect on despawn.

{ 17000
	features=CANNON
    cannon={
        damage=50
        roundsPerSec=1
        power=10
        muzzleVel=300
        range=200
		color=0xFFFFFFFF
        -- Makes this stage anti-DP:
		explosive=FINAL
		explodeRadius=1
    }
}

Example of a Clean Fragment Transition

The following fragment transition from the red bullet to the blue bullet contains no poofs, whereby the red anti-DP stage leads into the blue anti-SP stage:

{ 17000
	features=CANNON
    cannon={
    -- Red anti-DP stage:
        damage=25
        muzzleVel=200
        range=    200
        roundsPerSec=0.8
        power=10
		color=0xFFFF0000
		explosive=FINAL
		projectileSize=1
		fragment={
    -- Blue anti-SP stage:
			damage=25
			muzzleVel=1
			range=    1
			color=0xFF0000FF
			explosive=FRAG_NOFLASH
		}
    }
}

Note that despite this stage contains 50 units worth of damage, it can only ever deal 25 units of damage as the first stage's explosion will never overlap with anything as it's undefined explodeRadius is by default set to zero: