//=====================================================================
//
//     Undead Hunter
//        -Originally submitted by Icytux, Realm667
//
//
//		Thanks Icytux, hopefully you don't mind me editing this guy
//		too much.
//=====================================================================

actor BlackViper : actor replaces chaingunguy 
{
	obituary "%o hast been riddled full of holes by a Black Viper."
	health 70
	radius 20
	height 56
	mass 100
	speed 14
	+avoidmelee
	painchance 170
 	Painchance "BarrelGrab", 0
	bloodtype newbloodsplatter
	painsound "undeadhunter/pain"
	deathsound "undeadhunter/death"
	seesound "undeadhunter/activate"
	dropitem "chaingun" 256
	dropitem "lilchest" 10
	MONSTER
	//translation "5:8=240:246", "107:111=200:207", "96:107=195:201"
	+FLOORCLIP
	states
	{
	Spawn:
		DEHU AB 10 A_Look
		loop
	See:
		DEHU AABBCCDD 2 A_Chase
		loop
	Flee:
		TNT1 A 0 a_changeflag ("FRIGHTENED", 1)
		DEHU AABBCCDD 2 A_Chase
		DEHU AABBCCDD 2 A_Chase
		TNT1 A 0 a_changeflag ("FRIGHTENED", 0)
		goto see
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(900, "machinegunfire" )
	snipershot:
		DEHU E 8 A_playsound ("blackviper/gunready",0,1,0,0.5)
		DEHU E 18 A_FaceTarget
		DEHU F 2 bright a_custommissile ("sniperbullet",40)
		DEHU E 3 
		DEHU E 10
		DEHU G 0 a_jump (120, "snipershot")    
		goto See
	machinegunfire:
		DEHU E 4 A_playsound ("blackviper/gunready",0,1,0,0.8)
		DEHU E 15 A_FaceTarget
		DEHU F 2 bright a_custommissile ("hunterbullet",40)
		DEHU E 3 
		DEHU F 2 bright a_custommissile ("hunterbullet",40)
		DEHU E 5 A_FaceTarget
		DEHU F 2 bright a_custommissile ("hunterbullet",40)
		DEHU E 3 
		DEHU F 2 bright a_custommissile ("hunterbullet",40)
		DEHU E 5 A_FaceTarget
		DEHU F 2 bright a_custommissile ("hunterbullet",40)
		DEHU E 3 
		DEHU F 2 bright a_custommissile ("hunterbullet",40)
		DEHU E 10
		DEHU G 0 a_jump (100, "machinegunfire")    
		goto see
	Pain:
		DEHU G 2
		DEHU G 12 A_Pain
 		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		DEHU G 0 a_jump (180, "flee")
		goto See
	Pain.Dazer:
    Pain.Superkick:
		DEHU G 2
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		DEHU G 12 A_Pain
		goto Dazed
    Dazed:
		DEHU G 2
		DEHU G 1 A_SetAngle (angle+15)
		DEHU G 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		DEHU H 1 A_Scream
		DEHU H 1 A_NoBlocking
		DEHU H 1 A_facetarget
		TNT1 A 0 thrustthingz (0,30,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 4, 0, 0)		
		DEHU I 5 
		DEHU J 5
		DEHU KLM 5
		DEHU N -1
		stop
	XDeath:
		DEHU O 2 A_XScream
		DEHU P 2 A_PlaySound("undeadhunter/xdeath")
		DEHU Q 2 A_NoBlocking
		TNT1 A 0 a_spawnitem ("bigbloodsplatter")
		TNT1 AAAAAAAA 0 a_spawnitemex ("newbloodsplatter",0,0,24)       
		//TNT1 AAAAAAAA 0 a_spawnitem ("newbloodsplatter") 
		TNT1 AAA 0 a_spawnitemex("bonegib",0,0,0,random(-10,10),random(-10,10),10)
		DEHU RSTUV 5
		DEHU W -1
		stop
	death.superkick:
		DEHU H 1 A_Scream
		DEHU H 1 a_scalevelocity (0.1)
		DEHU H 1 A_stop
		DEHU H 1 A_noblocking
		TNT1 A 0 a_changeflag ("NOCLIP",1)
		TNT1 A 0 a_changeflag ("NOGRAVITY",1)
		DEHU H 1 A_facetarget
		TNT1 A 0 thrustthingz (0,80,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 110, 1, 0)		
		TNT1 A 0 a_spawnitemex ("kickdeathsound")
		DEHU I 1 
		DEHU J 2
	kickfly:
		DEHU JJJJJJJ 1 a_spawnitemex ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		TNT1 A 0 a_fadeout (0.02)
		loop
	Death.Sentinelarm:
		DEHU H 1 A_Scream
		DEHU H 1 A_NoBlocking
		DEHU H 1 A_facetarget
		TNT1 A 0 thrustthingz (0,50,0,1)
		DEHU I 3 
		DEHU J 2
		TNT1 A 0 a_nogravity
		TNT1 A 0 a_stop
		TNT1 A 0 a_playsound ("Kustam/OCKill",CHAN_VOICE,1,0,0.4)
		TNT1 A 0 a_playsound ("Kustam/OCKill",5,1,0,0.6)
		TNT1 A 0 a_playsound ("Kustam/OCKill",6,1,0,0.6)
		TNT1 A 0 a_playsound ("Kustam/OCKill",7,1,0,0.6)
		OCKL ABCDEF 2 bright
		stop	
	death.blazice:
		DEHU G 2 a_scream
		DEIC A 2 A_noblocking
		TNT1 A 0 a_playsound ("swordtech/freezedeath")
		TNT1 A 0 a_fadeout (0.20)
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("iceparticle",random(-8,8),random(-8,8),32,random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/20.0,0,160)
		DEIC B 90 bright
		DEIC C 2 bright
		TNT1 A 0 a_playsound ("swordtech/iceshatter")
		TNT1 AAA 0 a_spawnitemex ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAA 0 a_spawnitemex ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		stop
	death.fatalslash:
		DEHU G 2 a_scream
		DEIC A 4 a_noblocking
		DEHU G 15
	randomwait:
		FDBV A 1 a_jump (20,"split")
		loop
	split:
		FDBV AABBCC 5
		FDBV DE 2
		FDBV FGHIJ 3 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDBV J 1 bright 
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright 
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBV J 1 bright a_jump (100,"reallydie")
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		loop
	reallydie:
		TNT1 A 0
		TNT1 A 1 a_spawnitemex ("fataldrawdeath",0,0,30)
		stop
	Raise:
		DEHU MLKJIH 3
		TNT1 A 0 a_jump (40,"chaosexplode")
		goto See
	Chaosexplode:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    	DEHU A 8
        DEHU G 6 A_Pain
    	DEHU A 8
        DEHU G 6 A_Pain
    	DEHU A 8
        DEHU G 6 A_Pain
        TNT1 A 0 a_scream
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 a_radiusgive ("chaoslaugh",650,RGF_MONSTERS)
		TNT1 A 0 a_spawnitemex("skellytun",0,0,12,random(-6,6),random(-8,8),random(6,10),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_playsound ("bonelord/explode",0,1,0,0.6)
		TNT1 A 0 Radius_Quake (4,20,0,32,0)
		TNT1 A 0 a_spawnitem ("bigbloodsplatter")
		TNT1 AAAAAAAAAAAA 0 a_spawnitem ("newbloodsplatter") 
		TNT1 AAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		ISKL AAAAAAA 0 a_spawnitemex("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL AAAAA 0 a_spawnitemex("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		TNT1 AAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		TNT1 A 20
		stop
	}
}

actor hunterbullet
{
	+notimefreeze
	projectile
    +BLOODSPLATTER
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+THRUSPECIES
	+THRUGHOST
	species "enemyshot"
	radius 2
	speed 30
	damage (4)
    seesound huntergunshot
	Scale 1
	states
	{
	spawn:
		SCBL A 1 bright
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_playsound ("DoomSlayer/ReignStormMiss",CHAN_BODY,0.80,0,1)
		SCBL BCD 2 bright
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_playsound ("DoomSlayer/ReignStormHit",CHAN_BODY)
		SCBL BCD 2 bright
		stop		
	}
}

actor sniperbullet : hunterbullet
{
	scale 2
	radius 4
	speed 50
	damage (20)
	states
	{
	spawn:
		SCBL A 1 bright
		TNT1 A 0 a_spawnitemex ("bullettrail")
		SCBL E 1 bright
		loop
	}
}

actor bullettrail
{
	alpha 0.80
	renderstyle add
	projectile
	+clientsideonly
	+FORCEXYBILLBOARD	
	+DONTBLAST
	+noclip
	scale 1
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 1
		SCBL A 6 
		stop
	}
}

actor huntergrenade
{
	+notimefreeze
	projectile
	-nogravity
	+floorclip
	+thruactors
	+bloodlessimpact
	translation "0:255=%[0,0,0]:[0,1,0]"
	bouncetype hexen
	seesound ""
	bouncesound "subweapons/earthshakerbounce"
	bouncefactor 0.70
	bouncecount 5
	reactiontime 10
	damage (0)
	Radius 8
	height 8
	scale 1
	speed 8
	states
	{
	spawn:
		ROBM ABCDEFGH 1
		TNT1 A 0 A_countdown
		loop
	death:
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		ROBM I 1 a_spawnitemex ("bombsmoke",0,0,10,0,0,5,0,0)
		TNT1 A 0 a_spawnitem ("grenadeboom")
		TNT1 A 0 a_playsound ("magegunner/missileexplode",0)
		stop
	}
}

actor grenadeboom
{
	+noclip
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 a_explode (20,120,0,0,60)
		TNT1 A 0 a_radiusthrust (2000,50)
		TNT1 A 0 Radius_Quake (2,10,0,30,0)
		KBDU ABCDEFGHIJKL 2 bright
		stop
	}
}
actor bombsmoke
{
	translation "0:255=%[0,0,0]:[1,1,1]"
	+noclip
	projectile
	+painless
	speed 20
	renderstyle add
	scale 0.50
	alpha 0.30
	damage (0)
	states
	{
	spawn:
		RKPF ABCD 2
		stop
	death:
		TNT1 A 0
		stop
	}
}