Actor Creeper : PlayerPawn
{
	Health 70
	Mass 80
	Limitedtoteam 1
	bloodcolor "Green"
	height 18
	radius 14
	scale 0.4
	Player.attackzoffset 8
	Player.forwardmove 0.58
	Player.sidemove 0.58
	Player.viewheight 16
	Player.Maxhealth 70
	Player.DisplayName "Creeper"
	Player.ColorRange 112, 127
	Player.soundclass "creeper"
	Player.StartItem "CreeperWeaponStun"
	Player.StartItem "CreeperWeaponDrain"
	Player.StartItem "ArrowSingle", 35
	Player.StartItem "GhoulAmmo", 3
	Player.StartItem "ClassID", 12 // 11
	Player.StartItem "GhoulTeam", 1
	Player.StartItem "HealBallsFired", 3
	Player.StartItem "IsCreeper", 1
	Player.StartItem "CreeperMaxCharge", 30
	Player.crouchsprite "CRE6"
	Player.scoreicon "CREEPST"
	DamageFactor "HunterLightningRail", 2.0
	DamageFactor "HunterSuperLightningRail", 2.0
	DamageFactor "CyborgPlasma", 1.1
	DamageFactor "GBDefilerBall", 0.85
	DamageFactor "WarlockBigFireball", 0.9
	DamageFactor "HunterSuperIceArrowTrail2", 0.9
	DamageFactor "GravityObjectFired", 0.9
	DamageFactor "GhostbusterIceFall", 0.6
	DamageFactor "GhostbusterSoul", 0.5	
	Species "Ghoul"
	+NOICEDEATH
	+NOSKIN
	+DONTBLAST
	+SHADOW
	+FORCEXYBILLBOARD
	+QUICKTORETALIATE
	States
	{
	Spawn:
		CRE6 A 1
		CRE6 A 5 A_StopSoundEx("Body") 
		CRE6 AAAAAAA 6 A_JumpIf (momz!=0, "Spawn")
		CRE6 A 3 A_ClearShadow
		CRE6 A 0 A_JumpIfInventory("GhoulAmmo", 3, "Spawn")
		TNT1 A 0 A_JumpIfInventory("CreeperMaxCharge", 1, "GiveAmmo")
		Goto Spawn
	GiveAmmo:
		TNT1 A 0 ACS_Execute(987,0)
		Goto Spawn
	See:
		CRE6 A 0 A_PlaysoundEx("creeperact", "Body")
		CRE6 A 3 A_SetShadow
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		CRE6 A 3
		CRE7 A 3
		Loop
	Missile:
		CRE6 A 2 A_SetShadow
		CRE6 A 2 A_SetShadow
		Goto Spawn
	Pain:
		CRE6 A 0 A_GiveInventory("Creeperpainboost",1)
		CRE6 A 8 A_PlaySoundEx("creeperpain", "Body")
		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 Pain+1
		TNT1 A 0
		Goto Pain+1		
    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+1	
	Pain.GhostbusterHorror:
		TNT1 A 0 A_GiveInventory("VisionDimEffect", 1)
		Goto Pain
	Death:
	DeathAnim:
		CRE6 A 0 A_GiveToTarget("KilledCreeper", 1)
		CRE6 A 0 A_GiveToTarget("TotalKillCount", 1)
		CRE6 A 0 A_GiveToTarget("GhoulKillCount", 1)
		CRE6 A 0 ACS_ExecuteAlways(724, 0)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		CRE6 A 0 A_GiveToTarget("CheckAchievements", 1)
		CRE6 Z 0 A_SpawnItem("Creeperdeath")
		CRE6 Z 1 A_NoBlocking
		CRE6 Z 1 A_Fall
		CRE6 Z -1
		Stop
	BladeDeath:
		CRE6 A 0 A_GiveToTarget("KilledCreeper", 1)
		CRE6 A 0 A_GiveToTarget("TotalKillCount", 1)
		CRE6 A 0 A_GiveToTarget("GhoulKillCount", 1)
		CRE6 A 0 ACS_ExecuteAlways(724, 0)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		CRE6 A 0 A_GiveToTarget("CheckAchievements", 1)
		CRE6 Z 0 A_SpawnItem("Creeperdeath2", 4)
		CRE6 Z 0 A_SpawnItem("Creeperdeath3", -4)
		CRE6 Z 1 A_NoBlocking
		CRE6 Z 1 A_Fall
		CRE6 Z -1
		stop
    Death.MarineShotgun:
        CRE6 A 0 A_GiveToTarget("MarineShotgunKill", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarinePistol:
        CRE6 A 0 A_GiveToTarget("MarinePistolKill", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarineMachineGun:
        CRE6 A 0 A_GiveToTarget("MarineMachineGunKill", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarineGrenade:
        CRE6 A 0 A_GiveToTarget("MarineGrenadeKill", 1)
        CRE6 A 0 A_GiveToTarget("MarineGrenadeMulti", 1)
		TNT1 A 0 A_GiveToTarget("AmmoSatchel2", 1)
        Goto DeathAnim
    Death.MarineSuicideGrenade:
        CRE6 A 0 A_GiveToTarget("MarineSuicideGrenadeKill", 1)
        Goto DeathAnim
    Death.HunterFireArrow:
        CRE6 A 0 A_GiveToTarget("HunterFireArrowKill", 1)
        CRE6 A 0 A_GiveToTarget("HunterFireMulti", 1)
		TNT1 A 0 A_SpawnItemEx("ImmolationEffectSmall", 0, 0, 24)
        Goto DeathAnim
    Death.HunterIceArrow:
        CRE6 A 0 A_GiveToTarget("HunterIceArrowKill", 1)
        Goto DeathAnim
    Death.HunterRegularArrow:
        CRE6 A 0 A_GiveToTarget("HunterRegularArrowKill", 1)
        Goto DeathAnim
    Death.HunterLightningRail:
        CRE6 A 0 A_GiveToTarget("HunterLightningRailKill", 1)
        CRE6 A 0 A_GiveToTarget("HunterLightningMulti", 1)
        Goto DeathAnim
    Death.HunterFireMagic:
        CRE6 A 0 A_GiveToTarget("HunterFireMagicKill", 1)
		TNT1 A 0 A_SpawnItemEx("ImmolationEffectSmall", 0, 0, 24)
        Goto DeathAnim
    Death.HunterRegularMagic:
        CRE6 A 0 A_GiveToTarget("HunterRegularMagicKill", 1)
        Goto DeathAnim
    Death.HunterIceSpike:
        CRE6 A 0 A_GiveToTarget("HunterIceSpikeKill", 1)
        Goto DeathAnim
    Death.HunterLightningMagic:
        CRE6 A 0 A_GiveToTarget("HunterLightningMagicKill", 1)
        Goto DeathAnim
    Death.HunterSuperFireArrow:
	Death.HunterSuperFireBurn:
        CRE6 A 0 A_GiveToTarget("HunterSuperFireArrowKill", 1)
		CRE6 A 0 A_GiveToTarget("HunterFireMulti", 1)
		TNT1 A 0 A_SpawnItemEx("ImmolationEffectSmall", 0, 0, 24)
        Goto DeathAnim
    Death.HunterSuperIceArrow:
        CRE6 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:
        CRE6 A 0 A_GiveToTarget("HunterSuperRegularArrowKill", 1)
        Goto DeathAnim
    Death.HunterSuperLightningRail:
        CRE6 A 0 A_GiveToTarget("HunterSuperLightningRailKill", 1)
		CRE6 A 0 A_GiveToTarget("HunterLightningMulti", 1)
        Goto DeathAnim
    Death.CyborgPlasma:
        CRE6 A 0 A_GiveToTarget("CyborgPlasmaKill", 1)
		CRE6 A 0 A_GiveToTarget("CyborgCreeperLowHPKill", 1)
		TNT1 A 0 A_GiveToTarget("CyborgTaunter", 1)
        Goto DeathAnim
    Death.CyborgCrapPlasma:
        CRE6 A 0 A_GiveToTarget("CyborgCrapPlasmaKill", 1)
		CRE6 A 0 A_GiveToTarget("CyborgCreeperLowHPKill", 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("CyborgCreeperLowHPKill", 1)
		TNT1 A 0 A_GiveToTarget("CyborgTaunter", 1)
		Goto DeathAnim	
    Death.GhostbusterProton:
        CRE6 A 0 A_GiveToTarget("GhostbusterProtonKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterTrap:
        CRE6 A 0 A_GiveToTarget("GhostbusterTrapKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
	Death.GhostbusterHorror:
		SJAS A 0 A_GiveToTarget("GhostbusterHorrorKill", 1)
	    SJAS A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
		Goto DeathAnim
    Death.GhostbusterBlood:
        CRE6 A 0 A_GiveToTarget("GhostbusterBloodKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterEcho:
        CRE6 A 0 A_GiveToTarget("GhostbusterEchoKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterSoul:
        CRE6 A 0 A_GiveToTarget("GhostbusterSoulKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterIceFall:
        CRE6 A 0 A_GiveToTarget("GhostbusterIceFallKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
    Death.GhostbusterDefilerBall:
        CRE6 A 0 A_GiveToTarget("GhostbusterDefilerBallKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
        Goto DeathAnim
	Death.GhostbusterBoneCannon:
		CRE6 A 0 A_GiveToTarget("GhostbusterBoneKill", 1)
		CRE6 A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
		Goto DeathAnim
	Death.GhostbusterExpander:
		SJAS A 0 A_GiveToTarget("GhostbusterExpanderKill", 1)
		SJAS A 0 A_GiveToTarget("GBCreeperUpgrade", 1)
		CRE6 A 0 A_GiveToTarget("KilledCreeper", 1)
		CRE6 A 0 A_GiveToTarget("TotalKillCount", 1)
		CRE6 A 0 A_GiveToTarget("GhoulKillCount", 1)
		CRE6 A 0 ACS_ExecuteAlways(724, 0)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		CRE6 A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_Fall
		TNT1 A 0 A_PlaySound("Ghostbuster/Enlarge")
		TNT1 A 0 A_SpawnItem("ExpanderExplosion", 0, 32)
		TNT1 A 0 A_SpawnItemEx("CreepEnlarge_1", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)		
		CRE6 A 1
		BLAN A -1
		Stop	
    Death.EngineerNail:
        CRE6 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 BladeDeath		
	Death.SentryShoot:
		CRE6 A 0 A_GiveToTarget("SentryBulletKills", 1)
		TNT1 A 0 A_GiveToTarget("WrenchAmmo", 20)
		Goto DeathAnim
    Death.WarlockFireball:
        CRE6 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)
        TNT1 A 0 A_SpawnItemEx("ImmolationEffectSmall", 0, 0, 24)
		Goto DeathAnim
    Death.WarlockBigFireball:
        CRE6 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)
        TNT1 A 0 A_SpawnItemEx("ImmolationEffectSmall", 0, 0, 24)
		Goto DeathAnim
    Death.WarlockIceShards:
        CRE6 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:
        CRE6 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:
        CRE6 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.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.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.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.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.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.CyborgPulseMale:
		TNT1 A 0 A_GiveToTarget("CyborgPulseKill", 1)
		TNT1 A 0 A_giveToTarget("CyborgCreeperLowHPKill", 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 Creeperdeath
{
	Height 10
	Radius 10
	-SOLID
	Scale 0.5
	alpha 1.0
	renderstyle translucent
	Speed 5
	States
	{
	Spawn:
		CREE D 0
		CREE D 0 A_Playsound("creeperdie")
		CREE D 1 A_FadeOut(0.05)
		CREE D 0 A_SpawnItemEx ("Creeperdeathfx", 0, 0, 0, 0, 0, 0, 0, 128, 0) 
		CREE D 0 A_Wander
		Goto spawn+2
	}
}

actor Creeperdeathfx
{
	+NOGRAVITY
	- SOLID
	+CLIENTSIDEONLY 
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
		Stop
	}
}

Actor CreeperWeaponStun : Weapon
{
   Weapon.SlotNumber 1
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   inventory.icon "CREEPATT"
   Obituary "%k sucked out %o's soul." 
   Weapon.AmmoType2 "GhoulAmmo"
   Weapon.AmmoGive 0
   Weapon.AmmoUse2 0
   Weapon.Kickback 0
   //+WEAPON.MELEEWEAPON 
   +WEAPON.NOALERT
   +INVENTORY.UNDROPPABLE
   +WEAPON.ALT_AMMO_OPTIONAL
   +WEAPON.NOAUTOAIM
   Weapon.YAdjust 0
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      CREW A 1 A_WeaponReady
      Loop
   Deselect:
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
	  CREW A 1 A_Lower
      Loop
   Select:
      TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_CREEPER)
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
      CREW A 1 A_Raise
      Goto Select+1
   Fire:
     CREW A 0 A_FireCustomMissile("CreeperAttack")
     //CREW A 0 A_FireBullets(0, 0, -1, 800, "CreeperAttackPuff", FBF_NORANDOM | FBF_NOFLASH, 78)
	 CREW ABCDEFGH 1
	 CREW IJKLMNO 3
	 goto Ready
   Altfire:
   	 CREW A 0 A_JumpIfInventory("GhoulAmmo", 1, "StunBall")
	 Goto Ready
   StunBall:
	 CREW A 0 A_TakeInventory("GhoulAmmo", 1)
     CREW A 0 A_FireCustomMissile("CreeperBall", 0, 1, 0, 0)
	 CREW A 0 A_GiveInventory("CreeperUsedBall", 1)
     CREW AON 3
	 CREW MNO 4
	 Goto Ready
   }
}

Actor CreeperWeaponDrain : CreeperWeaponStun
{
   Weapon.SlotNumber 1
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   inventory.icon "CREEPAT2"
   Obituary "%k sucked out %o's soul." 
   Weapon.AmmoType2 "GhoulAmmo"
   Weapon.AmmoGive 0
   Weapon.AmmoUse2 0
   Weapon.Kickback 0
   //+WEAPON.MELEEWEAPON 
   +WEAPON.NOALERT
   +INVENTORY.UNDROPPABLE
   +WEAPON.ALT_AMMO_OPTIONAL
   +WEAPON.NOAUTOAIM
   Weapon.YAdjust 0
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      CRE2 A 1 A_WeaponReady
      Loop
   Deselect:
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
	  CRE2 A 1 A_Lower
      Loop
   Select:
      TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
      CRE2 A 1 A_Raise
      Loop
   Fire:
	 CREW A 0 A_FireCustomMissile("CreeperAttack")
     //CREW A 0 A_FireBullets(0, 0, -1, 800, "CreeperAttackPuff", FBF_NORANDOM | FBF_NOFLASH, 78)
	 CRE2 ABCDEFGH 1
	 CRE2 IJKLMNO 3
	 goto Ready
   Altfire:
	 CRE2 A 1
	 CRE2 A 0 A_JumpIfInventory("CreeperHealBallCooldown", 1, "Ready")
	 CRE2 A 0 A_JumpIfInventory("GhoulAmmo", 3, 1)
	 Goto Ready
	 TNT1 A 0 A_JumpIfInventory("HealBallsFired", 1, "Success")
   Goto Ready
   Success:
     CRE2 A 1
	 CRE2 A 0 A_TakeInventory("GhoulAmmo", 3)
     CRE2 A 0 A_FireCustomMissile("CreeperHealBall",0,0,0,0)
	 CRE2 A 0 A_TakeInventory("HealBallsFired", 1)
	 CRE2 A 0 A_GiveInventory("CreeperUsedBall", 1)
	 CRE2 A 0 A_PlaySound("CreeperHealBallFire", CHAN_VOICE)
	 CRE2 A 0 A_GiveInventory("CreeperHealBallCooldown", 1)
	 TNT1 A 0 ACS_executeAlways(908, 0, 5)
     CRE2 AON 3
	 CRE2 MNO 4
	 Goto Ready
   }
}

actor CreeperBall
{
	speed 42
	damage (random(4,6))
	damagetype "CreepStun"
	obituary "%k was patient enough to kill %o with %p balls." 
	height 8
	radius 10
	renderstyle add
	scale 0.6
	alpha 1.0
	PROJECTILE
	decal "Creeperballdecal"
	seesound "CreeperBall"
	deathsound "CreeperBallD"
	States
	{
	Spawn:
		SRBA ABCD 3 A_FadeOut(0.1)
		Loop
		Death:
		SRBA EFGHIJ 3 bright A_SetTranslucent(1.0, 1)
		Stop
	}
}

actor CreeperAttackPuff {
	Obituary "%k sucked out %o's soul." 
	damagetype "CreeperMelee"
	+NOEXTREMEDEATH
	+DONTREFLECT
	+PUFFONACTORS
	+BLOODLESSIMPACT
	+MTHRUSPECIES
	States {
		Spawn:
			TNT1 A 0
		Stop
	}
}

actor CreeperAttack
{
	speed 34
	Height 5
	Obituary "%k sucked out %o's soul." 
	damage 300
	damagetype "CreeperMelee"
	Radius 4
	PROJECTILE
	+NOEXTREMEDEATH
	+DONTREFLECT
	States
	{
	Spawn:
		TNT1 A 2
		Stop
	}
}

actor Creeperpainboost : PowerupGiver
{
  inventory.maxamount 0
  powerup.duration 21
  powerup.color "00 00 00", 0.0
  powerup.type "Speed"
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    TNT1 A 6
    loop
  }
}

Actor CreeperHealMode : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
}

Actor CreeperHealBallCooldown : Timer
{
	Powerup.Duration -10
}

Actor CreeperUsedBall : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
}

Actor CreeperHealBall
{
	Speed 42
	Damage (25)
	DamageType "CreeperHealBall"
	Obituary "%k sucked the life out of %o with creeper leech balls." 
	Height 12
	Radius 9
	Scale 0.75
	//Decal "Creeperballdecal"
	SeeSound "CreeperHealBallFire"
	Translation "0:255=176:191"
	Alpha 0.85
	RenderStyle Add
	PROJECTILE
	States
	{
	Spawn:
		SRBA ABCD 3
		Loop
	Death:
		TNT1 AA 0 A_PlaySoundEx("Creeper/HBallExplode", 5)
		TNT1 A 1 A_SpawnItemEx("CreeperHealBallDeath")
		Stop
	}
}

Actor CreeperHealBallDeath
{
	Speed 42
	Height 12
	Radius 9
	Scale 0.75
	Alpha 0.85
	Renderstyle Add
	+NOINTERACTION
	+NOCLIP
	States
	{
	Spawn:
		SRBB EFGHIJ 3 bright A_Fadeout(0.15)
		Stop
	}
}

Actor HealBallsFired : Ammo
{
	Inventory.Amount 1 // 1
	Inventory.MaxAmount 32 // 10
	+IGNORESKILL
}

ACTOR Creeperdeath2
{
	Height 10
	Radius 10
	-SOLID
	Scale 0.5
	alpha 1.0
	renderstyle translucent
	Speed 5
	States
	{
	Spawn:
		SCRP A 0
		SCRP A 0 A_Playsound("creeperdie")
		SCRP A 1 A_FadeOut(0.01)
		SCRP A 0 A_SpawnItemEx ("Creeperdeathfx", 0, 0, 0, 0, 0, 0, 0, 64, 0) 
		SCRP A 0 A_Wander
		Goto spawn+2
	}
}

ACTOR Creeperdeath3
{
	Height 10
	Radius 10
	-SOLID
	Scale 0.5
	alpha 1.0
	renderstyle translucent
	Speed 5
	States
	{
	Spawn:
		SCRP B 0
		SCRP B 0
		SCRP B 1 A_FadeOut(0.01)
		SCRP B 0 A_SpawnItemEx ("Creeperdeathfx", 0, 0, 0, 0, 0, 0, 0, 32, 0) 
		SCRP B 0 A_Wander
		Goto spawn+2
	}
}

Actor CreeperMaxCharge : Inventory {
    inventory.maxamount 0xFF
}