ACTOR GuncastIronlich : Ironlich Replaces Ironlich
{
	//Loot
	DropItem "Emerald"
	DropItem "Sapphire", 128
	DropItem "ArtiEgg", 51, 0
	
	//Thick-armoured, giant, undead metal head, running on elemental magic.
	//Yeah, good luck bypassing that.
	
	//Resists & weaknesses
	DamageFactor Tiberium, 0.7
	DamageFactor BlueTiberium, 0.7
	DamageFactor Annihilation, 0.6
	DamageFactor Matriarch, 0.6
	DamageFactor Normal, 0.6

	DamageFactor Flesh, 0.7
	DamageFactor Fire, 0.7
	DamageFactor Meteorfist, 0.8
	DamageFactor Ice, 0.7
	DamageFactor Crow, 0.3
	DamageFactor Crow2, 0.3
	DamageFactor Manuel, 0.5
	
	DamageFactor Lightning, 1.4 //...There are some ways, though. And they're highly effective.
	DamageFactor LightningBlue, 1.0
	DamageFactor Acid, 2.25
	
	DamageFactor CloseCombat, 0.6
	DamageFactor Shoelaces, 0.6
	DamageFactor SuperCloseCombat, 0.6
	DamageFactor SuperShoelaces, 0.6
	DamageFactor SuperMidasCloseCombat, 0.6
	DamageFactor SuperMidasShoelaces, 0.6
	
	//PAAAAAIN
	PainChance 32
	PainChance Crow, 4
	PainChance Crow2, 4
	
	//Guaranteed Effects
	PainChance SuperCloseCombat, 256
	PainChance SuperShoelaces, 256
	PainChance SuperMidasCloseCombat, 256
	PainChance SuperMidasShoelaces, 256
	PainChance Acid, 256
	PainChance Meteorfist, 256
	
	//Chance Effects
	PainChance Lightning, 224
	PainChance LightningBlue, 48
	PainChance Manuel, 64
	PainChance Fire, 16
	PainChance Ice, 16
	
	var int User_DeathByFire;
	var int User_DeathByTiberium;
	var int User_DeathByBlueTiberium;
	var int User_LightningLock;
	States
	{
	
	//Melee
	Pain.SuperCloseCombat:
	Pain.SuperMidasCloseCombat:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-2.0,-4.0),0,frandom(0.5,1.0),CVF_RELATIVE)
		Goto Pain
	Pain.SuperShoelaces:
	Pain.SuperMidasShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-4.0,-8.0),0,frandom(3.0,5.0),CVF_RELATIVE)
		Goto Pain
	Death.SuperCloseCombat:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-2.0,-4.0),0,frandom(0.5,1.0),CVF_RELATIVE)
		Goto Death
	Death.SuperShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_ChangeVelocity(frandom(-4.0,-8.0),0,frandom(3.0,5.0),CVF_RELATIVE)
		Goto Death
	Death.MidasCloseCombat:
	Death.MidasShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_NoBlocking
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPot",-1,196)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 0 A_SpawnItemEx("Midas_Statue_Lich",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS) //SXF_TRANSFERSPRITEFRAME|SXF_SETMASTER)
		TNT1 A 5 A_BossDeath
		Stop
	Death.SuperMidasCloseCombat:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_NoBlocking
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPot",-1,196)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 0 A_SpawnItemEx("Midas_Statue_Lich",0,0,0,frandom(-2.0,-4.0),0,frandom(0.5,1.0),0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 A 0 A_BossDeath
		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("MajorManaPot",-1,196)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 0 A_SpawnItemEx("Midas_Statue_Lich",0,0,0,frandom(-4,-8.0),0,frandom(3.0,5.0),0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 A 0 A_BossDeath
		TNT1 A 10 A_KillChildren
		Stop
		
	//Standard death stuff
	Crush:
		LICH I 0 A_Scream
		LICH I 0 A_NoBlocking
		LICH I 0 A_BossDeath
		LICH I 0 A_SetScale(ScaleX, ScaleY - 0.5)
		LICH I -1
		Wait
	Death:
		LICH C 0 A_StopSound(5)
		LICH C 7
		LICH D 7 A_Scream
		LICH EF 7
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPot",-1,196)
		LICH G 7 A_NoBlocking
		LICH H 7
		LICH I 0 A_BossDeath
	Looplet:
		LICH I 1 CanRaise A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
		LICH I 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
		Loop
		
	//Corpseblast:
	CorpseBlastA:
		"####" "#" 0 A_StopSound(4)
		"####" "#" 0 A_SpawnItemEx("LichBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERSPRITEFRAME)
		Stop
	CorpseBlastB:
		"####" "#" 0 A_StopSound(4)
		"####" "#" 0 A_SpawnItemEx("LichBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERSPRITEFRAME)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		Goto Looplet

	//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(64,"Pain")
		Goto See
	Death.Acid:	//So I did mention about meltdown death once...
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPot",-1,24)
		LICH A 0 ACS_NamedExecuteAlways("Toxic Avenger")
		LICH A 0 A_NoBlocking
		LICH A 0 A_Scream
	AcidDeathLoop:
		LICH A 0 A_JumpIf(ScaleY <= 0, "Null")
		LICH A 1 A_SetScale(ScaleX + 0.03, ScaleY - 0.03)
		Loop
		
	//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)
		Goto Death
	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)
		Goto Death

	//Threadcutter
	/*Pain.Manuel:
		"####" "#" 0 A_Jump(64,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(256,1)
		Goto Pain
		LICH A 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
		LICH A 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(-4.0,-8.0),0,frandom(3.0,5.0),CVF_RELATIVE)
		"####" "#" 0 A_Jump(256,2) //Guaranteed "On Fire!" effect, heeeh.
	Pain.Fire:
		"####" "#" 0 A_Jump(12,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(-4.0,-8.0),0,frandom(3.0,5.0),CVF_RELATIVE)
	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
		
	//Crows
	Pain.Crow:
	Pain.Crow2:
		TNT1 A 0 A_PlaySound("Claw/Wall",6,0.6)
		TNT1 A 0 A_Jump(128,"See")
		Goto See
		
	//Scourgebreath
	Death.Breath:
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPot",-1,196)
		"####" "#" 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:
		"####" "#" 5 A_GenericFreezeDeath
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPot",-1,196)
		"----" A 0 A_JumpIfInventory("ChillgraspTrigger",1,2)
		"----" A 0 A_Jump(256,2)
		"----" A 0 A_SpawnItemEx("ChillgraspBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"----" A 1 A_FreezeDeathChunks
		Wait
		
	Raise:
		"####" "#" 0 ACS_NamedExecuteAlways("Normalization")
		"####" "#" 0 A_SetScale(1)
		LICH IHGFEDC 8
		Goto See
	}
}

ACTOR LichBlast : BlastShared
{
	States
	{
	DamageStuff:
		"####" "######" 0 A_SpawnItemEx("CorpsespiritSmall",frandom(-60.0,60.0),frandom(-60.0,60.0),frandom(0.0,60.0),0,0,1,frandom(0.0,360.0),SXF_TRANSFERPOINTERS,96)
		"####" "###" 0 A_SpawnItemEx("CorpsespiritMedium",frandom(-60.0,60.0),frandom(-60.0,60.0),frandom(0.0,60.0),0,0,1,frandom(0.0,360.0),SXF_TRANSFERPOINTERS,9)
		"####" "#" 0 A_SpawnItemEx("CorpsespiritLarge",0,0,0,0,0,1,0,SXF_TRANSFERPOINTERS)
	Main:
		"####" "#" 0
		"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
	MainLoop:
		"####" "#" 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
	}
}

ACTOR Midas_Statue_Lich : Midas_Statue
{
	Radius 40
	Height 72
	Health 150
	States
	{
	Spawn:
		LICH A 1
		Goto Super::Cycle
	Death:
	Crash:
		TNT1 A 0 A_SetUserVar("User_GoldRange",30)
		TNT1 A 0 A_SetUserVar("User_GoldAmount",30)
		TNT1 A 0 A_SetUserVar("User_GoldCounter1",20)
		TNT1 A 0 A_SetUserVar("User_GoldCounter2",10)
		Goto Super::DeathInit
	MidasReward:
		TNT1 A 0 A_JumpIf(CallACS("MoneyShareCheck"),2)
		TNT1 A 0 A_GiveToTarget("Dosh",350)
		Stop
		TNT1 A 0 ACS_NamedExecuteAlways("MoneySharing",0,350)
		Stop
	}
}