ACTOR SmoothZombieman : Zombieman
{
	states
	{
	Spawn:
		PSSS AB 10 A_Look
		loop
	See:
	    POSS ABCDDCBA 4 A_Chase
		Loop 	
	Missile:
	    TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("CasingToggle")==2, "CaseMissile")
		PSSA A 5 A_FaceTarget
		PSSA B 2 A_FaceTarget
		POSS E 3 A_FaceTarget
		POSS F 3 bright A_PosAttack
		POSS E 3// bright
		PSSA BA 4
		PSSA A 2
		Goto See
	CaseMissile:
	    PSSA A 5 A_FaceTarget
		PSSA B 2 A_FaceTarget
		POSS E 3 A_FaceTarget
		POSS F 3 bright A_PosAttack
		POSS F 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(4,6), random(7,8), random(7,9), 0)
		POSS E 3 //bright
		PSSA BA 4
		PSSA A 2
		Goto See
	Pain:
		stro a 3
		stro b 3 a_pain
		goto see
		
	Death.GibbyHaynes:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("StudioGibbly")==0, "Death")
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(128, "XDeath")
		TNT1 A 0
	Death:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(CallACS("MoDeathToggle")==1, "DeathExtra")
	TNT1 A 0 A_Jump(255, "Death1")
	Goto Death1	
	
	DeathExtra:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "Death1", "Death2", "Death3")
	goto Death1
	
	Death1:
		5OSS A 3 A_Scream
		5OSS B 3 A_NoBlocking
		5OSS CDEFG 2
		5OSS HI 3
		//TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt")
		//TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt")
		5OSS I -1
		Stop
	Death2:
		PSD1 A 2
		PSD1 B 2 A_Scream
		PSD1 C 3 A_NoBlocking
		PSD1 D 2
		PSD1 EFG 2
		PSD1 H 2
		PSD1 IJKLM 2
		//TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt2")
		//TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt2")
		PSD1 N -1
		Stop
	Death3:
		PSD2 a 3
		PSD2 b 2 A_scream
		PSD2 C 2 A_noblocking
		PSD2 def 2
		PSD2 g 3
		PSD2 hi 2
		PSD2 j -1
		stop
		
	XDeath:
		TGIB ab 2
		TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile ("Gibs1", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("Gibs2", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItem("XBlood2", 0, 40)
		TGIB cd 2 A_XScream
		TGIB e 2 a_noblocking
		TGIB f 2
		TGIB ghijklmnop 2
		TGIB q -1
		Stop
	NukeMelt:
		ZMEL abcdefghij 3
		ZMEL klmnopq 3
		stop
	NukeMelt2:
		ZME2 abcde 2
		ZME2 fghijklmnopqrs 3
		stop
	LavaMelt:
		ZLAV abcdefghij 3
		ZLAV klmnopq 3
		stop
	LavaMelt2:
		ZLA2 abcde 2
		ZLA2 fghijklmnopqrs 3
		stop
	Raise:
		POSS K 5
		POSS JIH 5
		Goto See
	}
}

ACTOR ZombieV1 : SmoothZombieMan //Helmet
{
	states
	{
	Spawn:
		ZIV1 AB 10 A_Look
		Loop
	See:
	    ZMV1 ABCDDCBA 4 A_Chase
		Loop 	
	Missile:
	    TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("CasingToggle")==2, "CaseMissile")
		ZSV1 A 5 A_FaceTarget
		ZSV1 B 2 A_FaceTarget
		ZSV1 E 3 A_FaceTarget
		ZSV1 F 3 bright A_PosAttack
		ZSV1 E 3
		ZSV1 BA 4
		ZSV1 A 2
		Goto See
	CaseMissile:
	    ZSV1 A 5 A_FaceTarget
		ZSV1 B 2 A_FaceTarget
		ZSV1 E 3 A_FaceTarget
		ZSV1 F 3 bright A_PosAttack
		ZSV1 F 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(4,6), random(7,8), random(7,9), 0)
		ZSV1 E 3
		ZSV1 BA 4
		ZSV1 A 2
		Goto See
	Pain:
		ZPV1 a 3
		ZPV1 b 3 a_pain
		goto see
	Death.GibbyHaynes:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("StudioGibbly")==0, "Death")
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(128, "XDeath")
		TNT1 A 0
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("MoDeathToggle")==1, "DeathExtra")
		//TNT1 A 0 A_Jump(255, "DeathA")
		Goto Death1	
	DeathExtra:
		TNT1 A 0
		TNT1 A 0 A_Jump(255, "Death1", "Death2", "Death3")
		goto Death1
	Death1:
		Z1V1 A 3 A_Scream
		Z1V1 B 3 A_NoBlocking
		Z1V1 CDEFG 2
		Z1V1 HI 3
		//TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt")
		//TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt")
		Z1V1 I -1
		Stop
	Death2:
		Z2V1 A 2
		Z2V1 B 2 A_Scream
		Z2V1 C 3 A_NoBlocking
		Z2V1 D 3
		Z2V1 EFG 2
		Z2V1 H 2
		Z2V1 IJKLM 2
		Z2V1 N -1
		Stop
	Death3:
		Z4V1 a 3
		Z4V1 b 2 A_scream
		Z4V1 C 2 A_noblocking
		Z4V1 def 2
		Z4V1 g 3
		Z4V1 hi 2
		Z4V1 j -1
		stop
	XDeath:
		Z3V1 ab 2
		TNT1 AAAAAAAAAAAAAAA 0 A_CustomMissile ("Gibs1", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("Gibs2", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItem("XBlood2", 0, 40)
		Z3V1 cd 2 A_XScream
		Z3V1 e 2 a_noblocking
		Z3V1 f 2
		Z3V1 ghijklmnop 2
		Z3V1 q -1
		Stop
	NukeMelt:
		ZMEL abcdefghij 3
		ZMEL klmnopq 3
		stop
	LavaMelt:
		ZLAV abcdefghij 3
		ZLAV klmnopq 3
		stop
	Raise:
		ZSV1 K 5
		ZSV1 JIH 5
		Goto See
	}
}

ACTOR ZombieV2 : SmoothZombieMan //Jaw
{
	states
	{
	Spawn:
		ZIV2 AB 10 A_Look
		Loop
	See:
	    ZMV2 ABCDDCBA 4 A_Chase
		Loop 		
	Missile:
	    TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("CasingToggle")==2, "CaseMissile")
		ZSV2 A 5 A_FaceTarget
		ZSV2 B 2 A_FaceTarget
		ZSV2 E 3 A_FaceTarget
		ZSV2 F 3 bright A_PosAttack
		ZSV2 E 3
		ZSV2 BA 4
		ZSV2 A 2
		Goto See
	CaseMissile:
	    ZSV2 A 5 A_FaceTarget
		ZSV2 B 2 A_FaceTarget
		ZSV2 E 3 A_FaceTarget
		ZSV2 F 3 bright A_PosAttack
		ZSV2 F 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(4,6), random(7,8), random(7,9), 0)
		ZSV2 E 3
		ZSV2 BA 4
		ZSV2 A 2
		Goto See
	Pain:
		ZPV2 a 3
		ZPV2 b 3 a_pain
		goto see
	Death.GibbyHaynes:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("StudioGibbly")==0, "Death")
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(128, "XDeath")
		TNT1 A 0
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("MoDeathToggle")==1, "DeathExtra")
		//TNT1 A 0 A_Jump(255, "DeathA")
		Goto Death1	
	DeathExtra:
		TNT1 A 0
		TNT1 A 0 A_Jump(255, "Death1", "Death2", "Death3")
		goto Death1
	Death1:
		Z1V2 A 3 A_Scream
		Z1V2 B 3 A_NoBlocking
		Z1V2 CDEFG 2
		Z1V2 HI 3
		//TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt")
		//TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt")
		Z1V2 I -1
		Stop
	Death2:
		PSD1 A 2
		PSD1 B 2 A_Scream
		PSD1 C 3 A_NoBlocking
		PSD1 D 3
		PSD1 EFG 2
		PSD1 H 2
		PSD1 IJKLM 2
		//TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt2")
		//TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt2")
		PSD1 N -1
		Stop
	Death3:
		Z2V2 a 3
		Z2V2 b 2 A_scream
		Z2V2 C 2 A_noblocking
		Z2V2 def 2
		Z2V2 g 3
		Z2V2 hi 2
		Z2V2 j -1
		stop	
	XDeath:
		Z2V2 ab 2
		TNT1 AAAAAAAAAAAAAAA 0 A_CustomMissile ("Gibs1", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("Gibs2", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItem("XBlood2", 0, 40)
		Z3V2 cd 2 A_XScream
		Z3V2 e 2 a_noblocking
		Z3V2 f 2
		Z3V2 ghijklmnop 2
		Z3V2 q -1
		Stop
	NukeMelt:
		ZMEL abcdefghij 3
		ZMEL klmnopq 3
		stop
	NukeMelt2:
		ZME2 abcde 2
		ZME2 fghijklmnopqrs 3
		stop
	LavaMelt:
		ZLAV abcdefghij 3
		ZLAV klmnopq 3
		stop
	LavaMelt2:
		ZLA2 abcde 2
		ZLA2 fghijklmnopqrs 3
		stop
	Raise:
		ZSV2 K 5
		ZSV2 JIH 5
		Goto See
	}
}

ACTOR Zombiev3 : SmoothZombieMan //Head
{
	states
	{
	Spawn:
		ZIv3 A 10 A_Look
		Loop
	See:
	    ZMV3 ABCDDCBA 4 A_Chase
		Loop 	
	Missile:
	    TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("CasingToggle")==2, "CaseMissile")
		ZSv3 A 5 A_FaceTarget
		ZSv3 B 2 A_FaceTarget
		ZSv3 E 3 A_FaceTarget
		ZSv3 F 3 bright A_PosAttack
		ZSv3 E 3
		ZSv3 BA 4
		ZSv3 A 2
		Goto See
	CaseMissile:
	    ZSv3 A 5 A_FaceTarget
		ZSv3 B 2 A_FaceTarget
		ZSv3 E 3 A_FaceTarget
		ZSv3 F 3 bright A_PosAttack
		ZSv3 F 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(4,6), random(7,8), random(7,9), 0)
		ZSv3 E 3
		ZSv3 BA 4
		ZSv3 A 2
		Goto See
	Pain:
		ZPv3 a 3
		ZPv3 b 3 a_pain
		goto see
	Death.GibbyHaynes:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("StudioGibbly")==0, "Death")
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(128, "XDeath")
		TNT1 A 0
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(CallACS("MoDeathToggle")==1, "DeathExtra")
		//TNT1 A 0 A_Jump(255, "DeathA")
		Goto Death1	
	DeathExtra:
		TNT1 A 0
		TNT1 A 0 A_Jump(255, "Death1", "Death2", "Death3")
		goto Death1
	Death1:
		Z1v3 A 3 A_Scream
		Z1v3 B 3 A_NoBlocking
		Z1v3 CDEFG 2
		Z1v3 HI 3
		//TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt")
		Z1v3 I -1
		Stop
	Death2:
		Z2V3 A 2
		Z2V3 B 2 A_Scream
		Z2V3 C 3 A_NoBlocking
		Z2V3 D 3
		Z2V3 EFG 2
		Z2V3 H 2
		Z2V3 IJKLM 2
		//TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt")
		Z2V3 N -1
		Stop
	Death3:
		Z4V3 a 3
		Z4V3 b 2 A_scream
		Z4V3 C 2 A_noblocking
		Z4V3 def 2
		Z4V3 g 3
		Z4V3 hi 2
		Z4V3 j -1
		stop
	XDeath:
		Z2v3 ab 2
		TNT1 AAAAAAAAAAAAAAA 0 A_CustomMissile ("Gibs1", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("Gibs2", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItem("XBlood2", 0, 40)
		Z3v3 cd 2 A_XScream
		Z3v3 e 2 a_noblocking
		Z3v3 f 2
		Z3v3 ghijklmnop 2
		Z3v3 q -1
		Stop
	NukeMelt:
		ZMEL abcdefghij 3
		ZMEL klmnopq 3
		stop
	LavaMelt:
		ZLAV abcdefghij 3
		ZLAV klmnopq 3
		stop
	Raise:
		ZSv3 K 5
		ZSv3 JIH 5
		Goto See
	}
}

ACTOR RifleZombie0 : Smoothzombieman
{
dropitem Rifle
}

ACTOR RifleZombie1 : ZombieV1
{
dropitem Rifle
}

ACTOR RifleZombie2 : ZombieV2
{
dropitem Rifle
}

ACTOR RifleZombie3 : ZombieV3
{
dropitem Rifle
}