
ACTOR ZombieManClass : PlayerPawn
{
  Health 20
  Speed 0.35
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon ZombieRifle
  Player.DisplayName "ZombieMan"
  Player.WeaponSlot 1, ZombieRifle
  Player.MaxHealth 45
  Player.ViewHeight 47
  Player.SoundClass Brainless
  Player.JumpZ 5
  
  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
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  states
  {
  Spawn:
	POSS AB 10 
    Loop
  See:
    POSS A 0 
    POSS A 0 A_Jump (240,2)
	POSS A 0 A_PlaySoundEx ("grunt/active","body")
    POSS ABCD 4 
    Loop
  Missile:
	POSS F 5
	POSS E 8 bright
    POSS F 8 
    Goto spawn
  Death:
    POSS H 5 A_SpawnItemEx ("Clip",0,0,random(29,38),0,0,0,0,32,0)
    POSS I 5 A_PlaySoundEx ("grunt/death","Body")
    POSS J 5 A_NoBlocking 
    POSS K 5 A_GiveToTarget ("MarineExp",2)
	POSS A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
  DeathWait:
    POSS L 1 A_CheckSight("Removecorpse")
    loop
  XDeath:
    POSS M 4 A_GiveToTarget ("MarineExp",2)
    POSS N 4 A_XScream
    POSS O 4 A_NoBlocking
	POSS A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    POSS PQRST 4
  XDeathWait:	
    POSS U 1 A_CheckSight("Removecorpse")
    loop
  Removecorpse:
	TNT1 A 0 Thing_Remove (0)
	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

  states
  {
  Ready:
    POGN A 5 A_WeaponReady
	POGN A 0 A_JumpIfInventory ("Mskull",0,1)
    Loop
	POGN A 0 HealThing(1)
	goto ready 
  Select:
	POGN A 1 A_Raise 
    loop
  DeSelect:
    POGN A 1 A_Lower
    Loop
  Fire:
    POGN B 4 bright
    POGN C 3 bright A_FireBullets (1.0,1.0,1,8,"FBulletPuff",1)
    POGN C 0 A_Refire
	POGN A 5
    Goto Ready
  AltFire:
    POGN A 5 ACS_ExecuteAlways (419,0,1)
	goto ready
  }
}

// ChainSaw Zombieman Class

ACTOR ChainsawZombieClass : PlayerPawn
{
  Health 100
  Speed 0.9
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon ZombieChainSaw
  Player.DisplayName "ChainsawZombieMan"
  Player.WeaponSlot 1, ZombieChainSaw
  Player.MaxHealth 45
  Player.ViewHeight 47
  Player.SoundClass Brainless
  Player.JumpZ 5
  
  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
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  states
  {
  Spawn:
	CHAN AB 8 
    Loop
  See:
    CHAN A 0 
    CHAN A 0 A_Jump (240,2)
	CHAN A 0 A_PlaySoundEx ("grunt/active","body")
    CHAN ABCD 4 
    Loop
  Missile:
    CHAN EF 4 
    Goto spawn
  Death:
    CHAN H 5 A_SpawnItemEx ("Clip",0,0,random(29,38),0,0,0,0,32,0)
    CHAN I 5 A_PlaySoundEx ("grunt/death","Body")
    CHAN J 5 A_NoBlocking 
    CHAN K 5 A_GiveToTarget ("MarineExp",2)
	CHAN LM 5
	CHAN A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
  DeathWait:
    CHAN N 1 A_CheckSight("Removecorpse")
    loop
  XDeath:
    CHAN O 4 A_GiveToTarget ("MarineExp",2)
    CHAN P 4 A_XScream
    CHAN Q 4 A_NoBlocking
	CHAN A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    CHAN RSTUV 4
  XDeathWait:	
    CHAN W 1 A_CheckSight("Removecorpse")
    loop
  Removecorpse:
	TNT1 A 0 Thing_Remove (0)
	stop
  }
}

// Weapon 


ACTOR ZombieChainSaw : Chainsaw 
{ 
  obituary "%o was sliced by a madman %k with a chainsaw!"
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  states
  {
  Ready:
    SAWG CD 3 A_WeaponReady
	SAWG A 0 A_JumpIfInventory ("Mskull",0,1)
    Loop
	SAWG A 0 HealThing(1)
	goto ready 
  Select:
	SAWG C 1 A_Raise 
    loop
  DeSelect:
    SAWG C 1 A_Lower
    Loop
  Fire:
    SAWG AB 3 A_Saw ("weapons/sawfull","weapons/sawhit",2,"FBulletPuff")
    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
  }
}

