//---------It's Hexen's analog of Serpent----------//
//--------Base code - Hexen's Serpent------//
ACTOR SewerBug 30052
{
	Health 120
	Speed 5
	Radius 20
	Height 35
	Mass 0x7fffffff
	Monster
	+FORCEPAIN
	+NOTARGET
	-SHOOTABLE
	//-SOLID
	+NOBLOOD
	+CANTLEAVEFLOORPIC +NONSHOOTABLE
    +NOTELEOTHER
	+NOTELEPORT
	SeeSound "SewerBug/Allert"
	AttackSound "SewerBug/Attack"
	PainSound "SewerBug/Pain"
	DeathSound "SewerBug/Die"
	
	States
	{
	Spawn:
	    TNT1 A 1
	    TNT1 A 1 ACS_ExecuteAlways(908) 
		TNT1 A 1 A_Look
		Loop
	Idle:
	    TNT1 A 1 A_Look
		Loop
	See:
		TNT1 AAAA 1 A_Chase("Melee", "None", CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 A 1 A_Jump(5, "SeeTarget")
		Loop
	Melee:
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_ChangeFlag("NONSHOOTABLE", False)
		SEW2 ABC 4 A_FaceTarget 
		SEW2 DEF 4 A_FaceTarget
		SEW2 G 3 A_CustomMeleeAttack(20)
		SEW2 FED 4 A_FaceTarget
		SEW2 CBA 4 A_FaceTarget
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag("NONSHOOTABLE", True)
		TNT1 AAAA 4 A_Wander
		TNT1 A 0 A_ClearTarget
		Goto See
	Death:
	    TNT1 A 0 A_JumpIfInventory("MonsterLooking", 1, "UpDeath")
		SEW2 H 5 A_Scream
		TNT1 A 0 A_NoBlocking
		SEW2 IJKL 5
		SEW2 M -1
		Stop
		UpDeath:
		SEW1 P 5 A_Scream
		TNT1 A 0 A_NoBlocking
		SEW1 QRS 5
        SEW2 HIJKL 5
		SEW2 M -1
		Stop
	SeeTarget:
	    SEW1 ABCDE 4 
		TNT1 A 0 A_GiveInventory("MonsterLooking", 1)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_ChangeFlag("NONSHOOTABLE", False)
		SEW1 FFFGHIJKLMNO 4
		TNT1 A 0 A_TakeInventory("MonsterLooking", 1)
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag("NONSHOOTABLE", True)
		SEW1 PQRS 4
		Goto See
	DeathUpper:
	    SEW1 P 5 A_Scream
		SEW1 QRS 5
        SEW2 HIJKL 5
		SEW2 M -1
		Stop
	}
}
//--------For special death animations----------//
Actor MonsterLooking : inventory { Inventory.Amount 1 }
//--------------------------------------------//


Actor SewerBugDoomSpawner
{
  States
  {
    Spawn:
	   TNT1 A 1
	   TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(909,0,0,0) == 1, "IsWater")
	   TNT1 A 1 A_Jump(256, "Spawn1", "Spawn2", "Spawn3")
	   Loop
	   Spawn1:
	   TNT1 A 0 A_SpawnItemEx("EmpireOfficer", 0, 0, floorz-z, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   Stop
	   Spawn2:
	   TNT1 A 0 A_SpawnItemEx("EmpireCommando", 0, 0, floorz-z, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   Stop
	   Spawn3:
	   TNT1 A 0 A_SpawnItemEx("EmpireInfantryman", 0, 0, floorz-z, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   Stop
	IsWater:
	   TNT1 A 0 A_SpawnItemEx("SewerBug", 0, 0, floorz-z, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   Stop
	   }
}
	   