Actor RepeaterZombie : FPlus_Monster
{
spawnid 246
  Health 200
  Radius 20
  Height 56
  Speed 14
  PainChance 96
  +FloorClip
  SeeSound "Grunt/Sight"
  PainSound "Grunt/Pain"
  DeathSound "Grunt/Death"
  ActiveSound "Grunt/Active"
  Obituary "%o was vapourized by a Zombie with a Repeater" 
  Decal MummyScorch
	
  States 
  {
  Spawn:
    RPZM A 0 A_JumpIfInventory("RepeaterZombieFiring", 1, "SpinDown")
    RPZM A 0 A_ChangeFlag("NoPain", 1)
    RPZM AAAAAAAAAABBBBBBBBBB 1 A_Look 
    Loop 
  See:
    RPZM A 0 A_JumpIfInventory("RepeaterZombieFiring", 1, "SpinDown")
    RPZM A 0 A_ChangeFlag("NoPain", 0)
    RPZM AABBCCDD 4 A_Chase 
    Loop 
  Missile:
    RPZM E 0 A_ChangeFlag("NoPain", 1)
    RPZM E 0 A_GiveInventory("RepeaterZombieFiring", 1)
    RPZM E 0 A_PlaySoundEx("RepeaterZombie/Idle", "SoundSlot7", 1)
    RPZM EEFFEFEF 4 A_FaceTarget
    RPZM E 0 A_JumpIfInventory("RepeaterZombieHeat", 20, "Overload")
    RPZM E 0 A_GiveInventory("RepeaterZombieHeat", 1)
    RPZM F 0 A_PlaySound("RepeaterZombie/Fire")
    RPZM G 2 Bright A_CustomBulletAttack(12, 4, 2, 8, "RepeaterZombiePuff")
    RPZM F 2
    RPZM H 0 A_PlaySound("RepeaterZombie/Fire")
    RPZM H 2 Bright A_CustomBulletAttack(12, 4, 2, 8, "RepeaterZombiePuff")
    RPZM E 2
    RPZM E 0 A_Jump(220, 2)
    RPZM E 0 A_SpidRefire
    RPZM E 0
    Goto Missile+11
  SpinDown:
    RPZM E 0 A_StopSoundEx("SoundSlot7")
    RPZM E 0 A_PlaySoundEx("RepeaterZombie/Stop", "SoundSlot7", 0)
    RPZM E 0 A_TakeInventory("RepeaterZombieFiring", 1)
    RPZM E 0 A_TakeInventory("RepeaterZombieHeat", 20)
    RPZM EFEFEEFF 4
    Goto See
  Overload:
    RPZM E 0 A_StopSoundEx("SoundSlot7")
    RPZM E 0 A_PlaySoundEx("RepeaterZombie/Stop", "SoundSlot7", 0)
    RPZM E 0 A_PlayWeaponSound("RepeaterZombie/Steam")
    RPZM E 0 A_TakeInventory("RepeaterZombieFiring", 1)
    RPZM E 0 A_TakeInventory("RepeaterZombieHeat", 20)
    RPZM EEEEEFFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    RPZM EEEEEEFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    RPZM EEEEEFFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    RPZM EEEEEEFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    RPZM EEEEEFFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    RPZM EEEEEEFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    RPZM EEEEEFFFFFF 1 A_SpawnItemEx("RepeaterZombieSteam", -5, Random(12, 14), Random(31, 33), 4, 0, (0.1)*Random(-5, 5), Random(85, 90), 128)
    Goto See
  Pain:
    RPZM I 0 A_StopSoundEx("SoundSlot7")
    RPZM I 3 
    RPZM I 3 A_Pain 
    Goto See 	

  MonDeath:
    RPZM I 4 A_StopSoundEx("SoundSlot7")
    RPZM J 5
    RPZM K 5 A_Scream 
    RPZM L 5 A_Fall 
    RPZM M 5 
    RPZM N 650
	goto Super::FadeOut
  MonXDeath:
    RPZM O 5 A_StopSoundEx("SoundSlot7")
    RPZM P 5 A_XScream
    RPZM Q 5
    RPZM R 5 A_Fall
    RPZM STUV 5
    RPZM W 650
	goto Super::FadeOut
  MonRaise: 
    RPZM NMLKJI 5
    Goto See 
  } 
}

Actor RepeaterZombieFiring : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterZombieHeat : Inventory { Inventory.MaxAmount 20 }

Actor RepeaterZombiePuff
{
  Radius 3
  Height 3
  RenderStyle Add
  Alpha 0.75
  +AlwaysPuff
  +PuffOnActors
  +NoGravity
  +NoBlockMap
  +BloodlessImpact
  -BloodSplatter
  DeathSound "RepeaterZombie/Hit"
  States
  {
  Spawn:
    BLAS ABCDEFG 3 Bright
    Stop
  }
}

Actor RepeaterZombieSteam
{
  +CLIENTSIDEONLY
  Height 1
  Radius 1
  Speed 4
  +Missile
  +NoGravity
  +NoBlockMap
  +BloodlessImpact
  -BloodSplatter
  RenderStyle Add
  Scale 0.3
  Alpha 0.65
  States
  {
  Spawn:
    STEM A 1 A_SetTranslucent(0.6, 1)
    STEM B 2 A_SetTranslucent(0.55, 1)
    STEM C 1 A_SetTranslucent(0.5, 1)
    STEM D 2 A_SetTranslucent(0.45, 1)
    STEM E 1 A_SetTranslucent(0.4, 1)
    STEM F 2 A_SetTranslucent(0.35, 1)
    STEM G 1 A_SetTranslucent(0.3, 1)
    STEM H 2 A_SetTranslucent(0.25, 1)
    STEM I 1 A_SetTranslucent(0.2, 1)
    STEM J 2 A_SetTranslucent(0.15, 1)
    STEM K 1 A_SetTranslucent(0.1, 1)
    STEM L 2 A_SetTranslucent(0.05, 1)
    Stop
  }
}