
Actor SentryDebris1
{
PROJECTILE
+BOUNCEONACTORS
+DOOMBOUNCE
-NOGRAVITY
+NOTARGET
height 4
radius 4
states
{
Spawn:
SDEB A 70
Looper:
SDEB A 3 A_FadeOut(0.05)
loop
}}

Actor SentryDebris2
{
PROJECTILE
+BOUNCEONACTORS
-NOGRAVITY
+DOOMBOUNCE
+NOTARGET
height 4
radius 4
states
{
Spawn:
SDEB B 70
Looper:
SDEB B 3 A_FadeOut(0.05)
loop
}}

Actor SentryDebris3
{
PROJECTILE
+BOUNCEONACTORS
-NOGRAVITY
+NOTARGET
+DOOMBOUNCE
height 4
radius 4
states
{
Spawn:
SDEB C 70
Looper:
SDEB C 3 A_FadeOut(0.05)
loop
}}

Actor SentryDebris4
{
PROJECTILE
+BOUNCEONACTORS
+NOTARGET
-NOGRAVITY
+DOOMBOUNCE
height 4
radius 4
states
{
Spawn:
SDEB D 70
Looper:
SDEB D 3 A_FadeOut(0.05)
loop
}}

Actor SentryPlace
{
+NOINTERACTION
+NOCLIP
+NOTARGET
+NOGRAVITY
+NODAMAGE
Renderstyle Translucent
alpha 0.5
height 48
radius 24
states
{
Spawn:
SENT A -1
stop
}}

Actor SentryGun
{
+SOLID
+NOTARGET
-NOGRAVITY
+SHOOTABLE
+ISMONSTER
+STANDSTILL
health 500
deathsound "weapons/rocklx"

height 48
Radius 24

states
{
Spawn:
SENT ABCDEFGHI 2
LOOPER:
SENT JKLMNOPQRSTUVWXYZ 2 A_LookEx(LOF_NOSOUNDCHECK, 16, 512.0, 0, 40, "See") 
SEN2 ABCDEFGHIJKLMNOPQRSTUVWX 2 A_LookEx(LOF_NOSOUNDCHECK, 16, 512.0, 0, 40, "See")
loop
see:
SEN2 Y 0
SEN2 Y 0 A_JumpIf(tidtohate == 0, "Spawn")
SEN2 YZ 1
SEN3 ABCDEFGHI 1
firing:
SEN3 JK 1 A_FaceTarget
SEN3 K 1 A_PlaySound("weapons\gatling", 127)
SEN3 L 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 L 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 MNO 1 A_FaceTarget
SEN3 P 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 P 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 QRS 1 A_FaceTarget
SEN3 T 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 T 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 UVW 1 A_FaceTarget
SEN3 X 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 X 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 YZ 1 A_FaceTarget
SEN3 JK 1 A_FaceTarget
SEN3 L 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 L 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 MNO 1 A_FaceTarget
SEN3 P 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 P 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 QRS 1 A_FaceTarget
SEN3 T 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 T 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 UVW 1 A_FaceTarget
SEN3 X 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 X 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 YZ 1 A_FaceTarget
SEN3 JK 1 A_FaceTarget
SEN3 L 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 L 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 MNO 1 A_FaceTarget
SEN3 P 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 P 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 QRS 1 A_FaceTarget
SEN3 T 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 T 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 UVW 1 A_FaceTarget
SEN3 X 0 A_SpawnItemEx("SentryGunBullets", 0, 0, 32, 0, 0, 0, 0, 0, 0)
SEN3 X 1 A_CustomBulletAttack(0, 0, 2, 2, "BulletPuff", 800)
SEN3 YZ 1 A_FaceTarget
SEN4 ABCDEFGHIJK 3
SEN4 L 200 
Death:
TNT2 A 0 A_Scream
TNT2 A 0 A_Explode(64, 128, 1, 0)
TNT2 A 0 A_SpawnItemEx("Explosion_Spawner_L", 0, 0, 0, 0, 0, 0, 0, 0, 0)
TNT2 A 0 A_SpawnItemEx("SentryDebris1", 0, 0, 0, Random(-2, 2), 0, Random(4, 12), 0, 0, 0)
TNT2 A 0 A_SpawnItemEx("SentryDebris2", 0, 0, 0, Random(-2, 2), 0, Random(4, 12), 180, 0, 0)
TNT2 A 0 A_SpawnItemEx("SentryDebris3", 0, 0, 0, Random(-2, 2), 0, Random(4, 12), 0, 0, 0)
TNT2 A 1 A_SpawnItemEx("SentryDebris4", 0, 0, 0, Random(-2, 2), 0, Random(4, 12), 180, 0, 0)
stop
}}

Actor SentryGunBullets
{
+NOGRAVITY
+NOINTERACTION
renderstyle Add
alpha 0.8
states
{
Spawn:
SBUL ABCDE 3
stop
}}

Actor GirderBlockCheck
{
+SOLID
-TELESTOMP
-FIXMAPTHINGPOS
+NOGRAVITY
+DONTSPLASH
+NOTARGET
-WINDTHRUST
height 16
radius 16
states
{
Spawn:
TNT1 A 35
Death:
TNT1 A 1
TNT1 A 1
stop
}}

Actor BlockerNotBridge
{
-SOLID
+NOCLIP
+INVULNERABLE
+SHOOTABLE
+NOGRAVITY
-WINDTHRUST
-NONSHOOTABLE
-COUNTKILL
-WINDTHRUST
+CANPASS
+NOTARGET
-FIXMAPTHINGPOS
+ISMONSTER
+DONTSPLASH
+NOBLOOD
mass 0x7FFFFFFF
States
{
Spawn:
TNT1 A -1
stop
Death:
TNT1 A 1 
TNT1 A 1 A_NoBlocking
TNT1 A 1 A_Die
stop
}}


Actor Blocker
{
+SOLID
+INVULNERABLE
+SHOOTABLE
+NOTARGET
+NOGRAVITY
+ACTLIKEBRIDGE
-WINDTHRUST
-NONSHOOTABLE
-COUNTKILL
+NOBLOOD
+ISMONSTER
+DONTSPLASH
mass 0x7FFFFFFF
States
{
Spawn:
TNT1 A -1
stop
Death:
TNT1 A 1 A_NoBlocking
TNT1 A 1 A_Die
stop
}}

Actor 2Blocker : Blocker
{
radius 2
height 2
health 1
}

Actor 4Blocker : Blocker
{
radius 4
height 4
health 1
}

Actor 8Blocker : Blocker
{
radius 8
height 8
health 1
}

Actor 8Blocker2 : BlockerNotBridge
{
radius 8
height 8
health 1
}

Actor 16Blocker : Blocker
{
radius 8
height 8
health 1
}

Actor BarrierBlocker : Blocker
{
Radius 8
Height 128
health 5
alpha 0.5
+SHOOTABLE
-NOBLOCKMAP
-ACTLIKEBRIDGE
-ISMONSTER
+REFLECTIVE
+DEFLECT
+NOTARGET
+NODAMAGE
States
{
Spawn:
TNT2 A 0
TNT2 A 1 Thing_ChangeTID(0, 1200)
THT2 A -1
stop
Dim:
TNT2 A 0
TNT2 A 0 A_FadeOut(0.1)
goto Spawn
}}

Actor GirderHorizontal 18401
{
+ISMONSTER
-COUNTKILL
-SOLID
-NONSHOOTABLE
+SHOOTABLE
+NOGRAVITY
+DONTFALL
+NOTARGET
+NOLIFTDROP
-CANBLAST
+NOTARGET
+NOBLOOD
-WINDTHRUST
+NOCLIP
mass 0x7FFFFFFF
health 20
radius 8
height 8
States
{
Spawn:
GRDH A 0
GRDH A 0 A_SpawnItemEx("8Blocker", 16, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 8, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", -8, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", -16, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 16, 0, 4, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 8, 0, 4, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", -8, 0, 4, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", -16, 0, 4, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 1
GRDH A -1
stop
Death:
GRDH A 0
GRDH A 1 A_RemoveChildren(1)
GRDH A 1 A_Burst("GirderBit")
stop
}}

Actor GirderVertical 18402
{
+ISMONSTER
-NONSHOOTABLE
-COUNTKILL
-SOLID
+SHOOTABLE
+NOGRAVITY
+DONTFALL
+NOLIFTDROP
-CANBLAST
+NOTARGET
+NOBLOOD
+NOCLIP
-WINDTHRUST
mass 0x7FFFFFFF
health 20
radius 8
height 8
States
{
Spawn:
GRDV A 0
GRDH A 0 A_SpawnItemEx("8Blocker", 0, 0, 16, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION, 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 0, 0, 8, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 0, 0, -8, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 0, 0, -16, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 4, 0, 16, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 4, 0, 8, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 4, 0, -8, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDH A 0 A_SpawnItemEx("8Blocker", 4, 0, -16, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)GRDV A -1
stop
Death:
GRDH A 0
GRDH A 1 A_RemoveChildren(1)
GRDH A 0 A_SpawnItemEx("GirderBit", Random(-8, 8), Random(-8, 8), Random(-4, 4), Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(0, 360), SXF_CLIENTSIDE, 0)
GRDH A 0 A_SpawnItemEx("GirderBit", Random(-8, 8), Random(-8, 8), Random(-4, 4), Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(0, 360), SXF_CLIENTSIDE, 0)
GRDH A 1 A_SpawnItemEx("GirderBit", Random(-8, 8), Random(-8, 8), Random(-4, 4), Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(0, 360), SXF_CLIENTSIDE, 0)
stop
}}

Actor GirderDiagonal 18403
{
+ISMONSTER
-COUNTKILL
-SOLID
+SHOOTABLE
-NONSHOOTABLE
+NOGRAVITY
+DONTFALL
+NOLIFTDROP
-CANBLAST
+NOTARGET
+NOBLOOD
+NOCLIP
-WINDTHRUST
mass 0x7FFFFFFF
health 20
radius 8
height 8
States
{
Spawn:
GRDD A 0
GRDD A 1 A_SpawnItemEx("4Blocker", 16, 0, -16, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", 12, 0, -12, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", 8, 0, -8, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", 4, 0, -4, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", -4, 0, 4, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", -8, 0, 8, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", -12, 0, 12, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A 1 A_SpawnItemEx("4Blocker", -16, 0, 16, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION , 0)
GRDD A -1
stop
Death:
GRDH A 0
GRDH A 1 A_RemoveChildren(1)
GRDH A 0 A_SpawnItemEx("GirderBit", Random(-8, 8), Random(-8, 8), Random(-4, 4), Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(0, 360), SXF_CLIENTSIDE, 0)
GRDH A 0 A_SpawnItemEx("GirderBit", Random(-8, 8), Random(-8, 8), Random(-4, 4), Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(0, 360), SXF_CLIENTSIDE, 0)
GRDH A 1 A_SpawnItemEx("GirderBit", Random(-8, 8), Random(-8, 8), Random(-4, 4), Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(0, 360), SXF_CLIENTSIDE, 0)
stop
}}

Actor GHPlace : GirderHorizontal
{
-SOLID
+NODAMAGE
+NOCLIP
+NOTARGET
Renderstyle Translucent
alpha 0.5
States
{
Spawn:
GRDH A -1
stop
}}

Actor GVPlace : GirderVertical
{
-SOLID
+NOCLIP
+NODAMAGE
Renderstyle Translucent
alpha 0.5
States
{
Spawn:
GRDV A -1
stop
}}

Actor GDPlace : GirderDiagonal
{
-SOLID
+NOCLIP
+NODAMAGE
Renderstyle Translucent
alpha 0.5
States
{
Spawn:
GRDD A -1
stop
}}

Actor BarrierPlace
{
+NODAMAGE
-SOLID
+NOINTERACTION
+NOGRAVITY
+NOTARGET
Renderstyle Translucent
alpha 0.5
height 64
radius 8
States
{
Spawn:
BRRX A -1
stop
}}

Actor BarrierBars
{
+NODAMAGE
-SOLID
-WINDTHRUST
+NOTARGET
+CANPASS
height 64
radius 8
States
{
Spawn:
BRXX A 0
BRXX A 0 A_SpawnItemEx("BarrierShield", 0, 0, 0, 0, 0, 0, 0, 0, 0)
BRXX A 0 A_SpawnItemEx("BarrierShield", 2, 0, 0, 0, 0, 0, 180, 0, 0)
BRXX A 0 A_SpawnItemEx("BarrierBlocker", 0, -16, 0, 0, 0, 0, 0, 0, 0)
BRXX A 0 A_SpawnItemEx("BarrierBlocker", 0, 16, 0, 0, 0, 0, 0, 0, 0)
BRXX A 1 A_SpawnItemEx("BarrierBlocker", 0, 0, 0, 0, 0, 0, 0, 0, 0)
BRRX A -1
stop
}}

Actor BarrierShield
{
+NODAMAGE
+SOLID
+REFLECTIVE
+DEFLECT
-WINDTHRUST
+NOTARGET
+CANPASS
Renderstyle Add
health 5
alpha 0.8
height 128
radius 8
States
{
Spawn:
BRXX B 0
BRXX B 1 Thing_ChangeTID(0, 1200)
BRRX B -1
stop
Dim:
BRXX B 1 A_FadeOut(0.1)
goto Spawn
}}

Actor GirderBit
{
PROJECTILE
-NOGRAVITY
+RIPPER
+DOOMBOUNCE
+DONTSPLASH
+NOINTERACTION
+CLIENTSIDEONLY
damage 0
bouncecount 3
scale 0.3
gravity 1.5
height 4
radius 4
reactiontime 20
states
{
Spawn:
GBRK A 0
GBRK A 0 A_Jump(255, "one", "two", "three", "four")
One:
GBRK A 8 A_Countdown
loop
Two:
GBRK B 8 A_Countdown
loop
Three:
GBRK C 8 A_Countdown
loop
Four:
GBRK D 8 A_Countdown
loop
Death:
stop
}}