Significant update.  Working with Talonos, Phobus, and other ZDCMP2 members, I've begun sharpening the Killbots behavior to better suit a more interactive boss fight.  
A new crippled phase.  The bot slows down, sparks, and twiches once it's health has been depleted enough.  
A new sonic attack.  At close range, he has a chance of hitting his enemies with a shoulder mounted sonic weapon that rips through them with devistation!
Random teleporting!  If this guy is taking heavy fire, he won't stick around for long.  He has 9 different locations that can he can teleport to, to throw the player off.
CustomMissile sprites.
Code: Select all
Actor KillBot 3125
{
    Health 5000
    Height 180
    Mass 7000
    Radius 40
    Speed 10
    Damage 7
    Monster
    +FloatBob
    +NoGravity
    +NoBlood
    PainChance 32
    PainSound "killbot/pain"
    States
    {
    Spawn:
        BOTT A 1 A_Look 
        Loop
    See: 
        BOTT A 0 A_ChangeFlag("FloatBob", 1)
        BOTT A 0 A_ChangeFlag("NoGravity", 1)
        BOTT A 0 A_UnSetInvulnerable
        BOTT A 0 A_SetTranslucent(1,0)
        BOTT A 0 A_JumpIfHealthLower(2000, 5)
        BOTT A 0 A_Jump(4, 2)
        BOTT A 2 A_Chase
        Loop
        BOTT A 0 A_Pain
        BOTT A 2 A_Chase
        Loop
        BOTT A 0 A_Jump(64, 2)
        BOTT A 4 A_Chase
        Loop
        BOTT A 0 A_Jump(128, 9)
        BOTT A 0 A_PlaySound("world/spark1")
        BOTT A 0 BRIGHT A_CustomMissile("Spark1", 120, 0, 0)
        BOTT A 0 BRIGHT A_CustomMissile("Spark2", 120, 0, 8)
        BOTT A 0 BRIGHT A_CustomMissile("Spark3", 120, 0, -8)
        BOTT A 0 BRIGHT A_CustomMissile("Spark1", 120, 0, 16)
        BOTT A 0 BRIGHT A_CustomMissile("Spark2", 120, 0, -16)
        BOTT A 4
        BOTT A 4 A_Chase
        Loop
    	BOTT A 0 A_Jump(128, 11)
        BOTT A 0 A_PlaySound("world/spark2")
        BOTT A 0 BRIGHT A_CustomMissile("Spark2", 64, 16, 0)
        BOTT A 0 BRIGHT A_CustomMissile("Spark3", 64, 16, 8)
        BOTT A 0 BRIGHT A_CustomMissile("Spark1", 64, 16, -8)
        BOTT A 0 BRIGHT A_CustomMissile("Spark2", 64, 16, 16)
        BOTT A 0 BRIGHT A_CustomMissile("Spark3", 64, 16, -16)
        BOTT ABC 4
        BOTT A 4 A_Chase
        Loop
        BOTT A 0 A_PlaySound("world/spark3")
        BOTT A 0 BRIGHT A_CustomMissile("Spark3", 96, -32, 0)
        BOTT A 0 BRIGHT A_CustomMissile("Spark1", 96, -32, 8)
        BOTT A 0 BRIGHT A_CustomMissile("Spark2", 96, -32, -8)
        BOTT A 0 BRIGHT A_CustomMissile("Spark3", 96, -32, 16)
        BOTT A 0 BRIGHT A_CustomMissile("Spark1", 96, -32, -16)
        BOTT ADF 4
        BOTT A 4 A_Chase 
        Loop
    Missile:
        BOTT A 0 A_ChangeFlag("FloatBob", 0)
        BOTT A 0 A_JumpIfCloser(1216, 8)
        BOTT A 8 A_FaceTarget
        BOTT A 8 A_SpawnItem("BotRail", 0, 120, 0)
        BOTT A 8 A_FaceTarget
        BOTT A 8 A_SpawnItem("BotRail", 0, 120, 0)
        BOTT A 8 A_FaceTarget
        BOTT A 8 A_SpawnItem("BotRail", 0, 120, 0)
        BOTT A 8
        Goto See
        BOTT B 0 A_JumpIfCloser(704, 18)
        BOTT BC 4 A_FaceTarget
    	BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
        BOTT C 4 A_FaceTarget
        BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
        BOTT C 4 A_FaceTarget
    	BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
        BOTT C 4 A_FaceTarget
        BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
        BOTT C 4 A_FaceTarget
        BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
        BOTT C 4 A_FaceTarget
        BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
        BOTT C 4 A_FaceTarget
        BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
        BOTT C 4 A_FaceTarget
        BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
        Goto See
        BOTT D 0 A_JumpIfCloser(384, 8)
        BOTT D 2 A_FaceTarget
        BOTT E 0 BRIGHT A_CposAttack
        BOTT E 0 BRIGHT A_CposAttack
        BOTT E 0 BRIGHT A_PlaySound("spider/attack")
        BOTT E 2 BRIGHT
        BOTT F 2 A_FaceTarget
        BOTT F 0 A_SpidRefire
        Goto Missile+30
        BOTT A 0 A_Jump(128, 66)
        BOTT A 0 A_PlaySound("lichflam")
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        BOTT A 1 BRIGHT A_FaceTarget
        BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
        Goto See
        BOTT A 0
        Goto Missile+29
    Pain:
    	BOTT A 0 A_ChangeFlag("FloatBob", 0)
        BOTT A 0 A_Jump(128, 4)
    	BOTT A 0 A_ChangeFlag("NoGravity", 0)
    	BOTT A 32 
        Goto See
        BOTT A 0 A_SetInvulnerable
        BOTT A 1 A_PlaySound("shldup")
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
    	BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
    	BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
    	BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
    	BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
    	BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 1 A_FaceTarget
    	BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
        BOTT A 0 A_Jump(128, 2)
        BOTT A 0 A_FaceTarget
        Goto Pain+6
        BOTT A 0 A_PlaySound("shlddown")
        BOTT A 0 A_Jump(128, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 53, 0)
        Goto See
        BOTT A 0 A_Jump(204, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 54, 0)
        Goto See
        BOTT A 0 A_Jump(153, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 55, 0)
        Goto See
        BOTT A 0 A_Jump(204, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 56, 0)
        Goto See
        BOTT A 0 A_Jump(153, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 57, 0)
        Goto See
        BOTT A 0 A_Jump(204, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 58, 0)
        Goto See
        BOTT A 0 A_Jump(153, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 59, 0)
        Goto See
        BOTT A 0 A_Jump(204, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 60, 0)
        Goto See
        BOTT A 0 A_Jump(128, 11)
        BOTT A 1 A_SetTranslucent(.9, 1)
        BOTT A 1 A_SetTranslucent(.8, 1)
        BOTT A 1 A_SetTranslucent(.7, 1)
        BOTT A 1 A_SetTranslucent(.6, 1)
        BOTT A 1 A_SetTranslucent(.5, 1)
        BOTT A 1 A_SetTranslucent(.4, 1)
        BOTT A 1 A_SetTranslucent(.3, 1)
        BOTT A 1 A_SetTranslucent(.2, 1)
        BOTT A 1 A_SetTranslucent(.1, 1)
        BOTT A 0 TeleportOther(52, 61, 0)
        Goto See
        BOTT A 8 
        Goto See
    }
}
Actor BotShield
{
    	Speed 0
	Height 180
	Radius 90
	+NoGravity
	+NoClip
	+FloorClip
	+Shootable
	+Invulnerable
	+Reflective
	RenderStyle Add
        Alpha 0.5
        Scale .85
        States
        {
        Spawn:
       	    BLKR A 2 BRIGHT
       	    Stop
        }
}
Actor BotRail 
{
	Speed 0
	Damage 20
	+IsMonster
        +NoGravity
	+NoBlockMap
	+NoClip
	RenderStyle Translucent
	Alpha 0
	Scale .01
	States
	{
	Spawn:
	    BLKR A 0 A_FaceTarget
            Goto See
        See:
            BLKR A 0 A_FaceTarget
            Goto Missile
        Missile:
            BLKR A 0 A_FaceTarget
            BLKR A 0 A_MonsterRail
            Stop
	}
}
Actor BotDebris
{
	Speed 0
	Damage 10
	+IsMonster
        +NoGravity
	+NoBlockMap
	+NoClip
	RenderStyle Translucent
	Alpha 0
	Scale .01
	States
	{
	Spawn:
	    BLKR A 0 
            Goto See
        See:
            BLKR A 0 
            Goto Missile
        Missile:
            BLKR A 0 A_SpawnDebris("BulletSpark")
            Stop
	}
}
Actor BotRocket : Rocket
{
	+SeekerMissile
        States
	{
        Spawn:
	    MISL A 4 A_SeekerMissile(5, 5)
	    Loop
	}
}
ACTOR BulletSpark
{
	Health 4
	radius 3
	height 6
	speed .1
	RenderStyle ADD
	Alpha 1
	Scale .1
	Mass 0
	+missile
	+doombounce
	+FLOORCLIP
	+DONTSPLASH
	States
	{
		SPRK A 1
		SPRK ABCDA 1  Bright A_SetTranslucent(.8,1)
		SPRK BCDABC 1  Bright A_SetTranslucent(.6,1)
		SPRK DABCDABC 1  Bright A_SetTranslucent(.4,1)
		SPRK DABCDABCDA 1 Bright A_SetTranslucent(.2,1)
		Stop
	}
}
Actor SonicAttack
{
	Speed 10
        Damage 1
        Projectile
	+Ripper
	+StrifeDamage
	RenderStyle Add
	Alpha 1
        Scale .5
        States
	{
	Spawn:
	    SONC K 1 BRIGHT A_SetTranslucent(.2,1)
            SONC J 1 BRIGHT A_SetTranslucent(.4,1)
	    SONC I 2 BRIGHT A_SetTranslucent(.6,1)
            SONC H 2 BRIGHT A_SetTranslucent(.8,1)
            SONC G 3 BRIGHT
            SONC F 3 BRIGHT	
            SONC E 4 BRIGHT
            SONC D 4 BRIGHT
            SONC C 4 BRIGHT
            SONC B 3 BRIGHT
            SONC A 3 BRIGHT
            SONC A 2 BRIGHT A_SetTranslucent(.8,1)
            SONC A 2 BRIGHT A_SetTranslucent(.6,1)
            SONC A 1 BRIGHT A_SetTranslucent(.4,1)
            SONC A 1 BRIGHT A_SetTranslucent(.2,1)
            Stop
        }
}
Actor TestImp : DoomImp
{
	Health 1000
        States
	{
	Missile:
	    TROO G 1 A_FaceTarget
	    TROO G 1 A_CustomMissile("SonicAttack", 48, 16, 0)
	    Loop
	}
}
Actor BotSpark
{
	Speed 0
	+IsMonster
	+NoGravity
	+NoClip
	+NoBlockMap
	RenderStyle Add
	Alpha 0
	Scale .01
	States
	{
	Spawn:
	    BLKR A 0 
	    Goto See
	See:
	    BLKR A 0
	    Goto Missile
	Missile:
	    BLKR A 0 A_Jump(128, 6)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, 0)
	    BLKR A 0 A_CustomMissile("Spark2", 0, 0, -8)
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, 8)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, -16)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, 16)
            Stop
            BLKR A 0 A_Jump(128, 6)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, 0)
	    BLKR A 0 A_CustomMissile("Spark3", 0, 0, -8)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, 8)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, -16)
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, 16)
            Stop
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, 0)
	    BLKR A 0 A_CustomMissile("Spark1", 0, 0, -8)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, 8)
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, -16)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, 16)
            Stop
        }
}
Actor Spark1
{
	Speed 3
	+Missile
	MissileType SparkTrail
	MissileHeight 0
	RenderStyle Add
	Alpha 1
	Scale .1
	States
	{
	Spawn:
	    SPRK B 1 A_MissileAttack
 	    Loop
 	Death:
 	    SPRK B 1 A_SetTranslucent(.8,1)
 	    SPRK C 1 A_SetTranslucent(.7,1)	
 	    SPRK D 1 A_SetTranslucent(.6,1) 
 	    SPRK E 1 A_SetTranslucent(.5,1)
 	    SPRK F 1 A_SetTranslucent(.4,1)
 	    SPRK G 1 A_SetTranslucent(.3,1)
            SPRK H 1 A_SetTranslucent(.2,1)
 	    Stop	
        } 
}
Actor Spark2
{
	Speed 5
	+Missile
	MissileType SparkTrail
	MissileHeight 0
	RenderStyle Add
	Alpha 1
	Scale .1
	States
	{
	Spawn:
	    SPRK B 1 A_MissileAttack
 	    Loop
 	Death:
 	    SPRK B 1 A_SetTranslucent(.8,1)
 	    SPRK C 1 A_SetTranslucent(.7,1)	
 	    SPRK D 1 A_SetTranslucent(.6,1) 
 	    SPRK E 1 A_SetTranslucent(.5,1)
 	    SPRK F 1 A_SetTranslucent(.4,1)
 	    SPRK G 1 A_SetTranslucent(.3,1)
            SPRK H 1 A_SetTranslucent(.2,1)
 	    Stop	
        }     
}
Actor Spark3
{
	Speed 7
	+Missile
	MissileType SparkTrail
	MissileHeight 0
	RenderStyle Add
	Alpha 1
	Scale .1
	States
	{
	Spawn:
	    SPRK B 1 BRIGHT A_MissileAttack
 	    Loop
 	Death:
 	    SPRK B 1 BRIGHT A_SetTranslucent(.8,1)
 	    SPRK C 1 BRIGHT A_SetTranslucent(.7,1)	
 	    SPRK D 1 BRIGHT A_SetTranslucent(.6,1) 
 	    SPRK E 1 BRIGHT A_SetTranslucent(.5,1)
 	    SPRK F 1 BRIGHT A_SetTranslucent(.4,1)
 	    SPRK G 1 BRIGHT A_SetTranslucent(.3,1)
            SPRK H 1 BRIGHT A_SetTranslucent(.2,1)
 	    Stop	
        }     
}
Actor SparkTrail
{
	Speed 0
	+NoBlockMap
	+NoGravity
	RenderStyle Add
	Alpha .8
	Scale .1
	States
	{
	Spawn:
	    SPRK C 1 BRIGHT A_SetTranslucent(.7,1)	
 	    SPRK D 1 BRIGHT A_SetTranslucent(.6,1) 
 	    SPRK E 1 BRIGHT A_SetTranslucent(.5,1)
 	    SPRK F 1 BRIGHT A_SetTranslucent(.4,1)
 	    SPRK G 1 BRIGHT A_SetTranslucent(.3,1)
            SPRK H 1 BRIGHT A_SetTranslucent(.2,1)
            Stop
        }
}