Actor AutoTurret : CustomInventory replaces bfg9000
{
  Radius 4
  Height 18
  +INVENTORY.INVBAR
  +INVENTORY.PERSISTENTPOWER
  Inventory.InterHubAmount 5
  Inventory.MaxAmount 5
  Inventory.Icon "SNTIA0"
  Inventory.PickupSound "misc/w_pkup"
  Inventory.PickupMessage "You picked up an auto turret."
  scale 0.5
  States
  {
  Spawn:
    SNTP A -1
    Stop
  Use:
    TNT1 A 1 A_SpawnItemEx("GogoTurret", 0, 0, 0, 5, 0, 2, 0, 1)
	Stop
  }
}

ACTOR Sentryspawner 
{
   Radius 10
   Height 1
   Speed 5
   -NOGRAVITY
  +NOBLOCKMAP
  +DROPOFF
  +MISSILE
   +SLIDESONWALLS
   scale 0.6
  +bounceonactors 
  +hexenbounce 
   bouncecount 10
   bouncefactor 0.001
   States
   {
   Spawn:
      SENT A 0
      SENT AAAAAAAAAA 1 
      goto death
   Death: 
      SENT A 0
      SENT A 0 A_playsound ("sentdeth")
      SENT A 1  A_SpawnItemEx("GogoTurret", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
      Stop    
   }
}

ACTOR GogoTurret: RandomSpawner
{
  DropItem "TurretOn"
}

actor sentry replaces baronofhell
{
  obituary "%o was cut down by a sentrygun."
  health 100
  radius 10
  height 24
  mass 10000
  speed 0
  painchance 0
  scale 0.6
  deathsound "predhit"
  attacksound "sentfire"
  activesound "sentact"
  damagetype "sentbullets"
  DamageFactor "sentbullets", 0  
  +bounceonactors 
  +doombounce 
  MONSTER
  +MISSILEMORE
  +MISSILEEVENMORE 
  +friendly 
  damage 1
  +FLOORCLIP
  +NOBLOOD
  states
  {
  Spawn:
    SENT A 0 
    SENT A 0 A_loopactivesound        
    SENT A 0 A_giveinventory("issentry",1)
    SENT A 0 A_changeflag("friendly",0)
    SENT AAAAAAAAAAA 1 A_look  
    SENT A 0 A_changeflag("friendly",1)    
    SENT BBBBBBBBBBB 1 A_look   
    SENT A 0 A_changeflag("friendly",0)    
    SENT CCCCCCCCCCC 1 A_look  
    SENT A 0 A_changeflag("friendly",1)    
    SENT DDDDDDDDDDD 1 A_look  
    loop
  See:
    SENT A 0 A_loopactivesound  
    SENT A 0 A_changeflag("friendly",0)
    SENT AAAAAAAAAAA 1 A_chase   
    SENT A 0 A_changeflag("friendly",1)    
    SENT BBBBBBBBBBB 1 A_chase   
    SENT A 0 A_changeflag("friendly",0)    
    SENT CCCCCCCCCCC 1 A_chase   
    SENT A 0 A_changeflag("friendly",1)    
    SENT DDDDDDDDDDD 1 A_chase   
    loop
  Missile:
    SENT A 0 A_stopsound
    SENT A 0 A_jumpifintargetinventory("issentry",1,"spawn")
    SENT F 0 A_jumpifinventory("clip1",200,"shutdown") 
    SENT F 0 A_GiveInventory("clip1",1)      
    SENT F 2 bright A_BulletAttack 
    SENT F 0 A_jumpifinventory("clip1",200,"shutdown")     
    SENT F 0 A_GiveInventory("clip1",1)           
    SENT G 2 bright A_BulletAttack
    SENT F 0 A_jumpifinventory("clip1",200,"shutdown")     
    SENT G 0 A_spidrefire
    goto missile+1
  shutdown:
    SENT A 0 A_stopsound  
    SENT A 0 A_playsound("sentdown")
    SENT A -1
    stop
  Death:
    SENT A 0 bright A_stopsound 
    SENT H 8 bright A_Scream 
    SENT I 8 bright A_Noblocking 
    SENT J 8
    stop
  }
}

actor TurretOn
{
  obituary "%o was cut down by a sentrygun."
  health 100
  radius 10
  height 24
  mass 10000
  speed 0
  painchance 0
  scale 0.6
  deathsound "predhit"
  attacksound "sentfire"
  activesound "sentact"
  damagetype "sentbullets"
  DamageFactor "sentbullets", 0  
  +bounceonactors 
  +doombounce 
  MONSTER
  +MISSILEMORE
  +MISSILEEVENMORE 
  +friendly 
  damage 1
  +FLOORCLIP
  +NOBLOOD
 states
  {
  Spawn:
    SENT A 0
    SENT A 0 A_changeflag("friendly",1)       
    SENT A 0 A_loopactivesound    
    SENT A 0 A_giveinventory("issentry",1)
    SENT AAAAAAAAAAA 1 A_look     
    SENT BBBBBBBBBBB 1 A_look       
    SENT CCCCCCCCCCC 1 A_look     
    SENT DDDDDDDDDDD 1 A_look  
    loop
  See:
    SENT A 0 A_loopactivesound 
    SENT A 0 A_changeflag("friendly",1)     
    SENT AAAAAAAAAAA 1 A_chase       
    SENT BBBBBBBBBBB 1 A_chase      
    SENT CCCCCCCCCCC 1 A_chase     
    SENT DDDDDDDDDDD 1 A_chase   
    loop
   Missile:
    SENT A 0 A_stopsound
    SENT A 0 A_jumpifintargetinventory("issentry",1,"spawn")
    SENT F 0 A_jumpifinventory("clip1",200,"shutdown") 
    SENT F 0 A_GiveInventory("clip1",1)      
    SENT F 2 bright A_BulletAttack 
    SENT F 0 A_jumpifinventory("clip1",200,"shutdown")     
    SENT F 0 A_GiveInventory("clip1",1)           
    SENT G 2 bright A_BulletAttack
    SENT F 0 A_jumpifinventory("clip1",200,"shutdown")     
    SENT G 0 A_spidrefire
    goto missile+1
  shutdown:
    SENT A 0 A_stopsound  
    SENT A 0 A_playsound("sentdown")
    SENT A -1
    stop
  Death:
    SENT A 0 bright A_stopsound 
    SENT H 8 bright A_Scream 
    SENT I 8 bright A_Noblocking 
    SENT J 8
    stop
  }
}

actor clip1 : ammo
{
  inventory.maxamount 200
}

actor issentry : Inventory
{
  inventory.maxamount 1
}

ACTOR defunctsentry 11111
{ 
   health 100
  radius 10
  height 24
  mass 10000
  speed 0
  painchance 0
  scale 0.6
  deathsound "sentdeth"  
  +shootable
  +solid
  +NOBLOOD
    states
    {
  spawn:
    SENT A -1
    stop
  Death:
    SENT H 8 bright A_Scream 
    SENT I 8 bright A_Noblocking 
    SENT J 8
    stop
  }
}    