
// --------------------------------------------------------------------------

// Unmaker

// --------------------------------------------------------------------------

ACTOR UnmakerLaserMode : Inventory
{
Inventory.MaxAmount 1
}

ACTOR UnmakerBeamMode : Inventory
{
Inventory.MaxAmount 1
}

ACTOR Unmaker : Weapon
{
	Game Doom
	Height 20
	Weapon.SelectionOrder 3000
	Weapon.AmmoGive 0
    Inventory.PickupSound "BFGREADY"
	Weapon.AmmoType "UnmakerAmmo"
	DamageType Fire
	+WEAPON.NOAUTOAIM
	+FLOORCLIP
	+DONTGIB
	Inventory.ForbiddenTo "Purist", "Alpha"
	Inventory.RestrictedTo "Doomer"
	+INVENTORY.RESTRICTABSOLUTELY
	Inventory.PickupMessage "You have found the Unmaker! Words can't describe how strong this thing is!"
	Obituary "%o was undone by %k's Unmaker."
	Tag "Unmaker"

	States
	{
	
	Flash:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("FlashlightAction", 1, "CheckFlashlight")
	TNT1 A 1
	TNT1 A 0 A_JumpIfInventory("IsFlashlightOn", 1, "FlashOn")
	Goto Flash
	FlashOn:
	TNT1 A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
	TNT1 A 0 A_FireCustomMissile("FlashlightSource", 0, 0, 0, 0, 0, 0)
	Goto Flash 
	CheckFlashLight:
	TNT1 A 1
	TNT1 A 0 A_TakeInventory("FlashlightAction")
	TNT1 A 0 A_JumpIfInventory("IsFlashlightOn", 1, "TurnOffFlashlight")
	TNT1 A 0 A_GiveInventory("IsFlashlightOn", 1)
	Goto Flash
	TurnOffFlashlight:
	TNT1 A 0 A_TakeInventory("IsFlashlightOn", 1)
	Goto Flash
	
	Steady:
	TNT1 A 1
	Goto Ready
		
	Deselect:
		TNT1 A 0 A_StopSound(6)
		UNMA UVWXYZ 1 
		TNT1 A 1 A_Lower
		Wait
		
	Select:
		TNT1 A 0 A_Takeinventory("FistsSelected",1)
		TNT1 A 0 A_Takeinventory("SawSelected",1)
		TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
		TNT1 A 0 A_Takeinventory("SSGSelected",1)
		TNT1 A 0 A_Takeinventory("MinigunSelected",1)
		TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
		TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("BFGSelected",1)
		TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
		TNT1 A 0 A_Takeinventory("RailGunSelected",1)
		TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
		TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
		TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
		TNT1 A 0 A_Takeinventory("HasBarrel",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Giveinventory("UnmakerSelected",1)
		UNMA A 0 A_Raise
		wait
	
	AfterfireLaser:
	    TNT1 A 0 A_StopSound(7)
		UNMP ABCDEFGHIJKLMNONMLKJIHGFDCBA 1
		Goto Ready+8
		
	AfterfireBeam:
	    TNT1 A 0 A_StopSound(7)
		UNMP ABCDEFGHIJKLMNONMLKJIHGFDCBA 1
		Goto BeamReady+8
	Ready:
		UNMA ZYXWVU 1 
		TNT1 A 0 A_PlaySound("unmaker/up")
		TNT1 A 0 A_Takeinventory("SKZombieman", 2)
		TNT1 A 0 A_Takeinventory("SKShotgunguy", 2)
		TNT1 A 0 A_Takeinventory("SKChaingunguy", 2)
		TNT1 A 0 A_Takeinventory("SKImp", 2)
	    TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
        TNT1 A 0 
        TNT1 AAAAA 0		
		TNT1 A 0 A_PlaySound("unmaker/hum", 6, 1, 1)
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "BeamReady")
		UNMA A 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "BeamReady")
		UNMA B 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "BeamReady")
		UNMA C 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "BeamReady")
		UNMA D 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "BeamReady")
		UNMA E 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "BeamReady")
		TNT1 A 0 A_Giveinventory("UnmakerAmmo", 100)
		UNMA F 1 A_WeaponReady
	Goto Ready+8
	BeamReady:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "GotoPurist")
		UNMA ZYXWVU 0
	//	TNT1 A 0 A_PlaySound("unmaker/up")
		TNT1 A 0 A_PlaySound("unmaker/hum", 6, 1, 1)
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("tossgrenade", 1, "tossgrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		UNMB A 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("tossgrenade", 1, "tossgrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		UNMB B 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("tossgrenade", 1, "tossgrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		UNMB C 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("tossgrenade", 1, "tossgrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		UNMB D 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("tossgrenade", 1, "TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		UNMB E 1 A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("tossgrenade", 1, "TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_Giveinventory("UnmakerAmmo", 100)
		UNMB F 1 A_WeaponReady
	Goto BeamReady+8
	
	GoToPurist:
		TNT1 A 0 A_SelectWeapon("HellishMissileLauncher")
		Goto Select
	WeaponSpecial:
		TNT1 A 0 A_TakeInventory("GoWeaponSpecialAbility", 1)
		TNT1 A 0 A_JumpIfInventory("UnmakerLaserMode",1, "SwitchToBeamMode")
		TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode",1, "SwitchToLaserMode")
		
	SwitchToBeamMode:
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_Takeinventory("UnmakerLaserMode", 1)
		TNT1 A 0 A_GiveInventory("UnmakerBeamMode", 1)
		TNT1 A 0 A_Print("Weapon Mode: Beam")
		TNT1 A 0 A_PlaySound("unmaker/beammode")
		Goto AfterFireBeam
		
	SwitchToLaserMode:
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_TakeInventory("UnmakerBeamMode", 1)
		TNT1 A 0 A_GiveInventory("UnmakerLaserMode", 1)
		TNT1 A 0 A_Print("Weapon Mode: Laser")
		TNT1 A 0 A_PlaySound("unmaker/lasermode")
		Goto AfterFireLaser
Fire:
	TNT1 A 0 A_JumpIfInventory("UnmakerLaserMode", 1, "FireLaser")
	TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode", 1, "FireBeam")
	
FireLaser:
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",2,1)
	Goto Ready+8
	UNMA ABCDEF 1
FireLaserHold:
	UNMA GHI 1 
	TNT1 A 0 A_Playsound("unmaker/fire", 1, 1, 0)
	TNT1 A 0 A_TakeInventory("UnmakerAmmo", 2)
	UNMA J 1 A_RailAttack(200, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT, 0, "UnmakerPuff", 0, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",2,1)
	Goto Ready+8
	TNT1 A 0 A_Refire("FireLaserHold")
	UNMA HG 1 
	Goto AfterfireLaser


FireBeam:
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",1,1)
	Goto BeamReady+8
	TNT1 A 0 A_Playsound("unmaker/beam_fire", 1, 1, 0)
FireBeamHold:
	TNT1 A 0 A_Playsound("unmaker/beam_loop", 7, 0.5, 1)
	TNT1 A 0 A_TakeInventory("UnmakerAmmo", 1)
	UNMB J 1  A_FireCustomMissile("UnmakerBeam",0,1,0,0)
	UNMB I 1
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",1,2)
	UNMB A 0 A_StopSound(7)
	Goto BeamReady+8
	TNT1 A 0 A_Refire("FireBeamHold")
	UNMB HG 1 
	Goto AfterfireBeam

AltFire:
	TNT1 A 0 A_JumpIfInventory("UnmakerLaserMode", 1, "AltFireLaser")
	TNT1 A 0 A_JumpIfInventory("UnmakerBeamMode", 1, "AltFireBeam")
	
AltFireLaser:
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",5,1)
	Goto Ready+8
	UNMA ABCDEF 1
AltFireLaserHold:
	UNMA GHIJ 1 
	TNT1 A 0 A_Playsound("unmaker/fire", 1, 1, 0)
	TNT1 A 0 A_TakeInventory("UnmakerAmmo", 5)
	UNMA K 2  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", 5, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	UNMA J 0  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", 0, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	UNMA J 0  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", -5, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",5,1)
	Goto Ready+8
	UNMA HG 1 
	TNT1 A 0 A_Refire("AltFireLaserHold2")
	Goto AfterfireLaser
AltFireLaserHold2:
	UNMA GHIJ 1 
	TNT1 A 0 A_Playsound("unmaker/fire", 1, 1, 0)
	TNT1 A 0 A_TakeInventory("UnmakerAmmo", 5)
	UNMA K 2  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", 10, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	UNMA J 0  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", 0, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	UNMA J 0  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", -10, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",5,1)
	Goto Ready+8
	UNMA HG 1 
	TNT1 A 0 A_Refire("AltFireLaserHold3")
	Goto AfterfireLaser
AltFireLaserHold3:
	UNMA GHIJ 1 
	TNT1 A 0 A_Playsound("unmaker/fire", 1, 1, 0)
	TNT1 A 0 A_TakeInventory("UnmakerAmmo", 5)
	UNMA K 2  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", 15, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	UNMA J 0  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", 0, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	UNMA J 0  A_RailAttack(150, 0, 0, "none", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, "UnmakerPuff", -15, 0, 0, 0, 5, 1, "UnmakerLaserSpark", -1)
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",5,1)
	Goto Ready+8
	UNMA JHG 1 
	TNT1 A 0 A_Refire("AltFireLaserHold")
	Goto AfterfireLaser
AltFireBeam:
	TNT1 A 0 A_JumpIfInventory("UnmakerAmmo",100,1)
	Goto BeamReady+8
	TNT1 A 0 A_PlaySound("unmaker/charge", 1)
	UNMB GHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGH 1 A_SetBlend("Orange",0.3,15)
	UNMB IJK 1 A_SetBlend("Orange",0.3,15)
	TNT1 A 0 A_SetBlend("Orange",0.75,70)
	TNT1 A 0 A_PlaySound("unmaker/alt", 1)
	TNT1 A 0 A_TakeInventory("UnmakerAmmo", 100)
	UNMB L 1  A_FireCustomMissile("UnmakerSuperBeam",0,100,0,0)
	UNMB JIHG 1  
	UNMB A 100
	Goto Ready+8
    DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
		Goto InitializeNormalKick
		
		LowKickChecker1:
		TNT1 A 0
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		RIFF A 0 A_FireCustomMissile("KickAttackDetectDowned", 0, 0, 0, 0)
		
		InitializeNOrmalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		UNKI BCD 1
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        UNKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		UNKI I 1
		UNKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+8
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		UNKI BCD 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        UNKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		UNKI I 1
		UNKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+8
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+8
		
	SuperAirKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+8
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0  A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0  A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0  A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_PlaySound("DSSALUTE", 1)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+8
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+8
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+8	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
	TossGrenade:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1 
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready	
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto Ready+8	
		
	Spawn:	
		UNMA P -1
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist",1,"PuristSpawn")
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsAlpha",1,"AlphaSpawn")
		Stop
	PuristSpawn:
		TNT1 A 1
		UNMA M -1 A_SpawnItem("AlphaUnmaker", 1)
		TNT1 A 10
		Stop
	AlphaSpawn:
		TNT1 A 1
		UNMA M -1 A_SpawnItem("AlphaUnmaker", 1)
		TNT1 A 10
		Stop
	}
}

Actor UnmakerLaser
{
  Radius 18
  Height 18
  Speed 40
  Damage 20
  Projectile
  +NOGRAVITY
  MissileType "UnmakerLaserTrail"
  DamageType "Fire"
  DeathSound ""
  Scale 0.1
  
  States
  {
  Spawn:
    TNT1 A 1
    Loop
  Death:
    TNT1 A 0 A_SetScale(1)
	LENR C 1  A_FadeOut(0.02)
    Stop
  }
}

ACTOR UnmakerLaserTrail
{
  Scale 0.1
  +NOCLIP
  +NOGRAVITY
  +THRUGHOST
  States
  {
  Spawn:
	LENR A 1  A_FadeOut(0.02)
	Loop
  }
}

ACTOR UnmakerPuff: BulletPuff
{
  alpha 1
  Scale 1
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +FORCEXYBILLBOARD
  +NOBLOOD
  +PUFFONACTORS
  +EXTREMEDEATH
  +ALWAYSPUFF
  -NOEXTREMEDEATH
  Decal "UnmakerBeamScorch"
  States
  {
  Spawn:
	TNT1 A 0 A_Jump(256, "Decal1", "Decal2")
	
  Melee:
	TNT1 A 0 A_Jump(256, "Decal1", "Decal2")
  
  Decal1:
    UNPF AB 3 
	Stop
  
  Decal2:
    UNPF CDE 2 
	Stop
  }
}
  
ACTOR UnmakerLaserSpark
{ 
    RenderStyle Add
    Scale 0.0125
    Alpha 0.95
    +NOINTERACTION
    +NOGRAVITY
    States
    {
    Spawn:
	YAE5 A 0 NoDelay A_JumpIf(ScaleX <= 0, "NULL")
	YAE5 A 0 A_SetScale(ScaleX-0.00075)
    YAE5 A 3  A_ChangeVelocity (frandom(-0.03, 0.03), frandom(-0.03, 0.03), frandom(-0.03, 0.03), 0)
    YAE5 A 1  A_FadeOut(0.05)
    Loop
    }
}

ACTOR UnmakerBeam : FastProjectile
{
  Radius 18
  Height 18
  Speed 100
  Damage 20
  RenderStyle Add
  Alpha 1
  Projectile
  +NOGRAVITY
  +RIPPER
  MissileType "UnmakerBeamTrail"
  DamageType "Disintegrate"
  DeathSound ""
  Decal "UnmakerBeamScorch"
  Scale 0.04
  
  States
  {
  Spawn:
    TNT1 A 1
    Loop
  Death:
    TNT1 A 0
	TBAL E 0 A_SetScale(0.4)
	TBAL E 0 A_Explode(20,4,0,0,1)
	TBAL EFGHIJ 2 A_CustomMissile("UnmakerSmoke", 1, 0, random (0, 360), 2, random (0, 160))
//	TNT1 AAAAA 19 A_CustomMissile("UnmakerSmoke", 1, 0, random (0, 360), 2, random (0, 160))
    Stop
  }
}

ACTOR UnmakerSuperBeam : FastProjectile
{
  Radius 18
  Height 18
  Speed 100
  Damage 0
  RenderStyle Add
  Alpha 1
  Projectile
  +NOGRAVITY
  +RIPPER
  MissileType "UnmakerSuperBeamTrail"
  DamageType "Disintegrate"
  DeathSound "unmaker/explode"
  Decal "UnmakerSuperBeamScorch"
  Scale 0.2
  
  States
  {
  Spawn:
	TNT1 A 1
    Loop
  Death:
    TNT1 A 0
	TBAL E 0 A_SetScale(2)
	TBAL E 0 A_BFGSpray("UnmakerExtra", 200, 50, 90, 4096, 90)
	TBAL E 0 A_CustomMissile("UnmakerBlast", 0, 0, 0)
	TBAL EFGHIJ 2
    Stop
  }
}

ACTOR UnmakerBeamTrail
{
  RenderStyle Add
  Alpha 1
  Scale 0.04
  +NOCLIP
  +NOGRAVITY
  +THRUGHOST
  States
  {
  Spawn:
	TNT1 A 1 
	ION1 A 0 A_Jump(255,"LoopletA","LoopletB")
	Stop
  LoopletA:
    ION1 A 1  A_FadeOut(0.03)
	TNT1 A 0 A_CustomMissile("UnmakerSuperBeamTrail")
    Loop
  LoopletB:
    ION1 B 1  A_FadeOut(0.03)
	TNT1 A 0 A_CustomMissile("UnmakerSuperBeamTrail")
    Loop
  }
}

ACTOR UnmakerSuperBeamTrail : UnmakerBeamTrail
{
  Scale 0.2
}

ACTOR UnmakerExtra
{
	+NOBLOCKMAP
	+NOGRAVITY
	RenderStyle Add
	Alpha 0.75
	DamageType "Disintegrate"
	States
	{
	Spawn:
		TBAL EFGHIJ 2  A_CustomMissile("UnmakerSmoke", 1, 0, random (0, 360), 2, random (0, 160))
		Stop
	}
}

Actor UnmakerSmoke: ExplosionSmoke
{
Speed 1
Scale 0.5
Alpha 0.1
States
{
Spawn:
	TNT1 A 0
	TNT1 A 0
	
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	BBSP BB 2 A_FadeIn(0.1)
	BBSP B 20
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	BBSP CDEFGHIJKLM 3
	Goto Death
	
Performance:
	TNT1 A 1
	Stop
	}
}

ACTOR UnmakerBlast //From Dreadful Projectile.
{ 
    +NOGRAVITY
    +NOINTERACTION
	+FORCEXYBILLBOARD
	Renderstyle Translucent
	Alpha 0.99
    States
    {
    Spawn:
      TNT1 A 0
      TNT1 A 0 A_SpawnItemEx("UnmakerBlast1")
      TNT1 A 0 A_SpawnItemEx("UnmakerBlast2")
      TNT1 A 0 A_SpawnItemEx("UnmakerBlast3")
      TNT1 A 0 A_SpawnItemEx("UnmakerBlast4")
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("UnmakerSmoke", random(-50, 50), random(-50, 50), random(0, 50), frandom(-5, 5), frandom(-5, 5), frandom(-5, 5), frandom(-180, 180))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("UnmakerSmoke", random(-50, 50), random(-50, 50), random(0, 50), frandom(-5, 5), frandom(-5, 5), frandom(-5, 5), frandom(-180, 180))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("UnmakerSmoke", random(-50, 50), random(-50, 50), random(0, 50), frandom(-5, 5), frandom(-5, 5), frandom(-5, 5), frandom(-180, 180))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("UnmakerSmoke", random(-50, 50), random(-50, 50), random(0, 50), frandom(-5, 5), frandom(-5, 5), frandom(-5, 5), frandom(-180, 180))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("UnmakerSmoke", random(-50, 50), random(-50, 50), random(0, 50), frandom(-5, 5), frandom(-5, 5), frandom(-5, 5), frandom(-180, 180))
      Stop
    }
}

ACTOR UnmakerBlast1 : UnmakerBlast
{ 
    Scale 0.5
	Alpha 0.9
    States
    {
    Spawn:
      TNT1 A 0
      TNT1 A 0 A_FadeOut(0.01)
      TNT1 A 0 A_SetScale(ScaleX+0.07,ScaleY+0.07)
      BLKF A 1 
      Loop
    }
}

ACTOR UnmakerBlast2 : UnmakerBlast
{ 
    Scale 0.75
	Alpha 0.8
    States
    {
    Spawn:
      TNT1 A 0
      TNT1 A 0 A_FadeOut(0.01)
      TNT1 A 0 A_SetScale(ScaleX+0.06,ScaleY+0.06)
      BLKF A 1 
      Loop
    }
}

ACTOR UnmakerBlast3 : UnmakerBlast
{ 
    Scale 1
	Alpha 0.7
    States
    {
    Spawn:
      TNT1 A 0
      TNT1 A 0 A_FadeOut(0.0125)
      TNT1 A 0 A_SetScale(ScaleX+0.05,ScaleY+0.05)
      BLKF A 1 
      Loop
    }
}

ACTOR UnmakerBlast4 : UnmakerBlast
{ 
    Scale 1.5
	Alpha 0.6
    States
    {
    Spawn:
      TNT1 A 0
      TNT1 A 0 A_FadeOut(0.015)
      TNT1 A 0 A_SetScale(ScaleX+0.05,ScaleY+0.05)
      BLKF A 1 
      Loop
    }
}

Actor BFG9000Spawner : RandomSpawner
{
	DropItem "BIG_FUCKING_GUN", 256, 3
	DropItem "Unmaker", 256, 1
}

ACTOR UnmakerAmmo : Ammo
{
   +INVENTORY.IGNORESKILL
   Inventory.MaxAmount 100
	Inventory.ForbiddenTo "Purist", "Alpha"
	Inventory.RestrictedTo "Doomer"
   Inventory.Icon "UNMAP0"
}