
ACTOR ZombieManClass : PlayerPawn
{
  Health 200
  gibhealth 99999 //added - actor can not be gibbed
  Speed 0.75 //0.4
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon ZombieRifle
  Player.DisplayName "ZombieMan"
  Player.WeaponSlot 1, ZombieRifle
  Player.MaxHealth 100
  Player.ViewHeight 41
  Player.SoundClass Brainless
  Player.JumpZ 10

  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 0.5
  DamageFactor "MarineRLDamage", 0.5
  DamageFactor "BFGSplash", 0.5
  DamageFactor "MarineRail", 0.35

  DamageFactor "CybRLDamage", 0.2
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
	POSS AB 10 
    Loop
  See:
    POSS A 0 
    POSS A 1 A_Jump (240,2) //0
	POSS A 0 A_PlaySoundEx ("grunt/active","body")
    POSS ABCD 4 
    Loop
  Missile:
	POSS E 3
	POSS F 6 bright
    POSS E 6 
    Goto spawn
  Death:
    POSS I 5 A_PlaySoundEx ("grunt/death","Body")
    POSS J 5 A_NoBlocking
    POSS K 0 Thing_changeTid(144,0)
    POSS K 5 A_GiveToTarget ("MarineExp",2)
	POSS K 5
	POSS K 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    POSS K 1 A_SpawnItemEx ("AssaultRifle",0,0,random(29,38),0,0,0,0,32,0)	
	POSS L -1
    stop
  XDeath:
    POSS M 4 A_GiveToTarget ("MarineExp",2)
    POSS N 4 A_XScream
    POSS O 4 A_NoBlocking
    POSS P 0 Thing_changeTid(144,0)
    POSS P 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    POSS PQRST 4
	POSS T 1 A_SpawnItemEx ("AssaultRifle",0,0,random(29,38),0,0,0,0,32,0)
    POSS T -1
	stop
  }
}

// Weapon 


ACTOR ZombieRifle : Weapon 
{ 
  weapon.kickback 100
  attacksound "weapons/pistol"
  obituary "%o was killed by %k."
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  //+INVENTORY.UNDROPPABLE //added
  states
  {
  Ready:
    POGN A 7 A_WeaponReady
    POGN A 0 A_JumpIfInventory ("Mskull",0,3)
    POGN A 7 A_WeaponReady
    POGN A 0 A_JumpIfInventory ("Mskull",3,1)
    POGN A 0 HealThing(5)	
    Loop
  Select:
	POGN A 1 A_Raise 
    loop
  DeSelect:
    POGN A 1 A_Lower
    Loop
  Fire:
  	POGN A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
    POGN A 3 A_GunFlash
    POGN B 3 bright A_FireBullets (1.5,1.0,1,16,"FBulletPuff",1)
    POGN C 3 bright
    POGN A 0 A_Refire
    POGN A 2 //5
    Goto Ready
  AltFireX:
    POGN A 1 A_GunFlash
	POGN B 0 A_FireCustomMissile("PuppetBulletTracer", random(-5,5),0,12,-6,0,random(-1,1))
    POGN B 2 bright A_FireBullets (6,6,1,8,"PuppetBulletRico",1)
    POGN C 2 bright
	POGN B 0 A_FireCustomMissile("PuppetBulletTracer", random(-5,5),0,12,-6,0,random(-1,1))
    POGN B 2 bright A_FireBullets (6,6,1,8,"PuppetBulletRico",1)
    POGN C 2 bright
	POGN B 0 A_FireCustomMissile("PuppetBulletTracer", random(-5,5),0,12,-6,0,random(-1,1))
	POGN B 2 bright A_FireBullets (6,6,1,8,"PuppetBulletRico",1)
    POGN C 2 bright
	POGN B 0 A_FireCustomMissile("PuppetBulletTracer", random(-5,5),0,12,-6,0,random(-1,1))
	POGN B 2 bright A_FireBullets (6,6,1,8,"PuppetBulletRico",1)
    POGN C 2 bright
	POGN A 24
    Goto Ready

  Flash:
    TNT1 A 3 A_Light0
    TNT1 A 3 A_Light1
    TNT1 A 3 A_Light2
    TNT1 A 0 A_Light0
    Stop
  AltFire:
    POGN A 5 ACS_ExecuteAlways (419,0,1)
	goto ready
  }
}

// ChainSaw Zombieman Class

ACTOR ChainsawZombieClass : PlayerPawn
{
  Health 200
  gibhealth 99999 //added - actor can not be gibbed
  Speed 1.25
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon ZombieChainSaw
  Player.DisplayName "ChainsawZombieMan"
  Player.WeaponSlot 1, ZombieChainSaw
  Player.MaxHealth 180
  Player.ViewHeight 41
  Player.SoundClass Brainless
  Player.JumpZ 10
  MeleeRange 150
  
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 0.5
  DamageFactor "MarineRLDamage", 0.5
  DamageFactor "BFGSplash", 0.5
  DamageFactor "MarineRail", 0.35
  
  DamageFactor "CybRLDamage", 0.25
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
	CHAN AB 8 
    Loop
  See:
    CHAN A 0 
    CHAN A 1 A_Jump (240,2) //0
	CHAN A 0 A_PlaySoundEx ("grunt/active","body")
    CHAN ABCD 4
	CHAN D 0 HealThing(10)
    Loop
  Missile:
    CHAN EF 4 
    Goto spawn
  Death:
    CHAN I 5 A_PlaySoundEx ("grunt/death","Body")
    CHAN J 5 A_NoBlocking 
    CHAN K 5 A_GiveToTarget ("MarineExp",2)
    CHAN L 5 Thing_changeTid(144,0)
    CHAN M 5
    CHAN N 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    CHAN H 1 A_SpawnItemEx ("MChainsaw",0,0,random(29,38),0,0,0,0,32,0)	
	CHAN N -1
    stop
  XDeath:
	CHAN O 4 A_GiveToTarget ("MarineExp",2)
    CHAN P 4 A_XScream
    CHAN Q 4 A_NoBlocking
    CHAN R 0 Thing_changeTid(144,0)
    CHAN R 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    CHAN RSTUV 4
	CHAN V 1 A_SpawnItemEx ("MChainsaw",0,0,random(29,38),0,0,0,0,32,0)
    CHAN V -1
	stop
  }
}

// Weapon 


ACTOR ZombieChainSaw : Chainsaw 
{ 
  obituary "%o was sliced by a madman %k with a chainsaw!"
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  //+INVENTORY.UNDROPPABLE //added
  states
  {
  Ready:
    SAWG CDCD 3 A_WeaponReady
    SAWG A 0 A_JumpIfInventory ("Mskull",0,5)
    SAWG CDCD 3 A_WeaponReady
    SAWG A 0 A_JumpIfInventory ("Mskull",3,1)	
    Loop
  Select:
	SAWG C 1 A_Raise 
    loop
  DeSelect:
    SAWG C 1 A_Lower
    Loop
  Fire:
    SAWG AB 3 A_Saw ("weapons/sawfull","weapons/sawhit",20,"FBulletPuff")
	SAWG B 0 HealThing(1)
    SAWG B 0 A_ReFire
    goto Ready
  AltFire:
    SAWG A 5 ACS_ExecuteAlways (419,0,19)
	goto ready
  Spawn:
    CSAW A 1 Thing_remove(0)
    stop
  }
}


// Plasma Zombie

ACTOR PlasmaZombieClass : PlayerPawn
{
  Health 250
  gibhealth 99999 //added - actor can not be gibbed
  Speed 0.75 //0.4
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon PlasmaZombieRifle
  Player.DisplayName "Plasma Zombie"
  Player.WeaponSlot 1, PlasmaZombieRifle
  Player.MaxHealth 250
  Player.ViewHeight 41
  Player.SoundClass Brainless
  Player.JumpZ 10

  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 0.5
  DamageFactor "MarineRLDamage", 0.5
  DamageFactor "BFGSplash", 0.5
  DamageFactor "MarineRail", 0.35
  
  DamageFactor "CybRLDamage", 0.25
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
    ZMAY AB 10 
    Loop
  See:
    ZMAY A 0 
    ZMAY A 1 A_Jump (240,2) //0
    ZMAY A 0 A_PlaySoundEx ("grunt/active","body")
    ZMAY ABCD 4 
    Loop
  Missile:
    ZMAY E 1
    ZMAY F 2 bright
    ZMAY E 1
    ZMAY F 2 bright
    ZMAY E 1
    ZMAY F 2 bright
    ZMAY E 10 
    Goto spawn
  Death:
    ZMAY I 5 A_PlaySoundEx ("grunt/death","Body")
    ZMAY J 5 A_NoBlocking
    ZMAY K 0 Thing_changeTid(144,0)
    ZMAY K 5 A_GiveToTarget ("MarineExp",3)
	ZMAY K 5
    ZMAY K 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	ZMAY K 1 A_SpawnItemEx ("MPlasmaRifle",0,0,random(29,38),0,0,0,0,32,0)
	ZMAY L -1
    stop
  XDeath:
    ZMAY O 5 A_GiveToTarget ("MarineExp",3)
    ZMAY P 5 A_XScream
    ZMAY Q 5 A_NoBlocking
    ZMAY R 0 Thing_changeTid(144,0)
    ZMAY R 5 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    ZMAY STU 5
	ZMAY V 1 A_SpawnItemEx ("MPlasmaRifle",0,0,random(29,38),0,0,0,0,32,0)
    ZMAY V -1
    stop
  }
}

// Weapon 


ACTOR PlasmaZombieRifle : Weapon 
{ 
  weapon.kickback 100
  attacksound "weapons/pistol"
  obituary "%o was plasmaed by John Stalve-- uhm, %k."
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  //+INVENTORY.UNDROPPABLE //added
  states
  {
  Select:
    PLSG A 1 A_Raise 
    loop
  DeSelect:
    PLSG A 1 A_Lower
    Loop
  Ready:
    PLSG A 7 A_WeaponReady
    PLSG A 0 A_JumpIfInventory ("Mskull",0,3)
    PLSG A 7 A_WeaponReady
    PLSG A 0 A_JumpIfInventory ("Mskull",3,1)
    PLSG A 0 HealThing(5)	
    Loop
  Fire:
    PLSG A 1 A_GunFlash
    PLSG A 2 A_FireCustomMissile ("ZPlasmaBall")
    PLSG A 1
    PLSG A 2 A_FireCustomMissile ("ZPlasmaBall")
    PLSG A 1
    PLSG A 2 A_FireCustomMissile ("ZPlasmaBall")
	PLSG A 1
	PLSG A 2 A_FireCustomMissile ("ZPlasmaBall")
	PLSG A 6
	PLSG A 0 A_Refire
    PLSG BC 2
    PLSG D 3
    PLSG E 7
    PLSG DCB 4
    Goto Ready
  Flash:
    PLSF A 1 Bright A_Light1
    PLSF B 2 Bright A_Light2
    PLSF A 1 Bright A_Light1
    PLSF B 2 Bright A_Light2
    PLSF A 1 Bright A_Light1
    PLSF B 2 Bright A_Light2
    PLSF A 0 A_Light0
    Stop
  AltFire:
    PLSG A 5 ACS_ExecuteAlways (419,0,44)
    goto ready
  Spawn:
    TNT1 A 1 Thing_Remove (0)
    Stop
  }
}



ACTOR FallenColonel : PlayerPawn
{
  Health 1000
  gibhealth 99999 //added - actor can not be gibbed
  Speed 0.95
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Translation "112:119 = 192:199","120:127=240:247"  // ADDED TO REMOVE THE STANDARD GREEN. NOW SIMILAR TO DARK IMP'S FIRE BALL.
  Player.MorphWeapon ZombieColonelRifle
  Player.DisplayName "Fallen Colonel"
  Player.WeaponSlot 1, ZombieColonelRifle
  Player.MaxHealth 1000
  Player.ViewHeight 41
  Player.SoundClass Brainless
  Player.JumpZ 10
  BloodColor "darkgreen"
	
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  
  DamageFactor "MarineDamage", 0.6
  DamageFactor "BFGSplash", 0.6
  DamageFactor "MarineRLDamage", 0.6
  DamageFactor "MarineRail", 0.6
  DamageFactor "MarineSuperweapon", 0.1 //added for custom weapons 
  DamageFactor "PorkDamage", 0 //added

  DamageFactor "CybRLDamage", 0.2
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
	PB10 AB 10 
    Loop
  See:
    PB10 A 0 
    PB10 A 1 A_Jump (240,2) //0
	PB10 A 0 A_PlaySoundEx ("grunt/active","body")
    PB10 ABCD 4 
    Loop
  Missile:
	PB10 E 3
	PB10 E 6 bright
    Goto spawn
  Death:
    PB10 H 5 A_PlaySoundEx ("shotguy/death","Body")
    PB10 I 5 A_NoBlocking
    PB10 J 0 Thing_changeTid(144,0)
    PB10 K 5 A_GiveToTarget ("MarineExp",10)
	PB10 L 5
	PB10 M 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	PB10 M 1 A_SpawnItemEx ("MGoldArmor",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	PB10 N -1
    stop
  XDeath:
    PB10 O 4 A_GiveToTarget ("MarineExp",10)
    PB10 P 4 A_XScream
    PB10 Q 4 A_NoBlocking
    PB10 R 0 Thing_changeTid(144,0)
    PB10 S 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	PB10 S 1 A_SpawnItemEx ("MGoldArmor",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    PB10 TUV 4
    PB10 W -1
	stop
  }
}

ACTOR ZombieColonelRifle : Weapon 
{ 
  weapon.kickback 100
  attacksound ""
  obituary "%o was killed by %k."
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  //+INVENTORY.UNDROPPABLE //added
  states
  {
  Ready:
    BG2G ABCD 3 A_WeaponReady
    BG2G A 0 HealThing(5)	
    Loop
  Select:
	BG2G A 1 A_Raise 
    loop
  DeSelect:
    BG2G A 1 A_Lower
    Loop
  Fire:
		BG2G A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
		BG2G A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
		BG2G A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")	
	BG2G E 20 A_PlaySound ("weapons/bfg10kf")
	BG2G F 4
	BG2G G 1
	BG2G H 1
	BG2G I 1
	BG2G J 1
	Goto Hold
  Hold:
    BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
	BG2G K 2 Bright A_GunFlash
    BG2G L 2 Bright A_FireBullets(0,0,1,0,"PuppetMBFG10kShot")
	BG2G L 0 Bright A_PlaySound ("weapons/bfg10kx")
    BG2G M 2 Bright 
    BG2G O 3
    BG2G O 35 A_PlaySound ("weapons/bfg10kcool")
	BG2G O 60 //50
    Goto Ready
  AltFireX:
	BG2G A 20 A_BFGSound
    BG2G K 10 A_GunFlash
	BG2G K 20
    BG2G A 30 A_FireCustomMissile ("PuppetBFGBall",0,1,5,10)
    BG2G A 60
    Goto Ready
  AltFireY:
	BG2G A 20 A_PlaySound("weapons/RailChargePuppet", CHAN_WEAPON, 1, 0, ATTN_NONE)
    BG2G K 10 A_GunFlash
	BG2G A 0 A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
    BG2G A 30 Bright A_RailAttack(random(150,250), 0, 1, "red", "white", 0, 0, "PuppetColonelRailPuff")
    BG2G A 45 //30
    Goto Ready
  AltFireZ:
	BG2G A 5
    BG2G K 10 A_GunFlash
    BG2G A 15 Bright A_FireCustomMissile ("PuppetColonelRocket3")
    BG2G K 10 A_GunFlash
    BG2G A 15 Bright A_FireCustomMissile ("PuppetColonelRocket3")
    BG2G K 10 A_GunFlash
    BG2G A 15 Bright A_FireCustomMissile ("PuppetColonelRocket3")	
    BG2G A 40
    Goto Ready	
  Flash:
    TNT1 A 3 A_Light0
    TNT1 A 3 A_Light1
    TNT1 A 3 A_Light2
    TNT1 A 0 A_Light0
    Stop
  AltFire:
    BG2G A 5 ACS_ExecuteAlways (419,0,47)
	goto ready
  }
}

actor PuppetMBFG10kShot : MBFG10kShot
{
  Damage 50
  DamageType "ZombiesDamage"
}

ACTOR PuppetBFGBall
{
  Radius 13
  Height 8
  Speed 25
  Damage 100
  Projectile
  +RANDOMIZE
  RenderStyle Add
  Alpha 0.75
  DeathSound "weapons/bfgx"
  Obituary "$OB_MPBFG_BOOM"
  DamageType "ZombiesDamage"
  -NOTELEPORT
  +TELESTOMP
  States
  {
  Spawn:
    BFS1 AB 4 Bright
    Loop
  Death:
    BFE1 AB 8 Bright
    BFE1 C 8 Bright A_BFGSpray
		//BFE1 C 0 A_Explode(250,16)
		BFE1 C 0 A_Explode(150,32)	
		BFE1 C 0 A_Explode(100,48)
		BFE1 C 0 A_Explode(75,64)
		BFE1 C 0 A_Explode(50,96)
		BFE1 C 0 A_Explode(25,128)
		//BFE1 C 0 A_Explode(20,256)
		//BFE1 C 0 A_Explode(15,512)
		//BFE1 C 0 A_Explode(10,1024)
		BFE1 DEF 8 Bright
    Stop
  }
}

actor PuppetColonelRailPuff : BulletPuff
{
 DamageType "ZombiesDamage"
}

ACTOR PuppetColonelRocket3
{
   Radius 8
   Height 11
   Speed 12 //18
   Damage 15
   PROJECTILE
   DeathSound "weapons/hrlexp"
   ExplosionDamage 96
   ExplosionRadius 96
   +SeekerMissile
   +ScreenSeeker
   +Rockettrail
   +RANDOMIZE
   +DEHEXPLOSION
   Damagetype "ZombiesDamage"
   SeeSound "weapons/hrlfir"
   Decal Scorch
   
   BounceCount 3 //added 3.0.1
   +CANBOUNCEWATER //added 3.0.1
   +DOOMBOUNCE //added 3.0.1
   +NOBOUNCESOUND //added 3.0.1
   +NOWALLBOUNCESND //added 3.0.1
   
   States
   {
   Spawn:
      HMIS A 1 Bright A_SeekerMissile(30,60,SMF_PRECISE,256,10)
      goto Spawn
   Death:
      MISL B 8 bright A_Explode(96,96)
      MISL C 6 bright
      MISL D 4 bright
      stop
   }
}