actor ArcherTrooper : actor replaces zombieman

{
    Health 20
    Radius 20
    Height 56
    Speed 13
    scale 0.9
	PainChance 200
 	Painchance "BarrelGrab", 0
	Mass 200
    MONSTER 
    +FLOORCLIP
    SeeSound "archer/sight"
    AttackSound "archer/attack"
    PainSound "archer/pain"
    DeathSound "archer/death"
    ActiveSound "archer/growl"
    bloodtype newbloodsplatter
	Obituary "%o was pierced by a Knight Archer."
	dropitem "clip" 256
	dropitem "lilchest" 05
    States
    {
    Spawn:
        KNIG AB 10 A_Look
        Loop
    See:
		TNT1 A 0
		KNIG AABBCCDD 3 A_Chase	
        Loop
    Missile:
		KNIG E 0 A_Jump (20,"Fireshot")
        KNIG E 0 A_Jump (20,"Iceshot")
		KNIG F 8 A_PlaySound("archer/draw")
        KNIG F 15 A_FaceTarget
        KNIG E 5 bright A_CustomMissile("TrooperArrow",32,5)
		KNIG E 5
        Goto See
	Fireshot:	
		TNT1 A 0 A_PlaySound ("archer/firecharge",0)
        KNIG G 2 A_PlaySound("archer/draw")
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("FireArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KNIG G 4 A_FaceTarget


        KNIG E 5 bright A_CustomMissile("FireArrow",32,5)
		TNT1 A 0 A_PlaySound ("gauntlet/fullcharge",0)
		TNT1 A 0 A_PlaySound ("archer/fireshot", 0)
		KNIG E 5
        Goto See
    Iceshot:
		TNT1 A 0 A_PlaySound ("archer/icecharge",0)
		KAIC A 2 A_PlaySound("archer/draw")
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
		TNT1 AAA 0 A_SpawnItemEx ("IceArrowCharge",10,5,45,Frandom(-100,100)/25.0,Frandom(-100,100)/20.0,Frandom(-100,100)/10.0,0)  
        KAIC A 4 A_FaceTarget
        KNIG E 5 bright A_CustomMissile("icearrow",32,5)
		TNT1 A 0 A_PlaySound ("archer/iceshot", 0)
		KNIG E 5
        Goto See		

	Pain:
    	KNIG H 3
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
  		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
        KNIG H 3 A_Pain
		Goto See
	Pain.Dazer:
	Pain.Superkick:
    	KNIG H 3
  		TNT1 A 0 a_giveinventory ("KickDazer",1)
		KNIG H 3 A_Pain
		Goto Dazed
    Dazed:
		KNIG H 2
		KNIG H 1 A_SetAngle (angle+15)
		KNIG H 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
        KNIG I 1 A_Scream 
		KNIG I 0 A_NoBlocking
		KNIG I 0 A_FaceTarget
		TNT1 A 0 ThrustThingZ (0,30,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 4, 0, 0)
        KNIG I 3
		KNIG J 3
        KNIG KLM 4
        KNIG N -1
        Stop
	death.blazice:
		KNIG I 2 A_Scream
		KNIC 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)
		KNIC B 90 bright
		KNIC 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:
		KNIG H 2 A_Scream
		KNIC A 4 A_NoBlocking
		KNIG H 15 
	randomwait:
		FDKA A 1 A_Jump (20,"split")
		loop
	split:
		FDKA AABBCC 5
		FDKA DE 2 
		FDKA FGHIJ 3 bright  A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDKA JJJJJ 1 bright  A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDKA J 1 bright 
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDKA J 1 bright 
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDKA J 1 bright 
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDKA J 1 bright A_Jump (130,"reallydie")
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		loop
	reallydie:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("fataldrawdeath",0,0,30)
		stop
    XDeath:
        TNT1 A 0 A_Scream
		KNIG O 3 A_PlaySound("archer/gib")
        KNIG P 3 A_NoBlocking
		TNT1 A 0 a_spawnitem ("bigbloodsplatter")
		TNT1 AAAAAAAA 0 A_SpawnItemEx ("newbloodsplatter",0,0,24)       
		TNT1 AAAAAAA 0 A_SpawnItemEx("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		TNT1 AAA 0 A_SpawnItemEx("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		ISKL AAAAA 0 A_SpawnItemEx("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL AAA 0 A_SpawnItemEx("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		KNIG QRSTUVWX 5
        KNIG X -1
        Stop
	Death.superkick:	
		KNIG I 1 A_Scream 
		KNIG I 1 a_scalevelocity (0.1)
 		KNIG I 1 a_stop
		KNIG I 1 A_NoBlocking
		TNT1 A 0 a_changeflag ("NOCLIP",1)
		TNT1 A 0 a_changeflag ("NOGRAVITY",1)
		KNIG I 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")
        KNIG I 3
		KNIG J 3
	kickfly:
		KNIG KKKKKKK 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:
        KNIG I 2 A_Scream 
		KNIG I 1 A_NoBlocking
		KNIG I 1 A_FaceTarget
		TNT1 A 0 thrustthingz (0,60,0,1)
        KNIG I 1
		KNIG J 2
		KNIG K 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
	Raise:
        KNIG MLKJIH 3
		TNT1 A 0 A_Jump (60,"chaosexplode")
        Goto See
	chaosexplode:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    	KNIG A 8
        KNIG H 6 A_Pain
    	KNIG A 8
        KNIG H 6 A_Pain
    	KNIG A 8
        KNIG H 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 TrooperArrow
{
   Radius 5
   Height 12
   Speed 25
   Damage (8)
   PROJECTILE
   +NOGRAVITY
   +THRUSPECIES
   species "enemyshot"
   scale 0.8
   SeeSound "archer/attack"
   DeathSound "archer/hit"
   States
   {
   Spawn:
      VEKF A 1 bright A_SpawnItem ("TrooperArrowTrail")
      Loop
   Death:
      TNT1 A 0 A_FadeOut (0.75)
	  VEKF FGHI 3 bright
	  Stop
   }
}

actor TrooperArrowTrail
{
	+NOCLIP
	+clientsideonly
	+NOBLOCKMAP
	+NOGRAVITY
	renderstyle add
	alpha 0.5
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
	SpawnLoop:
		VEKF AABCDE 3 A_FadeOut(0.1)
		loop
	}
}

actor Firearrow : TrooperArrow
{
   translation "0:255=%[0,0,0]:[2,1,0]"
   Speed 30
   Damage (20)
   SeeSound "archer/attackboss"
   States
   {
   Spawn:
      VEKF A 1 bright A_SpawnItem("TrooperArrowTrail2")
      Loop
   Death:
      TNT1 A 0 A_FadeOut (0.50)
	  TNT1 AAAA 0 A_SpawnItemEx("firebomblet",0,0,0,random(-10,10),random(-10,10),10) 
	  VEKF FGHI 3 bright
	  Stop
   }
}

actor firebomblet
{
	projectile
	+hexenbounce
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+thruactors
	+bounceonceilings
	+bounceonwalls
	+thruspecies
	-bounceonfloors
	species "enemyshot"
	-nogravity
	radius 12
	speed 5
	damage (0)
	bouncecount 10
    gravity 1.3
	Scale 1
	states
	{
	spawn:
		FBLT ABCD 1 bright
		loop
	death:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("gauntlet/midcharge",0)
		TNT1 A 0 a_spawnitem ("lingeringflame")
		stop
	}
}

actor lingeringflame
{
	projectile
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+floorhugger
	speed 0
	damage (5)
	reactiontime 10
	states
	{
	spawn:
		LFLM ABCD 3 bright
		TNT1 A 0 a_countdown
		loop
	death:
		TNT1 A 0
		stop
	}
}


actor TrooperArrowTrail2 : TrooperArrowTrail
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
	SpawnLoop:
		VEKG AABCDE 3 A_FadeOut(0.1)
		loop
	}
}

actor icearrow : TrooperArrow
{
	speed 20
	damage (10)
	damagetype "icearrow"
	states
	{
	spawn:
		VEKH A 1 bright A_SpawnItemEx ("iceparticle",random(-16,16),random(-16,16),random(-10,10),random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0,160)
		loop
	xdeath:
		VEKH FGHI 3 bright
		stop	
	death:
		VEKH FGHI 3 bright
		stop
	}
}

actor iceparticle
{
	+missile
	+HEXENBOUNCE
	-nogravity
	speed 10
	+thruactors
	scale 0.50
	BounceCount 2
	states
	{
	spawn:	
		TNT1 A 0
		WTL1 AAAAAAAAAAAA 1  Bright A_SetTranslucent(.6,1)
		WTL1 A 1 Bright 
		Stop
	}
}


actor FireArrowCharge
{
	+clientsideonly
	+nointeraction
	+Bright
	projectile
	Radius 4
	Height 5
	speed 3
	Renderstyle translucent
	scale 0.5
	Alpha 0.70
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 4
		TNT1 A 0 A_scalevelocity (-1)
		FBLT A 1 
		FBLT B 1 
		FBLT C 1 
		FBLT D 1 
		goto death
	death:
		TNT1 A 1
		stop
	}
}

actor IceArrowCharge : FireArrowCharge
{
	scale 1
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 4
		TNT1 A 0 A_scalevelocity (-1)
		WTL1 A 4 
		goto death
	death:
		TNT1 A 1
		stop
	}
}

//The ice debuff effect will stay here

actor numbed : PowerProtection
{
	damagefactor "normal", 1.75
	Powerup.Duration -5
}	

