Actor Morgwyr : PlayerPawn
{
	Health 125
	Mass 500
	YScale 0.15
	XScale 0.16
	painchance 256
	limitedtoteam 1
	player.forwardmove 0.88
	player.sidemove 0.88
	Player.Maxhealth 125
	Player.DisplayName "Morgwyr"
	Player.startitem "MorgwyrTimeShift"
	player.startitem "MorgwyrAttack"
	Player.StartItem "MorgBatAmmo", 6
	Player.startitem "ArrowSingle", 35
	Player.StartItem "ClassID", 18 // 17
	Player.StartItem "GhoulTeam", 1
	Player.StartItem "MorgTimePass", 1
	player.crouchsprite "FFAC"
	player.scoreicon "MORGST"
	player.soundclass "Morgwyr"
	Player.ColorRange 112, 127
	DamageFactor "GhostbusterExpander", 0.5
	DamageFactor "GhostbusterProton", 1.15
	DamageFactor "CyborgPlasma", 1.15
	DamageFactor "ProtectorPlasma", 1.15
	DamageFactor "HunterFireMagic", 1.15
	DamageFactor "HunterRegularMagic", 1.15
	DamageFactor "HunterSuperFireArrow", 1.15
	DamageFactor "HunterFireArrow", 1.15	
	DamageFactor "WarlockBigFireball", 1.15
	DamageFactor "WarlockFireball", 1.15
	DamageFactor "WarlockMagmaSmall", 1.15
	DamageFactor "PurpleMagic", 0.75
	DamageFactor "BigCurseBall", 0.75	
	DamageFactor "FlaskT3", 0.75
	DamageFactor "PlaneVortex", 0.85
	BloodColor "85 40 40"
	Species "Ghoul"
	+NOSKIN
	+NOICEDEATH
	+QUICKTORETALIATE
	States
	{
	Spawn:
		TNT1 A 0
		FFAC A 1
		FFAC AAAAAAAAA 5 A_JumpIf (momz!=0, "Spawn")
		TNT1 A 0 A_JumpIfInventory("MorgBatAmmo", 6, "Spawn")
		TNT1 A 0 ACS_Execute(987,0)
		Loop
	See:
	    FFAC A 15 A_PlaySoundEx("Morgwyr/Chant", "Body")
		FFAC A 165
		Loop
	Missile:
		FFAC A 1
		Goto Spawn+1
	Pain:
		FFAC A 4
		Goto Spawn
	Pain.HunterIceSpike:
		TNT1 A 0 ACS_ExecuteAlways(451, 0, random(5,8))
		Goto Spawn		
	Pain.FlaskT3:
		TNT1 A 0 A_GiveToTarget("Flask3Heal", 1)
		Goto Pain
	Pain.Maledict:
		CHOK A 0 A_JumpIfInventory("MaledictCooldown", 1, 5)
		CHOK A 0 A_PlaySound("MaledictVictim", 5)
		CHOK A 0 A_GiveInventory("MaledictAmpPower", 1)
		CHOK A 0 A_GiveInventory("MaledictCooldown", 1)
		CHOK A 0 A_GiveToTarget("MaledictStart", 1)
		Goto Spawn
		TNT1 A 0
		Goto Pain		
    Pain.Maledict2:
		TNT1 AAAAAAA 0 A_SpawnItemEx("PurpleParticle",0,0,36,random(1,-1),random(1,-1),random(1,-1),random(0,359),0)
        Goto Pain
	Pain.GhostbusterHorror:
		TNT1 A 0 A_GiveInventory("VisionDimEffect", 1)
		Goto Pain
	Death:
	DeathAnim:
		CHOK A 0 A_GiveToTarget("KilledMorgwyr", 1)
		CHOK A 0 A_GiveToTarget("TotalKillCount", 1)
		CHOK A 0 A_GiveToTarget("GhoulKillCount", 1)
		CHOK A 0 ACS_ExecuteAlways(724, 0)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		CHOK A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,0,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,30,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,60,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,90,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,120,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,150,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,180,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-30,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-60,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-90,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-120,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-150,2)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 45, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 90, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 135, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 180, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 225, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 270, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 315, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 360, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 45, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 90, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 135, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 180, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 225, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 270, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 315, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 360, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -45, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -90, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -135, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -180, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -225, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -270, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -315, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -360, SXF_CLIENTSIDE)
		TNT1 A 0 A_PlaySound("Morgwyr/Die")
		FFAC A 1
		TNT1 A 0 A_SpawnItem("MorgBodyDisappear")
		BLAN A -1
		Stop
	BladeDeath:
		CHOK A 0 A_GiveToTarget("KilledMorgwyr", 1)
		CHOK A 0 A_GiveToTarget("TotalKillCount", 1)
		CHOK A 0 A_GiveToTarget("GhoulKillCount", 1)
		CHOK A 0 ACS_ExecuteAlways(724, 0)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		CHOK A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,0,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,30,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,60,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,90,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,120,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,150,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,180,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-30,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-60,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-90,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-120,2)
		TNT1 A 0 A_CustomMissile("ArchvileFirex",0,0,-150,2)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 45, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 90, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 135, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 180, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 225, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 270, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 315, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 24, 2, 2, 2, 360, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 45, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 90, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 135, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 180, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 225, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 270, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 315, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 10, 10, 12, 2, 2, 0, 360, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -45, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -90, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -135, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -180, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -225, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -270, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -315, SXF_CLIENTSIDE)
		TNT1 H 0 A_SpawnItemEX("DeathSmokeX", 5, 5, 0, 2, 2, 2, -360, SXF_CLIENTSIDE)
		TNT1 A 0 A_PlaySound("Morgwyr/Die")
		FFAC A 1
		TNT1 A 0 A_SpawnItem("MorgBodyDisappear")
		BLAN A -1
		Stop
    Death.MarineShotgun:
        CHOK A 0 A_GiveToTarget("MarineShotgunKill", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarinePistol:
        CHOK A 0 A_GiveToTarget("MarinePistolKill", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarineMachineGun:
        CHOK A 0 A_GiveToTarget("MarineMachineGunKill", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarineGrenade:
        CHOK A 0 A_GiveToTarget("MarineGrenadeKill", 1)
        CHOK A 0 A_GiveToTarget("MarineGrenadeMulti", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarineSuicideGrenade:
        CHOK A 0 A_GiveToTarget("MarineSuicideGrenadeKill", 1)
        Goto DeathAnim
    Death.HunterFireArrow:
        CHOK A 0 A_GiveToTarget("HunterFireArrowKill", 1)
        CHOK A 0 A_GiveToTarget("HunterFireMulti", 1)
        Goto DeathAnim
    Death.HunterIceArrow:
        CHOK A 0 A_GiveToTarget("HunterIceArrowKill", 1)
        Goto DeathAnim
    Death.HunterRegularArrow:
        CHOK A 0 A_GiveToTarget("HunterRegularArrowKill", 1)
        Goto DeathAnim
    Death.HunterLightningRail:
        CHOK A 0 A_GiveToTarget("HunterLightningRailKill", 1)
        CHOK A 0 A_GiveToTarget("HunterLightningMulti", 1)
        Goto DeathAnim
    Death.HunterFireMagic:
        CHOK A 0 A_GiveToTarget("HunterFireMagicKill", 1)
		TNT1 A 0 A_SpawnItemEx("ImmolationEffect", 0, 0, 24)
        Goto DeathAnim
    Death.HunterRegularMagic:
        CHOK A 0 A_GiveToTarget("HunterRegularMagicKill", 1)
        Goto DeathAnim
    Death.HunterIceSpike:
        CHOK A 0 A_GiveToTarget("HunterIceSpikeKill", 1)
        Goto DeathAnim
    Death.HunterLightningMagic:
        CHOK A 0 A_GiveToTarget("HunterLightningMagicKill", 1)
        Goto DeathAnim
    Death.HunterSuperFireArrow:
	Death.HunterSuperFireBurn:
        CHOK A 0 A_GiveToTarget("HunterSuperFireArrowKill", 1)
		CHOK A 0 A_GiveToTarget("HunterFireMulti", 1)
		TNT1 A 0 A_SpawnItemEx("ImmolationEffect", 0, 0, 24)
        Goto DeathAnim
    Death.HunterSuperIceArrow:
        CHOK A 0 A_GiveToTarget("HunterSuperIceArrowKill", 1)
        Goto DeathAnim
    Death.HunterSuperIceArrowTrail:
        CHOK A 0 A_GiveToTarget("HunterSuperIceArrowKill", 1)
        Goto DeathAnim
    Death.HunterSuperIceArrowTrail2:
        CHOK A 0 A_GiveToTarget("HunterSuperIceArrowKill", 1)
        Goto DeathAnim	
    Death.HunterSuperRegularArrow:
        CHOK A 0 A_GiveToTarget("HunterSuperRegularArrowKill", 1)
        Goto DeathAnim
    Death.HunterSuperLightningRail:
        CHOK A 0 A_GiveToTarget("HunterSuperLightningRailKill", 1)
		CHOK A 0 A_GiveToTarget("HunterLightningMulti", 1)
        Goto DeathAnim		
    Death.CyborgPlasma:
        CHOK A 0 A_GiveToTarget("CyborgPlasmaKill", 1)
		TNT1 A 0 A_GiveToTarget("CyborgTaunter", 1)
        Goto DeathAnim
    Death.CyborgCrapPlasma:
        CHOK A 0 A_GiveToTarget("CyborgCrapPlasmaKill", 1)
		TNT1 A 0 A_GiveToTarget("CyborgTaunter", 1)
        Goto DeathAnim
	Death.CyborgJetpackFire:
		TNT1 A 0 A_GiveToTarget("JetpackKill", 1)
		TNT1 A 0 A_GiveToTarget("CyborgFuel", 25)
		TNT1 A 0 A_GiveToTarget("CyborgTaunter", 1)
		Goto DeathAnim	
    Death.GhostbusterProton:
        CHOK A 0 A_GiveToTarget("GhostbusterProtonKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterTrap:
        CHOK A 0 A_GiveToTarget("GhostbusterTrapKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
	Death.GhostbusterHorror:
		SJAS A 0 A_GiveToTarget("GhostbusterHorrorKill", 1)
	    SJAS A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
		Goto DeathAnim
    Death.GhostbusterBlood:
        CHOK A 0 A_GiveToTarget("GhostbusterBloodKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterEcho:
        CHOK A 0 A_GiveToTarget("GhostbusterEchoKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterSoul:
        CHOK A 0 A_GiveToTarget("GhostbusterSoulKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterIceFall:
        CHOK A 0 A_GiveToTarget("GhostbusterIceFallKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterDefilerBall:
        CHOK A 0 A_GiveToTarget("GhostbusterDefilerBallKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
        Goto DeathAnim
	Death.GhostbusterBoneCannon:
		CHOK A 0 A_GiveToTarget("GhostbusterBoneKill", 1)
		CHOK A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
		Goto DeathAnim
	Death.GhostbusterExpander:
		SJAS A 0 A_GiveToTarget("GhostbusterExpanderKill", 1)
		SJAS A 0 A_GiveToTarget("GBMorgwyrUpgrade", 1)
		CHOK A 0 A_GiveToTarget("KilledMorgwyr", 1)
		CHOK A 0 A_GiveToTarget("TotalKillCount", 1)
		CHOK A 0 A_GiveToTarget("GhoulKillCount", 1)
		CHOK A 0 ACS_ExecuteAlways(724, 0)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		CHOK A 0 A_GiveToTarget("CheckAchievements", 1)		
		TNT1 A 0 A_PlaySound("Ghostbuster/Enlarge")
		TNT1 A 0 A_SpawnItem("ExpanderExplosion", 0, 32)
		TNT1 A 0 A_SpawnItemEx("MorgwyrEnlarge_1", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)			
		FFAC A 1
		BLAN A -1
		Stop
    Death.EngineerNail:
        CHOK A 0 A_GiveToTarget("EngineerNailKill", 1)
		TNT1 A 0 A_GiveToTarget("WrenchAmmo", 20)
        Goto DeathAnim
    Death.Pulverizer:
        TNT1 A 0 A_GiveToTarget("EngineerPulvKill", 1)
		TNT1 A 0 A_GiveToTarget("WrenchAmmo", 20)
        Goto DeathAnim
	Death.SawBlade:
        TNT1 A 0 A_GiveToTarget("EngineerSawKill", 1)
		TNT1 A 0 A_GiveToTarget("WrenchAmmo", 20)
        Goto DeathAnim		
	Death.SentryShoot:
		CHOK A 0 A_GiveToTarget("SentryBulletKills", 1)
		TNT1 A 0 A_GiveToTarget("WrenchAmmo", 20)
		Goto DeathAnim
    Death.WarlockFireball:
        CHOK A 0 A_GiveToTarget("WarlockFireballKill", 1)
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim
    Death.WarlockBigFireball:
        CHOK A 0 A_GiveToTarget("WarlockBigFireballKill", 1)
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim
    Death.WarlockIceShards:
        CHOK A 0 A_GiveToTarget("WarlockIceShardsKill", 1)
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim
    Death.WarlockLightning:
        CHOK A 0 A_GiveToTarget("WarlockLightningKill", 1)
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim
    Death.WarlockMagmaSmall:
        CHOK A 0 A_GiveToTarget("WarlockMagmaSmallKill", 1)
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim
    Death.PurpleMagic:
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		TNT1 A 0 A_GiveToTarget("PurpleMagicKill", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim	
	Death.BoneShield:
		TNT1 A 0 A_GiveToTarget("GhoulSouls", 1)
		TNT1 A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
		Goto DeathAnim
	Death.WarlockTeleport:
		TNT1 A 0 A_GiveToTarget("GhoulSouls", 1)
		TNT1 A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
		Goto DeathAnim		
    Death.Maledict:
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		TNT1 A 0 A_GiveToTarget("PurpleMagicKill", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim	
    Death.ShadowBlast:
		TNT1 A 0 A_GiveToTarget("GhoulSouls", 1)
		TNT1 A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim			
    Death.Maledict2:
		CHOK A 0 A_GiveToTarget("GhoulSouls", 1)
		CHOK A 0 A_SpawnItemEx("GhoulSoul", 0, 0, -4, 0, 0, random(4,6), SXF_ABSOLUTEMOMENTUM)
        Goto DeathAnim		
	Death.CyborgPulseMale:
		TNT1 A 0 A_GiveToTarget("CyborgPulseKill", 1)
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("MaleCyborgPulseKill1", 5)
		GoTo DeathAnim
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("MaleCyborgPulseKill2", 5)
		GoTo DeathAnim
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("MaleCyborgPulseKill3", 5)
		GoTo DeathAnim
		TNT1 AA 0 A_PlaySoundEx("MaleCyborgPulseKill4", 5)
	    GoTo DeathAnim
	Death.CyborgPulseFemale:
		TNT1 A 0 A_GiveToTarget("CyborgPulseKill", 1)
		TNT1 A 0 A_PlaySoundEx("fcybtaunt", 5)
		Goto DeathAnim
	Death.CyborgPulseOther:
		TNT1 A 0 A_GiveToTarget("CyborgPulseKill", 1)
		TNT1 A 0 A_PlaySoundEx("cyblolcopy", 5)
		GoTo DeathAnim	
	Death.PlaneShotgun:
		TNT1 A 0 A_GiveToTarget("PlaneShotKills", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("PlaneWalkCheck", 1, 1)
		Goto DeathAnim
		TNT1 A 0 A_GiveToTarget("PlaneDashKill", 1)
		Goto DeathAnim		
	Death.PlaneVortex:
		TNT1 A 0 A_GiveToTarget("PlaneVortexKills", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("PlaneWalkCheck", 1, 1)
		Goto DeathAnim
		TNT1 A 0 A_giveToTarget("PlaneDashKill", 1)
		Goto DeathAnim	
	Death.PlaneBlade:
		TNT1 A 0 A_GiveToTarget("PlaneBladeKill", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("PlaneWalkCheck", 1, 1)
		Goto BladeDeath
		TNT1 A 0 A_giveToTarget("PlaneDashKill", 1)
		Goto BladeDeath
	Death.FlaskT3:
		TNT1 A 0 A_GivetoTarget("Flask3HealBig", 1)
	Death.FlaskT1:
	Death.FlaskT2:
		TNT1 A 0 A_GiveToTarget("FlaskKill", 1)
		Goto DeathAnim
	Death.DeathDart:
		TNT1 A 0 A_GiveToTarget("DartKill", 1)
		Goto DeathAnim
	Death.HeartSeeker:
		TNT1 A 0 A_GiveToTarget("PelletKill", 1)
		Goto DeathAnim	
	Death.ProtectorMissile:
		TNT1 A 0 A_GiveToTarget("ProtMissileKill", 1)
		TNT1 A 0 A_GiveToTarget("ProtectorArmorShard", 1)
		TNT1 A 0 A_GiveToTarget("UpgradeCount", 1)
		Goto DeathAnim
	Death.ProtectorPlasma:
		TNT1 A 0 A_GiveToTarget("ProtPlasmaKill", 1)
		TNT1 A 0 A_GiveToTarget("ProtectorArmorShard", 1)
		TNT1 A 0 A_GiveToTarget("UpgradeCount", 1)
		Goto DeathAnim
	Death.ProtectorLightning:
		TNT1 A 0 A_GiveToTarget("ProtLightningKill", 1)
		TNT1 A 0 A_GiveToTarget("ProtLightningMulti", 1)
		TNT1 A 0 A_GiveToTarget("ProtectorArmorShard", 1)
		TNT1 A 0 A_GiveToTarget("UpgradeCount", 1)
		Goto DeathAnim	
	Death.ProtectorDash:
		TNT1 A 0 A_GiveToTarget("UpgradeCount", 1)
		Goto DeathAnim		
	}
}

Actor MorgwyrAttack : Weapon
{
	Weapon.SlotNumber 1
	inventory.icon "MORWEP"
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Weapon.AmmoUse2 0
   Weapon.AmmoType2 "MorgBatAmmo"
//   Obituary "%o was munched by %k" 
   Weapon.Kickback 0
   Weapon.YAdjust 0
   +INVENTORY.UNDROPPABLE
   +WEAPON.NO_AUTO_SWITCH
   +WEAPON.DONTBOB
   +WEAPON.NOAUTOAIM
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      TNT1 A 0 SetPlayerProperty(0, 0, 0)
      FFAC B 1 A_WeaponReady
      Loop
   Deselect:
      TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
	  FFAC B 1 A_Lower
      Loop
   Select:
      TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_MORG)
      TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
      FFAC B 1 A_Raise
      Goto Select+1
   Fire:
      TNT1 A 0 A_JumpIfInventory("MorgAttackCounter", 1, "Displace")
	  FFAC B 1
	  TNT1 A 0 A_giveInventory("MorgAttackCounter", 1)
	  TNT1 A 0 A_PlayWeaponSound("Morgwyr/Attack")
	  TNT1 A 0 SetPlayerProperty(0, 1, 0)
	  TNT1 A 0 ACS_ExecuteAlways(912, 0, 0)
	  TNT1 A 0 A_Recoil(-18.0)
	  TNT1 A 0 ACS_ExecuteAlways(912, 0, 2)
	  FFAC B 2 Offset(0, 48)
	  TNT1 A 0 A_Recoil(-15.0)
	  FFAC B 2 Offset(0, 64)
	  TNT1 A 0 A_Recoil(-12.0)
	  FFAC B 2 Offset(0, 72) A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
	  TNT1 A 0 A_Recoil(-9.0)
	  FFAC B 2 Offset(0, 80) A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
	  TNT1 A 0 A_Stop
	  FFAC B 2 Offset(0, 84) A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
	  TNT1 A 0 SetPlayerProperty(0, 0, 0)
	  FFAC B 1 Offset(0,80) A_WeaponReady(WRF_NOBOB | WRF_NOPRIMARY)
	  FFAC B 1 Offset(0,72) A_WeaponReady(WRF_NOBOB | WRF_NOPRIMARY)
	  FFAC B 1 Offset(0,64) A_WeaponReady(WRF_NOBOB | WRF_NOPRIMARY)
	  FFAC B 1 Offset(0,56) A_WeaponReady(WRF_NOBOB | WRF_NOPRIMARY)
	  FFAC B 1 Offset(0,48) A_WeaponReady(WRF_NOBOB | WRF_NOPRIMARY)
	  FFAC B 1 Offset(0,40) A_WeaponReady(WRF_NOBOB | WRF_NOPRIMARY)
	  Goto Ready
   NoAttack:
	  FFAC B 3
	  Goto Ready
   AltFire:
	  FFAC B 1
	  TNT1 A 0 A_JumpIfInventory("MorgBatAmmo", 1, "Continue")
	  Goto NoAttack
   Continue:
	  FFAC B 3 Offset(0, 48)
	  FFAC B 3 Offset(0, 64)
	  TNT1 AAAAAA 0 A_FireCustomMissile("MorgwyrBats", random(-5, 5), 0, random(-10,10), 0, 0, random(-4, 4))
	  TNT1 A 0 A_TakeInventory("MorgBatAmmo", 1)
	  FFAC B 3 Offset(0, 72)
	  FFAC B 3 Offset(0, 80)
	  FFAC B 3 Offset(0, 72)
	  FFAC B 3 Offset(0, 64)
	  FFAC B 3 Offset(0, 56)
	  FFAC B 3 Offset(0, 48)
	  FFAC B 3 Offset(0, 40)
	  Goto Ready
   Displace:
      TNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(914, 0), "Success")
	  Goto NoAttack
   Success:
	  TNT1 A 0 ACS_ExecuteAlways(912, 0, 1)
	  TNT1 A 0 A_GiveInventory("MorgSwapped", 1)
	  TNT1 A 0 A_giveInventory("MorgUsedDisplacement", 1)
      FFAC B 5 SetPlayerProperty(0, 0, 0)
	  Goto Ready
   }
}

// Can not attack again for this much
Actor MorgAttackCounter : PowerDamage
{
	powerup.duration -3
	damagefactor "normal", 1.0
}

// Can not displace again for this much
Actor MorgDisplaceCounter : PowerDamage
{
	powerup.duration 85
	damagefactor "normal", 1.0
}

Actor MorgSwapped : powerDamage
{
	powerup.duration -1
	damagefactor "normal", 1.0
}

Actor MorgUsedDisplacement : Inventory
{
	inventory.maxamount 1
}

// If human count less than or equal to 4, this regenerates. Otherwise, it will never regenerate.
Actor MorgBatAmmo : Ammo
{
	inventory.amount 1
	inventory.maxamount 6
	inventory.icon "GHOULAMM"
	+IGNORESKILL
}

Actor MorgHeal : Health
{
	inventory.amount 1
	inventory.maxamount 125
}

Actor MorgBodyDisappear
{
	YScale 0.15
	Xscale 0.16
	Alpha 1.0
	Renderstyle Add
	+NOINTERACTION
	
	States
	{
		Spawn:
			FFAC A 3 A_Fadeout(0.09)
		Loop
	}
}

Actor MorgDamager
{
    PROJECTILE
    +FORCERADIUSDMG
    Speed 30
    Radius 2
    Height 2
    Obituary "%o was consumed by %k." 
    damagetype "MorgMelee"
    damage (25)
    States
	{
    Spawn:
        TNT1 A 0
        TNT1 A 1 A_Explode(36, 80, 0)
        Stop
    }
}

Actor MorgDamageItem : CustomInventory
{
	inventory.maxamount 100
	+AUTOACTIVATE
	
	States
	{
		Pickup:
		Use:
			TNT1 A 0 A_SpawnItem("MorgDamager")
		Stop
	}
}

Actor DisplaceEffectSpawner : CustomInventory
{
	inventory.maxamount 100
	+AUTOACTIVATE
	
	States
	{
		Pickup:
		Use:
			TNT1 A 0 A_SpawnItem("MorgDisplaceEffect")
		Stop
	}
}

Actor MorgDisplacer
{
	Height 24
	Radius 16
	+FLOORHUGGER
	-TELESTOMP
	Renderstyle Add
	Scale 0.75
	Alpha 0.85	
	
	States
	{
		Spawn:
			TNT1 A 0
			MDIS AAAA 27 Bright A_Fadeout(0.15)
		Stop
	}
}

Actor MorgDisplaceEffect
{
	Height 1
	Radius 1
	+NOGRAVITY
	Renderstyle Add
	Alpha 0.85
	Scale 1.3
	
	States
	{
		spawn:
			TNT1 A 0
			TNT1 AA 0 A_PlaySound("Morgwyr/Displace")
			X118 ABCDEFGHIKLMNOPQRSTUVWXYZ 2 A_Fadeout(0.022)
		Wait
	}
}

ACTOR MorgwyrBats
{
  Radius 6
  Height 12
  Speed 40 
  Damage (random(9, 10))
  DamageType "MorgBat"
  PROJECTILE
  +NoGravity
  seesound "Morgwyr/bats"
  Obituary "%o was drained of all life by %k's bats."
  states
  {
  Spawn:
    VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
//	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
//	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
    Goto death
  Death:
	TNT1 A 0 A_PlaySound("Morgwyr/BatHit")
    TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
    VAM4 A 2 A_SetTranslucent(0.9) 
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.8)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.7)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 A 2 A_SetTranslucent(0.6)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.5)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.4)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 A 2 A_SetTranslucent(0.3)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.2)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.1)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
    Stop
  }
}

ACTOR BatTrail
{
  Radius 8
  Height 16
  RenderStyle Add
  Alpha 0.8
  Scale 0.3
  PROJECTILE
  +Randomize
  +NoGravity
  +Float
  +CLIENTSIDEONLY
  states
  {
  Spawn:
    VAM5 ABCDEFGHI 2 BRIGHT
    Goto death
  Death:
	VAM5 I 1
    Stop
  }
}

Actor BatCloudSpawner
{
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +NONSHOOTABLE
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItemEx("BatCloud", 0, 0, 0, random(-2, 2), random(-2, 2), random(-1, 1))
    Stop
  }
}

Actor BatCloud
{
  renderstyle translucent
  alpha 0.9
  Scale 0.2
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +NONSHOOTABLE
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    VAM6 A 0
    VAM6 A 0 A_Jump(128, 6)
    VAM6 ABCDE 3 A_FadeOut(0.10)
    Goto Spawn+1
    VAM6 F 0 A_Jump(128, 6)
    VAM6 FGHIJ 3 A_FadeOut(0.10)
    Goto Spawn+7
    VAM6 KLMNO 3 A_FadeOut(0.10)
    Goto Spawn+12
  }
}

actor MorgPiece1
{
	Xscale 0.16
	YScale 0.15
	Alpha 1.0
	Renderstyle Translucent
    +DOOMBOUNCE
    PROJECTILE
    -NOGRAVITY
    -NOBLOCKMAP
    -NOTELEPORT
    -SOLID
    Radius 3
    Damage 0
    bouncefactor 0.5
    SeeSound ""
    Speed 5
	
	States
	{
		Spawn:
			FFAC C 4
		Loop
		Death:
			FFAC C 2 A_FadeOut(0.1)
		Stop
	}
}

Actor MorgPiece2 : MorgPiece1
{
	States
	{
		Spawn:
			FFAC D 4
		Loop
		Death:
			FFAC D 2 A_FadeOut(0.1)
		Stop
	}
}

Actor MorgPiece3 : MorgPiece1
{
	States
	{
		Spawn:
			FFAC E 4
		Loop
		Death:
			FFAC E 2 A_FadeOut(0.1)
		Stop
	}
}

Actor MorgTimeTester {
    Scale 0.75
	Height 16
	Radius 16
	-SOLID
    States {
	    Spawn:
		    PLAY A 70
		Stop
	}
}

Actor MorgwyrTimeShift : CustomInventory {
	Inventory.Amount 1
	Inventory.MaxAmount 1
	+INVBAR
	+INVENTORY.UNDROPPABLE
	inventory.icon "MORGSHFT"
	States {
		Use:
			TNT1 A 0 A_JumpIfInventory("MorgTimePass", 1, "Failed")
			TNT1 A 0 A_GiveInventory("MorgwyrShifting", 1)
			TNT1 A 0 acs_executealways(911, 0, 1, 0, 0)
		Stop
		Failed:
			TNT1 A 0
		Fail
	}
}

// Make sure 2 seconds have really passed before using the time shift
Actor MorgTimePass : Inventory {
    inventory.maxamount 1
}

Actor MorgwyrShifting : CustomInventory {
	inventory.maxamount 1
	+AUTOACTIVATE
	+ALWAYSPICKUP
	States {
		Pickup:
			TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
			TNT1 A 0 A_ChangeFlag("SOLID", 0)
			TNT1 A 0 A_ChangeFlag("NOGRAVITY", 1)
			TNT1 A 0 A_SetTranslucent(0.25)
		Stop
	}
}

Actor MorgwyrShiftingDone : CustomInventory {
	inventory.maxamount 1
	+AUTOACTIVATE
	+ALWAYSPICKUP
	States {
		Pickup:
			TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
			TNT1 A 0 A_ChangeFlag("SOLID", 1)
			TNT1 A 0 A_ChangeFlag("NOGRAVITY", 0)
			TNT1 A 0 A_SetTranslucent(1.0)
		Stop
	}
}