//Sentry Bot by Sergeant_Mark_IV
//Sprites by Logan_MTM

ACTOR Sentrybot : SwitchableDecoration
{
	Scale 0.5
	Health 200
	Radius 16
	Height 20
	Mass 1000
	MaxTargetRange 4000
	Speed 3
	FastSpeed 20
	PainChance 60
	painchance "disarm", 255
	Species "Marines"
	Deathsound "Weapons/Lexplosion"
	DamageFactor "CauseSplash", 0.0 DamageFactor "CauseObjectsToSplashSlime", 0.0 DamageFactor "CauseSplashNukage", 0.0 DamageFactor "CauseSplashBlood", 0.0 DamageFactor "CauseSplashLava", 0.0
	DamageFactor "Stealth", 0.0
	DamageFactor "Use", 0.0
	damagefactor "headkick", 0.0
	damagefactor "CrushedBodies", 0.0

	damagefactor "TeleportRemover", 0.0
	damagefactor "GibRemoving", 0.0
	damagefactor "Leg", 0.0
	damagefactor "SSG", 0.0
	damagefactor "Trample", 0.0
	damagefactor "Desintegrate", 0.0
	damagefactor "ExplosiveImpact", 0.5
	damagefactor "Fatality", 0.0
	MONSTER
	+QUICKTORETALIATE
	+LOOKALLAROUND
	+VULNERABLE
	+PUSHABLE
	+SLIDESONWALLS
	+FRIENDLY
	+FLOORCLIP
	-FASTER
	+NOBLOOD
	+MTHRUSPECIES
	+DONTHURTSPECIES 
	+NOBLOCKMONST 
	+USESPECIAL
	-CANNOTPUSH
	-COUNTKILL
	Activation THINGSPEC_Switch
	MaxStepHeight 48
	MaxDropOffHeight 48
	States
 {
 

	Spawn:
		 SENT A 1
		 TNT1 A 0 A_GiveInventory("TargetIsAMarine")//Stops multiple sentries from firing at each other.
		 SENT A 1 A_Look
		 Loop
		 
	ForgetTarget:
		TNT1 A 0 A_ClearTarget
		Goto See		
	
	SeeGuarding:
		TNT1 A 0 A_JumpifHealthlower(100,2)
		TNT1 A 0 A_Jump(256,2)
		EXPL A 0 A_CustomMissile ("Neosmoke2", 45, 0, random (0, 360), 2, random (290, 360))
		TNT1 A 0
		
		TNT1 A 0 A_ClearTarget
		SENT AAAAAAA 1 A_Chase
		Loop
	
	Idle:	
	See:
	TNT1 A 0	
	TNT1 A 0 A_JumpifHealthlower(100,2)
	TNT1 A 0 A_Jump(256,2)
	EXPL A 0 A_CustomMissile ("Neosmoke2", 45, 0, random (0, 360), 2, random (290, 360))
	TNT1 A 0
		
		TNT1 A 0 A_ChangeFlag("NODROPOFF", 0)	
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_JumpIfInventory("botisguarding", 1, "SeeGuarding")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		
		
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		TNT1 A 0 A_Recoil(-1)
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT AA 1 A_Chase
		TNT1 A 0 A_ChangeFlag("FASTER", 0)
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPLayer")//
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT BB 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot6")
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT BB 1 A_Chase
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT CC 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot7")
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT CC 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT DD 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		SENT DD 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_CheckSight("ForgetTarget")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPLayer")//
		TNT1 A 0 A_CheckSight("FollowPLayer")
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		
		SENT AA 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot6")
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfCloser(200, "Waits")
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		
		SENT BB 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfCloser(200, "Waits")
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		
		SENT CC 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot7")
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfCloser(200, "Waits")
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		
		SENT DD 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfCloser(200, "Waits")
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		
		
		TNT1 A 0 A_JumpIfCloser(200, "Waits")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		Goto See
		
		
		
	FollowPlayer:
	TNT1 A 0 A_JumpIfInventory("botisguarding", 1, "SeeGuarding")
	TNT1 A 0 A_JumpifHealthlower(100,2)
	TNT1 A 0 A_Jump(256,2)
	EXPL A 0 A_CustomMissile ("Neosmoke2", 45, 0, random (0, 360), 2, random (290, 360))
	TNT1 A 0
	
	    TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("FASTER", 1)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
	    TNT1 A 0 A_JumpIfCloser(150, "Waits")
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)
		SENT A 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		TNT1 A 0 A_Recoil(-1)
		TNT1 A 0 A_Recoil(-1)
		SENT AA 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		SENT BB 1 A_Chase
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot6")
		TNT1 A 0 A_Recoil(-1)
		SENT BB 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		SENT CC 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot7")
		TNT1 A 0 A_Recoil(-1)
		SENT CC 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		SENT DD 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		TNT1 A 0 A_Recoil(-1)
		SENT DD 1 A_Chase
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		TNT1 A 0 A_Recoil(-1)
		
		SENT AA 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot6")
		SENT BB 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		SENT BB 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot7")
		TNT1 A 0 A_Recoil(-1)
		SENT CC 1 A_Chase
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		TNT1 A 0 A_Recoil(-1)
		SENT CC 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		TNT1 A 0 A_Recoil(-1)
		SENT DD 1 A_Chase
		TNT1 A 0 A_Recoil(-1)
		SENT DD 1 A_Chase
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot6")
		TNT1 A 0 A_Recoil(-1)
		
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 1)
		TNT1 A 0 A_JumpIfTargetInLOS("See")
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		
		
		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		Loop
	
	CheckRangeToWait:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(150, "Waits")
		Goto FollowPLayer
	
	CheckIfPlayerSee:
		TNT1 A 0
		SENT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FastChase
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		////TNT1 A 0 Thing_Hate(94, 0, 0)
		TNT1 A 0 A_JumpIfCloser(1000, 2)
		Goto Pathfind
		TNT1 AAA 0
		Goto FollowPlayer
	
	
	
	Pathfind:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_JumpIFInTargetInventory("IsPLayer", 1, 1)
		Goto FollowPLayer
		//TNT1 A 1 A_Chase("", "")
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		TNT1 A 0 A_ChangeFlag("NOBLOCKMAP", 1)
		TNT1 A 0 A_ChangeFlag("NOCLIP", 1)
		TNT1 A 0 A_ChangeFlag("SOLID", 0)
		TNT1 A 0 A_Noblocking
		TNT1 A 0 A_SpawnItemEx ("SentryPathfinder",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		Stop
	
	BecomeEnemy23:
		SENT A 1
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		Goto FollowPlayer
	
	Waits:	
	TNT1 A 0 A_JumpifHealthlower(100,2)
	TNT1 A 0 A_Jump(256,2)
	EXPL A 0 A_CustomMissile ("Neosmoke2", 45, 0, random (0, 360), 2, random (290, 360))
	TNT1 A 0
	
		SENT A 1
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, 2)
		TNT1 A 0 A_ClearTarget
		Goto See
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		TNT1 A 0 A_ChangeFlag("SOLID", 0)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "BecomeEnemy23")
		TNT1 A 0 A_Jump(32, "Waits2")
		TNT1 A 0 A_Jump(32, "Waits3")
		
		SENT A 4 A_Stop
		SENT A 4 A_Stop
		TNT1 A 0 A_Stop
		TNT1 A 0 A_CheckSight("FollowPlayer")
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ClearTarget
		
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		SENT A 0 A_Look
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		SENT A 1 A_LookEx(0, 0, 0, 0, 0, "FollowPlayer")
		TNT1 A 0 A_CheckSIght("FollowPlayer")
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		TNT1 A 0 A_JumpIfCloser(200, "Waits")
		Goto FollowPlayer
	
	Waits2:
		TNT1 A 0 A_SetAngle(random(90, -90) + angle)
		SENT A 4 A_Stop
		TNT1 A 0 //A_PlaySound("MRNWT", 2)
		SENT A 4 A_Stop
		TNT1 A 0 A_CheckSight("FollowPlayer")
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ClearTarget
		
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		SENT A 0 A_Look
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		SENT A 1 A_LookEx(0, 0, 0, 0, 0, "FollowPlayer")
		TNT1 A 0 A_CheckSIght("FollowPlayer")
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		TNT1 A 0 A_JumpIfCloser(300, "Waits")
		Goto FollowPLayer
	
	Waits3:
		TNT1 A 0
		//TNT1 A 0 A_JumpIfInTargetInventory("Clip2", 40, 3)
		//Goto GiveAmmo
		TNT1 AAA 0
		TNT1 A 0 A_SetAngle(random(90, -90) + angle)
		SENT A 4 A_Stop
		TNT1 A 0 //A_PlaySound("MRNWC", 2)
		SENT A 4 A_Stop
		TNT1 A 0 A_CheckSight("FollowPlayer")
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ClearTarget
		
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		SENT A 0 A_Look
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		SENT A 1 A_LookEx(0, 0, 0, 0, 0, "FollowPlayer")
		TNT1 A 0 A_CheckSIght("FollowPlayer")
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		TNT1 A 0 A_JumpIfCloser(300, "Waits")
		Goto FollowPLayer
		
	//Disabled
	GiveAmmo:
		TNT1 A 0
		MR7S A 10 A_FaceTarget
		TNT1 A 0 //A_PlaySound("MRNGI1")
		MR8S CD 15
		TNT1 A 0 A_GiveToTarget("Clip2", 50)
		//TNT1 A 0 A_SpawnItemEx("Stimpack", 40, 0)
		Goto Waits	

	Missile:
        TNT1 A 0
		
	TNT1 A 0 A_JumpifHealthlower(100,2)
	TNT1 A 0 A_Jump(256,2)
	EXPL A 0 A_CustomMissile ("Neosmoke2", 45, 0, random (0, 360), 2, random (290, 360))
	TNT1 A 0
		
        TNT1 A 0 A_ChangeFlag("NODROPOFF", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat") // Brutal Doom-friendly realistic AI.
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")//...
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")//...
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")//...
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")////Never remove this one!
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "CheckRangeToWait")
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		TNT1 A 0 A_ChangeFlag("SOLID", 1)
		TNT1 A 0 A_JumpIfCloser(300, "Retreat")//Retreats if too close
		
	
		SENT E 30  A_FaceTarget
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "CheckRangeToWait")
		
	ActualFireState:
		TNT1 A 0 A_PlaySound("SentryBotSee", 3)
		NULL A 0 A_CustomMissile("SentryBotPlasmaball",16,4,0,0)
		SENT E 2 A_CustomMissile("SentryBotPlasmaball",16,-4,0,0)
		TNT1 A 0 A_PlaySound("PLSSHOT")
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,-6)
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,6)
		SENT E 10 A_FaceTarget
		NULL A 0 A_CustomMissile("SentryBotPlasmaball",16,4,0,0)
		SENT E 2 A_CustomMissile("SentryBotPlasmaball",16,-4,0,0)
		TNT1 A 0 A_PlaySound("PLSSHOT")
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,-6)
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,6)
		
		SENT E 10 A_FaceTarget
		NULL A 0 A_CustomMissile("SentryBotPlasmaball",16,4,0,0)
		SENT E 2 A_CustomMissile("SentryBotPlasmaball",16,-4,0,0)
		TNT1 A 0 A_PlaySound("PLSSHOT")
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,-6)
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,6)
		SENT E 10 A_FaceTarget
		NULL A 0 A_CustomMissile("SentryBotPlasmaball",16,4,0,0)
		SENT E 2 A_CustomMissile("SentryBotPlasmaball",16,-4,0,0)
		TNT1 A 0 A_PlaySound("PLSSHOT")
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,-6)
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,6)
		SENT E 10 A_FaceTarget
		NULL A 0 A_CustomMissile("SentryBotPlasmaball",16,4,0,0)
		SENT E 2 A_CustomMissile("SentryBotPlasmaball",16,-4,0,0)
		TNT1 A 0 A_PlaySound("PLSSHOT")
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,-6)
		TNT1 AAAA 0 A_CustomMissile("FriendBotMuzzleBlue",16,6)
		SENT E 20 A_FaceTarget
		TNT1 A 0 a_jump(70, "retreat")
		Goto See
 
	CheckRetreat:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(300, "Retreat")
		Goto ActualFireState
	
	Retreat:
		TNT1 A 0
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		SENT A 2 A_Recoil(4)
		TNT1 A 0 A_FaceTarget
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot6")
		SENT B 2 A_Recoil(4)
		TNT1 A 0 A_FaceTarget
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot7")
		SENT C 2 A_Recoil(4)
		TNT1 A 0 A_FaceTarget
		NULL A 0 A_PlaySoundEx("Monsters/Sentry/Walking","SoundSlot5")
		SENT D 2 A_Recoil(4)
		TNT1 A 0 A_FaceTarget
		Goto ActualFireState
		

	Pain:
		SENT A 2
		TNT1 A 0 A_PlaySound("SentryBotPain")
		SENT A 2 A_Pain
		Goto See + 1
  	
	Active:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("OrderTitle2", 10, 0, 0, 2, 90)
		TNT1 A 0 A_PlaySound("SentrybotORderStay", 3)
		TNT1 A 0 a_giveinventory("botisguarding",1)
		TNT1 A 0 a_setspeed(0)
		SENT A 10 A_FaceTarget
		goto see
		
	Inactive:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("OrderTitle1", 10, 0, 0, 2, 90)
		TNT1 A 0 A_PlaySound("SentrybotORderFollow", 3)
		TNT1 A 0 a_takeinventory("botisguarding",1)
		TNT1 A 0 a_setspeed(3)
		SENT A 10 A_FaceTarget
		goto see
	
	Death:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("USESPECIAL", 0) //Always add this line on every death animation, to prevent the player from resurrecting the actor by pressing use.
		TNT1 A 0 A_PlaySound("SentrybotDeath", 3)
		TNT1 A 0 A_SpawnItemEx("RemoveSentrybot",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		SENT HHHHH 6 A_SpawnItemEx("SentryBotExplode", random (-15, 15), random (-15, 15), random (0, 15))
		SENT I 4 A_NoBlocking
		SENT JKLM 4
		SENT M -1
		Stop
		
	Pain.disarm:
	TNT1 A 0
	SENT A 1 GIVEBODY(200)
	goto forgettarget
 }
}


ACTOR SentryBotExplode
{
	+CLIENTSIDEONLY
	PROJECTILE
	+MISSILE
	Scale 0.5
	+THRUACTORS
	+NOGRAVITY
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("weapons/rocklx")
		MISL B 8 Bright
		MISL C 6 Bright
		MISL D 4 Bright
		Stop
	}
}


ACTOR SentryPathfinder
{
	Radius 32
	Height 56
	Speed 20
	Health 4000
	PainChance 255
	MaxTargetRange 150
	Monster
	damagefactor "SpawnMarine", 99999.0
	MaxDropOffHeight 1200
	MaxStepHeight 1200
	-COUNTKILL
	+NOTARGET
	+THRUACTORS
	+MISSILEMORE
	+MISSILEEVENMORE
	+FASTER
    +DONTSPLASH
	+SHOOTABLE
	-FRIENDLY
	+NOCLIP
	+LOOKALLAROUND
	+NOINFIGHTING
	States
	{
	Spawn:
	Pain:
    See:
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		//TNT1 A 0 Thing_ChangeTID(0,98)
		//TNT1 A 0 Thing_Hate(98, 0, 0)
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("TargetIsAMarine", 1)
		TNT1 AAAAA 1 A_Chase
		//TNT1 A 0 Thing_Hate(98, 0, 0)
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("TargetIsAMarine", 1)
		TNT1 A 0 A_FaceTarget
		Loop
	//Missile:
	TNT1 A 2
	TNT1 A 0 A_SpawnItem("MarineSpawnChecker")	
	TNT1 A 5
	Goto See
	Death:
	Missile:
	    TNT1 A 0
		TNT1 A 1 A_FaceTarget
	    TNT1 A 0 A_Recoil(-6)
		TNT1 A 4
		TNT1 A 0 A_Scream
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_SpawnItemEx("SentryBot",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItem("TeleportFog")
		Stop
	}
}


ACTOR Sentrybotadd: Marine1Pathfinder
{
	Speed 4
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_GiveInventory("TargetIsAMarine", 1)
	Goto See
	Pain:
    See:
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 Thing_ChangeTID(0,98)
		TNT1 AAAAAAAAAAAAAAAAA 1 A_Chase
		TNT1 A 0 A_Recoil(-5)
		TNT1 A 1 A_FaceTarget
		Loop
	Death:
	Missile:
		TNT1 A 1
		TNT1 A 0 A_Scream
		TNT1 A 0 A_NoBlocking
		TNT1 A 200
		TNT1 A 0 A_GiveToTarget("NumberOfSentrybots", 1)
		Stop
	}
}

ACTOR RemoveSentryBot
{
	States
	{
	Spawn:
	Pain:
    See:
		TNT1 A 1
		TNT1 A 0 A_SpawnItemEx("RemoveSentryBotActivate",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 1
		Stop
	}
}

ACTOR RemoveSentrybotActivate: Marine1Pathfinder
{
-FRIENDLY
-SHOOTABLE
Scale 1.0
Speed 1
MaxTargetRange 90000
	States
	{
	Spawn:
	Pain:
    See:
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 Thing_ChangeTID(0,98)
		TNT1 AAAAAAAAAAAAAAAAA 1 A_Chase
		TNT1 A 0 A_Recoil(-5)
		TNT1 A 1 A_FaceTarget
		Loop
	Missile:
		TNT1 A 1
		TNT1 A 0 A_TakeFromTarget("NumberOfSentrybots", 1)
		TNT1 A 0 A_Scream
		TNT1 A 0 A_NoBlocking
		TNT1 A 1
		Stop
}}

ACTOR SentryBotPlasmaball : PlasmaBallAlly
{
	Radius 13
	Height 8
	Speed 25
	Damage (random(6, 6))
	+RANDOMIZE
	+THRUSPECIES
	+MTHRUSPECIES
	Species "Marines"
	Obituary "$OB_MPPLASMARIFLE"
	States
	{
		Fly:
		TNT1 A 0
		TNT1 AAAA 1  A_SpawnItem("BlueFlareSmaller")
		TNT1 A 1  thrustthingz(0,4,1,1)
		Loop
	}
}

ACTOR botisguarding : Inventory {Inventory.MaxAmount 1}