actor CyberdemonClass : PlayerPawn
{
  Speed 0.3
  Health 4000
  gibhealth 99999 //added - actor can not be gibbed
  Radius 40
  Height 110
  Mass 1000
  PainChance 0
  MaxStepHeight 32
  player.maxhealth 4000
  player.soundclass "CyberDemonClass"
  Player.DisplayName "CyberDemon"
  Player.MorphWeapon "CyberDemonRL"
  Player.WeaponSlot 1, CyberDemonRL
  
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 1
  DamageFactor "MarineRLDamage", 1
  DamageFactor "BFGSplash", 0.7
  DamageFactor "MarineRail", 0.7
  
  DamageFactor "CybRLDamage", 0
	DamageFactor "CybYamato", 0.05 //added
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "ZombieTankDamage", 0
  DamageFactor "Control", 0
  DamageFactor "Slime", 0
  
  Player.JumpZ 20 //0
  Player.ViewHeight 90
  -PICKUP
  +NORADIUSDMG
  +NOSKIN
  +NOPAIN
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
    CYBR AB 10
    loop
  See:
    CYBR A 3 A_PlaySoundEx ("cyber/hoof","body") 
    CYBR ABBCC 3 
    CYBR D 6 A_PlaySoundEx ("spider/walk","body")
    goto Spawn
  Missile:
    CYBR A 0 A_JumpIfInventory ("FHeat",19,"CantShot")
    CYBR E 8 
    CYBR F 9 bright
    CYBR E 8 
    CYBR F 9 bright
    CYBR E 8 
    CYBR F 9 bright
    CYBR E 9 
    goto Spawn
  CantShot:
    //  CYBR E 14
    goto spawn
  Death:
    CYBR H 10 A_GiveToTarget ("MarineExp",40)
    CYBR I 10 A_PlaySoundEx ("cyber/death","body",0,1)
    CYBR JKL 10
    CYBR M 10 A_NoBlocking
    CYBR A 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    CYBR NO 10
    CYBR P 30 Thing_changeTid(144,0)
    CYBR P -1
    stop
  }
}

// Weapon

actor CyberDemonRL : DoomWeapon
{
  obituary "%o was splattered by a cyberdemon."
  Weapon.AmmoUse 0
  +WEAPON.NOALERT
  +ammo_optional
  +Alt_Ammo_Optional
  +WEAPON.CHEATNOTWEAPON
  //+INVENTORY.UNDROPPABLE //added
  
  States
  {
  Ready:
    CYBW A 0
    CYBW A 1 A_JumpifInventory ("DemonGot",1,3)
	CYBW A 1 A_GiveInventory ("DemonGot",1)
	CYBW A 1 A_GiveInventory ("PuppetCyberDemon_counter",300)
    CYBW A 1 ACS_Execute (3032,0)
    CYBW A 10 A_WeaponReady
    CYBW A 0 //ACS_executeAlways(571,0,2,0,0)
    CYBW A 0
    CYBW A 0 A_JumpIfInventory ("nothere",1,"nouse")
    CYBW A 0 A_TakeInventory ("FHeat",3)
    CYBW A 0 A_JumpIfInventory ("Mskull",0,2)
    CYBW A 14 A_WeaponReady
    CYBW A 0 A_TakeInventory ("FHeat",3)
    CYBW A 0 A_JumpIfInventory ("Mskull",3,1)
    Loop
    //CYBW A 0 HealThing(5)
    //goto ready 
  Deselect:
    CYBW A 1 A_Lower
    Loop
  Select:
    CYBW A 1 A_Raise
    Loop
  Fire:
    CYBW A 0 ACS_Execute (3032,0)
    CYBW A 0 A_JumpifInventory ("DokickDemon",1,"CyberDemonOverUse")
	CYBW A 0 A_TakeInventory ("Overused",1)
    CYBW A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
	CYBW A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
	CYBW A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket",-1,0,-15,11,1,1)
    CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket",-1,0,-15,11,1,1)
    CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket",-1,0,-15,11,1,1)
    CYBW A 25 //8
	CYBW A 0 A_TakeInventory ("PuppetCyberDemon_counter",3)
    Goto Ready
  AltFireX:
    CYBW A 0 A_JumpifInventory ("DoKickDemon",1,"CyberDemonOverUse")
    CYBW ABC 4 bright
	CYBW D 0 A_PlaySoundEx ("weapons/mgren","weapon")
    CYBW D 5 bright A_FireCustomMissile ("MCyberGrenade",-1,0,-15,11,1,1)
    CYBW ABC 4 bright
	CYBW D 0 A_PlaySoundEx ("weapons/mgren","weapon")
    CYBW D 5 bright A_FireCustomMissile ("MCyberGrenade",-1,0,-15,11,1,1)
    CYBW ABC 4 bright
	CYBW D 0 A_PlaySoundEx ("weapons/mgren","weapon")
    CYBW D 5 bright A_FireCustomMissile ("MCyberGrenade",-1,0,-15,11,1,1)
    CYBW A 25 //8
	CYBW A 0 A_TakeInventory ("PuppetCyberDemon_counter",3)
    Goto Ready
  AltFireY:
    CYBW A 0 A_JumpifInventory ("DoKickDemon",1,"CyberDemonOverUse")
	CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket3",-1,0,-15,11,1,1)
	CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket3",-1,0,-15,11,1,1)
	CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket3",-1,0,-15,11,1,1)
	CYBW ABC 4 bright
    CYBW D 5 bright A_FireCustomMissile ("PuppetCybRocket3",-1,0,-15,11,1,1)
    CYBW A 20 //16
	CYBW A 0 A_TakeInventory ("PuppetCyberDemon_counter",4)
    Goto Ready
  AltFireZ:
    CYBW A 0 A_JumpifInventory ("DoKickDemon",1,"CyberDemonOverUse")
		CYBW A 1 Bright
	CYBW B 60 bright A_PlaySound("weapons/RailChargePuppet", CHAN_WEAPON, 1, 0, ATTN_NONE)
		CYBW A 6 Bright
	CYBW D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
    CYBW D 12 Bright A_RailAttack(random(100,120), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBW ABC 2 Bright
	CYBW D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
    CYBW D 12 Bright A_RailAttack(random(100,120), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBW ABC 2 Bright
	CYBW D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
    CYBW D 12 Bright A_RailAttack(random(100,120), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBW ABC 2 Bright
	CYBW D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
    CYBW D 12 Bright A_RailAttack(random(100,120), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBW ABC 2 Bright
	CYBW D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
    CYBW D 12 Bright A_RailAttack(random(100,120), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
	CYBW A 5
	CYBW A 0 A_TakeInventory ("PuppetCyberDemon_counter",5)
    Goto Ready
	
  AltFire: //Reserved for dropping a monster
    CYBW A 1
    TNT1 A 0 A_Takeinventory("nothere",1)
    CYBW A 5 ACS_ExecuteAlways (419,0,13)
    goto Ready
  CyberDemonOverUse:
	CYBW A 1 A_GiveInventory ("OverUsed",1)
	CYBW A 0 A_TakeInventory("XYZALTS",1)
	CYBW A 0 A_TakeInventory("XYZALTX",1)
	CYBW A 0 A_TakeInventory("XYZALTY",1)
	CYBW A 0 A_TakeInventory("XYZALTZ",1)
	Goto Altfire
  Overheat:
    //  CYBW A 0 SetPlayerProperty (0, 1, 0)
    CYBW A 0 A_PlaySoundEx ("cybie/overheat","body")
    CYBW A 28 ACS_ExecuteAlways (408)
    CYBW A 0 A_TakeInventory ("FHeat",5)
    //  CYBW A 0 SetPlayerProperty (0, 0, 0)
    goto ready
  Spawn:
    TNT1 A 0 Thing_Remove (0)
    Stop
  NoUse:
	TNT1 A 1
	TNT1 A 4 A_Print("cant use this")
  }
}






actor PuppetCybRailPuff : BulletPuff
{
 +SEEKERMISSILE
 DamageType "CybRLDamage"
}




actor CyberAnniClass : PlayerPawn
{
  Speed 0.3 //0.2
  Health 5000 //3250
  gibhealth 99999 //added - actor can not be gibbed
  Radius 40
  Height 110
  Mass 1000
  PainChance 0
  MaxStepHeight 32
  player.maxhealth 5000
  player.soundclass "CyberAnniClass"
  Player.DisplayName "CyberAnnihilator"
  Player.MorphWeapon "CyberAnniRL"
  Player.WeaponSlot 1, CyberAnniRL
  
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 1
  DamageFactor "MarineRLDamage", 1
  DamageFactor "BFGSplash", 0.7
  DamageFactor "MarineRail", 0.7
  
  DamageFactor "CybRLDamage", 0
	DamageFactor "CybYamato", 0.05 //added
	DamageFactor "MarineSuperweapon", 0.12
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "viledamage", 0

  DamageFactor "Control", 0
  DamageFactor "Slime", 0
  
  Player.JumpZ 20 //0
  Player.ViewHeight 90
  -PICKUP
  +NORADIUSDMG
  +NOSKIN
  +NOPAIN
  -FRIENDLY
  +NOTARGET
  +NOTRIGGER //added - avoid issues in level design
  
  states
  {
  Spawn:
    ANNI AB 10
    loop
  See:
    ANNI A 4 A_PlaySoundEx ("monster/anhoof", "body")
    ANNI ABB 4 
    ANNI C 4 A_PlaySoundEx ("monster/anhoof", "body")
    ANNI CDD 4 
    goto Spawn
  Missile:
    ANNI A 0 A_JumpIfInventory ("FHeat",19,"CantShot")
    ANNI E 9 
    ANNI F 8 bright
    ANNI E 9 
    ANNI F 8 bright
    ANNI E 9 
    ANNI F 8 bright
    ANNI E 13 
    goto Spawn
  CantShot:
    //  ANNI E 14
    goto spawn
  Death:
	ANNI H 1 A_JumpIf(random(1,2) == 1, "DeathReactor")
    ANNI H 9 A_GiveToTarget ("MarineExp",45)
    ANNI I 10 A_PlaySoundEx ("cyber/death","body",0,1)
    ANNI JKL 10
    ANNI M 10 A_NoBlocking
    ANNI M 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    ANNI N 10
    ANNI P 30 Thing_changeTid(144,0)
    ANNI P -1
    stop
  DeathReactor:
    ANNI H 0 A_GiveToTarget ("MarineExp",45)
	ANNI H 0 Thing_changeTid(144,0)
    ANNI H 40 Bright A_Scream
	ANNI M 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    ANNI I 40 A_PlaySound("Weapons/YamatoCharge", CHAN_AUTO, 1, 0, ATTN_NONE)
    ANNI I 10 Bright 
    ANNI JKL 2 Bright A_CustomMissile ("MYamatoBombReactor",32,0,0)
    ANNI M 2 Bright A_NoBlocking
    ANNI N 2 Bright
    ANNI P 30 
    ANNI P -1
	stop	
  }
}

// Weapon

actor CyberAnniRL : DoomWeapon
{
  obituary "%o was gibbed by the Cyber Annihilator."
  Weapon.AmmoUse 0
  +WEAPON.NOALERT
  +ammo_optional
  +Alt_Ammo_Optional
  +WEAPON.CHEATNOTWEAPON
  //+INVENTORY.UNDROPPABLE //added
  
  States
  {
  Ready:
    CYBD A 0
    CYBD A 1 A_JumpifInventory ("AnniGot",1,3)
	CYBD A 1 A_GiveInventory ("AnniGot",1)
	CYBD A 1 A_GiveInventory ("PuppetCyberAnni_Counter",200)
    CYBD A 1 ACS_Execute(3033,0)
    CYBD A 5 A_WeaponReady
    CYBD A 0 //ACS_ExecuteAlways(571,0,3,0,0)
    CYBD A 0
    CYBD A 0 A_JumpIfInventory ("nothere",1,"nouse")
    CYBD A 0 A_TakeInventory ("FHeat",3)
    CYBD A 0 A_JumpIfInventory ("Mskull",0,4)
    CYBD A 5 A_WeaponReady
    CYBD A 0 A_TakeInventory ("FHeat",3)
    CYBD A 0 A_JumpIfInventory ("Mskull",3,1)
    Loop
    CYBD A 0 HealThing(4)
    goto ready 
  Deselect:
    CYBD A 1 A_Lower
    Loop
  Select:
    CYBD A 1 A_Raise
    Loop
  NotChargedOnLevel:
   	CYBD A 1 A_Print("Nuke charged after 90 seconds from level start")
	Goto FireNukeNotReady
  NukeOveruse:   
	CYBD A 1 A_Print("5 Nukes already used in this level")
	Goto FireNukeNotReady
  FireNukeNotReady:
	CYBD A 0 A_JumpIfInventory ("DoKickAnni",1,"CyberAnniOverUse")
	CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket",3,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket",-3,0,-15,11,1,1)
    CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket2",1,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket2",-1,0,-15,11,1,1)
    CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket",-2,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket",2,0,-15,11,1,1)
    CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket2",1,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket2",-1,0,-15,11,1,1)
    CYBD A 25
	CYBD A 0 A_TakeInventory ("PuppetCyberAnni_Counter",8)
	goto Ready
  Fire:
    CYBD A 0 ACS_Execute(3033,0)
    CYBD A 0 A_JumpIfInventory ("DoKickAnni",1,"CyberAnniOverUse")
	CYBD A 0 A_TakeInventory ("Overused",1)
    CYBD A 0 A_JumpIfInventory ("FHeat",19,"Overheat")
    CYBD A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
	CYBD A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")	
	CYBD A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")	
    //CYBD A 0 SetPlayerProperty (0, 1, 0)
    CYBD A 0 A_GiveInventory ("FHeat",9)
    CYBD A 1 A_Jump (0, "CoolFire") //0
	CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket",3,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket",-3,0,-15,11,1,1)
    CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket2",1,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket2",-1,0,-15,11,1,1)
    CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket",-2,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket",2,0,-15,11,1,1)
    CYBD ABC 4 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket2",1,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("PuppetCybRocket2",-1,0,-15,11,1,1)
    CYBD A 25 //12
	CYBD A 0 A_TakeInventory ("PuppetCyberAnni_Counter",8)
    //CYBD A 0 SetPlayerProperty (0, 0, 0)
    Goto Ready
  
  AltFireX:
    CYBD A 0 A_JumpIfInventory ("DoKickAnni",1,"CyberAnniOverUse")
    CYBD ABC 4 bright
	CYBD D 0 A_PlaySoundEx ("weapons/mgren","weapon")
    CYBD D 0 bright A_FireCustomMissile ("MCyberGrenade",3,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("MCyberGrenade",-3,0,-15,11,1,1)
    CYBD ABC 4 bright
	CYBD D 0 A_PlaySoundEx ("weapons/mgren","weapon")
    CYBD D 0 bright A_FireCustomMissile ("MCyberGrenade",1,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("MCyberGrenade",-1,0,-15,11,1,1)
    CYBD ABC 4 bright
	CYBD D 0 A_PlaySoundEx ("weapons/mgren","weapon")
    CYBD D 0 bright A_FireCustomMissile ("MCyberGrenade",-2,0,15,11,1,1)
    CYBD D 5 bright A_FireCustomMissile ("MCyberGrenade",2,0,-15,11,1,1)
    CYBD A 25 //12
	CYBD A 0 A_TakeInventory ("PuppetCyberAnni_Counter",6)
    Goto Ready
  AltFireZ:
        CYBD C 0 A_JumpIfInventory ("DoKickAnni",1,"CyberAnniOverUse")
		CYBD C 0 A_JumpIfInventory("PuppetYamatoLimit",5,"NukeOveruse")
		CYBD C 0 A_JumpIfInventory("Yamato_SecLevelStart",1,"NotChargedOnLevel")
	CYBD C 65 bright A_PlaySound("m_apocalypse_taunt", CHAN_AUTO, 1, 0, ATTN_NONE)
	CYBD C 30 bright A_PlaySound("Weapons/YamatoCharge", CHAN_AUTO, 1, 0, ATTN_NONE)
		CYBD C 0 bright A_FireCustomMissile ("MYamatoFakeFade",1,0,15,11,1,1)
		CYBD C 0 bright A_FireCustomMissile ("MYamatoFaky1",1,0,15,11,1,1)
		CYBD C 0 bright A_FireCustomMissile ("MYamatoFaky2",1,0,15,11,1,1)
		CYBD C 0 bright A_FireCustomMissile ("MYamatoBomb",1,0,15,11,1,1)
		CYBD C 0 A_GiveInventory("PuppetYamatoLimit", 1)
		CYBD C 0 A_TakeInventory("PuppetCyberAnni_Counter",1)
			CYBD C 0 DamageThing (1500)
	CYBD A 100
    Goto Ready
 AltFireY:
    CYBD A 0 A_JumpIfInventory ("DoKickAnni",1,"CyberAnniOverUse")
		CYBD A 1 Bright
	CYBD B 60 bright A_PlaySound("weapons/RailChargePuppet", CHAN_WEAPON, 1, 0, ATTN_NONE)
		CYBD A 6 Bright
	CYBD D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
	CYBD D 3 Bright A_RailAttack(random(50,60), 15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
    CYBD D 6 Bright A_RailAttack(random(50,60), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBD ABC 2 Bright
	CYBD D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
	CYBD D 3 Bright A_RailAttack(random(50,60), 15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
    CYBD D 6 Bright A_RailAttack(random(50,60), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBD ABC 2 Bright
	CYBD D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
	CYBD D 3 Bright A_RailAttack(random(50,60), 15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
    CYBD D 6 Bright A_RailAttack(random(50,60), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
		CYBD ABC 2 Bright
	CYBD D 0 bright A_PlaySound("weapons/RailAttackCyber", CHAN_WEAPON, 1, 0, ATTN_NONE)
	CYBD D 3 Bright A_RailAttack(random(50,60), 15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
    CYBD D 6 Bright A_RailAttack(random(50,60), -15, 1, "red", "white", 0, 0, "PuppetCybRailPuff")
	CYBD A 5
	CYBD A 0 A_TakeInventory ("PuppetCyberAnni_Counter",6)
	Goto Ready
	
  CoolFire:
    CYBD A 0 A_JumpIfInventory ("DoKickAnni",1,"CyberAnniOverUse")
    CYBD ABC 5 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket2",1,0,15,11,1,1)
    CYBD D 6 bright A_FireCustomMissile ("PuppetCybRocket2",-1,0,-15,11,1,1)
    CYBD ABC 5 bright
    CYBD D 0 bright A_FireCustomMissile ("PuppetCybRocket2",0,0,15,11,1,1)
    CYBD D 6 bright A_FireCustomMissile ("PuppetCybRocket2",0,0,-15,11,1,1)
	CYBD A 0 A_TakeInventory ("PuppetCyberAnni_Counter",4)
    //CYBD A 0 SetPlayerProperty (0, 0, 0)
    Goto Ready
nouse:
TNT1 A 4
TNT1 A 4 A_Print("cant use this")

  Altfire:
    CYBD A 1
    TNT1 A 0 A_Takeinventory("nothere",1)
    CYBD A 4 ACS_ExecuteAlways (419,0,45)
    goto Ready
  CyberAnniOverUse:
	CYBD A 1 A_GiveInventory ("OverUsed",1)
	CYBD A 0 A_TakeInventory("XYZALTS",1)
	CYBD A 0 A_TakeInventory("XYZALTX",1)
	CYBD A 0 A_TakeInventory("XYZALTY",1)
	CYBD A 0 A_TakeInventory("XYZALTZ",1)
	Goto Altfire
  Overheat:
    //  CYBD A 0 SetPlayerProperty (0, 1, 0)
    CYBD A 0 A_PlaySoundEx ("cybie/overheat","body")
    CYBD A 28 ACS_ExecuteAlways (408)
    CYBD A 0 A_TakeInventory ("FHeat",5)
    //  CYBD A 0 SetPlayerProperty (0, 0, 0)
    goto ready
  Spawn:
    TNT1 A 0 Thing_Remove (0)
    Stop
  }
}





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

}



actor PuppetCybRocket : PCybRocket //Rocket replaces Rocket
{
 DamageType "CybRLDamage"
 Speed 30
}


ACTOR PuppetCybRocket2
{
   Radius 8
   Height 11
   Speed 12 //18
   Damage 15
   PROJECTILE
   DeathSound "weapons/hrlexp"
   ExplosionDamage 96
   ExplosionRadius 96
   +SeekerMissile
   +ScreenSeeker
   +Rockettrail
   +RANDOMIZE
   +DEHEXPLOSION
   Damagetype "CybRLDamage"
   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 2 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
   }
}




ACTOR PuppetCybRocket3
{
   Radius 8
   Height 11
   Speed 12 //18
   Damage 15
   PROJECTILE
   DeathSound "weapons/hrlexp"
   ExplosionDamage 96
   ExplosionRadius 96
   +SeekerMissile
   +ScreenSeeker
   +Rockettrail
   +RANDOMIZE
   +DEHEXPLOSION
   Damagetype "CybRLDamage"
   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 2 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
   }
}

