ACTOR "Assault Commander" 31105
{
    //$Category DN3D Aliens //Commanders
	Obituary "%o sucked down a commander's RPG."
    HitObituary "%o had his head removed by a commander."
    Health 1050
    Radius 48
    Height 64
    Mass 10500
    Speed 14
    PainChance 16
	DropItem "Rocket Ammo" 64 5
    SeeSound "Comm/Sight"
    PainSound "Comm/Pain"
    DeathSound "Comm/Death"
    ActiveSound "Comm/Active"
	BloodColor "D1 0C 00" 
	Species "Alien"
	DamageFactor "Damage_Foot", 0.28
	DamageFactor "Damage_Pistol", 1.19
    DamageFactor "Damage_DualPistol", 1.19
	DamageFactor "Damage_BlackTail", 1.23
    DamageFactor "Damage_DualBlackTail", 1.23
	DamageFactor "Damage_DesertEagle", 1.35
    DamageFactor "Damage_Shotgun", 1.20
	DamageFactor "Damage_SuperShotgun", 1.22
	DamageFactor "Damage_ExplosiveShotgun", 1.18
    DamageFactor "Damage_ChaingunCannon", 1.23
	DamageFactor "Damage_Minigun", 1.25
	DamageFactor "Damage_LMGBullet", 1.22
    DamageFactor "Damage_Explosion", 1.1
	DamageFactor "Damage_Shock", 1.01
	DamageFactor "Damage_BigShock", 1.5
	DamageFactor "Damage_Thunder", 1.01
	DamageFactor "Damage_BigThunder", 1.5
	DamageFactor "LaserExplosion", 0.0
    DamageFactor "Damage_Shrinker", 0.88
	DamageFactor "Damage_Expander", 1.02
	DamageFactor "Damage_Laser", 1.57
	DamageFactor "Damage_Railgun", 1.85
    DamageFactor "Ice", 0.9
    DamageFactor "Fire", 0.4
	DamageFactor "Damage_Pulse", 1.55
	DamageFactor "LizardBullet", 0.0
	DamageFactor "PigCopBullet", 0.0
	DamageFactor "AlienPoison", 0.0
	DamageFactor "Trip_Punch", 0.0
	DamageFactor "Damage_Step", 0.0
	Painchance "Radial", 256
	Painchance "Damage_Foot", 256
	Painchance "Damage_DesertEagle", 128
	Painchance "Damage_ExplosiveShotgun", 128
	Painchance "Damage_ChaingunCannon", 128
	Painchance "Damage_Minigun", 128
	Painchance "Damage_LMGBullet", 128
    Painchance "Damage_Explosion", 128
	Painchance "Damage_Laser", 128
	Painchance "LaserShot", 256
	Painchance "Fire", 256
    Monster
	+NOTARGET
	+BOSSDEATH
    +NORADIUSDMG
	+FLOAT
    +NOGRAVITY
	+DROPOFF
	+SPAWNFLOAT
	+DONTOVERLAP
	Gravity 0.4
    MeleeRange 64
    States
    {
    Spawn:
        ASCO I 0
        ASCO I 0 Thing_ChangeTID(0,1000)
        ASCO I 15 A_Look
        Loop
    See:
        ASCO I 0
		ASCO I 0 A_ChangeFlag("NOPAIN",0)
        ASCO I 0 A_StopSoundEx("SoundSlot7")
        ASCO IIJJKKJJ 3 A_Chase
        Loop
	Melee:
  	    ASCO A 3 ThrustThing(224,3,0,0)	
	    ASCO A 0 A_CustomMeleeAttack(6)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-90)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,90)	
	    ASCO B 3 ThrustThing(192,3,0,0)	
	    ASCO A 0 A_Stop	
	    ASCO B 0 A_PlaySound("Comm/Melee",0,300)
	    ASCO A 0 A_SpidRefire
	    ASCO C 3 ThrustThing(160,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(6)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-135)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,45)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-45)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,135)	
	    ASCO D 3 ThrustThing(128,3,0,0)	
	    ASCO A 0 A_Stop	
	    ASCO A 0 A_SpidRefire
	    ASCO E 3 ThrustThing(96,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(6)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-90)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,90)
	    ASCO F 3 ThrustThing(64,3,0,0)	
	    ASCO A 0 A_Stop	
	    ASCO A 0 A_SpidRefire
	    ASCO H 0 A_PlaySound("Comm/Melee",0,300)
	    ASCO G 3 ThrustThing(32,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(6)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-45)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,135)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-135)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,45)	
	    ASCO H 3 ThrustThing(0,3,0,0)		
	    ASCO A 0 A_Stop	
	    ASCO A 0 A_SpidRefire	
        ASCO A 3 ThrustThing(224,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(6)	
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-90)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,90)	
	    ASCO B 3 ThrustThing(192,3,0,0)		
	    ASCO A 0 A_Stop
	    ASCO B 0 A_PlaySound("Comm/Melee",0,300)
	    ASCO A 0 A_SpidRefire
	    ASCO C 3 ThrustThing(160,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(6)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-135)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,45)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-45)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,135)	
	    ASCO D 3 ThrustThing(128,Random(2,8),0,0)	
	    ASCO A 0 A_Stop	
	    ASCO A 0 A_SpidRefire
	    ASCO E 3 ThrustThing(96,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(12)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,180)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-90)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,90)
	    ASCO F 3 ThrustThing(64,3,0,0)	
	    ASCO A 0 A_Stop	
	    ASCO A 0 A_SpidRefire
	    ASCO H 0 A_PlaySound("Comm/Melee",0,300)
	    ASCO G 3 ThrustThing(32,3,0,0)	
	    ASCO A 0 A_Stop
	    ASCO A 0 A_CustomMeleeAttack(6)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-45)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,135)
	    ASCO A 0 A_CustomMissile("CommanderMelee",0,0,-135)
	    ASCO B 0 A_CustomMissile("CommanderMelee",0,0,45)	
        ASCO H 3 ThrustThing(0,3,0,0)		
	    ASCO A 0 A_SpidRefire	
		ASCO A 0 A_Stop	
		ASCO A 0 A_JumpIfCloser(65,"Melee")
	    Goto See
	Missile:
	    ASCO L 0 A_JumpIfCloser(68,"Melee")
        ASCO L 0 A_PlayWeaponSound("Comm/Attack")
        ASCO LLLL 10 A_FaceTarget
		ASCO M 5 A_FaceTarget
        ASCO M 0 A_CustomMissile("AlienCommanderAttack",10,0,0)
        ASCO M 10 A_FaceTarget
		ASCO M 5 A_FaceTarget
		ASCO L 10 A_FaceTarget
		ASCO M 5 A_FaceTarget		
        ASCO M 0 A_CustomMissile("AlienCommanderAttack",10,0,0)
        ASCO M 10 A_FaceTarget
		ASCO M 5 A_FaceTarget
		ASCO L 10 A_FaceTarget
		ASCO L 0 A_Jump(128,1)
        Goto See
		ASCO M 0 A_CustomMissile("AlienCommanderAttack",10,0,0)
        ASCO M 10 A_FaceTarget
		ASCO M 5 A_FaceTarget
		ASCO L 10 A_FaceTarget
		ASCO L 0 A_Jump(128,1)
		Goto See
		ASCO M 0 A_CustomMissile("AlienCommanderAttack",10,0,0)
        ASCO M 10 A_FaceTarget
		ASCO M 5 A_FaceTarget
		ASCO L 10 A_FaceTarget
		ASCO L 0 A_Jump(64,1)
		Goto See
		ASCO M 0 A_CustomMissile("AlienCommanderAttack",10,0,0)
        ASCO M 10 A_FaceTarget
		ASCO M 5 A_FaceTarget
		ASCO L 10 A_FaceTarget
		Goto See
	Pain:
        ASCO V 0
        ASCO V 8 A_Pain
        Goto Missile
    Pain.Radial:
        ASCO V 0
        ASCO V 0 HealThing(2)
        Goto See
	Pain.LaserShot:
	    ASCO V 0
		ASCO V 0 A_SpawnItemEx("PainTripLaser",0,0,5)
		ASCO V 0 HealThing(2)
		Goto See
	Pain.Fire:
	    ASCF I 0
		ASCF I 0 A_GiveInventory("FireCheck",1)
		ASCF I 0 A_GiveInventory("FireCheckDeath",1)
		ASCF I 0 A_PlaySoundEx("FireLoop/Monsters","SoundSlot7",1)
		ASCF I 0 A_PlaySound("Comm/Pain",10)
		ASCF I 0 A_ChangeFlag("NOPAIN",1)
		ASCF I 0 A_ChangeFlag("FRIGHTENED",1)
		ASCF I 0 A_Wander
		ASCF I 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF III 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF I 0 A_Wander
		ASCF I 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF III 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF K 0 A_Wander
		ASCF K 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF KKK 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF K 0 A_Wander
		ASCF K 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF KKK 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
        ASCF I 0 A_Wander
		ASCF I 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF III 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF I 0 A_Wander
		ASCF I 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF III 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF K 0 A_Wander
		ASCF K 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF KKK 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF K 0 A_Wander
		ASCF K 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF KKK 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_Wander
		ASCF J 0 A_SpawnItemEx("FireRadiusDamage5",0,0,38)
		ASCF JJJ 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF J 0 A_JumpIfInventory("FireCheck",7,"PainFireStop")
		Loop
	PainFireStop:
	    ASCF I 0 
		ASCF I 0 A_ChangeFlag("NOPAIN",0)
		ASCF I 0 A_ChangeFlag("FRIGHTENED",0)
		ASCF I 0 A_TakeInventory("FireCheck",999)
		ASCF I 0 A_TakeInventory("FireCheckDeath",999)
		ASCF I 0 A_StopSoundEx("SoundSlot7")
		Goto See
	Death:
	    ASCO N 0
		ASCO N 0 A_JumpIfInventory("FireCheckDeath",1,"Burn")
		ASCO N 0 A_ChangeFlag("NOPAIN",0)
		ASCO N 0 A_StopSoundEx("SoundSlot7")
	    ASCO N 0 A_Jump(256,1,9)
		ASCO N 6 
        ASCO O 6 A_Scream
        ASCO P 6 A_KillMaster 
        ASCO QR 6
	    ASCO S 6 
	    ASCO T 6 A_NoBlocking
        ASCO U -1
	    Stop
		ASCO N 6 
        ASCO O 6 A_Scream
        ASCO P 6 A_KillMaster
        ASCO QR 6
	    ASCO S 6 
	    ASCO T 6 A_NoBlocking
		ASCO U 1 A_GiveInventory("Death2Check",1)
		ASCO U -1
		Stop
	Death.Damage_Shrinker:
        ASCO I 0
		ASCO I 0 A_StopSoundEx("Body")
		ASCO I 0 A_StopSoundEx("SoundSlot7")
		ASCO I 0 A_ChangeFlag("NOPAIN",0)
		ASCO I 0 A_Stop
		ASCO I 0 A_NoGravity
        ASCO I 11 A_PlaySound("Shrinker/Shrink")
		ASCO I 1 A_SetScale(0.97,0.97)
        ASCO I 1 A_SetScale(0.94,0.94)
        ASCO I 1 A_SetScale(0.91,0.91)
        ASCO I 1 A_SetScale(0.88,0.88)
        ASCO I 1 A_SetScale(0.85,0.85)
        ASCO I 1 A_SetScale(0.82,0.82)
        ASCO I 1 A_SetScale(0.79,0.79)
        ASCO I 1 A_SetScale(0.76,0.76)
        ASCO I 1 A_SetScale(0.73,0.73)
        ASCO I 1 A_SetScale(0.70,0.70)
		ASCO I 1 A_SetScale(0.67,0.67)
        ASCO I 1 A_SetScale(0.64,0.64)
        ASCO I 1 A_SetScale(0.61,0.61)
        ASCO I 1 A_SetScale(0.58,0.58)
        ASCO I 1 A_SetScale(0.55,0.55)
		ASCO I 1 A_SetScale(0.52,0.52)
        ASCO I 1 A_SetScale(0.49,0.49)
        ASCO I 1 A_SetScale(0.46,0.46)
        ASCO I 1 A_SetScale(0.43,0.43)
        ASCO I 1 A_SetScale(0.40,0.40)
		ASCO I 1 A_SetScale(0.37,0.37)
        ASCO I 1 A_SetScale(0.34,0.34)
        ASCO I 1 A_SetScale(0.31,0.31)
        ASCO I 1 A_SetScale(0.28,0.28)
		ASCO I 0 A_KillMaster
        ASCO I 1 A_SetScale(0.25,0.25)
		ASCO I 0 A_SpawnItemEx("Assault Commander Shrunken",0,0,0,0,0,0,0,32,0)
        Stop
    Death.Damage_Explosion:
	Death.Damage_BigShock:
	Death.Damage_BigThunder:
		ASCO I 0
		ASCO I 0 A_ChangeFlag("NOPAIN",0)
		ASCO I 0 A_StopSoundEx("Body")
		ASCO I 0 A_StopSoundEx("SoundSlot7")
        ASCO I 0 A_PlaySound("Gib/Explode",5)
		ASCO I 0 A_KillMaster
        ASCO I 0 A_NoBlocking
        ASCO IIIII 0 A_SpawnDebris("DukeGibs1")
        ASCO IIIII 0 A_SpawnDebris("DukeGibs2")
		ASCO IIIII 0 A_SpawnDebris("DukeGibs3")
        ASCO IIIII 0 A_SpawnDebris("DukeGibs4")
        ASCO IIIII 0 A_SpawnDebris("DukeGibs5")		
        ASCO IIIIIIIIIIIII 0 A_SpawnDebris("DukeGibs6")
	    TNT1 A 1
	    Stop
    Death.Damage_Expander:
        ASCO I 0
		ASCO I 0 A_StopSoundEx("Body")
		ASCO I 0 A_StopSoundEx("SoundSlot7")
		ASCO I 0 A_Stop
		ASCO I 0 A_NoGravity
		ASCO I 1 A_PlaySound("Expander/Expand",5)
		ASCO I 1 A_SetScale(1.01,1.01)
		ASCO I 1 A_SetScale(1.02,1.02)
		ASCO I 1 A_SetScale(1.03,1.03)
		ASCO I 1 A_SetScale(1.04,1.04)
		ASCO I 1 A_SetScale(1.05,1.05)
		ASCO I 1 A_SetScale(1.06,1.06)
		ASCO I 1 A_SetScale(1.07,1.07)
		ASCO I 1 A_SetScale(1.08,1.08)
		ASCO I 1 A_SetScale(1.09,1.09)
		ASCO I 1 A_SetScale(1.10,1.10)
		ASCO I 1 A_SetScale(1.11,1.11)
		ASCO I 1 A_SetScale(1.12,1.12)
		ASCO I 1 A_SetScale(1.13,1.13)
		ASCO I 1 A_SetScale(1.14,1.14)
        ASCO I 1 A_SetScale(1.15,1.15)
		ASCO I 1 A_SetScale(1.16,1.16)
		ASCO I 1 A_SetScale(1.17,1.17)
		ASCO I 1 A_SetScale(1.18,1.18)
		ASCO I 1 A_SetScale(1.19,1.19)
		ASCO I 1 A_SetScale(1.20,1.20)
		ASCO I 1 A_SetScale(1.21,1.21)
		ASCO I 1 A_SetScale(1.22,1.22)
		ASCO I 1 A_SetScale(1.23,1.23)
		ASCO I 1 A_SetScale(1.24,1.24)
		ASCO I 1 A_SetScale(1.25,1.25)
		ASCO I 1 A_SetScale(1.26,1.26)
		ASCO I 1 A_SetScale(1.27,1.27)
		ASCO I 1 A_SetScale(1.28,1.28)
		ASCO I 1 A_SetScale(1.29,1.29)
		ASCO I 1 A_SetScale(1.30,1.30)
		ASCO I 1 A_SetScale(1.31,1.31)
		ASCO I 1 A_SetScale(1.32,1.32)
		ASCO I 1 A_SetScale(1.33,1.33)
		ASCO I 1 A_SetScale(1.34,1.34)
		ASCO I 1 A_SetScale(1.35,1.35)
		ASCO I 1 A_SetScale(1.36,1.36)
		ASCO I 1 A_SetScale(1.37,1.37)
		ASCO I 1 A_SetScale(1.38,1.38)
		ASCO I 1 A_SetScale(1.39,1.39)
		ASCO I 1 A_SetScale(1.41,1.41)
		ASCO I 1 A_SetScale(1.42,1.42)
		ASCO I 1 A_SetScale(1.43,1.43)
		ASCO I 1 A_SetScale(1.44,1.44)
        ASCO I 25 A_SetScale(1.45,1.45)
		ASCO I 0 A_KillMaster
        ASCO I 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,SXF_ABSOLUTEVELOCITY,0)
        Goto Death.Damage_Explosion
	Burn:
	    ASCF N 0
		ASCF N 0 A_ChangeFlag("NOPAIN",0)
		ASCF N 0 A_StopSoundEx("SoundSlot7")
		ASCF N 0 A_Jump(256,1,49)		
		ASCF NNNNNN 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF O 0 A_Scream
        ASCF OOOOOO 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASCF O 0 A_KillMaster
        ASCF PPPPPP 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,58),0,0,1,0,32) 
        ASCF QQQQQQRRRRRR 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,45),0,0,1,0,32)
		ASCF O 0 
	    ASCF SSSSSS 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,32),0,0,1,0,32)
		ASCF T 0 A_NoBlocking
	    ASCF TTTTTT 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,32),0,0,1,0,32)
		ASCF U 1 A_SpawnItemEx("FireintheFloor")
        ASCF U -1 
        Stop
		ASF8 NNNNNN 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASF8 O 0 A_Scream
        ASF8 OOOOOO 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,64),0,0,1,0,32)
		ASF8 O 0 A_KillMaster
        ASF8 PPPPPP 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,58),0,0,1,0,32) 
        ASF8 QQQQQQRRRRRR 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,45),0,0,1,0,32)
		ASF8 O 0 
	    ASF8 SSSSSS 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,32),0,0,1,0,32)
		ASF8 T 0 A_NoBlocking
	    ASF8 TTTTTT 1 Bright A_SpawnItemEx("FirePuffDuke",Random(-36,36),Random(-36,36),Random(5,32),0,0,1,0,32)
		ASF8 U 1 A_SpawnItemEx("FireintheFloor")
        ASF8 U -1 
        Stop
    }
}

ACTOR CommanderMelee
{
	Speed 30
	Radius 12
	Height 48
	Obituary "%o had his head removed by a commander."
	Damage (Random(7,6))
	Projectile
	+BLOODSPLATTER
	+DONTREFLECT
	States
	{
	Spawn:
	    TNT1 A 5
		Goto Death
	Death:
		TNT1 A 1
		Stop
	}
}

ACTOR FireRadiusDamage5
{
    Speed 0
    Radius 1
    Height 1
    DamageType "Fire"
    Damage 0
    +RIPPER
    +NOGRAVITY
    +THRUGHOST
    +FORCERADIUSDMG
	+BLOODLESSIMPACT
    States
    {
    Spawn:
        TNT1 A 0
        Goto Death
    Death:
        TNT1 A 1 A_Explode(16,2)
        Stop
        }
}

ACTOR AlienCommanderAttack
{
	Radius 6
    Height 6
    Speed 30
    Damage (5)
    Projectile
	SeeSound "Rpg/Shoot"
    DeathSound "Explosion/Sounds"
    Scale 0.5
    Decal "BigScorch"
    DamageType "Damage_Explosion"
	+RANDOMIZE
	+THRUGHOST
    States
    {
    Spawn:
		RPGX A 0 A_PlaySound("Rocket/Fly",CHAN_BODY,1.0,True)
		RPGX A 1 Bright A_SpawnItemEx("RPGSmoke",0,0,0,Random(-1,1),Random(-1,1),Random(-1,1)) 
		Loop
    Death:
        TNT1 A 0 A_StopSound(CHAN_BODY)
		TNT1 A 0 A_PlaySound("Explosion/Sounds2",11)
		TNT1 A 0 A_Explode(128,192)
		TNT1 AAAAAAAAAA 0 A_CustomMissile("ExplosionFlame",10,0,Random(0,360),2,Random(0,360))
        TNT1 A 1 A_SpawnItemEx("DukeNukemExplosion",0,0,0,0,0,0,0,0)
        Stop
    }
}

ACTOR "Assault Commander Shrunken" 
{
    Health 30
    Radius 48
    Height 16
    Mass 0x7FFFFFFF
    Speed 2
    PainChance 128
    SeeSound "Comm/Sight"
    PainSound "Comm/Pain"
    DeathSound "Comm/Death"
    ActiveSound "Comm/Active"
	BloodColor "D1 0C 00" 
	Species "Alien"
    Scale 0.25
	DamageFactor "Damage_Foot", 5.0
	DamageFactor "LaserExplosion", 0.0
    DamageFactor "Damage_Shrinker", 0.0
	DamageFactor "Trip_Punch", 0.0
	Painchance "LaserShot", 256
	+ISMONSTER
	+SHOOTABLE
    +SOLID
	+NOTARGET
	+FRIGHTENED
	+SPAWNFLOAT
	+DROPOFF
	+DONTOVERLAP
	+FLOAT
	+NOGRAVITY
    States
    {
    Spawn:
		ASCO A 0 
		ASCO A 0 A_JumpIfInventory("ShrunkenCheck",40,"Restore")
		ASCO A 0 A_GiveInventory("ShrunkenCheck",1)
        ASCO AAAAAAAA 3 A_Look
		Loop
    See:
	    ASCO A 0 
	    ASCO A 0 A_ChangeFlag("NOPAIN",0)
		ASCO A 0 A_StopSoundEx("Body")
		ASCO A 0 A_StopSoundEx("SoundSlot7")
		ASCO A 0 A_JumpIfInventory("ShrunkenCheck",40,"Restore")
		ASCO A 0 A_GiveInventory("ShrunkenCheck",1)
		ASCO IIIJJJKKKJJJ 2 A_Chase
        Goto See+4
    Pain:
		ASCO V 8 A_Pain
        Goto See 
	Pain.LaserShot:
	    ASCO V 0 
		ASCO V 0 A_SpawnItemEx("PainTripLaser",0,0,8)
		ASCO V 0 HealThing(2)
		Goto See
	Pain.Radial:
        ASCO V 0
        ASCO V 0 HealThing(2)
        Goto See
	Restore:
	    ASCO I 0
		ASCO I 0 A_StopSoundEx("Body")
		ASCO I 0 A_StopSoundEx("SoundSlot7")
		ASCO I 0 A_ChangeFlag("NOPAIN",0)
        ASCO I 10 A_PlaySound("Shrinker/Shrink")
	    ASCO I 1 A_SetScale(0.25,0.25)	
		ASCO I 1 A_SetScale(0.28,0.28)
		ASCO I 1 A_SetScale(0.31,0.31)
		ASCO I 1 A_SetScale(0.34,0.34)
		ASCO I 1 A_SetScale(0.37,0.37)
        ASCO I 1 A_SetScale(0.40,0.40)
		ASCO I 1 A_SetScale(0.43,0.43)
        ASCO I 1 A_SetScale(0.46,0.46)
        ASCO I 1 A_SetScale(0.49,0.49)
        ASCO I 1 A_SetScale(0.52,0.52)
        ASCO I 1 A_SetScale(0.55,0.55)
		ASCO I 1 A_SetScale(0.58,0.58)
        ASCO I 1 A_SetScale(0.61,0.61)
        ASCO I 1 A_SetScale(0.64,0.64)
        ASCO I 1 A_SetScale(0.67,0.67)
        ASCO I 1 A_SetScale(0.70,0.70)
		ASCO I 1 A_SetScale(0.73,0.73)
        ASCO I 1 A_SetScale(0.76,0.76)
        ASCO I 1 A_SetScale(0.79,0.79)
        ASCO I 1 A_SetScale(0.82,0.82)
        ASCO I 1 A_SetScale(0.85,0.85)
        ASCO I 1 A_SetScale(0.88,0.88)
        ASCO I 1 A_SetScale(0.91,0.91)
        ASCO I 1 A_SetScale(0.94,0.94)
        ASCO I 1 A_SetScale(0.97,0.97)     
		ASCO I 1 A_SetScale(1.00,1.00)   
		ASCO A 0 A_SpawnItemEx("Assault Commander",0,0,0,0,0,0,0,32,0)
        Stop
	Death:
	    ASCO I 0
		ASCO I 0 A_StopSoundEx("Body")
		ASCO I 0 A_StopSoundEx("SoundSlot7")
		ASCO I 0 A_ChangeFlag("NOPAIN",0)
		ASCO I 0 A_Stop
        ASCO I 0 A_PlaySound("DukeNukem/DeathLittle",5)
        ASCO I 0 A_NoBlocking
        ASCO I 0 A_SpawnDebris("DukeGibs1")
        ASCO I 0 A_SpawnDebris("DukeGibs2")
		ASCO I 0 A_SpawnDebris("DukeGibs3")
        ASCO I 0 A_SpawnDebris("DukeGibs4")
        ASCO II 0 A_SpawnDebris("DukeGibs5")		
        ASCO IIIIIII 0 A_SpawnDebris("DukeGibs6")
	    TNT1 A 1
	    Stop
    }
}