// Taken from Psychic with permission. actor Lith_PuffSmoke { Radius 1 Height 1 RenderStyle Add Alpha 0.3 Scale 0.4 +NOGRAVITY +NOBLOCKMAP +FLOORCLIP +FORCEXYBILLBOARD States { Spawn: SMK5 ABCDEFGHIJKLMNOP 1 stop } } actor Lith_BulletPuff replaces BulletPuff { RenderStyle "Add" DamageType "Lith_Bullets" Species "Lith_Player" Alpha 0.9 +NOGRAVITY +NOBLOCKMAP +FLOORCLIP +NOEXTREMEDEATH +FORCEXYBILLBOARD +PUFFGETSOWNER +MTHRUSPECIES -ALLOWPARTICLES States { explod: MISL B 0 A_SetScale(0.3) MISL B 0 A_PlaySound("explosion") MISL B 8 bright A_Explode MISL C 6 bright MISL D 4 bright stop Spawn: XPUF Q 0 XPUF Q 0 A_JumpIf(CallACS("LPData", pdata_upgrade, UPGR_TorgueMode, true), "explod") XPUF Q 0 A_SpawnItemEx("Lith_PuffSmoke", 0, 0, 4.0 + 0.1 * random(-10, 10)) XPUF Q 0 A_Jump(256, "PuffNormal", "PuffMirrored") PuffNormal: XPUF Q 0 A_Jump(32, "PuffNormalAlt") XPUF QRSTU 1 bright PuffNormalEnd: XPUF FGH 1 bright stop PuffNormalAlt: XPUF A 0 A_PlaySound("effects/puff/ricochet") XPUF ABCDE 1 bright goto PuffNormalEnd PuffMirrored: XPUF V 0 A_Jump(32, "PuffMirroredAlt") XPUF VWXYZ 1 bright PuffMirroredEnd: XPUF NOP 1 bright stop PuffMirroredAlt: XPUF I 0 A_PlaySound("effects/puff/ricochet") XPUF IJKLM 1 bright goto PuffMirroredEnd } } // EOF