Actor Choke : PlayerPawn
{
	Health 150
	Mass 700
	Scale 0.8
	BloodType "ChokeBlood"
	Species "Ghoul"
	Player.ForwardMove 1.6//1.5
	Player.SideMove 1.4//1.2
	Player.MaxHealth 200
	Player.DisplayName "Choke"
	Player.StartItem "IsGhoul", 1
	Player.StartItem "ChokeTeeth"
	Player.StartItem "SoundToken", 1
	Player.StartItem "SpecialAbility", 1
	Player.StartItem "ClassID", 19
	Player.CrouchSprite "CHOK"
	Player.ScoreIcon "CHOKEST"
	Player.SoundClass "Choke"
	Player.ColorRange 112, 127
	Damagefactor "Divine", 1.1
	Damagefactor "ThrottlePews", 0.7
	Damagefactor "Bluefire", 0.0
	Damagefactor "fire2", 1.2
	Damagefactor "RenegadeFire", 1.2
	Damagefactor "normal", 0.9
	Damagefactor "ChexWarrior", 0.9
	Damagefactor "AntiAirBolt", 0.7
	Damagefactor "ice2", 0.4
	Damagefactor "Altice2", 0.4
	Damagefactor "Ice", 0.4
	Damagefactor "minion", 0.0
	Damagefactor "ZombieIce", 0.0
    Damagefactor "ZombiePoison", 0.0
	Damagefactor "ZombieSlaps", 0.0
	Damagefactor "Tenebra", 0.0
	Damagefactor "Judgement", 0.0
	LimitedToTeam 1
	+NOICEDEATH
	+QUICKTORETALIATE
	States
	{
	Spawn:
		CHOK A 0 A_Changeflag("shootable",true)
		CHOK A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK A 0 A_JumpIfInventory("ChokeBarrageActivated",1,"ChokeBarrageAnimation")
		CHOK A 0 A_JumpIfInventory("Clip",1,"Spit")
		CHOK A 1 Setplayerproperty(0,0,4)
		CHOK A 0
		Goto Spawn+1
	See:
		CHOK A 0 A_JumpIfHealthLower(100,"INeedHealingSee")
		CHOK A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK B 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		CHOK B 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK A 0 A_JumpIfInventory("ChokeBarrageActivated",1,"ChokeBarrageAnimation")
		CHOK A 0 A_JumpIfInventory("Clip",1,"Spit")
		CHOK B 2
		CHOK A 0 A_JumpIfInventory("ChokeBarrageActivated",1,"ChokeBarrageAnimation")
		CHOK A 0 A_JumpIfInventory("Clip",1,"Spit")
		CHOK C 2
		Loop
	INeedHealingSee:
		CHOK A 0 A_SpawnItemEx("GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		CHOK A 0 A_SpawnItemEx("64GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		CHOK A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK B 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		CHOK B 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK A 0 A_JumpIfInventory("ChokeBarrageActivated",1,"ChokeBarrageAnimation")
		CHOK A 0 A_JumpIfInventory("Clip",1,"Spit")
		CHOK B 2
		CHOK A 0 A_JumpIfInventory("ChokeBarrageActivated",1,"ChokeBarrageAnimation")
		CHOK A 0 A_JumpIfInventory("Clip",1,"Spit")
		CHOK C 2
		Goto Spawn
	Dancing:
		CHOK B 0 A_Changeflag("shootable",true)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK B 0 Setplayerproperty(0,1,4)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK BBBBBBBBBBBBBBBB 1
		CHOK B 0 ThrustThingZ(0,20,0,0)
		CHOK B 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK BBBBBBBBBBBBBBBB 1
		CHOK B 0 ThrustThingZ(0,20,0,0)
		CHOK B 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK BBBBBBBBBBBBBBBB 1
		CHOK B 0 ThrustThingZ(0,20,0,0)
		CHOK B 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK BBBBBBBBBBBBBBBB 1
		CHOK B 0 ThrustThingZ(0,20,0,0)
		CHOK B 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK BBBBBBBBBBBBBBBB 1
		CHOK B 0 ThrustThingZ(0,20,0,0)
		CHOK B 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		CHOK BBBBBBBBBBBBBBBB 1
		CHOK B 0 ThrustThingZ(0,20,0,0)
		CHOK B 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		CHOK B 1 Setplayerproperty(0,0,4)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_TakeInventory("AriaInfluence",10)
		Goto Spawn
	DisableTheGhoul:
		CHOK B 0 A_Changeflag("shootable",false)
		CHOK B 0 A_Changeflag("shootable",false)
		CHOK B 0 Setplayerproperty(0,1,4)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 90 Bright
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		CHOK B 0 A_Changeflag("shootable",true)
		CHOK B 0 A_Changeflag("shootable",true)
		CHOK B 0 Setplayerproperty(0,0,4)
		CHOK B 0 Setplayerproperty(0,0,4)
		CHOK B 0 A_TakeInventory("GhoulDisableTrigger",15)
		Goto Spawn
	Missile:
		CHOK E 0 A_Changeflag("shootable",true)
		CHOK E 0 A_SetTranslucent(1.0, 0) 
		CHOK E 0 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("ChokeSpitHold",1,"SpitHold")
		CHOK E 0 A_JumpIfInventory("Clip",1,"Spit")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK EF 4 A_JumpIfInventory("Clip",1,"Spit")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK A 8
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		Goto Spawn+1
	Spit:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK E 0 A_Changeflag("shootable",true)
		CHOK E 0 A_JumpIfInventory("Clip",2,"Vomit")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK E 5 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK F 32 A_JumpIfInventory("Clip",2,"Vomit")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK G 33 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK E 10 A_TakeInventory("Clip",99)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		Goto Spawn+1
	SpitHold:
		CHOK A 0 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		TNT1 A 0 A_SpawnItemEx("WolfenBlut",random(-8,8),random(-12,12),18)
		CHOK G 2 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("ChokeSpitHold",1,"SpitHold")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK E 10 A_TakeInventory("Clip",99)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		Goto Spawn+1
	Vomit:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK E 0 A_Changeflag("shootable",true)
		CHOK F 10 A_TakeInventory("Clip",99)
		CHOK E 23 A_TakeInventory("Clip",99)
		CHOK E 10 A_TakeInventory("Clip",99)
		Goto Spawn+1
	ChokeBarrageAnimation:
		CHOK E 0 A_TakeInventory("ChokeBarrageActivated",999)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK E 0 A_Changeflag("shootable",true)
		CHOK E 0 A_JumpIfInventory("Clip",2,"Vomit")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK E 5 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK F 16 A_JumpIfInventory("Clip",2,"Vomit")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK G 16 A_JumpIfInventory("Clip",2,"Vomit")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		CHOK E 35 A_TakeInventory("Clip",99)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")	
		CHOK A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		Goto Spawn+1
	Pain:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 Setplayerproperty(0,0,4)
        CHOK A 1 A_GiveInventory("ChokeCharging",2)
		CHOK A 0 Setplayerproperty(0,0,4)
		CHOK A 0 A_Pain
        Goto See
	Pain.Vivi:
	CHOK E 0 A_SetPitch(pitch - 3.0)
	CHOK E 0 A_SetAngle(angle + (random(-50,50)/10))
	Goto Pain
	Pain.ViviMine:
	CHOK E 0 ThrustThingZ(0,70,0,0)
	Goto Pain
	Death.LoWangVampiric:
	TNT1 A 0 A_GiveToTarget("SWLoWangBloody",1)
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",20)
	Goto Death
	Death.SkarletPistolDrain:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death
	Death.SkarletVampiric:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",60)
	Goto Death
	Death.DoomChainSaw:
	TNT1 A 0 A_GiveToTarget("cell",50)
	TNT1 A 0 A_GiveToTarget("RocketAmmo",5)
	TNT1 A 0 A_GiveToTarget("clip1",50)
	TNT1 A 0 A_GiveToTarget("Shell",10)
	Goto Death
	Death.D64Pistol:
	TNT1 A 0 A_GiveToTarget("D64UnmakerUpgrades",1)
	TNT1 A 0 A_GiveToTarget("Cell",75)
	TNT1 A 0 A_GiveToTarget("D64KilledCount",1)
	Goto DeathAnimAlt
	Death.Plasma:
	TNT1 A 0 A_GiveToTarget("CyborgFuel",25)
	Goto DeathAnim
	Death.Telefrag:
	Goto Death.UnmakerLaser
	Pain.GwenPlasma2:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CHOK A 0 Setplayerproperty(0,0,4)
		CHOK A 0 A_Pain
		CHOK A 20 Setplayerproperty(0,1,0)
		CHOK A 2 Setplayerproperty(0,0,0)
		Goto See
	GwenGoddessDeath:
		TNT1 A 0 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SetTranslucent (1.0, 0)
		TNT1 A 0 A_SpawnItemEx("GwenTimeImplosionRing")
		TNT1 A 0 A_Playsound("Gwen/DivineExplosionSound",6,1,0,ATTN_NONE)
		CHOK H 24 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamageFX")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamage")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRing")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingX")
		TNT1 A 0 A_SpawnItemEx("GwenThunderFX")
		TNT1 A 0 A_SpawnItemEx("GwenGoddessStateEXP")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("KNThunderFX_Smoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 A 0 DamageThing(100000)
		Goto Death
	Death:
	DeathAnim:
		TNT1 A 0 A_GiveToTarget("KillBeep",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		CHOK E 0 A_PlaySound("Gibbage/XSplat")
		CHOK E 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		CHOK E 0 A_Playerscream
		CHOK E 0 A_TakeInventory("KilledCount",999)
		CHOK E 0 A_GiveToTarget("KilledChoke",1)
		CHOK E 0 A_GiveToTarget("KilledMe",1)
		CHOK HI 11
		CHOK E 0
		CHOK JK 11
		CHOK E 0
		TNT1 A -1
		Stop
	DeathAnimAlt:
		TNT1 A 0 A_GiveToTarget("KillIndicator",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		CHOK E 0 A_PlaySound("Gibbage/XSplat")
		CHOK E 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		CHOK E 0 A_Playerscream
		CHOK E 0 A_TakeInventory("KilledCount",999)
		CHOK E 0 A_GiveToTarget("KilledChoke",1)
		CHOK E 0 A_GiveToTarget("KilledMe",1)
		CHOK HI 11
		CHOK E 0
		CHOK JK 11
		CHOK E 0
		TNT1 A -1
		Stop
	Death.ChexWarrior:
		CHOK E 0 A_GiveToTarget("KillIndicator",1)
		CHOK E 0 A_TakeInventory("KilledCount",999)
		CHOK E 0 A_GiveToTarget("KilledMe",1)
		CHOK E 0 A_GiveToTarget("KilledChoke",1)
		CHOK E 0 A_SpawnItemEx("ChexCereal",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		CHOK E 0 A_GiveToTarget("ChexArmorBonus",25)
		CHOK E 0 A_GiveToTarget("ChexBoop",1)
		CHOK E 0 A_Stop
		CHOK E 0 A_NoGravity
		CHOK E 0 A_ChangeFlag("DONTGIB",1)
		CHOK E 0 A_PlaySoundEx("Teleport/Chex",7)
		CHOK E 0 A_PlaySoundEx("Choke/Pain", "Body")
		CHOK E 3 A_SpawnItem("BigZorch")
		CHOK E 3 A_SetTranslucent(0.9,0)
		CHOK E 0 A_Scream
		CHOK E 3 A_SetTranslucent(0.8,0)
		CHOK E 0 A_NoBlocking
		CHOK E 3 A_SetTranslucent(0.7,0)
		CHOK E 3 A_SetTranslucent(0.6,0)
		CHOK E 3 A_SetTranslucent(0.5,0)
		CHOK E 3 A_SetTranslucent(0.4,0)
		CHOK E 3 A_SetTranslucent(0.3,0)
		CHOK E 3 A_SetTranslucent(0.2,0)
		CHOK E 3 A_SetTranslucent(0.1,0) 
		TNT1 A 1 A_SetTranslucent(1,0)
		TNT1 A -1
		Stop
		Death.CarolineDamage:
		NULL A 0 A_SpawnItemEx("CarolineHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		Goto Death.UnmakerLaser
		Death.MapGibber:
		TNT1 A 0 A_PlaySound("car/hit",chan_auto)
		Death.MapGibber2:
		Death.UnmakerLaser:
		TNT1 A 0 A_GiveToTarget("KillBeep",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		CHOK E 0 A_PlaySound("Caroline/SoulGibbage")
		CHOK E 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		CHOK E 0 A_Playerscream
		CHOK E 0 A_TakeInventory("KilledCount",999)
		CHOK E 0 A_GiveToTarget("KilledChoke",1)
		CHOK E 0 A_GiveToTarget("KilledMe",1)
		CHOK HI 11
		CHOK E 0
		CHOK JK 11
		CHOK E 0
		TNT1 A -1
		Stop
	Death.MarineShotgun:
	CHOK E 0 A_GiveToTarget("grenadeammo",1)
	CHOK E 0 A_GiveToTarget("shell",3)
	CHOK E 0 A_GiveToTarget("clip1",20)
	Goto DeathAnim
	Death.Marinemachinegun:
	CHOK E 0 A_GiveToTarget("grenadeammo",1)
	CHOK E 0 A_GiveToTarget("shell",3)
	CHOK E 0 A_GiveToTarget("clip1",20)
	Goto Deathanim
	Death.Marinepistol:
	CHOK E 0 A_GiveToTarget("grenadeammo",1)
	CHOK E 0 A_GiveToTarget("shell",3)
	CHOK E 0 A_GiveToTarget("clip1",20)
	Goto Deathanim
	Death.Grenade:
		CHOK E 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.CrapPlasma:
		CHOK E 0 A_GiveToTarget("Unlock9",1)
		Goto DeathAnim
	Death.Ice2:
		CHOK A 0 A_GiveToTarget("KilledIce2",1)
		Goto DeathAnim
	Death.Fire2:
		CHOK A 0 A_GiveToTarget("KilledFire2",1)
		Goto DeathAnim
	Death.Railgun:
		CHOK A 0 A_GiveToTarget("KilledLightning",1)
		Goto DeathAnim
	Death.GhostTrap:
		CHOK A 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.AltFire2:
		CHOK A 0 A_GiveToTarget("KilledAltFire2",1)
		Goto Death.Fire2
	Death.AltIce2:
		CHOK A 0 A_GiveToTarget("KilledAltIce2",1)
		Goto Death.Ice2
	Death.AltGrenade:
		CHOK A 0 A_GiveToTarget("KilledAltG",1)
		Goto Death.Grenade
	Death.Fire3:
		CHOK A 0 A_GiveToTarget("KilledFire3",1)
		Goto DeathAnim
	Death.Ice3:
		CHOK A 0 A_GiveToTarget("KilledIce3",1)
		Goto DeathAnim
	Death.Grenade2:
		CHOK A 0 A_GiveToTarget("KilledG2",1)
		Goto DeathAnim
	Pain.Drainer:
		CHOK A 0 A_GiveToTarget("Health",10)
		CHOK A 0 A_PlaySoundEx("ChokePain","Body")
		Goto Pain
	Death.ChexWarriorPistol:
	Death.ChexWarriorChainsaw:
	Goto Death.ChexWarrior
	Death.RenegadeBullets:
	Death.RenegadeFire:
	Death.ArtilleryDamage:
		TNT1 A 0 A_GiveToTarget("RenegadeKillItem",1)
		Goto DeathAnimAlt
	Death.CalebDynamite:
		TNT1 A 0 A_GiveToTarget("KilledG",1)
	Death.CalebShotgun:
	Death.CalebRevolver:
		TNT1 A 0 A_GiveToTarget("Health",20)
		TNT1 A 0 A_SpawnItemEx("CalebHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		TNT1 A 0 A_GiveToTarget("CalebHeartbeat",1)
		Goto DeathAnimAlt
	Pain.EngineerSaw:
	Pain.Ghosttrap:
	Pain.GBFire:
	Pain.Misty:
	Pain.GBSaw:
	Pain.GBString:
	Pain.GBNuke:
	Pain.Ice2:
	Pain.Ice:
	Pain.ElecStorm:
	Pain.AltFire2:
	Pain.AltIce2:
	Pain.Fire2:
	Pain.Doggo:
	Pain.LaraArrow:
	Pain.Wind2:
	Pain.Grenade:
	Pain.Grenade2:
	Pain.TemplarLightningRain:
	Pain.CarolineDamage:
	Pain.ChexWarrior:
	Pain.InariPlasma:
	Pain.Plasma:
	Pain.FlameProtect:
	Pain.DutchShotgun:
	Pain.KarenExplo:
	Pain.Sentinel:
	Pain.Divine:
	Pain.GwenPlasma3:
	Pain.MacheteSlicerino:
	Pain.AntiAirbolt:
	Pain.MechPewPews:
	Pain.RainbowNado:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

Actor ChokeTeeth : Weapon
{
	Weapon.SlotNumber 1
	Weapon.SelectionOrder 350
	Weapon.Kickback 0
	Weapon.YAdjust 0
	Weapon.Ammotype2 "ChokeCharging"
	Inventory.Icon "CHOKEATT"
	+WEAPON.MELEEWEAPON
	+INVENTORY.UNDROPPABLE
	States
	{
	Ready:
		TNT1 A 0 A_JumpIfinventory("CyborgDashCheck", 1, "BarrageCheck")
		CHOK L 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	Deselect:
		CHOK L 1 A_Lower
		Loop
	Select:
		CHOK L 1 A_Raise
		Goto Select
	Fire:
		CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
		CHOK L 0 A_Playweaponsound("chokeattack")
		CHOK L 1 A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-50, 135) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
		CHOK L 5 offset (0, 32)
		Goto Ready
	AltFire:
		CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
		CHOK L 0 A_GiveInventory("Clip",1)
		CHOK L 0 ACS_ExecuteAlways(999,0)
		CHOK L 0 A_PlayWeaponSound("ChokeSwallow")
		CHOK L 2 offset (0, 35)
		CHOK L 2 offset (0, 30)
		CHOK L 2 offset (0, 25)
		CHOK L 2 offset (0, 20)
		CHOK L 2 offset (0, 15)
		CHOK L 2 offset (0, 10)
		CHOK L 25 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 15) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 30) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 15)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 10)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 5) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 15) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 30)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-10, 20) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 15)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (0, 10)
		CHOK L 0 A_GiveInventory("ChokeSpitHold",1)
		CHOK L 1 A_ReFire
	FireBloodball:
		CHOK L 0 A_JumpIfInventory("ChokeCharging",100,"FireBloodballMax")
		CHOK L 0 A_GiveInventory("ChokeCharging",20)
		CHOK L 0 A_GiveInventory("SoundToken",1)
		CHOK L 0 A_TakeInventory("ChokeSpitHold",1)
		CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 135) 
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 55)
		CHOK L 10 offset (0, 32) A_TakeInventory("ChokeCancelCheck",999)
		CHOK L 15 offset (0, 32) ACS_ExecuteAlways(998,0)
		Goto Ready
	FireBloodballMax:
		CHOK L 0 A_TakeInventory("ChokeSpitHold",1)
		CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 135) 
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 55)
		CHOK L 10 offset (0, 32) A_TakeInventory("ChokeCancelCheck",999)
		CHOK L 15 offset (0, 32) ACS_ExecuteAlways(998,0)
		Goto Ready
	AltHold:
		CHOK L 0 A_TakeInventory("clip",1)
		CHOK L 2 offset (0, 10)
		CHOK L 0 A_ReFire
		Goto FireBloodball
	Reload:
		TNT1 A 0 A_JumpIfInventory("ChokeCharging",100,"SuperBloodBall")
		TNT1 A 0 A_Print("Homing: 100 ammo required",2)
		TNT1 A 0 A_PlaySound("chokenoammo",CHAN_WEAPON,1,0)
		CHOK L 2 offset (0, 55)
		CHOK L 2 offset (0, 75)
		CHOK L 2 offset (0, 95)
		CHOK L 2 offset (0, 115)
		CHOK L 2 offset (0, 135) 
		CHOK L 2 offset (0, 115)
		CHOK L 2 offset (0, 95)
		CHOK L 2 offset (0, 75)
		CHOK L 2 offset (0, 55)
		CHOK L 2 offset (0, 32)
		CHOK L 10
		Goto Ready
	SuperBloodBall:
		CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
		CHOK L 0 A_TakeInventory("ChokeSpitHold",1)
		CHOK L 0 A_GiveInventory("Clip",1)
		CHOK L 0 ACS_ExecuteAlways(999,0)
		CHOK L 0 A_PlayWeaponSound("ChokeSwallow")
		CHOK L 2 offset (0, 35)
		CHOK L 2 offset (0, 30)
		CHOK L 2 offset (0, 25)
		CHOK L 2 offset (0, 20)
		CHOK L 2 offset (0, 15)
		CHOK L 2 offset (0, 10)
		CHOK L 25 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 15) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 30) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 15)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 10)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 5) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 15) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 30)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-10, 20) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (-5, 15)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 2 offset (0, 10)
		CHOK L 0 offset (0, 5) A_FireCustomMissile("RuptureBall", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 0 A_TakeInventory("ChokeCharging",100)
		CHOK L 0 A_GiveInventory("SoundToken",1)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 135) 
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 55)
		CHOK L 10 offset (0, 32) A_TakeInventory("ChokeCancelCheck",999)
		CHOK L 15 offset (0, 32) ACS_ExecuteAlways(998,0)
		Goto Ready
	Cancel:
		CHOK L 0 A_TakeInventory("ChokeSpitHold",1)
		CHOK L 0 A_GiveInventory("Clip",1)
		CHOK L 0 A_TakeInventory("ChokeCancelCheck",999)
		CHOK L 0 A_TakeInventory("ChokeCharging",20)
		CHOK L 0 A_GiveInventory("SoundToken",1)
		CHOK L 0 A_PlayWeaponSound("ChokeVomit")
		CHOK L 0 offset (0, 55) A_FireCustomMissile("VomitFake",0,0,0,0)
		CHOK L 1 offset (0, 55)
		CHOK L 1 offset (0, 60)
		CHOK L 1 offset (0, 65)
		CHOK L 0 ACS_ExecuteAlways(998,0)
		CHOK L 1 offset (0, 70)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 80) 
		CHOK L 1 offset (0, 85) 
		CHOK L 1 offset (0, 90) 
		CHOK LLLLLLLLLLLLLLLLLLLLLLLLL 1 offset (0, 95) A_FireCustomMissile("ChokeVomit",random(-20,20),0,0,3)
		CHOK L 10 offset (0, 95) 
		CHOK L 2 offset (0, 90) 
		CHOK L 2 offset (0, 85)
		CHOK L 2 offset (0, 80) 
		CHOK L 2 offset (0, 75)
		CHOK L 2 offset (0, 70)
		CHOK L 2 offset (0, 65)
		CHOK L 2 offset (0, 60)
		CHOK L 2 offset (0, 55)
		CHOK L 2 offset (0, 32)
		Goto Ready
	BarrageCheck:
		TNT1 A 0 A_TakeInventory("CyborgDashCheck",999)
		TNT1 A 0 A_JumpIfInventory("ChokeCharging",60,"SpammyBBall")
		TNT1 A 0 A_Print("Barrage: 60 ammo required",2)
		TNT1 A 0 A_PlaySound("chokenoammo",CHAN_WEAPON,1,0)
		CHOK L 2 offset (0, 55)
		CHOK L 2 offset (0, 75)
		CHOK L 2 offset (0, 95)
		CHOK L 2 offset (0, 115)
		CHOK L 2 offset (0, 135) 
		CHOK L 2 offset (0, 115)
		CHOK L 2 offset (0, 95)
		CHOK L 2 offset (0, 75)
		CHOK L 2 offset (0, 55)
		CHOK L 2 offset (0, 32)
		CHOK L 10
		Goto Ready
	SpammyBBall:
		CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
		CHOK L 0 A_TakeInventory("ChokeSpitHold",1)
		CHOK L 0 A_GiveInventory("Clip",1)
		CHOK L 0 A_GiveInventory("ChokeBarrageActivated",1)
		CHOK L 0 ACS_ExecuteAlways(999,0)
		CHOK L 0 A_PlayWeaponSound("ChokeSwallow")
		CHOK L 1 offset (0, 35)
		CHOK L 1 offset (0, 30)
		CHOK L 1 offset (0, 25)
		CHOK L 1 offset (0, 20)
		CHOK L 1 offset (0, 15)
		CHOK L 1 offset (0, 10)
		CHOK L 12 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (5, 15) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (0, 30) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (-5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (-10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (-5, 15)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (0, 10)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (0, 5) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (5, 15) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (10, 20)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (0, 30)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (-5, 25)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (-10, 20) 
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (-5, 15)
		CHOK L 0 A_WeaponReady(WRF_NOSECONDARY)
		CHOK L 1 offset (0, 10) A_GiveInventory("ChokeCancelCheck",1)
		CHOK L 5 offset (0, 5) A_FireCustomMissile("Chokeball2", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 5 offset (0, 5) A_FireCustomMissile("Chokeball2", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 5 offset (0, 5) A_FireCustomMissile("Chokeball2", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 5 offset (0, 5) A_FireCustomMissile("Chokeball2", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 5 offset (0, 5) A_FireCustomMissile("Chokeball2", 0, 0 ,0)
		CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
		CHOK L 0 A_TakeInventory("ChokeCharging",60)
		CHOK L 0 A_GiveInventory("SoundToken",1)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 135) 
		CHOK L 1 offset (0, 115)
		CHOK L 1 offset (0, 95)
		CHOK L 1 offset (0, 75)
		CHOK L 1 offset (0, 55)
		CHOK L 10 offset (0, 32) A_TakeInventory("ChokeCancelCheck",999)
		CHOK L 15 offset (0, 32) ACS_ExecuteAlways(998,0)
		Goto Ready
	}
}

Actor ChokeAttack
{
//PROJECTILE
+NOGRAVITY
+THRUGHOST
+FORCERADIUSDMG
+NOTELEPORT
Speed 25
Radius 2
Height 2
Obituary "%o was munched by %k." 
damagetype "Choke"
damage 0
+RIPPER
States{
Spawn:
TNT1 A 0
TNT1 A 1 A_Recoil(-25)
Goto Death
Death:
TNT1 A 1 A_Explode(6, 58, 0)//65//52 range
Stop
}
}

Actor ChokeBlood : Blood
{
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		BLUD C 0
		BLUD C 0 A_PlaySoundEx("ChokePain","Body")
		BLUD C 8 A_SpawnItemEx("NashGore_FlyingBlood", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), 161, 0)
		BLUD B 8 
		BLUD A 8 
		Stop
	}
}

Actor ChokeCharging : Ammo
{
	Inventory.MaxAmount 100
}

Actor RuptureBall
{
  Speed 20
  Radius 9
  Height 12
  Damage (50)
  DamageType "Choke"
  Projectile
  +SeekerMissile
  +HITTRACER
  Obituary "%o couldn't escape %k's needs." 
  SeeSound "BloodScepter/PowerFire"
  DeathSound "BloodScepter/PowerHit"
  Scale 3.5
  Decal BigBloodSmear
  States
  {
  Spawn:
    BSBL A 1 Bright A_SpawnItemEx("RuptureBallTrail", Random(-5, 5), Random(-6, 6), Random(-6, 6), 0, 0, 0, 0, 128)
	BSBL B 1 Bright A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
	BSBL C 0 Bright A_SeekerMissile(45, 45,SMF_LOOK|SMF_PRECISE,256,3)
	BSBL C 1 Bright A_SpawnItemEx("RuptureBallTrail", Random(-5, 5), Random(-6, 6), Random(-6, 6), 0, 0, 0, 0, 128)
	BSBL D 1 Bright A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
	BSBL E 0 Bright A_SeekerMissile(45, 45,SMF_LOOK|SMF_PRECISE,256,3)
	BSBL E 1 Bright A_SpawnItemEx("RuptureBallTrail", Random(-5, 5), Random(-6, 6), Random(-6, 6), 0, 0, 0, 0, 128)
	BSBL F 1 Bright A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
    BSBL F 0 Bright A_SeekerMissile(45, 45,SMF_LOOK|SMF_PRECISE,256,3)
    Loop
  XDeath:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	TNT1 A 0 A_JumpIfInventory("IsHuman",1,"Hit",AAPTR_Tracer)
	Goto Death
  Hit:
	TNT1 A 0 A_GiveToTarget("Health",25)
	Goto Death
  Death:
	TNT1 A 1 A_SpawnItemEx("RuptureBallDeath", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAAAAAAA 3 A_Explode(2, 192, 0)
    Stop
  }
}

Actor RuptureBallDamage : RuptureBall
{
	Speed 0
	Damage (0)
	States
	{
	Spawn:
		TNT1 A 1
		Goto Death
	Death:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
		TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,270)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	SplashBeep:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	DeathCont:
		TNT1 A 0 A_Explode(2,192,0)
		Stop
	}
}

Actor RuptureBallTrail
{
  Radius 1
  Height 1
  +NoGravity
  +NoClip
  +CLIENTSIDEONLY
  Scale 3.0
  States
  {
  Spawn:
    BSFX A 0
    BSFX A 0 A_Jump(192, 2, 3, 4, 5)
    BSFX B 16
    Stop
    BSFX C 16
    Stop
    BSFX D 16
    Stop
    BSFX E 16
    Stop
    BSFX F 16
    Stop
  }
}

Actor RuptureBallDeath
{
  Radius 1
  Height 1
  +NoGravity
  +NoClip
  +CLIENTSIDEONLY
  RenderStyle Translucent
  Alpha 0.8
  States
  {
  Spawn:
    BSBL GHIJKL 3 Bright
    BSBL L 2 Bright A_FadeOut(0.05)
    Goto Spawn+6
  }
}

Actor ChokeVomit
{
	Speed 20
	Height 2
	Radius 2
	Scale 0.2
	Damage (10)
	Damagetype "Choke"
	Alpha 0.8
	RenderStyle Translucent
	Obituary "%o was vomited on by %k."
	PROJECTILE
	+RIPPER
	-NOGRAVITY
	+BLOODLESSIMPACT
	States
	{
	Spawn:
		VFX6 A 0
		VFX6 A 5 A_Recoil(random(-1,-2))
		VFX6 AABBCCDDEE 4
		Stop
	}
}

Actor ChokeHealPause : PowerDamage
{
	Powerup.Duration 5
	DamageFactor "Nothing", 1.0
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	}
}

Actor ChokePainHealer : CustomInventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
	+INVENTORY.ALWAYSPICKUP
	+INVENTORY.AUTOACTIVATE
	States
	{
	Spawn:
		CLIP A -1
		Stop
	Pickup:
	Use:
		TNT1 A 1 ACS_ExecuteAlways(726, 0, 3, 0)
		Stop
	}
}

Actor ChokeDeathHealer : CustomInventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
	+INVENTORY.AUTOACTIVATE
	states
	{
	Spawn:
		CLIP A -1
		Stop
	Pickup:
	Use:
		TNT1 A 1 ACS_ExecuteAlways(726, 0, 20, 1)
		Stop
	}
}

actor Chokeball
{
PROJECTILE
Speed 40
-NOGRAVITY
Scale 1.0
+LOWGRAVITY
+SEEKERMISSILE
decal "BloodSplat"
damagetype "SjasScream"
Obituary "%o was stained by %k's blood ball." 
Damage 4
Height 6
Radius 7
reactiontime 8
States
{
Spawn:
BLBA AAAA 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA BBBB 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA CCCC 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA DDDD 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA A 0 A_CountDown
Loop
XDeath:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
TNT1 A 0 A_Jump(256,"DeathCont")
Goto DeathCont
Death:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_Stop
TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,127)
TNT1 A 0 A_Jump(256,"DeathCont")
Goto DeathCont
SplashBeep:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
TNT1 A 0 A_Jump(256,"DeathCont")
Goto DeathCont
DeathCont:
VFX6 A 0 A_JumpIfInventory("ChokeDist",11,"Far")
VFX6 A 0 A_Stop
VFX6 A 0 A_ChangeFlag("NOGRAVITY",1)
VFX6 A 0 A_Explode(187, 90, 0)
NULL A 0 A_PlaySound("gibbage/xsplat")
NULL A 0 A_SpawnItemEx ("GIB1", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB2", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB3", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB4", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB5", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
VFX6 A 3 A_FadeOut(0.08)
VFX6 A 0 A_TakeFromTarget("ChokeDist",999)
VFX6 BCDE 3 A_FadeOut(0.08)
Stop
Far:
VFX6 A 0 A_GiveToTarget("ChokeDist",1)
Goto DeathCont+1
}
}

actor Chokeball2
{
PROJECTILE
Speed 40
-NOGRAVITY
Scale 1.0
+LOWGRAVITY
+SEEKERMISSILE
decal "BloodSplat"
damagetype "SjasScream"
Obituary "%o was stained by %k's blood ball." 
Damage 4
Height 6
Radius 7
reactiontime 8
States
{
Spawn:
BLBA AAAA 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA BBBB 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA CCCC 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA DDDD 1 A_SpawnItem("NashGore_FlyingBlood",0,0,0,1)
BLBA A 0 A_GiveInventory("ChokeDist",1)
BLBA A 0 A_CountDown
Loop
XDeath:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
TNT1 A 0 A_Jump(256,"DeathCont")
Goto DeathCont
Death:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_Stop
TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,127)
TNT1 A 0 A_Jump(256,"DeathCont")
Goto DeathCont
SplashBeep:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
TNT1 A 0 A_Jump(256,"DeathCont")
Goto DeathCont
DeathCont:
VFX6 A 0 A_JumpIfInventory("ChokeDist",11,"Far")
VFX6 A 0 A_Stop
VFX6 A 0 A_ChangeFlag("NOGRAVITY",1)
VFX6 A 0 A_Explode(50, 90, 0)
NULL A 0 A_PlaySound("gibbage/xsplat")
NULL A 0 A_SpawnItemEx ("GIB1", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB2", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB3", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB4", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
NULL A 0 A_SpawnItemEx ("GIB5", 1, 1, random(8,32), random(0,5), random(0,5), 0, random(0,360), 160, 0)
VFX6 A 3 A_FadeOut(0.08)
VFX6 A 0 A_TakeFromTarget("ChokeDist",999)
VFX6 BCDE 3 A_FadeOut(0.08)
Stop
Far:
VFX6 A 0 A_GiveToTarget("ChokeDist",1)
Goto DeathCont+1
}
}

Actor BotChoketeeth : Weapon
{
Weapon.SlotNumber 1
inventory.icon "CHOKEATT"
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Obituary "%o was munched by %k" 
   +WEAPON.MELEEWEAPON
   Weapon.Kickback 0
   Weapon.YAdjust 0
   +INVENTORY.UNDROPPABLE
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      CHOK L 0 A_TakeInventory("BotAttack", 255)
      CHOK L 1 A_WeaponReady
      Loop
   Deselect:
	  CHOK L 1 A_Lower
      Loop
   Select:
      CHOK L 1 A_Raise
      Goto Select
   Fire:
     CHOK L 0 A_GiveInventory("BotAttack", 1)
	 CHOK L 0 A_Recoil(-9)//-13
     CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
	 CHOK L 0 A_Playweaponsound("chokeattack")
	 CHOK L 1 A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-50, 135) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 5 offset (0, 32)
	 CHOK L 0 A_Jump(8,"Altfire")
	 goto Ready
   Altfire:
     CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
	 CHOK L 0 A_Recoil(22)//33
     CHOK L 0 A_GiveInventory("Clip",1)
	 CHOK L 0 A_GiveInventory("BloodballCheck",1)
	 CHOK L 0 ACS_ExecuteAlways(983,0)
	 CHOK L 0 A_PlayWeaponSound("chokeswallow")
	 CHOK L 2 offset (0, 35)
	 CHOK L 2 offset (0, 30)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 15)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 25 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 15) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (10, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 30) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-10, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 15)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 5) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 15) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (10, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 30)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-10, 20) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 15)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", 0, 0 ,0)
	 CHOK L 0 A_TakeInventory("ChokeDist", 255)
	 CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 135) 
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 55)
	 CHOK L 0 offset (0, 55) A_TakeInventory("ChokeCancelCheck",999)
	 CHOK L 10 offset (0, 32) A_TakeInventory("BloodballCancel",999)
	 CHOK L 0 offset (0, 32) A_TakeInventory("BloodballCheck",999)
	 CHOK L 0 offset (0, 32) A_TakeInventory("BloodballSuper",999)
	 CHOK L 15 offset (0, 32) ACS_ExecuteAlways(982,0)
	 Goto Ready
    Cancel:
	 CHOK L 0 A_GiveInventory("Clip",1)
	 CHOK L 0 A_GiveInventory("BloodballCancel",1)
	 CHOK L 0 A_TakeInventory("ChokeCancelCheck",999)
	 CHOK L 0 A_PlayWeaponSound("chokevomit")
	 CHOK L 0 offset (0, 55) A_FireCustomMissile("VomitFake",0,0,0,0)
	 CHOK L 1 offset (0, 55)
	 CHOK L 1 offset (0, 60)
	 CHOK L 1 offset (0, 65)
	 CHOK L 0 ACS_ExecuteAlways(982,0)
	 CHOK L 1 offset (0, 70)
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 80) 
	 CHOK L 1 offset (0, 85) 
	 CHOK L 1 offset (0, 90) 
	 CHOK LLLLLLLLLLLLLLLLLLLLLLLLL 1 offset (0, 95) A_FireCustomMissile("ChokeVomit",random(-20,20),0,0,3)
	 CHOK L 10 offset (0, 95) 
	 CHOK L 2 offset (0, 90) 
	 CHOK L 2 offset (0, 85)
	 CHOK L 2 offset (0, 80) 
	 CHOK L 2 offset (0, 75)
	 CHOK L 2 offset (0, 70)
	 CHOK L 2 offset (0, 65)
	 CHOK L 2 offset (0, 60)
	 CHOK L 2 offset (0, 55)
	 CHOK L 2 offset (0, 32)
	 Goto Ready
   }
}

Actor BotSuperChoketeeth : BotChoketeeth
{
   States
   {
   Fire:
	 CHOK L 0 A_Recoil(-9)//-13
	 CHOK L 0 A_GiveInventory("BotAttack", 1)
     CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
	 CHOK L 0 A_Playweaponsound("chokeattack")
	 CHOK L 1 A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-50, 135) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 5 offset (0, 32)
	 CHOK L 0 A_Jump(13,"Altfire")
	 CHOK L 0 A_Jump(8,"BloodballSpecial")
	 goto Ready
   Altfire:
     CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
	 CHOK L 0 A_Recoil(22)//33
     CHOK L 0 A_GiveInventory("Clip",1)
	 CHOK L 0 A_GiveInventory("BloodballCheck",1)
	 CHOK L 0 ACS_ExecuteAlways(983,0)
	 CHOK L 0 A_PlayWeaponSound("chokeswallow")
	 CHOK L 2 offset (0, 35)
	 CHOK L 2 offset (0, 30)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 15)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 25 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 15) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (10, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 30) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-10, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 15)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 5) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 15) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (10, 20)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 30)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 25)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-10, 20) 
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (-5, 15)
	 CHOK L 0 A_JumpIfInventory("Botshowpain",1,"Cancel")
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", 0, 0 ,0)
	 CHOK L 0 A_TakeInventory("ChokeDist", 255)
	 CHOK L 0 A_GiveInventory("BloodballCancel",1)
	 CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 135) 
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 55)
	 CHOK L 0 offset (0, 55) A_TakeInventory("ChokeCancelCheck",999)
	 CHOK L 10 offset (0, 32) A_TakeInventory("BloodballCancel",999)
	 CHOK L 0 offset (0, 32) A_TakeInventory("BloodballCheck",999)
	 CHOK L 0 offset (0, 32) A_TakeInventory("BloodballSuper",999)
	 CHOK L 15 offset (0, 32) ACS_ExecuteAlways(982,0)
	 Goto Ready
   BloodballSpecial:
     CHOK L 0 A_JumpIfInventory("BSDelay",1,"Ready")
	 CHOK L 0 A_Recoil(22)//33//23
	 CHOK L 0 A_TakeInventory("BloodballCheck",1)
	 CHOK L 0 A_TakeInventory("BloodballCancel",1)
	 CHOK L 0 A_GiveInventory("BloodballSuper",1)
	 CHOK L 0 A_TakeInventory("Clip",255)
	 CHOK L 0 ACS_ExecuteAlways(983,0)
	 CHOK L 0 A_PlayWeaponSound("chokeswallow")
	 CHOK L 2 offset (0, 35)
	 CHOK L 1 offset (0, 30)
	 CHOK L 2 offset (0, 25)
	 CHOK L 1 offset (0, 20)
	 CHOK L 2 offset (0, 15)
	 CHOK L 1 offset (0, 10)
	 CHOK L 20 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
	 CHOK L 1 offset (5, 15) 
	 CHOK L 2 offset (10, 20)
	 CHOK L 1 offset (5, 25)
	 CHOK L 2 offset (0, 30) 
	 CHOK L 1 offset (-5, 25)
	 CHOK L 2 offset (-10, 20)
	 CHOK L 1 offset (-5, 15)
	 CHOK L 2 offset (0, 10)
	 CHOK L 1 offset (0, 5) 
	 CHOK L 2 offset (5, 15) 
	 CHOK L 1 offset (10, 20)
	 CHOK L 2 offset (5, 25)
	 CHOK L 1 offset (0, 30)
	 CHOK L 2 offset (-5, 25)
	 CHOK L 1 offset (-10, 20) 
	 CHOK L 2 offset (-5, 15)
	 CHOK L 1 offset (0, 10)
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", random(-1, 1), 0 ,0)
	 CHOK E 0 A_PlayWeaponSound("chokespit")
	 CHOK L 3
	 FROB V 0 A_StopSoundEx("Weapon")
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", random(-2, 2), 0 ,0)
	 CHOK E 0 A_PlayWeaponSound("chokespit")
	 CHOK L 2
	 FROB V 0 A_StopSoundEx("Weapon")
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", random(-3, 3), 0 ,0)
	 CHOK E 0 A_PlayWeaponSound("chokespit")
	 CHOK L 3
	 FROB V 0 A_StopSoundEx("Weapon")
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", random(-4, 4), 0 ,0)
	 CHOK L 0 A_TakeInventory("ChokeDist", 255)
	 CHOK L 2
	 CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 135) 
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 55)
	 CHOK L 0 offset (0, 55) A_TakeInventory("ChokeCancelCheck",999)
	 CHOK L 8 offset (0, 32) A_TakeInventory("BloodballCancel",999)
	 CHOK L 0 offset (0, 32) A_TakeInventory("BloodballCheck",999)
	 CHOK L 0 offset (0, 32) A_TakeInventory("BloodballSuper",999)
	 CHOK L 12 offset (0, 32) ACS_ExecuteAlways(982,0)
	 CHOK E 0 A_GiveInventory("BSDelay", 1)
	 Goto Ready
   }
}

actor BloodballCheck : Inventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 1
loop
}
}

actor BloodballCancel : Inventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 1
loop
}
}

actor BloodballSuper : Inventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 1
loop
}
}

actor KilledChoke : KilledSjas
{
}

actor VomitFake
{
PROJECTILE
-SOLID
+NOGRAVITY
States
{
Spawn:
TNT1 A 1
stop
}
}

ACTOR ChokeCancelCheck : Inventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 1
}

actor ChokeDist : KilledSjas
{
inventory.amount 1
inventory.maxamount 99999
}

actor BSDelay : PowerDamage
{
damagefactor "nothing", 1.0
powerup.duration 45
}

Actor ChokeBarrageActivated : Inventory
{
	Inventory.Amount 0
	Inventory.MaxAmount 1
}

Actor SoundToken : Inventory
{
	Inventory.MaxAmount 1
}

Actor ChokeSpitHold : Inventory
{
	Inventory.MaxAmount 1
}