
actor ShotgunGuyClass : PlayerPawn

{
  Health 30
  Radius 20
  Height 56
  Mass 100
  Speed 0.35
  PainChance 127
  Player.MaxHealth 30  
  Player.ViewHeight 48
  Player.JumpZ 5
  
  Player.MorphWeapon "ZombieShotGun"
  Player.WeaponSlot 1, ZombieShotGun
  Player.DisplayName "Sergeant"
  Player.SoundClass "Brainless"
  
  
  DamageFactor "MarineDamage", 1
  DamageFactor "MarineRLDamage", 1
  
  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
  
  +NOPAIN
  +NOSKIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  states
  {
  Spawn:
	SPOS AB 10 
    loop
  See:
    SPOS A 0 A_Jump (240,2)
  	SPOS A 0 A_PlaySoundEx ("shotguy/active","body")
    SPOS ABCD 4 
    Loop	
  Missile:
    SPOS E 1
    SPOS F 10 bright
    SPOS E 10
    goto Spawn
  Death:
    SPOS H 5 A_SpawnItemEx ("ShotGun",0,0,random(29,38),0,0,0,0,32,0)
    SPOS I 5 A_PlaySoundEx ("shotguy/death","Body")
    SPOS J 5 A_NoBlocking
    SPOS K 5 A_GiveToTarget ("MarineExp",3)
	NULL A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
  DeathWait:
    SPOS L 1 A_CheckSight("Removecorpse")
    loop	
  XDeath:
    SPOS M 5 A_GiveToTarget ("MarineExp",3)
    SPOS N 5 A_XScream
    SPOS O 5 A_NoBlocking
	NULL A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    SPOS PQRST 5
  XDeathWait:	
    SPOS U 1 A_CheckSight("Removecorpse")
    loop
  Removecorpse:
	TNT1 A 0 Thing_Remove (0)
	stop	
  }
}



actor ZombieShotGun : Weapon
{
  obituary "%o chewed on %k's boomstick."
  attacksound "weapons/shotgf"
  weapon.kickback 60
  Weapon.AmmoUse 0
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON

  states
  {
  Ready:
    STG2 A 6 A_WeaponReady
    NULL A 0 A_JumpIfInventory ("Mskull",0,1)
    Loop
	NULL A 0 HealThing(1)
	goto ready 
  Deselect: 
    STG2 A 1 A_Lower
    loop
  Select:
	STG2 A 1 A_Raise
    goto Ready
  Fire:
    STG2 A 1
    STG2 A 0 A_FireBullets (4.5,0,6,5,"FBulletPuff")
    STG2 A 4 A_GunFlash
    STG2 BC 4
    STG2 D 3
    STG2 CB 4
	STG2 A 3
    STG2 A 4 A_ReFire
    goto Ready
	AltFire:
    STG2 A 5 ACS_ExecuteAlways (419,0,3)
	goto ready
  Flash:
    SHTF A 3 bright A_Light1
    SHTF B 3 bright A_Light2
    SHTF B 0 bright A_Light0
    stop
  Spawn:
    TNT1 A 1 Thing_Remove (0)
    Stop
  }
}

actor SSgZombieClass : PlayerPawn

{
  Health 100
  Radius 20
  Height 56
  Mass 100
  Speed 0.35
  Scale 0.8
  PainChance 127
  Player.MaxHealth 100  
  Player.ViewHeight 48
  Player.JumpZ 5
  Translation "112:127=16:47"
  
  Player.MorphWeapon "ZombieSuperShotgun"
  Player.WeaponSlot 1, ZombieSuperShotgun
  Player.DisplayName "SSgZombie"
  Player.SoundClass "SSSgZombie"
  
  
  DamageFactor "MarineDamage", 1
  DamageFactor "MarineRLDamage", 1
  
  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
  
  +NOPAIN
  +NOSKIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  states
  {
  Spawn:
	GPOS AB 10 
    loop
  See:
    GPOS A 0 A_Jump (240,2)
  	GPOS A 0 A_PlaySoundEx ("SSGUNER/idle","body")
    GPOS ABCD 4 
    Loop	
  Missile:
    GPOS E 1
    GPOS F 10 bright
    GPOS E 10
    goto Spawn
  Death:
    GPOS H 7 A_SpawnItemEx ("Mshell",0,0,random(29,38),0,0,0,0,32,0)
    GPOS I 7 A_PlaySoundEx ("SSGUNER/death","Body")
    GPOS J 7 A_NoBlocking
    GPOS K 7 A_GiveToTarget ("MarineExp",5)
	GPOS L 7
	GPOS M 7
	NULL A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
  DeathWait:
    GPOS N 1 A_CheckSight("Removecorpse")
    loop	
  XDeath:
    GPOS O 5 A_GiveToTarget ("MarineExp",5)
    GPOS P 5 A_XScream
    GPOS Q 5 A_NoBlocking
	NULL A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    SPOS RS 5
  XDeathWait:	
    GPOS T 1 A_CheckSight("Removecorpse")
    loop
  Removecorpse:
	TNT1 A 0 Thing_Remove (0)
	stop	
  }
}

actor ZombieSuperShotgun : SuperShotgun 
{
  obituary "%o %o was blown open by a %k'."
  attacksound "SSGUNER/SSG"
  weapon.kickback 60
  Weapon.AmmoUse 0
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  States
  {
  Ready:
    SHT2 A 1 A_WeaponReady
	NULL A 0 A_JumpIfInventory ("Mskull",0,1)
    Loop
	NULL A 0 HealThing(1)
	goto ready 
  Fire:
    SHT2 A 3
	SHT2 A 0 A_FireBullets (11.2, 7.1, 16, 5, "MBulletPuff")
    SHT2 A 7 A_GunFlash
    SHT2 B 0 A_CheckReload
	SHT2 BCDEF 3
    SHT2 F 0 A_OpenShotgun2
    SHT2 HUVKLM 3
    SHT2 M 0 A_LoadShotgun2
    SHT2 NOPQR 3
	SHT2 R 0 A_CloseShotgun2 
    SHT2 RST 3 
    SHT2 A 5 A_ReFire
    Goto Ready
  AltFire:
    SHT2 A 5 ACS_ExecuteAlways (419,0,21)
	goto ready	
  Spawn:
    SGN2 A 1 Thing_Remove(0)
    Stop
  }
}