
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
  DamageFactor "ZombieTankDamage", 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
  DamageFactor "ZombieTankDamage", 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
  DamageFactor "ZombieTankDamage", 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 ("ZTPlasmaBall")
    PLSG A 1
    PLSG A 2 A_FireCustomMissile ("ZTPlasmaBall")
    PLSG A 1
    PLSG A 2 A_FireCustomMissile ("ZTPlasmaBall")
	PLSG A 1
	PLSG A 2 A_FireCustomMissile ("ZTPlasmaBall")
	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 BlackOpsMaleClass : PlayerPawn
{
  Health 1000
  gibhealth 99999 //added - actor can not be gibbed
  Speed 0.95
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon BlackOpsMaleRifle
  Player.DisplayName "BlackOps"
  Player.WeaponSlot 1, BlackOpsMaleRifle
  Player.MaxHealth 1000
  Player.ViewHeight 41
  Player.SoundClass BlackOpsM
  Player.JumpZ 10
  BloodColor "Red"
  
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  
  DamageFactor "MarineDamage", 1
  DamageFactor "BFGSplash", 0.6
  DamageFactor "MarineRLDamage", 0.8
  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
  DamageFactor "ZombieTankDamage", 0
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
	REEL E 10 
    Loop
  See:
    REEL A 0 
    REEL A 1 A_Jump (240,2) //0
	REEL A 0 A_PlaySoundEx ("BlackOpsM/Sight","REEMSEE6")
    REEL ABCD 4 
    Loop
  Missile:
	REEL E 3
	REEL E 6 bright
    Goto spawn

  Death:
    REED A 5 
    REED B 5 A_Scream
    REED C 5 A_NoBlocking
    REED D 0 Thing_changeTid(144,0)
    REED D 2 A_GiveToTarget ("MarineExp",10)
	REED E 1
	REED E 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	REED F 2 A_SpawnItemEx ("BlackOpsVest",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	REED G -1
    stop
  XDeath:
    REED H 1 A_GiveToTarget ("MarineExp",10)
    REED H 4 A_Scream
REED K 0 Bright A_SpawnItemEx("BlackOpsGib1", 1, 0, 9, 1, 0, 0, -130, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib2", 6, 0, 7, 8, 0, 0, -90, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib3", 5, 0, 6, 3, 0, 0, -80, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib4", 1, 0, 9, 1, 0, 0,  130, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib5", 6, 0, 7, 8, 0, 0,  90, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib6", 5, 0, 6, 3, 0, 0,  80, 128)
    REED I 5
    REED J 3 A_NoBlocking
    REED J  0 Thing_changeTid(144,0)
    REED J 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	REED J 1 A_SpawnItemEx ("BlackOpsVest",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    REED LM 4
    REED N -1
	stop
Death.Fire:
    REEB A 1 A_GiveToTarget ("MarineExp",10)
    REEB A 3 A_PlaySound("BlackOpsM/Burn")
    REEB B 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB C 3 A_NoBlocking
    REEB D 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB E 3
    REEB F 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB G 3
    REEB H 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB I 3
    REEB J 3 A_CustomMissile("SpawnFire", 0, 0, 0) 
    REEB K 3
    REEB L 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB M 3
    REEB N 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB O 3
    REEB P 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB Q 3 
    REEB Q 0 Thing_ChangeTid(144,0)
    REEB R 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB S 3 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
   REEB T 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB W 3 A_SpawnItemEx ("BlackOpsVest",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    REEB V -1
   stop
  Raise:
    REED GFEDCBA 3
  }
}

ACTOR BlackOpsFemaleClass : PlayerPawn
{
  Health 1000
  gibhealth 99999 //added - actor can not be gibbed
  Speed 0.95
  Radius 20
  Height 56
  Mass 100
  PainChance 200
  Player.MorphWeapon BlackOpsFemaleRifle
  Player.DisplayName "BlackOps"
  Player.WeaponSlot 1, BlackOpsFemaleRifle
  Player.MaxHealth 1000
  Player.ViewHeight 41
  Player.SoundClass BlackOpsF
  Player.JumpZ 10
  BloodColor "Red"
	
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  
  DamageFactor "MarineDamage", 1
  DamageFactor "BFGSplash", 0.6
  DamageFactor "MarineRLDamage", 0.8
  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
  DamageFactor "ZombieTankDamage", 0
  
  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
	REEL E 10 
    Loop
  See:
    REEL A 0 
    REEL A 1 A_Jump (240,2) //0
	REEL A 0 A_PlaySoundEx ("BlackOpsF/Sight","REEMSEE6")
    REEL ABCD 4 
    Loop
  Missile:
	REEL E 3
	REEL E 6 bright
    Goto spawn

  Death:
    REED A 5 
    REED B 5 A_Scream
    REED C 5 A_NoBlocking
    REED D 0 Thing_changeTid(144,0)
    REED D 2 A_GiveToTarget ("MarineExp",10)
	REED E 1
	REED E 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	REED F 2 A_SpawnItemEx ("BlackOpsVest",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	REED G -1
    stop
  XDeath:
    REED H 1 A_GiveToTarget ("MarineExp",10)
    REED H 4 A_Scream
REED K 0 Bright A_SpawnItemEx("BlackOpsGib1", 1, 0, 9, 1, 0, 0, -130, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib2", 6, 0, 7, 8, 0, 0, -90, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib3", 5, 0, 6, 3, 0, 0, -80, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib4", 1, 0, 9, 1, 0, 0,  130, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib5", 6, 0, 7, 8, 0, 0,  90, 128)
    REED K 0 Bright A_SpawnItemEx("BlackOpsGib6", 5, 0, 6, 3, 0, 0,  80, 128)
    REED I 5
    REED J 3 A_NoBlocking
    REED J  0 Thing_changeTid(144,0)
    REED J 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	REED J 1 A_SpawnItemEx ("BlackOpsVest",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    REED LM 4
    REED N -1
	stop
Death.Fire:
    REEB A 1 A_GiveToTarget ("MarineExp",10)
    REEB A 3 A_PlaySound("BlackOpsF/Burn")
    REEB B 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB C 3 A_NoBlocking
    REEB D 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB E 3
    REEB F 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB G 3
    REEB H 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB I 3
    REEB J 3 A_CustomMissile("SpawnFire", 0, 0, 0) 
    REEB K 3
    REEB L 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB M 3
    REEB N 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB O 3
    REEB P 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB Q 3 
    REEB Q 0 Thing_ChangeTid(144,0)
    REEB R 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB S 3 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
   REEB T 3 A_CustomMissile("SpawnFire", 0, 0, 0)
    REEB W 3 A_SpawnItemEx ("BlackOpsVest",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    REEB V -1
   stop
  Raise:
    REED GFEDCBA 3
  }
}

ACTOR BlackOpsMaleRifle : Weapon 
{ 
  obituary "%o was killed by %k."
  Weapon.Kickback 200 //120
  AttackSound "weapons/Ashotgun/fire"
  Decal bulletchip
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  //+INVENTORY.UNDROPPABLE //added
  States
	{
	Ready:
	    D3SG A 0 A_JumpifInventory ("BlckGot",1,3)
	    D3SG A 0 A_GiveInventory ("BlckGot",1)
	    D3SG A 0 A_GiveInventory ("PuppetBlackOpsYZ_counter",200)
        D3SG A 0 ACS_Execute (3051,0)
		D3SG A 1 A_WeaponReady
		D3SG A 0 HealThing(1)
		loop
	Deselect:
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_TakeInventory ("PM_AltfireX", 1)
		D3SG A 0 A_TakeInventory ("PM_AltfireY", 1)
		D3SG A 0 A_TakeInventory ("PM_AltfireZ", 1)
		D3SG A 1 A_Lower
		loop
	Select: 
		D3SG A 10 A_PlaySound("Blackopsm/active")
    Sel:
		D3SG A 0 
		D3SG A 1 A_Raise
		Loop
	Fire:
		D3SG A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
	    D3SG A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
		D3SG A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
		D3SG A 0 A_JumpifInventory ("BlckCool",1,3)
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_Giveinventory ("XYZALTS",1)
		D3SG A 0 A_FireBullets(3, 3, 2, 3, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 2 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG B 6 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 1//6
		D3SG B 6 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 1//6
		Goto Ready
	
	AltFireX:
	    D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheat")
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_FireBullets(7, 7, 5, 4, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 4 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG A 0 A_CheckReload
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheat")
		D3SG A 0 A_FireBullets(7, 7, 4, 3, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 4 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG A 0 A_CheckReload
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheat")
		D3SG A 0 A_FireBullets(7, 7, 4, 3, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 4 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG A 0 A_CheckReload
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		D3SG A 0 A_JumpIfInventory ("MShell",2,2)
		D3SG A 1 A_Jump (256,5) //0
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 3
		Goto Ready
	AltFireY:
	    D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheat")
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_RailAttack(random(70,100), 5, 1, "none", "black", 0, 0, "BRailPuff")
		D3SG A 1 A_SetPitch(-8.0 + pitch)
		D3SG A 3
		D3SG A 1 A_SetPitch(+8.0 + pitch)
		D3SG A 20
		D3SG B 10 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 2
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		Goto Ready
	AltFireZ:
	    D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheat")
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_PlaySoundEx ("weapons/mgren","weapon")
		D3SG A 0 A_FireCustomMissile ("BGrenade",5,1,0,0,0,9) //12
		D3SG A 1 A_SetPitch(-8.0 + pitch)
		D3SG A 3
		D3SG A 1 A_SetPitch(+8.0 + pitch)
		D3SG A 10
		D3SG B 10 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 2
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		Goto Ready
		
	PuppetBlackOpsYZOverheat:
		D3SG A 6 A_GiveInventory("Cooloff",1)
		D3SG A 0 A_TakeInventory("PM_AltFireX",1)
		D3SG A 0 A_TakeInventory("PM_AltFireY",1)
		D3SG A 0 A_TakeInventory("PM_AltFireZ",1)
	    D3SG A 0 A_TakeInventory("XYZALTX",1)
	    D3SG A 0 A_TakeInventory("XYZALTY",1)
	    D3SG A 0 A_TakeInventory("XYZALTZ",1)
		Goto Ready

	Flash:
		D3SF A 3 BRIGHT A_Light1
		D3SF B 2 BRIGHT A_Light2
		D3SF B 0 A_Light0
		Stop
	AltFlash:
		D3SF A 3 BRIGHT A_Light1
		D3SF B 2 BRIGHT A_Light2
		D3SF B 0 A_Light0
		Stop
		
    AltFire:
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_TakeInventory("XYZALTS",1)
		D3SG A 0 A_TakeInventory("XYZALTX",1)
	    D3SG A 0 A_TakeInventory("XYZALTY",1)
	    D3SG A 0 A_TakeInventory("XYZALTZ",1)
        D3GS A 5 ACS_ExecuteAlways (419,0,47)
		goto ready
    }
}

ACTOR BlackOpsFemaleRifle : Weapon 
{ 
  obituary "%o was killed by %k."
  Weapon.Kickback 200 //120
  AttackSound "weapons/Ashotgun/fire"
  Decal Bulletchip
  +NOEXTREMEDEATH
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  //+INVENTORY.UNDROPPABLE //added
  States
	{
	Ready:
	    D3SG A 0 A_JumpifInventory ("BlckGot",1,3)
	    D3SG A 0 A_GiveInventory ("BlckGot",1)
	    D3SG A 0 A_GiveInventory ("PuppetBlackOpsYZ_counter",200)
        D3SG A 0 ACS_Execute (3051,0)
		D3SG A 1 A_WeaponReady
		D3SG A 0 HealThing(1)
		loop
	Deselect:
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_TakeInventory ("PM_AltfireX", 1)
		D3SG A 0 A_TakeInventory ("PM_AltfireY", 1)
		D3SG A 0 A_TakeInventory ("PM_AltfireZ", 1)
		D3SG A 1 A_Lower
		loop
	Select:
		D3SG A 10 A_PlaySound("Blackopsf/active")
    Sel:
		D3SG A 0 
		D3SG A 1 A_Raise
		Loop
	Fire:
	    D3SG A 0 ACS_Execute(3051,0)
		D3SG A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
	    D3SG A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
		D3SG A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
		D3SG A 0 A_JumpifInventory ("BlckCool",1,3)
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_Giveinventory ("XYZALTS",1)
		D3SG A 0 A_FireBullets(3, 3, 2, 3, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 2 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG B 6 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 1//6
		D3SG B 6 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 1//6
		Goto Ready
	
	AltFireX:
	    D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheatF")
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_FireBullets(7, 7, 5, 4, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 4 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG A 0 A_CheckReload
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheatF")
		D3SG A 0 A_FireBullets(7, 7, 4, 3, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 4 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG A 0 A_CheckReload
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheatF")
		D3SG A 0 A_FireBullets(7, 7, 4, 3, "BBulletPuff", 1)
		D3SG A 1 A_SetPitch(-2.0 + pitch)
		D3SG A 4 A_GunFlash
		D3SG A 1 A_SetPitch(2.0 + pitch)
		D3SG A 0 A_CheckReload
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		D3SG A 0 A_JumpIfInventory ("MShell",2,2)
		D3SG A 1 A_Jump (256,5) //0
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 3
		Goto Ready
	AltFireY:
	    D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheatF")
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_RailAttack(random(70,100), 5, 1, "none", "black", 0, 0, "BRailPuff")
		D3SG A 1 A_SetPitch(-8.0 + pitch)
		D3SG A 3
		D3SG A 1 A_SetPitch(+8.0 + pitch)
		D3SG A 20
		D3SG B 10 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 2
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		Goto Ready
	AltFireZ:
	    D3SG A 0 ACS_Execute(3051,0)
	    D3SG A 0 A_JumpIfInventory("BlckCool",1,"PuppetBlackOpsYZOverheatF")
		D3SG A 0 A_TakeInventory ("Cooloff",1)
		D3SG A 0 A_PlaySoundEx ("weapons/mgren","weapon")
		D3SG A 0 A_FireCustomMissile ("BGrenade",5,1,0,0,0,9) //12
		D3SG A 1 A_SetPitch(-8.0 + pitch)
		D3SG A 3
		D3SG A 1 A_SetPitch(+8.0 + pitch)
		D3SG A 20
		D3SG B 10 A_PlaySound("weapons/Ashotgun/cock/back")
		D3SG C 6
		D3SG B 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		D3SG A 2
		D3SG A 0 A_TakeInventory("PuppetBlackOpsYZ_counter",1)
		Goto Ready
		
	PuppetBlackOpsYZOverheatF:    
		D3SG A 6 A_GiveInventory("Cooloff",1)
		D3SG A 0 A_TakeInventory("XYZALTX",1)
	    D3SG A 0 A_TakeInventory("XYZALTY",1)
	    D3SG A 0 A_TakeInventory("XYZALTZ",1)
		D3SG A 0 A_TakeInventory("PM_AltFireX",1)
		D3SG A 0 A_TakeInventory("PM_AltFireY",1)
		D3SG A 0 A_TakeInventory("PM_AltFireZ",1)
		Goto Ready

	Flash:
		D3SF A 3 BRIGHT A_Light1
		D3SF B 2 BRIGHT A_Light2
		D3SF B 0 A_Light0
		Stop
	AltFlash:
		D3SF A 3 BRIGHT A_Light1
		D3SF B 2 BRIGHT A_Light2
		D3SF B 0 A_Light0
		Stop
		
    AltFire:
	    D3SG A 0 A_TakeInventory("XYZALTS",1)
		D3SG A 0 A_TakeInventory("XYZALTX",1)
	    D3SG A 0 A_TakeInventory("XYZALTY",1)
	    D3SG A 0 A_TakeInventory("XYZALTZ",1)
		D3SG A 0 A_TakeInventory ("Cooloff",1)
        D3GS A 5 ACS_ExecuteAlways (419,0,50)
		goto ready
    }
}

ACTOR ZombieMissileTankClass : PlayerPawn
{
    Health 1575
    gibhealth 99999
    Radius 27
    Height 72
    Mass 1100
    Painchance 40
    Player.MorphWeapon ZomMissileGun
    Player.DisplayName "ZombieMissileTank"
    Player.WeaponSlot 1, ZomMissileGun
    Player.MaxHealth 1575
    Player.ViewHeight 45
	Player.SideMove 0
    Player.SoundClass "Brainless"
    Player.Jumpz 10
	
	SeeSound "ZMTank/see"
    AttackSound "ZMTank/attack"
    PainSound "ZMTank/pain"
    DeathSound "ZMTank/death"
	ActiveSound "ZMTank/run"

    DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  
  DamageFactor "MarineDamage", 1
  DamageFactor "BFGSplash", 0.4
  DamageFactor "MarineRLDamage", 0.8
  DamageFactor "MarineRail", 0.4
  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
  DamageFactor "ZombieTankDamage", 0

  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER
States
  {
  Spawn:
    ZMTK A 1
    Loop
See: 
    ZMTK A 0
    ZMTK A 1 A_Jump (240,2)
    ZMTK A 0 A_PlaySound("ZMTank/Run")
    ZMTK AABBCC 1
    Loop
Missile:
    ZMTK D 3 Bright 
    ZMTK A 8
    ZMTK E 3 Bright
    ZMTK A 8
    Goto Spawn
 Death:
        ZMTK G 4 A_Scream
        ZMTK G 5 A_NoBlocking
        ZMTK G 0 Thing_changeTid(144,0)
        ZMTK G 4 A_GiveToTarget ("MarineExp",10)
        ZMTK H 8 A_SpawnItemEx("ZombieMissileTankGun", -40, 0, 30, 12, 0, 0, 64, 128)
        ZMTK I 8 A_SpawnItemEx("ZombieMissileTankGun", 40, 0, 30, 12, 0, 0, 192, 128)
        ZMTK J 8 A_CustomMissile ("ZombieTankExplosion", 48, 0, 0)
        ZMTK K 8 A_Fall
        ZMTK L 8 A_SpawnItemEx("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK M 8 A_SpawnItemEx("ZTankSmoke", 0, 0, 48, 0, 0, 0, 0, 128)
        ZMTK N 1 A_SpawnItemEx("MZombieMan",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK O -1
        Stop
		
	XDeath:
        ZMTK G 4 A_Scream
        ZMTK G 5 A_NoBlocking
        ZMTK G 0 Thing_changeTid(144,0)
        ZMTK G 4 A_GiveToTarget ("MarineExp",10)
        ZMTK H 8 A_SpawnItemEx("ZombieMissileTankGun", -40, 0, 30, 12, 0, 0, 64, 128)
        ZMTK I 8 A_SpawnItemEx("ZombieMissileTankGun", 40, 0, 30, 12, 0, 0, 192, 128)
        ZMTK J 8 A_CustomMissile ("ZombieTankExplosion", 48, 0, 0)
        ZMTK K 8 A_Fall
        ZMTK L 8 A_SpawnItemEx("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK M 8 A_SpawnItemEx("ZTankSmoke", 0, 0, 48, 0, 0, 0, 0, 128)
        ZMTK N 1 A_SpawnItemEx("MZombieMan",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK O -1
        Stop
      }
}
//Weapon
Actor ZomMissileGun : Weapon
{
 Obituary "%o was destroyed by %k's missile Tank."
 Scale 0.75
 Weapon.BobRangeX 0
 Weapon.BobRangeY 0
+WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  States
   {
Ready:
    ZHUL B 1 A_WeaponReady
    ZHUL B 0 HealThing(1)
    loop
Deselect:
    ZHUL B 1 A_Lower
    loop
Select:
    ZHUL B 1 A_Raise
     goto ready
Fire: 
    ZHUL A 3 Bright A_GunFlash
    ZHUL A 0 Bright A_FireCustomMissile("ZombieTankMissile",0,0,-24,4,0,0)
    ZHUL A 8
    ZHUL A 3 Bright A_GunFlash
    ZHUL A 0 Bright A_FireCustomMissile("ZombieTankMissile",0,0,24,4,0,0)	
    ZHUL A 8
	ZHUL A 0 A_Refire
    Goto Ready
 AltFire:
        ZHUL B 1 ACS_ExecuteAlways (419,0,48)
 goto ready
    }
}

ACTOR ZombiePlasmaTankClass : PlayerPawn
{
     Health 1450
     gibhealth 99999
     Radius 27
     Height 72
     Mass 1000
     Painchance 50
     Player.MorphWeapon ZomPlasmaGun
     Player.DisplayName "ZombiePlasmaTank"
     Player.WeaponSlot 1,ZomPlasmaGun
     Player.MaxHealth 1450
     Player.ViewHeight 45
     Player.SoundClass "Brainless"
	 Player.SideMove 0
     Player.Jumpz 10
	 
	 SeeSound "ZPTank/see"
     AttackSound "ZPTank/attack"
     PainSound "ZPTank/pain"
     DeathSound "ZPTank/death"
	 ActiveSound "ZPTank/run"

     DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  
  DamageFactor "MarineDamage", 1
  DamageFactor "BFGSplash", 0.4
  DamageFactor "MarineRLDamage", 0.8
  DamageFactor "MarineRail", 0.4
  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
  DamageFactor "ZombieTankDamage", 0

  +NOSKIN
  +NOPAIN
  -PICKUP
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER
States
  {
  Spawn:
    ZPTK A 1
    Loop
See: 
    ZPTK A 0
    ZPTK A 1 A_Jump (240,2)
    ZPTK A 0 A_PlaySound("ZMTank/Run")
    ZPTK AABBCC 1
    Loop
Missile:
    ZPTK D 3 Bright
    ZPTK A 6
    ZPTK E 3 Bright 
    ZPTK A 6
     
    Goto Spawn
Death:
        ZPTK G 4 A_Scream
        ZPTK G 5 A_NoBlocking
        ZPTK G 0 Thing_changeTid(144,0)
        ZPTK G 4 A_GiveToTarget ("MarineExp",10)
        ZPTK H 8 A_SpawnItemEx("ZombiePlasmaTankGun", -40, 0, 30, 12, 0, 0, 64,128)
        ZMTK I 8 A_SpawnItemEx("ZombiePlasmaTankGun", 40, 0, 30, 12, 0, 0, 192, 128)
        ZMTK J 8 A_CustomMissile ("ZombieTankExplosion", 48, 0, 0)
        ZMTK K 8 A_Fall
        ZMTK L 8 A_SpawnItemEx("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK M 8 A_SpawnItemEx("ZTankSmoke", 0, 0, 48, 0, 0, 0, 0, 128)
        ZMTK N 1 A_SpawnItemEx("MPlasmaZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK O -1
        Stop
		
	XDeath:
        ZPTK G 4 A_Scream
        ZPTK G 5 A_NoBlocking
        ZPTK G 0 Thing_changeTid(144,0)
        ZPTK G 4 A_GiveToTarget ("MarineExp",10)
        ZPTK H 8 A_SpawnItemEx("ZombiePlasmaTankGun", -40, 0, 30, 12, 0, 0, 64,128)
        ZMTK I 8 A_SpawnItemEx("ZombiePlasmaTankGun", 40, 0, 30, 12, 0, 0, 192, 128)
        ZMTK J 8 A_CustomMissile ("ZombieTankExplosion", 48, 0, 0)
        ZMTK K 8 A_Fall
        ZMTK L 8 A_SpawnItemEx("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK M 8 A_SpawnItemEx("ZTankSmoke", 0, 0, 48, 0, 0, 0, 0, 128)
        ZMTK N 1 A_SpawnItemEx("MPlasmaZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        ZMTK O -1
        Stop
      }
}
//Weapon
Actor ZomPlasmaGun : Weapon
{
 Obituary "%o was destroyed by %k's missile Tank."
 Scale 0.75
 Weapon.BobRangeX 0
 Weapon.BobRangeY 0
+WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +WEAPON.NOAUTOAIM
  States
   {
Ready:
    ZHUL B 1 A_WeaponReady
    ZHUL B 0 HealThing(1)
    loop
Deselect:
    ZHUL B 1 A_Lower
    loop
Select:
    ZHUL B 1 A_Raise 
     goto Ready
Fire: 
    ZHUL A 3 A_GunFlash
    ZHUL A 0 BRIGHT A_FireCustomMissile("ZTPlasmaBall",0,0,24,16,0)
    TNT1 A 0 BRIGHT A_FireCustomMissile("ZTPlasmaBall",0,0,24,6,0)
    ZHUL A 6
	ZHUL A 3 A_GunFlash
    ZHUL A 0 BRIGHT A_FireCustomMissile("ZTPlasmaBall",0,0,-24,6,0)
    TNT1 A 0 BRIGHT A_FireCustomMissile("ZTPlasmaBall",0,0,-24,16,0)	
    ZHUL A 6 
	ZHUL A 0 A_Refire
    Goto Ready
 AltFire:
        ZHUL B 1 ACS_ExecuteAlways (419,0,49)
 goto ready
    }
}

ACTOR BGrenade
{
	Radius 8
	Height 8
	Speed 25
	Damage 15
	Projectile
	BounceCount 9
	Scale 1.5
	-NOGRAVITY
	-NOTELEPORT
	+TELESTOMP //added
	+CANBOUNCEWATER //added
	+DOOMBOUNCE
	+DEHEXPLOSION
	+ROCKETTRAIL
	//+GRENADETRAIL
	+EXPLODEONDEATH
	+USESTBOUNCESOUND
	Damagetype "ZombiesDamage"
	SeeSound "weapons/mgrenbounce"
	DeathSound "weapon/grenadeexplode" //weapons/rocklx
	Obituary "$OB_GRENADE"
	States
	{
	Spawn:
		GRN2 ABCDEFGHIJK 3  
		loop
	Death:
		MISL B 8 bright A_Explode
		MISL C 6 bright
		MISL D 4 bright
		stop
	}

}

actor BBulletPuff :BulletPuff
{
  Damagetype "ZombiesDamage"
 +NOEXTREMEDEATH
}

actor BRailPuff : MBulletPuff
{
  Damagetype "ZombiesDamage"
 -NOEXTREMEDEATH
 }