//	Movement recoded

// I wanted to recode everything so it's more functional and so this mod has a lesser risk of being taken down.
// Thank me later...
// -Binary

actor Airman : VCBaseClass
{
	Player.ScoreIcon "AIRMMUGS"
	player.startitem "BaseFlagPack", 1
	player.startitem "IsFromMM2"
	player.startitem "NormalArmor"
	player.soundclass "AirmanC"
	Player.ViewHeight 57
	projectilepassheight 72
	player.displayname "Airman"
	player.forwardmove 0.85, 0.85
	player.sidemove 0.83, 0.83
	player.jumpz 10
	player.startitem "AirShooterBoss"
	player.startitem "Base28Ammo", 28
	player.startitem "UltimateAttackItem3", 1
	player.startitem "UltSoundWatcherSpawn3"
	player.startitem "CanThirdFire"
	States
	{
		Animation5:
		Spawn:
		AIRM A 0
		AIRM B 1 A_JumpIf(z-floorz>0, "Jumping")
		AIRM A 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn+2
		See:
		AIRM BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn
		Jumping:
		AIRM I 1 A_JumpIf(z-floorz<=0, "Spawn")
		wait
		Missile:
		Animation3:
		AIRM F 0 A_JumpIf(z-floorz>0, "JumpingMissile")
		AIRM F 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM F 0 A_JumpIf(z-floorz>0, "JumpingMissile")
		AIRM F 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM F 0 A_JumpIf(z-floorz>0, "JumpingMissile")
		AIRM F 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM F 0 A_JumpIf(z-floorz>0, "JumpingMissile")
		AIRM F 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM F 0 A_JumpIf(z-floorz>0, "JumpingMissile")
		AIRM F 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM GGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile")
		Goto Spawn+1
		JumpingMissile:
		AIRM J 0 A_JumpIf(z-floorz<=0, "Missile")
		AIRM J 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM J 0 A_JumpIf(z-floorz<=0, "Missile")
		AIRM J 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM J 0 A_JumpIf(z-floorz<=0, "Missile")
		AIRM J 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM J 0 A_JumpIf(z-floorz<=0, "Missile")
		AIRM J 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM J 0 A_JumpIf(z-floorz<=0, "Missile")
		AIRM J 1 A_JumpIfInventory("AirFunnelAnim",1,"Animation2")
		AIRM JJJJ 1 A_JumpIf(z-floorz<=0, "Missile")
		Goto Jumping
		Animation4:
		AIND ABCDEFGH 1
		loop
		ClassTimeStop:
		PLAY A 0 SetPlayerProperty(0,1,4)
		PLAY A 0 ACS_Execute(528,0)
		AIRM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
		PLAY A 0 SetPlayerProperty(0,0,4)
		Goto pain+1
		ClassPain:
		AIRM H 0 A_JumpIfInventory("BaseCustomFlag1",1,"ClassPain.AirRush")
		AIRM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		ClassPain.AirRush:
		AIND A 2 A_SpawnItem("PainFX",0,3)
		Goto Animation4
		ClassDeath:
		AIRM ] 12 ACS_ExecuteAlways(999,0,0)
		AIRM ] 8 A_SpawnItemEx("MM2Death")
		AIRM ] 0 A_PlayerScream
		NOFX A 0 A_GiveInventory("MMIIDeathHandler")
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassIceDeath:
		AIRM A 35
		NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
		NOFX A 1 A_CheckPlayerDone
		wait
		Animation1:
		AIRM KLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLKLK 3
		goto Spawn+1
		Animation2:
		AIRM KLKLKLKLKL 3
		goto Spawn+1
		WeaponGetM:
		CUTM H 0 A_JumpIfInTargetInventory("AirShooterWepM",1,2)
		CUTM H 0 A_GiveToTarget("WeaponGetter")
		CUTM H 0 A_GiveToTarget("AirShooterWepM")
		goto ClassDeath
	}
}

actor AirShooterBoss : VCBaseWeapon
{
	Weapon.AmmoGive 28
	Weapon.AmmoType "Base28Ammo"
	Weapon.AmmoUse 4
	Obituary "$OB_AIRMAN1"
	+WEAPON.NOAUTOAIM
	States
	{
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		AIRA A 1 A_Lower
		Loop
		Select:
		TNT1 A 0 A_SpawnItemEx("AirmanSkinWatcher")
		TNT1 A 0 ACS_ExecuteAlways(991,0,2741)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		AIRA A 1 A_Raise
		Loop

		Ready:
		TNT1 A 0
		
		Ready2:
		AIRA A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		Ready3:
		"####" A 0 A_JumpIfInventory("Base28Ammo",22,"Ready.TF")
		"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		"####" A 0 A_GiveInventory("AirmanAmmoRegen_CI")
		Goto Ready2
		AltSkinFrame:
		AIGB A 0 A_TakeInventory("IsFromMM2")
		AIGB A 0 A_GiveInventory("IsFromGB2")
		AIGB A 0 ACS_ExecuteAlways(998,0,10886,1)
		goto Ready3
		
		Ready.TF:
		"####" A 0
		"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") "####" A 0 A_JumpIf(CallACS("VC_CheckBtn",3)==3,"User1")
		"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") "####" A 0 A_JumpIf(CallACS("VC_CheckBtn",3)==3,"User1")
		"####" A 0 A_GiveInventory("AirmanAmmoRegen_CI")
		Goto Ready
		
		User1:
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",4)
		"####" A 0 A_PlaySoundEx("weapon/airrush","Weapon")
		"####" A 0 A_GiveInventory("BaseCustomFlag1") //For pain animation
		"####" A 0 A_GiveInventory("AirRushAmmoTaker",1)
		
		User1.Loop:
		"####" A 0 A_GiveInventory("HalfDamageProtection")
		"####" A 0 A_GiveInventory("BaseCustomFlag1")
		"####" A 0 A_Quake(4,6,0,96)
		"####" A 0 A_SpawnItemEx("AirRushHitbox",0,0,0,momx,momy,momz,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		"####" AA 0 A_SpawnItemEx("AirRushFX",-16,random(-16,16),random(0,72),random(-7,-3),random(-4,4),random(-5,5))
		"####" D 1 A_ChangeVelocity(CallACS("VC_XYMob", 16.0),0,2.5,CVF_RELATIVE|CVF_REPLACE)
		"####" A 0 A_SpawnItemEx("AirRushHitbox",0,0,0,momx,momy,momz,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		"####" AA 0 A_SpawnItemEx("AirRushFX",-16,random(-16,16),random(0,72),random(-7,-3),random(-4,4),random(-5,5))
		"####" E 1 A_ChangeVelocity(CallACS("VC_XYMob", 16.0),0,2.5,CVF_RELATIVE|CVF_REPLACE)
		"####" A 0 A_GiveInventory("CutterFlag",1)
		"####" A 0 A_JumpIfInventory("CutterFlag",19,"User1.End")
		"####" A 0 A_SpawnItemEx("AirRushHitbox",0,0,0,momx,momy,momz,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		"####" AA 0 A_SpawnItemEx("AirRushFX",-16,random(-16,16),random(0,72),random(-7,-3),random(-4,4),random(-5,5))
		"####" F 1 A_ChangeVelocity(CallACS("VC_XYMob", 16.0),0,2.5,CVF_RELATIVE|CVF_REPLACE)
		loop
		
		User1.End:
		"####" A 0 A_TakeInventory("CutterFlag",999)
		"####" A 0 A_TakeInventory("BaseCustomFlag1")
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
		"####" AAA 1 A_Stop
		"####" A 28 A_TakeInventory("HalfDamageProtection")
		"####" A 0 A_TakeInventory("BaseCustomFlag1")
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",5) //Just in case:tm:
		goto Ready
		
		Fire:
		"####" A 0 A_JumpIfInventory("Base28Ammo",14,"Fire.Charge")
		Goto Fire.Uncharged

		Fire.Check:
		"####" AAAA 0 A_ClearRefire
		"####" A 0 A_JumpIfInventory("AirmanCharge",0,"Fire.Charged.Start")
		"####" A 0 A_TakeInventory("AirmanCharge",999)
		Goto Fire.Uncharged

		Fire.Uncharged:
		"####" A 0 A_GiveInventory("ToadChargeDamageTake")
		"####" A 0 A_GiveInventory("AirmanMainUncharged_CI")
		"####" BCCCBA 2 A_TakeInventory("AirmanCharge",999)
		"####" A 8
		"####" A 0 A_JumpIfNoAmmo("Ready")
		"####" A 0 A_Refire("Fire.Uncharged")
		Goto Ready

		Fire.Charged.Start:
		"####" A 0 A_TakeInventory("Base28Ammo",14,1)
		Fire.Charged:
		"####" A 0 A_GiveInventory("ToadChargeDamageTake")
		"####" A 1 Offset(0,56) A_GiveInventory("AirmanMainCharged_CI")
		"####" AAAAAAAAAAAAA 1 Offset(0,64)
		"####" A 1 Offset(0,56)

		Fire.Charged.End:
		"####" A 0 A_WeaponReady(WRF_NOFIRE)
		"####" AAAAA 2 A_TakeInventory("AirmanCharge",999)
		Goto Ready

		Fire.Charge:
		"####" A 0 A_GiveInventory("ToadChargeDamageGive")
		"####" A 0 A_JumpIfInventory("AirmanCharge",0,"Fire.Charge.Full.Start")
		"####" A 1 A_GiveInventory("AirmanCharge_CI")
		"####" A 0 A_Refire("Fire.Charge")
		Goto Fire.Check

		Fire.Charge.Full.Start:
		"####" AA 0 A_StopSound("Weapon")
		"####" AA 0 A_StopSoundEx("Weapon")
		"####" A 0 A_GiveInventory("RightClickFlag")
		Fire.Charge.Full:
		"####" A 0 A_GiveInventory("ToadChargeDamageGive")
		"####" A 1 A_WeaponReady(WRF_NOPRIMARY)
		"####" A 0 A_RailWait
		"####" A 0 A_Refire("Fire.Charge.Full")
		"####" A 0 A_TakeInventory("RightClickFlag")
		Goto Fire.Check

		Altfire:
		"####" A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
		"####" A 0 A_JumpIfInventory("AirManCharge",0,"Synthfire")
		"####" A 0 A_JumpIfInventory("AirmanWallFlag",1,"AltFire.CounterAttack")
		"####" A 1 A_JumpIfInventory("Base28Ammo",7,"AltFire.Real")
		goto Ready
		
		Altfire.Real:
		"####" A 0 A_GiveInventory("AirmanAlt_CI")
		"####" BCCCBA 2
		"####" A 12
		Goto Ready
		Altfire.CounterAttack:
		"####" A 0 A_GiveInventory("AirmanAltCounter_CI")
		"####" B 1 offset(2,34)
		"####" B 1 offset(4,37)
		"####" B 1 offset(9,41)
		"####" B 1 offset(12,43)
		"####" C 1 offset(16,47)
		"####" C 1 offset(20,54)
		"####" C 1 offset(23,58)
		"####" C 1 offset(26,62)
		"####" C 1 offset(23,58)
		"####" C 1 offset(20,54)
		"####" B 1 offset(9,41)
		"####" B 1 offset(2,34)
		"####" A 7 A_WeaponReady(14)
		Goto Ready

		Synthfire:
		"####" A 0 A_TakeInventory("Base28Ammo",7,1)
		"####" A 0 A_TakeInventory("RightClickFlag")
		"####" A 0 A_GiveInventory("ToadChargeDamageTake")
		"####" A 0 A_GiveInventory("AirmanSynthfire_CI")
		"####" BCBA 2 A_TakeInventory("AirmanCharge",999)
		"####" A 8 A_ClearRefire
		Goto Ready
		
		UltimateAttack:
		"####" A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,14)
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		"####" C 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		"####" A 0 A_GiveInventory("UltBuildCooldownGiver",1)
		"####" AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("AirUltFX")
		"####" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("OrbitingJunk",256,0,random(-128,128),0,0,0,random(0,360),1)
		"####" A 0 A_GiveInventory("OrbitFlag",1)
		"####" A 0 A_ChangeFlag("INVULNERABLE",1)
		"####" A 0 A_GiveInventory("InvProtection")
		
		UltLoop:
		"####" A 0 A_PlaySoundEx("weapon/thunderbolt","Weapon")
		"####" AAA 1 A_FireCustomMissile("OrbitingJunkAOE",0,0,0,0)
		"####" A 0 A_GiveInventory("WeaponCharge",1)
		"####" A 0 A_JumpIfInventory("WeaponCharge",35,1)
		goto UltLoop
		"####" A 0 A_ChangeFlag("INVULNERABLE",0)
		"####" A 0 A_TakeInventory("WeaponCharge",999)
		"####" A 0 A_TakeInventory("InvProtection")
		"####" A 0 A_TakeInventory("MediumUltimateAmmo",300)
		"####" A 0 A_TakeInventory("UltAttackFlag",1)
		"####" A 0 A_TakeInventory("OrbitFlag",1)
		"####" ABCAAA 3 A_GiveInventory("AirUltCancel",1)
		"####" A 0 A_TakeInventory("UltAttackFlag",1)
		"####" A 0 A_TakeInventory("PowerUltBuildCooldown",1)
		goto Ready
	}
}

Actor AirmanCharge : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 28
	+INVENTORY.IGNORESKILL
}

Actor AirmanWallFlag : Powerup //Air Wall Indicator + M2 check
{
	Powerup.Duration 420 //Blaze it
}

Actor AirmanSound_P : Powerup //Sound for charging M2
{
	Powerup.Duration 12
}

Actor AirmanWallCounter_P : Powerup //Making the Air Wall go where you aim
{
	Powerup.Duration 9
}

Actor AirmanSlow_P : PowerSpeed //Powerup given when charging M1, because fuck script 191
{
	Powerup.Duration 25
	Speed 0.5
	+POWERSPEED.NOTRAIL
}

Actor AirRushAmmoTaker : CustomInventory
{
	States
	{
		Pickup:
		AIRA A 0 A_TakeInventory("Base28Ammo",22,1)
		stop
	}
}

Actor AirmanAmmoRegen_CI : CustomInventory
{
	States
	{
		Pickup:
		AIRA A 0 A_JumpIfInventory("AirmanWallFlag",1,"Nope")
		AIRA A 0 A_GiveInventory("Base28Ammo",1)
		Stop
		Nope: TNT1 A 0
		Stop
	}
}

Actor AirmanMainUncharged_CI : CustomInventory
{
	States
	{
		Pickup:
		TNT1 AAA 0 A_TakeInventory("AirmanCharge",9999)
		TNT1 A 0 A_PlaySoundEx("Weapon/AirShooter","Weapon")
		TNT1 A 0 A_TakeInventory("Base28Ammo",4,1)
		
		TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		TNT1 A 0 A_FireCustomMissile("AirManShot",0,0,-32,0)
		TNT1 A 0 A_FireCustomMissile("AirManShot",0,0,0,32)
		TNT1 A 0 A_FireCustomMissile("AirManShot",0,0,32,0)
		Stop
		AltSkinFrame:
		TNT1 A 0 A_FireCustomMissile("AirManShotGB",0,0,-32,0)
		TNT1 A 0 A_FireCustomMissile("AirManShotGB",0,0,0,32)
		TNT1 A 0 A_FireCustomMissile("AirManShotGB",0,0,32,0)
		Stop
	}
}

Actor AirmanMainCharged_CI : CustomInventory
{
	States
	{
		Pickup:
		TNT1 A 0 //A_GiveInventory("AirmanSlow_P")
		//TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		//TNT1 AAA 0 A_TakeInventory("AirmanCharge",9999)
		TNT1 A 0 A_GiveInventory("AirFunnelAnim")
		TNT1 A 0 A_PlaySoundEx("Weapon/airtwister","Body")
		
		TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		TNT1 A 0 A_FireCustomMissile("AirManVacuumShotStart",0,0,0,8)
		Stop
		AltSkinFrame:
		TNT1 A 0 A_FireCustomMissile("AirManVacuumShotStartGB",0,0,0,8)
		Stop
	}
}

Actor AirmanCharge_CI : CustomInventory
{
	States
	{
		Pickup:
		AIRA A 0 //A_GiveInventory("AirmanSlow_P") //Slow the player down
		TNT1 A 0 A_GiveInventory("AirmanCharge",1)
		TNT1 A 0 A_SpawnItem("AirSuckBox")
		TNT1 AAAAAAAAAAAA 0 A_FireCustomMissile("AirmanVacuumSpawner",random(-16,16),0,random(-10,10),random(-10,10),0,random(-10,10))
		Goto Pickup_PlaySound

		Pickup_PlaySound:
		TNT1 A 0 A_JumpIfInventory("AirmanSound_P",1,"Nope")
		TNT1 A 0 A_PlaySoundEx("misc/hsloop","Weapon")
		TNT1 A 0 A_GiveInventory("AirmanSound_P")
		Stop

		Nope: TNT1 A 0
		Stop
	}
}

Actor AirmanAlt_CI : CustomInventory
	{
	States
	{
		Pickup:
		TNT1 A 0 A_GiveInventory("AirmanWallFlag")
		AIRA A 0 A_TakeInventory("Base28Ammo",7,1)
		AIRA A 0 A_PlaySoundEx("Weapon/AirShooter","Weapon")
		
		TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,0,0)
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(2,4),random(0,0))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(-4,-2),random(2,4))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(4,8),random(4,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(-8,-4),random(4,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(8,16),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(-16,-8),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(16,32),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(-32,16),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(32,64),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWall",0,0,32,15,random(-64,32),random(1,8))
		stop
		
		AltSkinFrame:
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,0,0)
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(2,4),random(0,0))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(-4,-2),random(2,4))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(4,8),random(4,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(-8,-4),random(4,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(8,16),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(-16,-8),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(16,32),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(-32,16),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(32,64),random(1,8))
		AIRA A 0 A_SpawnItemEx("AirWallGB",0,0,32,15,random(-64,32),random(1,8))
		stop
	}
}

Actor AirmanAltCounter_CI : CustomInventory
	{
	States
	{
		Pickup:
		AIRA A 0 A_TakeInventory("AirmanWallFlag",999)
		AIRA A 0 A_GiveInventory("AirmanWallCounter_P")
		AIRA A 0 A_PlaySoundEx("Weapon/AirWall","Weapon")
		stop
	}
}

Actor AirmanVacuumSpawner : FastProjectile
{
	PROJECTILE
	+SKYEXPLODE
	-DONTBLAST
	+DONTSPLASH
	+DONTREFLECT
	Speed 650//450
	Damage (0)
	radius 12
	height 12
		States
		{
		Spawn:
		//TNT1 A 0
		TNT1 A 1 ACS_ExecuteAlways(247, 0, 3, 512)
		goto Death
		Crash:
		XDeath:
		Death:
		TNT1 A 0 A_Stop
		TNT1 A 1 A_CustomMissile("AirVacuumParticle", 0, 0, 0, 0)
		stop
	}
}

Actor AirVacuumParticle //Also could work for Dustman?
{
	PROJECTILE
	+CLIENTSIDEONLY
	+DONTSPLASH
	-DONTBLAST
	//+NOINTERACTION
	-SOLID
	+NOGRAVITY
	height 5
	radius 5
	Scale 2.5
	Speed 45
	reactiontime 14
		States
		{
		Spawn:
		COSS B 0
		COSS B 0 A_SetScale(scalex-0.1,scaley-0.1)
		COSS B 0 A_FadeOut(0.05)
		COSS B 1 A_JumpIfCloser(60,"Death")
		COSS B 0 A_Countdown
		loop
		Death:
		TNT1 A 1
		stop
	}
}

Actor AirManShot
{
	PROJECTILE
	Radius 16
	Height 16
	Scale 2.5
	Damage (12)
	Obituary "$OB_AIRMAN1"
	DamageType "Airman"
	Species "AirmanWallType"
	+THRUSPECIES
	Speed 19
		States
		{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		AIRS ABC 1 A_ScaleVelocity(1.05)
		Goto Spawn+2
		Death:
		AIRS GHI 2
		stop
	}
}

actor AirManVacuumShotStart
{
PROJECTILE
+DONTREFLECT
+FORCEXYBILLBOARD
+RIPPER
Species "AirmanWallType"
Obituary "$OB_AIRMAN3"
DamageType "AirmanVacuum"
+THRUSPECIES
Speed 50
Damage (0)
radius 5
height 5
scale 2.5
ReactionTime 15
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_ScaleVelocity(SPEED_SCALAR)
TNT1 A 0 A_Explode(5,32,0,0,32)
Spawn2:
TNT1 A 0 A_Explode(5,32,0,0,32)
TNT1 A 0 A_SpawnItemEx("AirManVacuumShot",0,0,0,(momx/SPEED_SCALAR),(momy/SPEED_SCALAR),(momz/SPEED_SCALAR),0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 1 A_CountDown
loop
Death:
TNT1 A 0
stop
}
}

Actor AirManVacuumShot
{
	PROJECTILE
	Radius 16
	Height 16
	Scale 2.5
	+RIPPER
	Damage (0) //Uses A_Explode over time
	Obituary "$OB_AIRMAN3"
	DamageType "AirmanVacuum"
	Species "AirmanWallType"
	+THRUSPECIES
	Speed 32
		States
		{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		AIRC A 0 A_PlaySoundEx("weapon/windloop","Body")
		AIRC A 1 A_Explode(5,32,0,0,32) AIRC A 1
		AIRC B 1 A_Explode(5,32,0,0,32) AIRC B 1
		Spawn_L:
		AIRC A 0 A_PlaySoundEx("weapon/windloop","Body")
		AIRC C 0 A_Explode(5,32,0,0,32)
		AIRC C 2 //A_Weave(AIRMAN_WEAVEMIN,0,AIRMAN_WEAVEMAX,0)
		AIRC D 0 A_Explode(5,32,0,0,32)
		AIRC D 2 //A_Weave(AIRMAN_WEAVEMIN,0,AIRMAN_WEAVEMAX,0)
		AIRC A 0 A_PlaySoundEx("weapon/windloop","Body")
		AIRC A 0 A_Explode(5,32,0,0,32)
		AIRC A 2 //A_Weave(AIRMAN_WEAVEMIN,0,AIRMAN_WEAVEMAX,0)
		AIRC B 0 A_Explode(5,32,0,0,32)
		AIRC B 2 //A_Weave(AIRMAN_WEAVEMIN,0,AIRMAN_WEAVEMAX,0)
		loop
		Death:
		AIRS GHI 3
		stop
	}
}

actor AirmanVacuumProtect : PowerProtection
{
Powerup.Duration 3
DamageFactor "AirmanVacuum", 0.0
}

actor AirWall
{
	PROJECTILE
	Radius 16
	Height 16
	-NOBLOCKMAP
	-SHOOTABLE
	//-DONTBLAST
	+NOBLOOD
	+DONTRIP
	+NODAMAGETHRUST
	//+THRUGHOST
	+NOTARGETSWITCH
	+THRUSPECIES
	+GHOST
	species "AirmanWallType"
	Health 9999
	Mass 0x7fffffff
	DamageFactor "Airman", 0.0
	PainChance 0
	Scale 2.5
	var int user_DMG;
	Damage (2 + user_DMG)//7
	Obituary "$OB_AIRMAN2"
	DamageType "Airman"
	Speed 0
		States
		{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		AIRS AA 1 //A_ChangeVelocity(3,0,0,CVF_RELATIVE)
		AIRS BBCC 1 A_SetUserVar("user_DMG",5)
		AIRS A 0 A_ChangeFlag("SHOOTABLE",1)
		AIRS A 0 A_Stop
		Idle1:
		AIRS A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		AIRS A 1 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		AIRS A 0 A_JumpIfInTargetInventory("AirmanWallFlag",1,"Idle2")
		AIRS A 1 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		AIRS A 0 A_JumpIfInTargetInventory("AirmanWallFlag",1,"Idle2")
		AIRS A 0 A_Jump(256,"Death")
		Idle2:
		AIRS B 1 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		AIRS B 0 A_JumpIfInTargetInventory("AirmanWallFlag",1,"Idle3")
		AIRS B 1 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		AIRS B 0 A_JumpIfInTargetInventory("AirmanWallFlag",1,"Idle3")
		AIRS B 0 A_Jump(256,"Death")
		Idle3:
		AIRS C 1 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		AIRS C 0 A_JumpIfInTargetInventory("AirmanWallFlag",1,"Idle1") 
		AIRS C 1 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		AIRS C 0 A_JumpIfInTargetInventory("AirmanWallFlag",1,"Idle1")
		AIRS C 0 A_Jump(256,"Death")
		Death:
		AIRS A 0 A_JumpIfInTargetInventory("AirmanWallCounter_P",1,"Shot")
		AIRS AGHI 2
		stop
		Shot:
		AIRS A 1 ACS_ExecuteAlways(548,0,0)
		AIRS A 0 A_SpawnItemEx("AirWall2",0,0,0,cos(pitch)*24,0,-sin(pitch)*24,0,SXF_TRANSFERTRANSLATION)
		stop
	}
}

actor AirCheckJump : VCOnce{}
actor AirThrustSpawner : VCOnce{}

actor AirWall2 : AirWall
{
PROJECTILE
Radius 16
Height 16
Scale 2.5
Species "AirmanWallType"
Obituary "$OB_AIRMAN2"
DamageType "Airman"
Damage (9)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
AIRS AABBCC 1 A_ScaleVelocity(1.1)
Goto Spawn+2
Death:
AIRS GHI 2
stop
}
}

actor OrbitingJunkAOE
{
+MISSILE
-SOLID
-DONTBLAST
+NOGRAVITY
+RIPPER
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+THRUACTORS
+DONTREFLECT
species "AirmanWallType"
+THRUSPECIES
Radius 2
Height 2
Scale 2.5
PROJECTILE
Obituary "$OB_AIRMAN4"
DamageType "AirmanUlt"
Damage (0)
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_Explode(15,150,0)
stop
}
}

//===================================

// Bull's stuff
actor OrbitFlag : Inventory {Inventory.Amount 1 Inventory.MaxAmount 1}

actor OrbitingJunk
{
	PROJECTILE
	Obituary "$OB_AIRMAN4"
	Scale 2.5
	Speed 10
	Height 0
	Radius 0
	+THRUGHOST
	+THRUACTORS
	+NOCLIP
	+DONTREFLECT
	+NOTARGETSWITCH
	damage(30)
	ReactionTime 350
	var int user_XCor;
	var int user_YCor;
	var int user_ZCor;
	var int user_Rads;
	var int user_SMTH;
	var int user_SAdd;
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		DUST C 0 A_SetUserVar("user_ZCor",random(0,96))
		DUST C 0 A_SetUserVar("user_SMTH",random(0,360))
		DUST C 0 A_SetUserVar("user_Rads",256)
		MMFX BBCCDDEE 1
		MMFX B 0 A_Jump(256,"SpawnC1","SpawnC2","SpawnC3","SpawnC4","SpawnC5","SpawnC6","SpawnC7","SpawnC8","SpawnC9")
		
		SpawnC1:
		JUCU F 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping1")
		loop

		SpawnC2:
		JUCU G 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping2")
		loop
		
		SpawnC3:
		JUCU H 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping3")
		loop
		
		SpawnC4:
		JUCU I 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping4")
		loop
		
		SpawnC5:
		JUCU J 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping5")
		loop
		
		SpawnC6:
		JUCU K 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping6")
		loop
		
		SpawnC7:
		JUCU L 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping7")
		loop
		
		SpawnC8:
		JUCU M 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping8")
		loop
		
		SpawnC9:
		JUCU N 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		//DUST C 0 A_FaceTarget
		//DUST C 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
		//DUST C 0 A_ScaleVelocity(1.0)
		DUST C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_SetUserVar("user_Rads",user_Rads-2)
		DUST C 0 A_Warp(AAPTR_TARGET,user_Rads*cos(user_SMTH),user_Rads*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		DUST C 0 A_JumpIfCloser(64,"Warping9")
		loop
		
		//--------------------- Vars Stuff
		VarAdds:
		//DUST C 0 A_JumpIf(user_Rads >= 192,"PointAdd")
		//DUST C 0 A_SetUserVar("user_Rads",user_Rads+1)
		DUST C 0 A_SetUserVar("user_SMTH",(360/36)+user_SMTH)
		DUST C 0 A_Jump(256,"Warping1","Warping2","Warping3","Warping4","Warping5","Warping6","Warping7","Warping8","Warping9")
		goto Warping1
		//---------------------

		Warping1:
		JUCU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU H 0 A_CountDown
		JUCU H 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU H 0 //A_Explode(5,32,0,0,24)
		JUCU F 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU H 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway1

		Warping2:
		JUCU I 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU I 0 A_CountDown
		JUCU I 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU I 0 //A_Explode(5,32,0,0,24)
		JUCU G 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU I 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway2
		
		Warping3:
		JUCU J 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU J 0 A_CountDown
		JUCU J 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU J 0 //A_Explode(5,32,0,0,24)
		JUCU H 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU J 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway3
		
		Warping4:
		JUCU K 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU K 0 A_CountDown
		JUCU K 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU K 0 //A_Explode(5,32,0,0,24)
		JUCU I 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU K 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway4
		
		Warping5:
		JUCU L 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU L 0 A_CountDown
		JUCU L 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU L 0 //A_Explode(5,32,0,0,24)
		JUCU J 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU L 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway5
		
		Warping6:
		JUCU M 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU M 0 A_CountDown
		JUCU M 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU M 0 //A_Explode(5,32,0,0,24)
		JUCU K 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU M 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway6
		
		Warping7:
		JUCU N 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU N 0 A_CountDown
		JUCU N 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU N 0 //A_Explode(5,32,0,0,24)
		JUCU L 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU N 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway7
		
		Warping8:
		JUCU O 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU O 0 A_CountDown
		JUCU O 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU O 0 //A_Explode(5,32,0,0,24)
		JUCU M 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU O 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway8
		
		Warping9:
		JUCU P 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
		JUCU P 0 A_CountDown
		JUCU P 0 A_Warp(AAPTR_TARGET,64*cos(user_SMTH),64*sin(user_SMTH),user_ZCor,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
		JUCU P 0 //A_Explode(5,32,0,0,24)
		JUCU N 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
		JUCU P 0 A_JumpIfInTargetInventory("OrbitFlag",1,"VarAdds")
		goto GoAway9
		
		GoAway1:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway1",0,0,0)
		stop
		
		GoAway2:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway2",0,0,0)
		stop
		
		GoAway3:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway3",0,0,0)
		stop
		
		GoAway4:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway4",0,0,0)
		stop
		
		GoAway5:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway5",0,0,0)
		stop
		
		GoAway6:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway6",0,0,0)
		stop
		
		GoAway7:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway7",0,0,0)
		stop
		
		GoAway8:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway8",0,0,0)
		stop
		
		GoAway9:
		DUST C 0 A_FaceTarget
		DUST C 0 A_CustomMissile("OrbitJunkAway9",0,0,0)
		stop
		
		Death:
		TNT1 A 0
		stop
	}
}

actor OrbitJunkAway1
{
	Obituary "$OB_AIRMAN4"
	PROJECTILE
	Speed 40
	Radius 6
	Height 6
	Damage (20)
	damagetype "AirmanUlt"
	Scale 2.5
	States {
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU F 1
		goto Spawn+3
	}
}

actor OrbitJunkAway2 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU G 1
		goto Spawn+3
	}
}

actor OrbitJunkAway3 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU H 1
		goto Spawn+3
	}
}

actor OrbitJunkAway4 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU I 1
		goto Spawn+3
	}
}

actor OrbitJunkAway5 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU J 1
		goto Spawn+3
	}
}

actor OrbitJunkAway6 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU K 1
		goto Spawn+3
	}
}

actor OrbitJunkAway7 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU L 1
		goto Spawn+3
	}
}

actor OrbitJunkAway8 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU M 1
		goto Spawn+3
	}
}

actor OrbitJunkAway9 : OrbitJunkAway1
{
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 A_ScaleVelocity(-1)
		JUCU N 1
		goto Spawn+3
	}
}

actor AirGFX
{
	renderstyle translucent
	-SOLID
	PROJECTILE
	-DONTBLAST
	damage 0
	height 2
	radius 2
	speed -20
	+CLIENTSIDEONLY
	+NOGRAVITY
	+NOINTERACTION
	scale 2.5
	States
	{
		Spawn:
		COSS B 1 A_Fadeout(0.15)
		loop
	}
}

actor AirBlowGFX
{
	-SOLID
	PROJECTILE
	-DONTBLAST
	damage 0
	height 0
	radius 0
	speed 100
	+CLIENTSIDEONLY
	+NOGRAVITY
	scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 AAAAAAAA 1 A_CustomMissile("AirGFX",0,0,0,0)
		stop
	}
}

actor AirFunnelAnim : Powerup
{
+ADDITIVETIME
Powerup.Duration 5
}

Actor AirmanSynthfire_CI : CustomInventory
{
	States
	{
		Pickup:
		TNT1 AAA 0 A_TakeInventory("AirmanCharge",9999)
		TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		TNT1 A 0 A_PlaySoundEx("weapon/windstar","Weapon")
		TNT1 A 0 A_FireCustomMissile("AirManSnakenado",0,0,0,0)
		TNT1 A 0 A_FireCustomMissile("AirManSnakenado2",0,0,0,0)
		Stop
		AltSkinFrame:
		TNT1 A 0 A_FireCustomMissile("AirManSnakenadoGB",0,0,0,0)
		TNT1 A 0 A_FireCustomMissile("AirManSnakenado2GB",0,0,0,0)
		Stop
	}
}

actor AirManSnakenado
{
	Obituary "$OB_AIRMAN5"
	PROJECTILE
	damagetype "AirmanSynth"
	+FLOORHUGGER
	+RIPPER
	Species "AirmanWallType"
	+THRUSPECIES
	Speed 15
	Radius 16
	Height 32
	Damage (24)
	Scale 2.5
	States {
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		AIST A 0 A_PlaySoundEx("weapon/doubletornado","Body")
		AIST ABC 2
		loopit:
		AIST DEFG 1 A_Weave(1.5,0,4,0)
		loop
	}
}

actor AirmanSnakenado2 : AirmanSnakenado
{
	States {
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		AIST A 0 A_PlaySoundEx("weapon/doubletornado","Body")
		AIST ABC 2
		loopit:
		AIST DEFG 1 A_Weave(1.5,0,-4,0)
		loop
	}
}
		
actor AirmanSynthProtect : PowerProtection
{
Powerup.Duration 10
DamageFactor "AirmanSynth", 0.0
}

actor AirRushHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_AIRMAN6"
PROJECTILE
+NOEXPLODEFLOOR
Radius 64
Height 64
scale 2.5
speed 0
damage (12)
Damagetype "AirmanRush"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor AirmanRushProtect : PowerProtection
{
Powerup.Duration 10
DamageFactor "AirmanRush", 0.0
}

Actor AirRushFX
{
	PROJECTILE
	+CLIENTSIDEONLY
	+DONTSPLASH
	-DONTBLAST
	+NOINTERACTION
	-SOLID
	+NOGRAVITY
	height 5
	radius 5
	Scale 1.0
	Speed 45
	renderstyle add
	reactiontime 10
		States
		{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
		AIRS A 0 A_SetScale(scalex-0.1,scaley-0.1)
		AIRS A 0 A_FadeOut(0.1)
		AIRS A 1 A_Countdown
		AIRS BC 1
		goto Spawn+2
		Death:
		TNT1 A 1
		stop
	}
}

actor AirSuckBox
{
PROJECTILE
radius 1
height 1
speed 0
damage (0)
+NOINTERACTION
States
{
Spawn:
TNT1 A 0
TNT1 A 2 ACS_ExecuteAlways(C_JAX_SUCKRECODE,0,400,75,2)
stop
}
}

actor AirUltFX
{
PROJECTILE
+NOINTERACTION
+CLIENTSIDEONLY
Scale 2.5
var int user_angle;
var int user_warpdistance;
var int user_warpheight;
var int user_warpspeed;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
GRES G 0 A_SetUserVar("user_angle",random(0,359))
GRES G 0 A_SetUserVar("user_warpdistance",random(32,250))
GRES G 0 A_SetUserVar("user_warpheight",random(0,96))
GRES G 0 A_SetUserVar("user_warpspeed",random(3,40))
goto loopit
loopit:
GRES G 0 A_Warp(AAPTR_TARGET,user_warpdistance,0,user_warpheight,user_angle,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
GRES G 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
GRES G 0 A_JumpIfInTargetInventory("AirUltCancel",1,"Death")
GRES G 1 A_SetUserVar("user_angle",user_angle+user_warpspeed)
GRES F 0 A_Warp(AAPTR_TARGET,user_warpdistance,0,user_warpheight,user_angle,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
GRES F 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
GRES F 0 A_JumpIfInTargetInventory("AirUltCancel",1,"Death")
GRES F 1 A_SetUserVar("user_angle",user_angle+user_warpspeed)
GRES E 0 A_Warp(AAPTR_TARGET,user_warpdistance,0,user_warpheight,user_angle,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
GRES E 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
GRES E 0 A_JumpIfInTargetInventory("AirUltCancel",1,"Death")
GRES E 1 A_SetUserVar("user_angle",user_angle+user_warpspeed)
loop
Death:
TNT1 A 0
stop
}
}

actor AirUltCancel : Powerup
{
Powerup.Duration 35
}

actor AirmanSkinWatcher
{
Height 0
Radius 0
+NOINTERACTION
+MISSILE
states
{
Spawn:
TNT1 A 0
TNT1 AAA 1 A_GiveToTarget("AirmanSkinCheck")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
loop
Death:
TNT1 A 0
stop
}
}

actor AirmanSkinCheck : SkinChecker
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CallACS("GC_GetSkinNum")==263,"AltSkin1")
TNT1 A 0 A_GiveInventory("IsFromMM2")

TNT1 A 0 ACS_ExecuteAlways(998,0,2741,1)
goto NormalSkin
}
}



Actor AirManShotGB : AirManShot
{
	Translation"198:198=4:4", "4:4=6:6"
}
Actor AirWallGB : AirWall
{
	Translation"198:198=4:4", "4:4=6:6"
}
Actor AirManVacuumShotStartGB : AirManVacuumShotStart
{
	Translation"74:74=6:6", "197:197=92:92", "198:198=4:4", "4:4=6:6"
}

actor AirManSnakenadoGB : AirManSnakenado
{
	Translation"249:249=6:6", "74:74=92:92"
}

actor AirManSnakenado2GB : AirManSnakenado2
{
	Translation"249:249=6:6", "74:74=92:92"
}

//"74:74=6:6", "197:197=92:92"
//"249:249=6:6", "74:74=92:92"