
// --------------------------------------------------------------------------
//
// MP40
//
// --------------------------------------------------------------------------
ACTOR SecretWeapon_MP40 : Weapon
{
	Weapon.AmmoUse1 1
	Weapon.AmmoGive 10
	Weapon.AmmoType "Clip"
	Obituary "%o was shot down by %k's MP40."
    AttackSound "None"
    Inventory.PickupSound "CLIPIN"
	Inventory.Pickupmessage "You got the MP40 (Slot 0)!"
    +WEAPON.NOAUTOAIM
    +WEAPON.NOALERT
	+WEAPON.NOAUTOFIRE
	+WEAPON.NO_AUTO_SWITCH
	Weapon.SelectionOrder 5500
    Scale 1.0
	States
	{
	
	Steady:
	TNT1 A 1
	Goto Ready
	
	Ready:
        TNT1 A 1
        TNT1 A 0 A_PlaySound("CLIPIN")
        MP4S AB 1
        TNT1 AAAAAAAA 0
        TNT1 A 0 A_JumpIfInventory("MPAmmo",1,2)
        Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		MP40 A 1 A_WeaponReady
		Goto Ready+6
		
		Ready2:
        
        TNT1 A 0 A_JumpIfInventory("MPAmmo",1,2)
        Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		MP41 A 3 A_WeaponReady
		Loop
		        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		MP41 A 3 A_WeaponReady
		Loop
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		MP41 B 3 A_WeaponReady
		Loop
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		MP41 A 3 A_WeaponReady
		Loop

	Deselect:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1) 
        MP4S BA 1
		TNT1 A 1 A_Lower
		Wait
	Select:
	    	TNT1 A 0 A_Takeinventory("FistsSelected",1)
	TNT1 A 0 A_Takeinventory("SawSelected",1)
	TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
	TNT1 A 0 A_Takeinventory("SSGSelected",1)
	TNT1 A 0 A_Takeinventory("MinigunSelected",1)
	TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
	TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
    TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("BFGSelected",1)
	TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
	TNT1 A 0 A_Takeinventory("RailGunSelected",1)
	TNT1 A 0 A_Giveinventory("SubMachineGunSelected",1)
	TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
	TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
	TNT1 A 0 A_Takeinventory("HasBarrel",1)
	TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Raise
		Wait
		
    Fire:
	    TNT1 A 0
	    TNT1 A 0 A_JumpIfInventory("Zoomed",1,"Fire2")
        TNT1 A 0 A_JumpIfInventory("MPAmmo",1,2)
        Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_PlaySound("MP40")
		TNT1 A 0 A_Takeinventory("MPAmmo",1)
        TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",-5,0,0,0)
		MP40 B 1 BRIGHT A_AlertMonsters
		MP40 C 1 A_FireBullets (5, 3, -1, 8, "HitPuff")
        //TNT1 A 0 ACS_Execute(278, 0, 0, 0, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		MP40 D 1 A_FireCustomMissile("RifleCaseSpawn",-5,0,8,-4)
        //MP40 E 1
        TNT1 A 0 A_Refire
		Goto Ready+6
		
	Fire2:
        TNT1 A 0 A_JumpIfInventory("MPAmmo",1,2)
        Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_PlaySound("MP40")
		TNT1 A 0 A_Takeinventory("MPAmmo",1)
        TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",-5,0,0,0)
		MP41 F 1 BRIGHT A_AlertMonsters
		MP41 C 1 A_FireBullets (2, 2, -1, 8, "HitPuff")
        //TNT1 A 0 ACS_Execute(278, 0, 0, 0, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		MP41 H 1 A_FireCustomMissile("RifleCaseSpawn",-5,0,8,-4)
       // MP41 G 1
        TNT1 A 0 A_Refire
		Goto Ready2
		
	AltFire:
        TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Zoomed",1,8)
		TNT1 A 0 A_Giveinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.7)
		TNT1 A 0 A_Giveinventory("ADSmode",1)
        MP4D CB 1
        Goto Ready2
        TNT1 AAAAAA 0
        MP4D AB 1
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
        Goto Ready+6
		
    Reload:
		MP40 A 1 A_WeaponReady
		TNT1 A 0 A_Takeinventory("Reloading",1)
		
		
		TNT1 A 0 A_JumpIfInventory("MPAmmo",32,62)

        TNT1 A 0 A_JumpIfInventory("Clip",1,3)
        Goto Ready+18
        TNT1 AAAA 0

        TNT1 A 0 A_PlaySound("Reload")
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1) 
        MP4R ABCDEF 2 
        TNT1 A 0 A_FireCustomMissile("EmptyClipSpawn",-5,0,8,-4)
        TNT1 AAAAA 0
		TNT1 A 0 A_Giveinventory("MPAmmo",32)
        MP4R GGGGGGGGGFEDCBA 2
		TNT1 A 0 A_Takeinventory("Reloading",1)
		
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0
		
        Goto Ready+6

 	Spawn:
		MP40 I -1
		Stop
 
 
 	
   DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
	InitializeNormalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		STMP ABCDEF 1
		//TNT1 A 0 A_Custompunch(4,0,1,"KickPuff")
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        STMP G 4
		KICK A 0 A_Takeinventory("Kicking",1)
		STMP HIJK 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	LowKickChecker1:
	    TNT1 A 1
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		Goto LowKick
		
	LowKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_Recoil(-2)
		TNT1 A 0 A_SpawnItemEx ("PLOFT5",15,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		KICK UVW 1 A_SetPitch(-8.0 + pitch)
		KICK X 1
		RIFF A 0 A_FireCustomMissile("KickAttackLow", 0, 0, 0, 0)
		KICK Y 1
        KICK Z 4
		KICK YX 1
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK WVU 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6	
		
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK ABCDEFG 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        KICK H 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK IGFEDCBA 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-2)
		KICK JKLMNO 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -8)
        KICK P 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK QRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
		
	
	SuperAirKick:
	    TNT1 A 0
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-2)
		KICK JKLMNO 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -8)
        KICK P 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK QRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+6
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+6
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+6	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
		
	TossGrenade:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1 
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready	
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto REady+6	
	}
}

Actor MPAmmo: Inventory
{
inventory.maxamount 32
}




ACTOR FlameCannon : Weapon
{
	Height 20
	Weapon.SelectionOrder 5550
	Weapon.AmmoUse 0
	Weapon.AmmoGive 50
	Weapon.AmmoType "Gas"
    Inventory.PickupSound "BFGREADY"
     +WEAPON.NOAUTOAIM
	Inventory.PickupMessage "You got the Mancubus Flame Cannon (Slot 9)"
	States
	{
	Steady:
	TNT1 A 1
	Goto Ready
	Ready:
	    TNT1 A 0
        TNT1 A 0 A_PlaySound("BFGREADY")
        TNT1 AAA 0
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FLMG A 1 A_WeaponReady
		Goto Ready+6
		
	DryFire:
	    FLMG A 10 A_PlaySound("weapons/empty")
		Goto Ready+6
	
	Deselect:
	    TNT1 A 0 A_StopSound(CHAN_WEAPON)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		FLMG A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_Takeinventory("FistsSelected",1)
	TNT1 A 0 A_Takeinventory("SawSelected",1)
	TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
	TNT1 A 0 A_Takeinventory("SSGSelected",1)
	TNT1 A 0 A_Takeinventory("MinigunSelected",1)
	TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
	TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
    TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("BFGSelected",1)
	TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
	TNT1 A 0 A_Takeinventory("RailGunSelected",1)
	TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
	TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
	TNT1 A 0 A_Giveinventory("FlameCannonSelected",1)
	TNT1 A 0 A_Takeinventory("HasBarrel",1)
	TNT1 A 0 A_TakeInventory("TossGrenade", 1)
	
		FLMG A 1 A_Raise
		wait
    Spawn:
        MANA H 1
        Loop
	AltFire:
	    FLMG A 0
        TNT1 A 0 A_JumpIfInventory("Gas", 15, "Fireball")
		TNT1 A 0 A_StopSound(CHAN_WEAPON)
		Goto DryFire
		
	Fireball:	
        FLMF A 1 BRIGHT A_FireCustomMissile("BigFireBallWithGravity", 0, 1, 0, 0)
		TNT1 A 0 A_SetPitch(-4.0 + pitch)
		TNT1 A 0 A_TakeInventory("Gas", 15)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAssDouble", 0, 0, 0, 0)
        FLMF BC 1 BRIGHT 
        FLMF CD 1 A_SetPitch(+2.0 + pitch)
		FLMG A 10
		Goto Ready+2
	
  Fire:
        FLMG A 0
        TNT1 A 0 A_JumpIfInventory("Gas", 4, "Flamethrower")
		TNT1 A 0 A_StopSound(CHAN_WEAPON)
		Goto DryFire
		
	Flamethrower:
        TNT1 A 0 BRIGHT A_FireCustomMissile("FlamethrowerMissile", 0, 1, 0, 0)
		TNT1 A 0 A_PlaySound("FLAMER", CHAN_WEAPON, 1, 1)
		TNT1 A 0 A_TakeInventory("Gas", 4)
		FLMF F 1 BRIGHT A_SetAngle(random(1, -1) + angle)
		FLMF G 1 BRIGHT A_SetPitch(random(1, -1) + pitch)
		FLMF F 1 BRIGHT A_SetAngle(random(1, -1) + angle)
		TNT1 A 0 A_ReFire
		TNT1 A 0 A_PlaySound("FLAMSTOP", CHAN_WEAPON)
		Goto Ready+6

	
    DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
	InitializeNormalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		STMP ABCDEF 1
		//TNT1 A 0 A_Custompunch(4,0,1,"KickPuff")
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        STMP G 4
		KICK A 0 A_Takeinventory("Kicking",1)
		STMP HIJK 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	LowKickChecker1:
	    TNT1 A 1
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		Goto LowKick
		
	LowKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_Recoil(-2)
		TNT1 A 0 A_SpawnItemEx ("PLOFT5",15,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		KICK UVW 1 A_SetPitch(-8.0 + pitch)
		KICK X 1
		RIFF A 0 A_FireCustomMissile("KickAttackLow", 0, 0, 0, 0)
		KICK Y 1
        KICK Z 4
		KICK YX 1
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK WVU 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6	
		
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK ABCDEFG 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        KICK H 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK IGFEDCBA 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-2)
		KICK JKLMNO 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -8)
        KICK P 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK QRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
		
	
	SuperAirKick:
	    TNT1 A 0
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-2)
		KICK JKLMNO 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -8)
        KICK P 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK QRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+6
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+6
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+6	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
		
	TossGrenade:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1 
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready	
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto REady+6	
	}
}

ACTOR BigFireBallWithGravity: BigFireBall
{
Damage 14
Gravity 0.2
+NOGRAVITY
Speed 30
States
{
	Death:
	TNT1 A 0
    TNT1 A 0 A_Explode (90, 150)
	Goto ExplosionEffect
}
}


ACTOR Gas : Ammo
{
   Inventory.Amount 500
   Inventory.MaxAmount 999
   Ammo.BackpackAmount 500
   Ammo.BackpackMaxAmount 999
   Inventory.Icon "GSLNA0"
   Inventory.PickupMessage "You got Gasoline."
}



ACTOR Flames
{
	Radius 6
	Height 8
	Speed 30
	Damage 1
	Projectile 
	+RANDOMIZE
	+FORCEXYBILLBOARD
    +RIPPER
    +BLOODLESSIMPACT 
	RenderStyle Add
    DamageType Flames
    Scale 2.0
	Alpha 1
	SeeSound "fatso/attack"
	DeathSound "fatso/shotx"
    Decal "BigScorch"
	States
	{
    Spawn:
        TNT1 C 6
        Goto See
	See:
        TNT1 A 0 A_Explode (15, 40)
        FRFX C 2 BRIGHT A_SpawnItem("RedFlareMedium",0,0)
        TNT1 A 0 A_Explode (15, 40)
        FRFX C 2 BRIGHT A_SpawnItem("RedFlareMedium",0,0)
        TNT1 A 0 A_Explode (15, 40)
	    EXPL AA 0 A_CustomMissile ("ExplosionSmoke", 32, 0, random (0, 360), 2, random (0, 360))
        TNT1 A 0 A_Explode (15, 40)
        FRFX FGHIJKLMNOPG 2 BRIGHT A_SpawnItem("RedFlareMedium",0,0)
		Goto Death
	Death:
	    EXPL AA 0 A_CustomMissile ("ExplosionSmoke", 32, 0, random (0, 360), 2, random (0, 360))
	    TNT1 A 0 A_SpawnItem("RedFlareMedium",0,0)
		Stop
	}
}






ACTOR HellishMissileLauncher : Weapon
{
	Height 20
	Weapon.SelectionOrder 6800
	Weapon.AmmoUse1 1
	Weapon.AmmoGive 4
	Weapon.AmmoType1 "MiniHellRocketAmmo"
    Inventory.PickupSound "BFGREADY"
     //+WEAPON.NOAUTOAIM
	Inventory.PickupMessage "You got the Revenant's Hellish Missile Launcher (Slot 8)"
	States
	{
	Steady:
	TNT1 A 1
	Goto Ready
	Ready:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
        TNT1 A 0 A_PlaySound("BFGREADY")
        TNT1 AAA 0
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		RVCG A 4 A_WeaponReady
		Goto Ready+6
	Deselect:
		RVCG A 1 A_Lower
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Loop
	Select:
		TNT1 A 0 A_Takeinventory("FistsSelected",1)
	TNT1 A 0 A_Takeinventory("SawSelected",1)
	TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
	TNT1 A 0 A_Takeinventory("SSGSelected",1)
	TNT1 A 0 A_Takeinventory("MinigunSelected",1)
	TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
	TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
    TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("BFGSelected",1)
	TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
	TNT1 A 0 A_Takeinventory("RailGunSelected",1)
	TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
	TNT1 A 0 A_Giveinventory("RevenantLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
	TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
	TNT1 A 0 A_Takeinventory("HasBarrel",1)
	TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		RVCG A 1 A_Raise
		wait
    Spawn:
        FATB D 1
        Loop
		
	Fire:
	    TNT1 A 0
		
		TNT1 A 0 A_JumpIfTargetInLOS("OpenFire")
		RVCG J 1
	    Goto Ready+6
	    
		
	OpenFire:
	
	    TNT1 A 0
		//TNT1 A 0 A_TakeInventory("MiniHellRocketAmmo", 1)
		TNT1 A 0 A_JumpIfInventory("RevenantRocketFire1823", 1, "OpenFire2")
	    TNT1 A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, -1, 0)
        RVCG B 2 BRIGHT A_FireCustomMissile("RevenantBalls66", random(4,-4), 1, -10, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		RVCG CDE 2
		RVCG A 4
		TNT1 A 0 A_GiveInventory("RevenantRocketFire1823", 1)
		Goto Ready+6
		
	OpenFire2:
	    //TNT1 A 0 BRIGHT A_FireCustomMissile("Alerter")
	    RVCG F 2 BRIGHT A_FireCustomMissile("RevenantBalls66", random(4,-4), 1, 10, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		RVCG GHI 2
		RVCG A 4
		TNT1 A 0 A_TakeInventory("RevenantRocketFire1823", 1)
		Goto Ready+6
	
		
	
   DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
	InitializeNormalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		STMP ABCDEF 1
		//TNT1 A 0 A_Custompunch(4,0,1,"KickPuff")
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        STMP G 4
		KICK A 0 A_Takeinventory("Kicking",1)
		STMP HIJK 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	LowKickChecker1:
	    TNT1 A 1
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		Goto LowKick
		
	LowKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_Recoil(-2)
		TNT1 A 0 A_SpawnItemEx ("PLOFT5",15,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		KICK UVW 1 A_SetPitch(-8.0 + pitch)
		KICK X 1
		RIFF A 0 A_FireCustomMissile("KickAttackLow", 0, 0, 0, 0)
		KICK Y 1
        KICK Z 4
		KICK YX 1
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK WVU 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6	
		
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK ABCDEFG 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        KICK H 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK IGFEDCBA 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-2)
		KICK JKLMNO 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -8)
        KICK P 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK QRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
		
	
	SuperAirKick:
	    TNT1 A 0
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-2)
		KICK JKLMNO 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -8)
        KICK P 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK QRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		NULL A 0 A_TakeInventory("KickHasHit",1)
		Goto Ready+6
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+6
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+6
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+6	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
	TossGrenade:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1 
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready	
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto REady+6	
	}
}

ACTOR RevenantBalls66: RevenantBalls
{
	Damage 10
	Speed 20
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 ThrustThingZ(0,random(20, 0),0,1)
	Goto Spawn1
	}
}

ACTOR RevenantMissileFriendAttackSummon
{
    Radius 1
    Height 1
    Speed 0
	Mass 999999999999999999
    Health 1
    gravity 0.5
	Decal BloodSuper
	+NOCLIP
	MONSTER
	+FRIENDLY
	+LOOKALLAROUND
	-SHOOTABLE
	+MISSILEMORE
	+MISSILEEVENMORE
    States
    {
    Spawn:
	    TNT1 A 0 A_Look
	    TNT1 AAA 0 A_Chase
	    TNT1 AAAAAA 1 A_Chase
		Stop
	Missile:	
		TNT1 A 1 A_FaceTarget
		TNT1 A 0 A_CustomMissile("RevenantBalls66")
        Stop
    }
}


ACTOR MiniHellRocketAmmo : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 50
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 100
}

Actor RevenantRocketFire1823 : Inventory
{
inventory.maxamount 1
}