ACTOR BrutalGuncastArchvile: TehArchvile Replaces TehArchvile
{
	//Loot
	DropItem Sapphire
	DropItem AmplifierGiver, 18, 0
	DropItem TomeSpawner, 4, 0

	//Weaknesses & Resists
	
	//The wazard of hell, using fire!... not as resistant to fire itself, apparently.
	//Hard to knock out with elemental attacks.
	//Extremely suspectible to bleeding and crows, they tear his ass apart.
	
	DamageFactor Fire, 0.7
	DamageFactor Meteorfist, 0.7
	DamageFactor Flesh, 0.7
	DamageFactor Lightning, 0.8
	DamageFactor LightningBlue, 0.8
	DamageFactor Ice, 1.1
	
	DamageFactor Crow, 1.3
	DamageFactor Crow2, 1.3
	DamageFactor Manuel, 1.3
	
	DamageFactor CloseCombat, 1.25
	DamageFactor Shoelaces, 1.25
	DamageFactor SuperCloseCombat, 1.25
	DamageFactor SuperShoelaces, 1.25
	DamageFactor SuperMidasCloseCombat, 1.25
	DamageFactor SuperMidasShoelaces, 1.25
	
	//PAAAAAIN
	PainChance 10
	PainChance Crow, 2
	PainChance Crow2, 2
	
	//Guaranteed Effects
	PainChance SuperCloseCombat, 256
	PainChance SuperShoelaces, 256
	PainChance SuperMidasCloseCombat, 256
	PainChance SuperMidasShoelaces, 256
	PainChance Acid, 256
	PainChance Meteorfist, 256
	
	//Chance Effects
	PainChance Lightning, 164
	PainChance LightningBlue, 32
	PainChance Manuel, 96
	PainChance Fire, 10
	
	var int User_DeathByFire;
	var int User_DeathByTiberium;
	var int User_DeathByBlueTiberium;
	var int User_LightningLock;
	var int User_Smoke;
	var int User_SmokeLoop;
	States
	{
	//[DoomKrakken]: Enhanced Missile State, so that it deals Fire damage across the board. :D
	Missile:
		DIAB E 0 BRIGHT A_VileStart
		DIAB E 10 A_FaceTarget 
		DIAB E 1 A_VileTarget 
		DIAB E 7 A_VileTarget
		DIAB E 1 A_VileTarget 
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB E 3 A_FaceTarget
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB F 3 BRIGHT A_FaceTarget
		DIAB F 3 BRIGHT A_FaceTarget
		DIAB E 1 A_VileTarget 
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB E 3 A_FaceTarget 
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB F 3 BRIGHT A_FaceTarget
		DIAB E 1 A_VileTarget 
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB E 3 A_FaceTarget
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB F 3 BRIGHT A_FaceTarget
		DIAB E 1 A_VileTarget 
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB E 3 A_FaceTarget
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, 35, random (0, 40), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("SmallFlameTrails", 85, -35, random (0, 40), 2, random (0, 160))
        DIAB F 3 BRIGHT A_FaceTarget
		DIAB JKLMN 3 BRIGHT A_FaceTarget 
		DIAB O 3 BRIGHT A_VileAttack("Vile/Stop", 20, 70, 70, 1.0, "Fire", VAF_DMGTYPEAPPLYTODIRECT)
		DIAB P 3 BRIGHT
		Goto See
		
	//Melee
	Pain.SuperCloseCombat:
	Pain.SuperMidasCloseCombat:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-6.0,-9.0),0,frandom(1.0,3.0),CVF_RELATIVE)
		Goto Pain.Kick
	Pain.SuperShoelaces:
	Pain.SuperMidasShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-10.0,-14.0),0,frandom(7.0,11.0),CVF_RELATIVE)
		Goto Pain.Kick
	Death.SuperCloseCombat:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-6.0,-9.0),0,frandom(1.0,3.0),CVF_RELATIVE)
		Goto XDeath
	Death.SuperShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-10.0,-14.0),0,frandom(7.0,11.0),CVF_RELATIVE)
		Goto XDeath
	Death.MidasCloseCombat:
	Death.MidasShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_NoBlocking
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 5 A_SpawnItemEx("Midas_Statue_ArchVile",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS) //SXF_TRANSFERSPRITEFRAME|SXF_SETMASTER)
		Stop
	Death.SuperMidasCloseCombat:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_NoBlocking
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 0 A_SpawnItemEx("Midas_Statue_ArchVile",0,0,0,frandom(-6.0,-9.0),0,frandom(1.0,3.0),0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 A 10 A_KillChildren
		stop
	Death.SuperMidasShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_NoBlocking
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 0 A_SpawnItemEx("Midas_Statue_ArchVile",0,0,0,frandom(-10.0,-14.0),0,frandom(7.0,11.0),0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 A 10 A_KillChildren
		Stop
		
	Crush:
		TNT1 AAAAAAAAAA 0 A_CustomMissile ("BloodTr255", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_PlaySound("misc/xdeath4")
		XBIG EEEEE 1 A_CustomMissile ("CeilBloodLauncherLong", 0, 0, random (0, 360), 2, random (50, 130))
		TNT1 A 0 A_CustomMissile ("GiantBloodSpot", 4, 0, random (0, 360), 2, random (0, 160))
		XBIG E 0
		Goto Looplet
	/*Death:
		TNT1 A 0 A_StopSound(5)
		VILE Q 7
		VILE R 7 A_Scream
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		VILE S 7 A_NoBlocking
		VILE TUVWXY 7
		VILE Z 0*/
	Looplet:
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		"####" "#" 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		//"####" "#" 0 A_JumpIf(User_DeathByFire == 1, "FireMelt")
		"####" "#" 0 A_JumpIf(User_DeathByTiberium == 1, "TiberiumMelt")
		"####" "#" 0 A_JumpIf(User_DeathByBlueTiberium == 1, "BlueTiberiumMelt")
		Loop
	/*XDeath:
		TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_SpawnItemEx("VileGibbed",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
		XMED ABCDE 5
	Looplet2:
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastC")
		"####" "#" 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		Loop*/
		
	Death:       
        TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0 A_Scream 
		TNT1 A 0 A_NoBlocking
		DIAB RSTUVWX 5 A_SpawnItem ("MuchBlood", 40)
		TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
		DIAB X 0
		Goto Looplet
		
	Death.Shotgun:
	Death.Cutless:
	Death.Cut:
	Death.Saw:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(400, "BrutalDeath")
		TNT1 A 0
		Goto Death
	
	BrutalDeath:
	Death.Desintegrate:
        TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0
		TNT1 A 0 A_Scream
		TNT1 AA 0 A_CustomMissile ("GC_XDeath1", 32, 0, random (0, 360), 2, random (60, 120))
		TNT1 AA 0 A_CustomMissile ("GC_XDeath2b", 52, 0, random (0, 360), 2, random (60, 120))
		TNT1 AA 0 A_CustomMissile ("GC_XDeath3b", 52, 0, random (0, 360), 2, random (60, 120))
		TNT1 AAAA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("BloodMistBig", 40, 0, random (0, 360), 2, random (30, 90))
		TNT1 AAA 0 A_CustomMissile ("GC_Instestin", 32, 0, random (0, 360), 2, random (60, 120))
		TNT1 A 0 A_NoBlocking
		XVIL ABCDEFGHIJKLMNOPQ 2
		TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
		XVIL Q 0
		Goto Looplet

	XDeath:       
        TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 AA 0 A_CustomMissile ("GC_XDeath1", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("GC_XDeath2", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("GC_XDeath3", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AA 0 A_CustomMissile ("GC_XDeath4", 32, 0, random (0, 360), 2, random (0, 160))
		TNT1 AAAAAA 0 A_CustomMissile ("GC_Instestin", 32, 0, random (0, 360), 2, random (0, 160))
		VIGI C 4 A_Scream
		VIGI D 4 
		VIGI E 4 A_NoBlocking
		VIGI FGHIJ 4
		TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
		VIGI J 0
	Looplet2:
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastC")
		"####" "#" 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		Loop
	Death.SuperPlasma:
    Death.Plasma: 
	Death.Plasma2:
	Death.Lightning:
	Death.LightningBlue:
		TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
        TNT1 A 0 A_XScream
        TNT1 A 0 A_NoBlocking
        TNT1 AAA 0 A_CustomMissile ("Brutal_FlyingBlood", 50, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat3", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat2", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat", 32, 0, random (0, 360), 2, random (0, 160))
		EXPL AAAAAA 0 A_CustomMissile ("ExplosionSmoke", 32, 0, random (0, 360), 2, random (0, 360))
		CARB N 0 A_SetUserVar("User_SmokeLoop",1010)
	PlasmaSmokeInit:
		"####" "#" 0 A_SetUserVar("User_Smoke",10)
	PlasmaSmokeLoop:
        "####" "#" 1 A_JumpIf(User_SmokeLoop <= 0, "Looplet")
		"####" "#" 0 A_JumpIf(User_Smoke <= 0, "PlasmaSmoke")
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		"####" "#" 0 A_SetUserVar("User_Smoke", User_Smoke - 1)
		"####" "#" 0 A_SetUserVar("User_SmokeLoop", User_SmokeLoop - 1)
		Loop
	PlasmaSmoke:
		"####" "#" 0 A_CustomMissile ("SmallSmoke", 1, 0, random (0, 360), 2, random (0, 160))
		Goto PlasmaSmokeInit 
        //CARB MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 10 A_CustomMissile ("SmallSmoke", 1, 0, random (0, 360), 2, random (0, 160))
        //CARB M -1
        //Stop
		
    Death.Fire:
        TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
        TNT1 A 0 A_Scream
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_Playsound("props/redfire")
        TNT1 AAA 0 A_CustomMissile ("Brutal_FlyingBlood", 50, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat3", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat2", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat", 32, 0, random (0, 360), 2, random (0, 160))
		CARB N 0 A_SetUserVar("User_SmokeLoop",1010)
	FlameLoop:
		CARB N 0 A_JumpIf(User_Smoke <= 0, "PlasmaSmokeLoop")
		CARB N 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		CARB N 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		CARB N 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		CARB N 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		CARB N 0 A_CustomMissile ("FlameTrails", 15, 0, random (0, 360), 2, random (70, 130))
		CARB N 0 A_SetUserVar("User_Smoke", User_Smoke - 1)
		Loop
		
		//CARB MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 2 A_CustomMissile ("FlameTrails", 15, 0, random (0, 360), 2, random (70, 130))
        //CARB MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 10 A_CustomMissile ("SmallSmoke", 15, 0, random (0, 360), 2, random (70, 130))
        //CARB M -1
        //Stop

    Death.Fatality:
        TNT1 A 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
	    TNT1 A 0 A_Pain
	    TNT1 A 0 A_JumpIfIntargetInventory("FistsSelected", 1, 1)
		Goto BrutalDeath
	    TNT1 A 0 A_GiveToTarget("GoFatality", 1)
        TNT1 A 0 A_NoBlocking
        TNT1 A 0 A_GiveToTarget("ArchvileFatality", 1)
        Stop

	//Corpseblast
	CorpseBlastA:
		TNT1 A 0 A_SpawnItemEx("ArchvileBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		Stop
	CorpseBlastB:
		"####" "#" 0 A_SpawnItemEx("ArchvileBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		"####" "#" 0 A_JumpIf(User_SmokeLoop > 0, "PlasmaSmokeLoop")
		Goto Looplet
	CorpseBlastC:
		"####" "#" 0 A_SpawnItemEx("ArchvileBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		Goto Looplet2
		
	//Gumpop
	Pain.Acid:
		"####" "#" 0 A_JumpIfInventory("PowerGumpopDamage",1,2)
		"####" "#" 0 A_SpawnItemEx("GumpopIndicator",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR|SXF_TRANSFERSPRITEFRAME)
		"####" "#" 0 A_SpawnItemEx("GumpopGlow",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
		"####" "#" 0 A_Jump(100,"Pain")
		Goto See
	Death.Acid:
		DIAB Q 1 A_ChangeFlag("SOLID",0)
		"####" "#" 1 A_Playsound("Gumpop/Expand",5)
		"####" "###################################" 1 A_SetScale(ScaleX+frandom(0.01,0.025))
		"####" "#" 1 A_Playsound("Gumpop/Pop",5)
		Goto XDeath+1
		
	//Dreadful
	Death.Tiberium:
		TNT1 A 0 A_SetUserVar("User_DeathByTiberium", 1)
		TNT1 A 0 ACS_NamedExecuteAlways("Toxic Avenger")
		TNT1 A 0 A_SpawnItemEx("TiberiumDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
		TNT1 A 0 A_GiveInventory("TibDeathCounter")
		Goto Death.Desintegrate
	TiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet
	Death.BlueTiberium:
		TNT1 A 0 A_SetUserVar("User_DeathByBlueTiberium", 1)
		TNT1 A 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		TNT1 A 0 A_SpawnItemEx("BlueTiberiumDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
		TNT1 A 0 A_GiveInventory("TibDeathCounter")
		Goto Death.Desintegrate
	BlueTiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet
		
	//Threadcutter
	Pain.Manuel:
		"####" "#" 0 A_Jump(192,1)
		Goto Pain
		"####" "#" 0 A_GiveInventory("BleedItem")
		"####" "#" 0 A_SpawnItemEx("BleedIndicator",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
		Goto Pain
		
	//Thunderstruck
	Pain.Lightning:
		"####" "#" 0 A_Jump(192,1)
		Goto Pain
		DIAB Q 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
	LightningLock:
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock - 1)
		"####" "#" 0 A_Pain
		"####" "#" 0 A_PlaySound("Thunderstruck/Shocked",5,0.6,1)
		"####" "##" 0 ACS_NamedExecuteAlways("Shock me Plenty")
		"####" "###" 2 A_SpawnItemEx("MonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
		"####" "##" 0 ACS_NamedExecuteAlways("Shock me Plenty")
		"####" "###" 2 A_SpawnItemEx("MonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
		"####" "##" 0 ACS_NamedExecuteAlways("Shock me Plenty")
		"####" "###" 2 A_SpawnItemEx("MonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_JumpIf(User_LightningLock >= 1, "LightningLock")
		"####" "#" 0 A_StopSound(5)
		"####" "#" 0 A_ChangeFlag("NOPAIN",0)
		Goto See
		
	//Cauterizer
	Pain.LightningBlue:
		"####" "#" 0 A_Jump(48,1)
		Goto Pain
		DIAB Q 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
	BlueLightningLock:
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock - 1)
		"####" "#" 0 A_Pain
		"####" "#" 0 A_PlaySound("Thunderstruck/Shocked",5,0.6,1)
		"####" "##" 0 ACS_NamedExecuteAlways("Shock me Plenty Blue")
		"####" "###" 2 A_SpawnItemEx("CauterMonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
		"####" "##" 0 ACS_NamedExecuteAlways("Shock me Plenty Blue")
		"####" "###" 2 A_SpawnItemEx("CauterMonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
		"####" "##" 0 ACS_NamedExecuteAlways("Shock me Plenty Blue")
		"####" "###" 2 A_SpawnItemEx("CauterMonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_JumpIf(User_LightningLock >= 1, "BlueLightningLock")
		"####" "#" 0 A_StopSound(5)
		"####" "#" 0 A_ChangeFlag("NOPAIN",0)
		Goto See
		
	//Fire
	Pain.Meteorfist:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-10.0,-14.0),0,frandom(7.0,11.0),CVF_RELATIVE)
		"####" "#" 0 A_Jump(256,2) //Guaranteed "On Fire!" effect, heeeh.
	Pain.Fire:
		"####" "#" 0 A_Jump(16,1)
		Goto Pain
		"####" "#" 0 A_JumpIfInventory("PowerOnFire",1,"Pain")
		"####" "#" 0 A_GiveInventory("OnFireItem")
		"####" "#" 0 A_SpawnItemEx("OnFireIndicator",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
		Goto Pain
	Death.Meteorfist:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-10.0,-14.0),0,frandom(7.0,11.0),CVF_RELATIVE)
		Goto Death.Fire
	/*Death.Lightning:
	Death.LightningBlue:
	Death.Fire:
		"####" "#" 0 A_SetUserVar("User_DeathByFire", 1)
		"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
		"####" "#" 0 A_SpawnItemEx("FlamingDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
		Goto Death
	FireMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet*/
	EndOfMelt:
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium", 0)
		"####" "#" 0 A_SetUserVar("User_DeathByFire", 0)
		Goto Looplet
		
	//Crows
	Death.Crow:
		"####" "#" 0 A_SpawnItemEx("FlockOfCrows",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		Goto Death.Desintegrate
		
	//Scourgebreath
	Death.Breath:
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
		"####" "#" 0 A_Scream
		"####" "#" 0 A_NoBlocking
		"####" "#" 0 A_SpawnItemEx("BreathSoulburst",0,0,0,0,0,0,0,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERPOINTERS)
	DeathBreathLoop:
		"####" "#" 0 A_SpawnItemEx("BreathDisintegration",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
		"####" "#" 0 A_JumpIf(ScaleX <= 0, "Null")
		"####" "#" 0 A_FadeOut(0.05)
		"####" "#" 1 A_SetScale(ScaleX - 0.03, ScaleY - 0.005)
		Loop
		
	//Ice
	GenericFreezeDeath:
	Death.Ice:
	Death.Freeze:
	Death.Frost:
	Death.DukeIce:
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1)
		TNT1 A 0 A_JumpIfInventory("ChillgraspTrigger",1,4)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		TNT1 A 0 A_ChangeFlag("SOLID", 0)
		TNT1 A 0 A_SpawnItem("FrozenArchvile")
		Stop
		FZDB A 5 A_FreezeDeath
		"----" A 0 A_SpawnItemEx("ChillgraspBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"----" A 1 A_FreezeDeathChunks
		Wait

	//If you are insane - go ahead, uncomment this.
	/*Raise:
		"####" "#" 0 ACS_NamedExecuteAlways("Normalization")
		VILE ZYXWVUTSRQ 7
		Goto See*/
	}
}

ACTOR BrutalGuncastStealthArchvile : BrutalGuncastArchvile replaces StealthArchvile
{
	+STEALTH
	RenderStyle Translucent
	Alpha 0
	Obituary "$OB_STEALTHVILE"
}

ACTOR Midas_Statue_ArchVile : Midas_Statue_Vile
{
	States
	{
	Spawn:
		DIAB Q 1
		Goto Super::Cycle
	}
}

ACTOR GC_HalfArchVile1: HalfArchVile1 replaces HalfArchVile1
{
	var int User_DeathByFire;
	var int User_DeathByTiberium;
	var int User_DeathByBlueTiberium;
	var int User_LightningLock;
	var int User_Smoke;
	var int User_SmokeLoop;
    States
    {
    Spawn:
		VIGP A 0 NoDelay A_SetInvulnerable
	TrueSpawn:
		"####" "#" 0 A_JumpIfInTargetInventory("TibDeathCounter",1,"TibSpawn")
		"####" "#" 0 A_JumpIfInTargetInventory("BlueTibDeathCounter",1,"BlueTibSpawn") 
		"####" "#" 0
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	TibSpawn:
		"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium",1)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	BlueTibSpawn:
		"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 0 A_SetUserVar("User_DeathByBlueTiberium",1)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	Continue:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
        VIGP A 4 A_CustomMissile("BloodTrails",0,0,180,2)
        Loop
    Death:
        TNT1 AAAAAAA 0 A_CustomMissile ("Brutal_FlyingBloodTrail5", 0, 0, random (0, 180), 2, random (0, 180))
        TNT1 A 0 A_SpawnItem("Brutal_BloodSpot",0,0,0,1)
        VIGP B 0
	Looplet:
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		"####" "#" 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		//"####" "#" 0 A_JumpIf(User_DeathByFire == 1, "FireMelt")
		"####" "#" 0 A_JumpIf(User_DeathByTiberium == 1, "TiberiumMelt")
		"####" "#" 0 A_JumpIf(User_DeathByBlueTiberium == 1, "BlueTiberiumMelt")
		Loop
	CorpseBlastA:
		TNT1 A 0 A_SpawnItemEx("CacodemonBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		Stop
	CorpseBlastB:
		"####" "#" 0 A_SpawnItemEx("CacodemonBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		Goto Looplet
	Splash:
        TNT1 A 1
        Stop
	TiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet
	BlueTiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet
	EndOfMelt:
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium", 0)
		"####" "#" 0 A_SetUserVar("User_DeathByFire", 0)
		Goto Looplet
    }
}

ACTOR GC_HalfArchVile2: HalfArchVile2 replaces HalfArchVile2
{
	var int User_DeathByFire;
	var int User_DeathByTiberium;
	var int User_DeathByBlueTiberium;
	var int User_LightningLock;
	var int User_Smoke;
	var int User_SmokeLoop;
    States
    {
    Spawn:
		VIGP C 0 NoDelay A_SetInvulnerable
	TrueSpawn:
		"####" "#" 0 A_JumpIfInTargetInventory("TibDeathCounter",1,"TibSpawn")
		"####" "#" 0 A_JumpIfInTargetInventory("BlueTibDeathCounter",1,"BlueTibSpawn") 
		"####" "#" 0
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	TibSpawn:
		"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium",1)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	BlueTibSpawn:
		"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 0 A_SetUserVar("User_DeathByBlueTiberium",1)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	Continue:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
        VIGP C 4 A_CustomMissile("BloodTrails",0,0,180,2)
        Loop
    Death:
        TNT1 AAAAAAA 0 A_CustomMissile ("Brutal_FlyingBloodTrail5", 0, 0, random (0, 180), 2, random (0, 180))
        TNT1 A 0 A_SpawnItem("Brutal_BloodSpot",0,0,0,1)
        VIGP D 0
	Looplet:
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		"####" "#" 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		//"####" "#" 0 A_JumpIf(User_DeathByFire == 1, "FireMelt")
		"####" "#" 0 A_JumpIf(User_DeathByTiberium == 1, "TiberiumMelt")
		"####" "#" 0 A_JumpIf(User_DeathByBlueTiberium == 1, "BlueTiberiumMelt")
		Loop
	CorpseBlastA:
		TNT1 A 0 A_SpawnItemEx("DemonBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		Stop
	CorpseBlastB:
		"####" "#" 0 A_SpawnItemEx("DemonBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		Goto Looplet
	Splash:
        TNT1 A 1
        Stop
	TiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet
	BlueTiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		Goto Looplet
	EndOfMelt:
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium", 0)
		"####" "#" 0 A_SetUserVar("User_DeathByFire", 0)
		Goto Looplet
    }
}

actor GC_FatalizedArchVile1: FatalizedArchvile1 replaces FatalizedArchVile1
{
	var int User_DeathByFire;
	var int User_DeathByTiberium;
	var int User_DeathByBlueTiberium;
	var int User_LightningLock;
	var int User_Smoke;
	var int User_SmokeLoop;
    States
    {
    Spawn:
		AVF1 Z 0 NoDelay A_SpawnItem("Brutal_BloodSpot",0,0,0,1)
		"####" "#" 0 A_SetInvulnerable
	TrueSpawn:
		"####" "#" 0 A_JumpIfInventory("TibDeathCounter",1,"TibSpawn")
		"####" "#" 0 A_JumpIfInventory("BlueTibDeathCounter",1,"BlueTibSpawn") 
		"####" "#" 1 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	TibSpawn:
		"####" "#" 1 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium",1)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	BlueTibSpawn:
		"####" "#" 1 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 0 A_SetUserVar("User_DeathByBlueTiberium",1)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	Continue:
		"####" "#" 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		"####" "#" 1 CanRaise A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		"####" "#" 0 A_JumpIf(User_DeathByTiberium == 1, "TiberiumMelt")
		"####" "#" 0 A_JumpIf(User_DeathByBlueTiberium == 1, "BlueTiberiumMelt")
		Loop
	CorpseBlastA:
		TNT1 A 0 A_SpawnItemEx("ArchvileBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		Goto Death
	CorpseBlastB:
		"####" "#" 0 A_SetInvulnerable
		"####" "#" 0 A_SpawnItemEx("ArchvileBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_UnSetInvulnerable
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	TiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	BlueTiberiumMelt:
		"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
		"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
		"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	EndOfMelt:
		"####" "#" 0 A_SetUserVar("User_DeathByTiberium", 0)
		"####" "#" 0 A_SetUserVar("User_DeathByBlueTiberium", 0)
		"####" "#" 0 A_Jump(256,"Continue")
		Goto Continue
	}
}