Actor PlanesWalker : PlayerPawn
{
	+NOSKIN
	+NOICEDEATH
	+NODAMAGETHRUST
	+GHOST
	+QUICKTORETALIATE
	+NOTARGET
	LimitedToTeam 0
	Alpha 1.0
	Painchance 256
	Renderstyle Translucent
	Player.soundclass "PW"
	Player.displayname "PlanesWalker"
	Player.startitem "NewShell", 60
	Player.startitem "AbilityEnergy", 100
	Player.startitem "Shotgun-Blade", 1
	Player.startitem "Shotgun-Vortex", 1
	Player.StartItem "PWDasher"
	Player.StartItem "EnergyStarter"
	Player.startitem "ArrowSingle", 35
	Player.StartItem "ClassID", 8 // 12
	Player.StartItem "HumanTeam", 1
	Player.scoreicon "PLANST"
	Player.ColorRange 112, 127
	DamageFactor "GhostbusterTrap", 0.0
	DamageFactor "SentryShoot", 0.0
	DamageFactor "HunterSuperIceArrowTrail2", 0.0
	DamageFactor "Drone", 0.0
	DamageFactor "DimmedVision", 0.5
	DamageFactor "GhostbusterExpander", 0.0
	DamageFactor "Poison", 0.0
	DamageFactor "FlaskT2", 0.0
	Species "Human"
	PainChance "Mohoph", 256
	PainChance "MohophRange", 256
	mass 400
	Player.MaxHealth 100
	Health 100
	States
	{
	Spawn:
		MNK1 A 1 
		Loop
	See:
		MNK1 AB 5
		MNK1 A 0 A_SpawnItemEx ("MarineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		MNK1 CD 5
		MNK1 A 0 A_SpawnItemEx ("MarineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		Goto Spawn
	Missile:
		MNK1 E 12 
		Goto Spawn
	Melee:
		MNK1 F 6 BRIGHT
		Goto Missile
	Pain: 
		MNK1 G 8 A_Pain
		Goto Spawn
	Pain.ChokeAttack:
		MNK1 G 1
		TNT1 A 0 A_GiveToTarget("ChokePainHealer", 1)
		TNT1 A 0 A_GiveToTarget("VomitPoints", 2)
		MNK1 G 8 A_Pain
		Goto Spawn
	Pain.CreeperHealBall:
		MNK1 G 1
		TNT1 G 0 A_GiveToTarget("CreeperHealBallHealer", 1)
		MNK1 G 8 A_Pain
		Goto Spawn
	Pain.Creepstun:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_Pain
		MNK1 G 18 ACS_ExecuteAlways(986,0)
		Goto Spawn
	Pain.CreeperHealBall:
		MNK1 G 1
		MNK1 G 1 A_GiveToTarget("CreeperHealBallHealer", 1)
		Goto Pain
	Pain.Impale:
		TNT1 A 0 ThrustThingZ(0,10,0,1)
		Goto Pain	
	Pain.DimmedVision:
		TNT1 A 0 A_Pain
		TNT1 A 0 A_GiveInventory("VisionDimmer", 1)
		TNT1 A 0 A_GiveInventory("VisionDimEffect", 1) // ACS_ExecuteAlways(753, 0)
		TNT1 A 0 ACS_ExecuteAlways(754, 0)
		TNT1 A 0 HealThing(1)
		MNK1 G 7
		Goto Spawn	
	Pain.MorgBat:
		TNT1 A 0 A_giveToTarget("MorgHeal", 3)
		Goto Pain		
	Pain.Mohoph:
		MNK1 G 1
		TNT1 A 0 A_GiveToTarget("MohophHeal", 1)
		goto Pain
	Pain.MohophRange:
		MNK1 G 1
		TNT1 AAA 0 A_GiveToTarget("MohophHeal", 1)
		Goto Pain
	Death:
	DeathAnim:
		TNT1 A 0 A_GiveToTarget("KilledPlaneWalker", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		TNT1 A 0 A_JumpIfInventory("PlaneWalkCheck", 1, 2)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("PWInvisKill", 1)		
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		MNK1 H 10
		MNK1 I 10 A_PlayerScream
		MNK1 J 10 A_NoBlocking
		MNK1 K 10
		MNK1 L -1
		stop
	GibDeath:
	Death.ImpaleBite:
		TNT1 A 0 A_GiveToTarget("ImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("DoubleImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("JitterskullPoints", 1)
		TNT1 A 0 A_GiveToTarget("VomitPoints", 10)
		TNT1 A 0 A_GiveToTarget("KilledPlaneWalker", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_GiveToTarget("Crunched",1)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_PlaySound("gibbage/xsplat")
		TNT1 A 0 A_SkullPop("Custom_BloodySkullPW")
		TNT1 A 0 A_PlaySound("gibbage/playergib") 
		TNT1 A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		TNT1 A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		TNT1 A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		TNT1 A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
		TNT1 A 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		MNK1 A 1
		TNT1 A 0
		BLAN A -1
		Stop
	Death.CreeperHealBall:
		TNT1 A 0 A_GiveToTarget("CreeperHealBallHealer", 1)
		TNT1 A 0 A_GiveToTarget("CreepHealKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
        Goto DeathAnim
	Death.CreeperMelee:
		TNT1 A 0 A_PlaySoundEx("creeperattack", "Body")
		TNT1 A 0 A_GiveToTarget("Creeperheal",1)
		TNT1 A 0 ACS_ExecuteAlways(997,0)
		TNT1 A 0 A_GiveToTarget("CreeperMeleeKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("KilledPlaneWalker", 1)
		TNT1 A 0 A_JumpIfInventory("PlaneWalkCheck", 1, 2)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("PWInvisKill", 1)		
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
//		TNT1 A 0 A_GiveToTarget("GhoulAmmo", 1)
		MNK1 H 10 A_SpawnItemEx("SoulSprite", 0, 0, 0, 0, 0, 2)
		MNK1 I 10 A_PlayerScream
		MNK1 J 10 A_NoBlocking
		MNK1 K 10
		MNK1 L -1
		Stop
	Death.MarineSuicideGrenade:
		MNK1 A 0
		Goto DoomXDeath
    Death.SjasScream:
        TNT1 A 0 A_GiveToTarget("SjasScreamKill", 1)
        TNT1 A 0 A_GiveToTarget("SjasMeleeMulti", 1)
		Goto DeathAnim
    Death.JitterMelee:
        TNT1 A 0 A_GiveToTarget("JitterMeleeKill", 1)
        TNT1 A 0 A_GiveToTarget("JitterMeleeMulti", 1)
        Goto GibDeath
    Death.CreepStun:
        TNT1 A 0 A_GiveToTarget("CreepStunKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
        Goto DeathAnim
    Death.ChokeVomit:
        TNT1 A 0 A_GiveToTarget("ChokeVomitKill", 1)
        Goto DeathAnim
    Death.ChokeAttack:
        TNT1 A 0 A_GiveToTarget("ChokeAttackKill", 1)
		TNT1 A 0 A_GiveToTarget("ChokeDeathHealer", 1)
        Goto GibDeath
	Death.ChokeFeast:
		TNT1 A 0 A_GiveToTarget("ChokeFeasTKill", 1)
		Goto DeathAnim		
    Death.ChokeBloodBall:
		TNT1 A 0 A_GiveToTarget("VomitPoints", 15)
        TNT1 A 0 A_GiveToTarget("ChokeBloodBallKill", 1)
		TNT1 A 0 A_GiveToTarget("ChokeBloodBallMulti", 1)
        Goto DeathAnim
    Death.FrostbiteMelee:
        TNT1 A 0 A_GiveToTarget("FrostbiteMeleeKill", 1)
        Goto GibDeath
	Death.FrostbiteMortar:
		TNT1 A 0 A_GiveToTarget("FrostyMortarKill", 1)
		Goto DeathAnim
    Death.FrostbiteIceBreath:
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_PlayerScream
		TNT1 A 0 A_GiveToTarget("FrostyBreathMulti", 1)
		TNT1 A 0 A_GiveToTarget("FrostbiteIceBreathKill", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("KilledPlaneWalker", 1)
		TNT1 A 0 A_JumpIfInventory("PlaneWalkCheck", 1, 2)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("PWInvisKill", 1)		
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)		
		TNT1 A 0 A_SpawnItemEx("PWIceDeath", 0, 0, 0, 0, 0, 0)
		MNK1 H 1
		TNT1 A 0
		BLAN A -1
		Stop
    Death.Impale:
        TNT1 A 0 A_GiveToTarget("ImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("DoubleImpaleKill", 1)
        Goto DeathAnim
    Death.IceFiendMelee:
		TNT1 A 0 A_GiveToTarget("NightmareMeleeKill", 1)
	Death.DimmedVision:
	DimVisionDeath:
		TNT1 A 0 A_JumpIfInventory("VisionDimmer", 1, 1)
		Goto FadeDeath
		TNT1 A 0 A_GiveToTarget("NightmareHealer", 1)
		TNT1 A 0 A_GiveToTarget("DimDurationEffect", 2)
		TNT1 A 0 A_GiveToTarget("InvisibleCounter", 0)
		TNT1 A 0 A_GiveToTarget("DimmedMeleeKill", 1)
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab1", 5, 0, 1)
		Goto FadeDeath
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab2", 5, 0, 1)
		Goto FadeDeath
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab3", 5, 0, 1)
		Goto FadeDeath
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab4", 5, 0, 1)
	    Goto FadeDeath
	Death.NightmareCleave:
		TNT1 A 0 A_GiveToTarget("CleaveKill", 1)
		TNT1 A 0 A_JumpIfInventory("VisionDimmer", 1, "DimVisionDeath")
	    Goto FadeDeath
	FadeDeath:
	    TNT1 A 0 A_GiveToTarget("InvisibleCounter", 8)
		TNT1 A 0 A_GiveToTarget("KilledPlaneWalker", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		TNT1 A 0 A_JumpIfInventory("PlaneWalkCheck", 1, 2)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("PWInvisKill", 1)	
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		MNK1 G 1
		TNT1 A 0 A_SpawnItemEx("FadePlanesWalker", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
		BLAN A -1
	Stop
	Death.MohophRange:
	Death.Mohoph:
		PLAY A 0 A_GiveToTarget("TransPW",1)
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		PLAY A 0 A_PlaySoundEx("MohophKill","Body")
		TNT1 A 0 A_GiveToTarget("MohophTranslucent", 1)
		TNT1 A 0 A_GiveToTarget("MohophTranslucentText", 1)
		TNT1 A 0 A_GiveToTarget("MohophKill", 1)
		TNT1 A 0 A_GiveToTarget("KilledPlanewalker2", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("MohophJustMorphed", 1, 2)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("JustMorphedKill", 1)		
		TNT1 A 0 ACS_ExecuteAlways(514, 0, 7)
		PLAY A 0 ACS_ExecuteAlways(976,0)
		TNT1 A 0 A_JumpIfInTargetInventory("MohophWarlockCheck", 1, 1)
		Goto DeathAnim
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		Goto DeathAnim
	Death.MorgMelee:
		TNT1 A 0 A_GiveToTarget("MorgBatAmmo", 2)
		TNT1 A 0 A_GiveToTarget("MorgMeleeKill", 1)
		TNT1 A 0 A_GiveToTarget("MorgMulti", 1)
		Goto DeathAnim
	Death.MorgBat:
		TNT1 A 0 A_GiveToTarget("MorgBatKill", 1)
		Goto DeathAnim			
	}
}

Actor Shotgun-Blade : Weapon
{
  Weapon.SlotNumber 1
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o was splintered by %k's shotgun."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "NewShell"
  inventory.icon "PSGGA0"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "AbilityEnergy"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    TNT1 A 400
    stop
  Ready:
    SHOG A 1 A_WeaponReady
    loop
  Deselect: 
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
    SHOG A 1 A_Lower
    loop
  Select:
	TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_PWBLADE)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
    SHOG A 1 A_Raise
    Goto Select+1
  Fire:
	  TNT1 A 0 A_JumpIfInventory("NewShell", 1, 2)
	  SHOG A 1
  Goto Ready
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedFire")
      SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 10, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_SpawnItem("PlaneLightSpawner")
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire
      Goto Ready
	EnhancedFire:
	  SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 15, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 AAAAAAAA 0 A_FireCustomMissile("PWShotgunFX", random(-80,80)/10.0, 0, 0, 8, 0, random(-10,10)/10.0)
	  TNT1 A 0 A_SpawnItem("PlaneLightSpawner2")
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire2")
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire	
	 Goto Ready
	Flash:
	  TNT1 A 4 bright A_Light1
	  TNT1 A 3 bright A_Light2
	  TNT1 A 0 bright A_Light0
	  stop
	AltFire:
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("BladeReturn", 900, "Clean")
	  TNT1 A 0 A_JumpIfInventory("BladeReturn", 1, "Ready")
	  TNT1 A 0 A_JumpIfInventory("AbilityEnergy", 20, 2)
	  SHOG A 1
	Goto Ready
	  TNT1 A 0 A_GiveInventory("BladeReturn", 5)
	  SHOA ABCDEF 1
	  TNT1 A 0 A_PlaySoundEx("PW/Alt", 5)
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedBlade")
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade",-9,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade",0,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade",9,0,8)
	  Continue:
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 20)
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 20)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
	  SHOA GFEDCBA 1
	  SHOG A 2
	Goto Ready
	EnhancedBlade:
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade2",-9,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade2",0,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade2",9,0,8)
	Goto Continue
	Clean:
	  TNT1 A 0 A_TakeInventory("BladeReturn", 999)
	Goto Ready
    }
}

Actor Shotgun-Vortex : Weapon
{
  Weapon.SlotNumber 3
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o saw all the planes %k has been in."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "NewShell"
  inventory.icon "PSGGB0"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 0
  Weapon.AmmoType2 "AbilityEnergy"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    TNT1 A 400
    stop
  Ready:
    SHOG A 1 A_WeaponReady
    loop
  Deselect: 
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
    SHOG A 1 A_Lower
    loop
  Select:
    TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_PWVORTEX)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
    SHOG A 1 A_Raise
    Goto Select+1
  Fire:
	  TNT1 A 0 A_JumpIfInventory("NewShell", 1, 2)
	  SHOG A 1
  Goto Ready
	  SHOG A 1  
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedFire")
      SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 10, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_SpawnItem("PlaneLightSpawner2")
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire
      Goto Ready
	EnhancedFire:
	  SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 15, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 AAAAAAAA 0 A_FireCustomMissile("PWShotgunFX", random(-80,80)/10.0, 0, 0, 8, 0, random(-10,10)/10.0)
	  TNT1 A 0 A_SpawnItem("PlaneLightSpawner")
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire2")
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire	
	 Goto Ready
	Flash:
	  TNT1 A 4 bright A_Light1
	  TNT1 A 3 bright A_Light2
	  TNT1 A 0 bright A_Light0
	  stop
	AltFire:
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("AbilityEnergy", 40, 2)
	  SHOG A 1
	Goto Ready
	  TNT1 A 0 A_JumpIfInventory("BombCooldown", 1, "Ready")
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "Empowered")
	  SHOA ABCDE 1
	  TNT1 A 0 A_GiveInventory("BombCooldown", 1)
	  TNT1 A 0 A_PlaySoundEx("PW/Alt", 5)
	  TNT1 A 0 A_FireBullets(0, 0, 0, 1, "PlaneVortex")
	  TNT1 A 0 A_RailAttack(10, 0, 0, "Black", "Dark Blue", 0)
	  TNT1 A 0 ACS_ExecuteAlways(908, 0, 1)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 40)
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 40)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
	  SHOA FGFEDCBA 1
	  SHOG A 2
	Goto Ready
	Empowered:
	  SHOA ABCDEF 1
	  TNT1 A 0 A_GiveInventory("BombCooldown", 1)
	  TNT1 A 0 A_PlaySoundEx("PW/Alt", 5)
	  TNT1 A 0 A_FireBullets(0, 0, 0, 1, "PlaneVortex2")
	  TNT1 A 0 A_RailAttack(20, 0, 0, "Black", "Dark Blue", 0)
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
	  TNT1 A 0 ACS_ExecuteAlways(908, 0, 1)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 40)
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 40)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
	  SHOA GFEDCBA 1
	  SHOG A 2
	  Goto Ready
    }
}

Actor AbilityEnergy : Ammo
{
	inventory.amount 1
	inventory.maxamount 100
	+IGNORESKILL
}

Actor BladeReturn : Inventory
{
	inventory.amount 1
	inventory.maxamount 999
}

Actor NoDash : Inventory
{
	inventory.maxamount 1
}

Actor AttackEmpower : PowerDamage
{
	damagefactor "normal", 1.0
	powerup.duration 85
}

Actor DashCooldown : PowerProtection
{
	damagefactor "normal", 1.0
	powerup.duration -6
}

Actor BombCooldown : PowerProtection
{
	damagefactor "normal", 1.0
	powerup.duration -3
}

Actor EnergyStarter : CustomInventory
{
	+ALWAYSPICKUP
	+AUTOACTIVATE
	States
	{
		Use:
			TNT1 A 0 ACS_ExecuteAlways(960, 0)
		Stop
	}
}

Actor PlaneTwister : CustomInventory
{
	+ALWAYSPICKUP
	+AUTOACTIVATE
	States
	{
		Use:
			TNT1 A 0 ACS_ExecuteAlways(906, 0)
		Stop
	}
}

Actor PlaneBlade
{
	PROJECTILE
	Radius 8
	Height 8
	scale 0.5
	damage (3)
	+DONTSPLASH
	+DOOMBOUNCE
	+RIPPER
	+DONTBLAST
	+NOTARGETSWITCH
	+SKYEXPLODE
	+THRUGHOST // THRUSPECIES
	Species "Human"
	meleerange 12
	reactiontime 48
	//+FLOAT
	damagetype "PlaneBlade"
	Obituary "%o was sliced and diced by %k."
	speed 28
	FloatSpeed 16
	bouncefactor 1.0
	wallbouncefactor 1.0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("PW/Spin")
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn", 999, "Death")
		SHFL AAAA 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		SHFL BBBB 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		SHFL CCCC 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		SHFL DDDD 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)

		TNT1 A 0 A_PlaySound("PW/Spin")
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		SHFL AAAA 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		/*
		SHFL BBBB 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		SHFL CCCC 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		SHFL DDDD 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		*/
		TNT1 A 0 A_CustomMissile("ReturnPlaneBlade",0,0,0,0)
	stop
	Death:
		TNT1 A 0 A_GiveToTarget("BladeReturn",300)
	stop
	}
}

Actor PlaneBlade2 : PlaneBlade
{
	+BRIGHT
	Damage (5)
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("PW/Spin")
			TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn", 999, "Death")
			SHFL AAAA 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			SHFL BBBB 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			SHFL CCCC 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			SHFL DDDD 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			TNT1 A 0 A_PlaySound("PW/Spin")
			TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
			SHFL AAAA 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			/*
			SHFL BBBB 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			SHFL CCCC 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			SHFL DDDD 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
			*/
			TNT1 A 0 A_CustomMissile("ReturnPlaneBlade2",0,0,0,0)
		stop
	}
}

actor ReturnPlaneBlade : PlaneBlade
{
	radius 0
	height 0
	speed 28
	damagetype "PlaneBlade"
	Obituary "%o was sliced and diced by %k."
	damage (3)
	+DONTSPLASH
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		SHFL CCCC 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		SHFL DDDD 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		TNT1 A 0 A_Countdown
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		TNT1 A 0 A_PlaySound("PW/Spin")
		SHFL AAAA 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		SHFL BBBB 1 A_SpawnItemEx("BladeDamager",0,0,0,2,0,0)
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_CustomMissile("ReturnPlaneBlade",0,0,0,0)
	stop
	}
}

Actor ReturnPlaneBlade2 : ReturnPlaneBlade
{
	+BRIGHT
	Damage (5)
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		SHFL CCCC 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		SHFL DDDD 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
		TNT1 A 0 A_Countdown
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		TNT1 A 0 A_PlaySound("PW/Spin")
		SHFL AAAA 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(60,"Death")
		SHFL BBBB 1 A_SpawnItemEx("BladeDamager2",0,0,0,2,0,0)
		TNT1 A 0 A_JumpIfInTargetInventory("BladeReturn",999,"Death")
		TNT1 A 0 A_CustomMissile("ReturnPlaneBlade2",0,0,0,0)
	stop	
	}
}

actor BladeDamager
{
	PROJECTILE
	damagetype "PlaneBlade"
	Obituary "%o was sliced and diced by %k."
	+THRUGHOST
	Species "Human"
	+RIPPER
	damage (5)
	Speed 1
	radius 12
	height 8
	Renderstyle translucent
	Scale 0.5
	Alpha 0.333
	States
	{
	Spawn:
		SHFL A 1
	stop
	}
}

Actor BladeDamager2 : BladeDamager
{
	+BRIGHT
	Damage (8)
}

Actor PlaneVortex : BulletPuff
{
	Alpha 1.0
	RenderStyle Translucent
	Scale 0.6
	DamageType "PlaneVortex"
	obituary "%o saw all the planes %k has been in."
	Speed 0
	Vspeed 0
	Height 8
	Radius 8
	+PUFFONACTORS
	+PUFFGETSOWNER
	
	States
	{
		Spawn:
			TNT1 AAA 0 A_PlaySoundEx("BarbSwordDeath", 4)
			TNT1 A 0 A_Explode(30, 72, 0)
			VORY ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
		Stop
	}
}

Actor PlaneVortex2 : PlaneVortex
{
	Alpha 1.0
	RenderStyle Translucent
	Scale 0.6
	DamageType "PlaneVortex"
	obituary "%o saw all the planes %k has been in."
	Speed 0
	Vspeed 0
	Height 8
	Radius 8
	+PUFFONACTORS
	+PUFFGETSOWNER
	
	States
	{
		Spawn:
			TNT1 AAA 0 A_PlaySoundEx("BarbSwordDeath", 4)
			TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlaneVortexEffect", random(-16, 16), random(-16, 16), random(-4, 4), random(-10, 10), random(-10, 10), random(-5, 5), random(0, 359))
			TNT1 A 0 A_Explode(45, 72, 0)
			VORY ABCDEFGHIJKLMNOP 2 Bright A_FadeOut(0.05)
		Stop
	}
}

Actor SmokeBombEffect
{
	Height 1
	Radius 1
	+NOGRAVITY
	+NOINTERACTION
	-NOCLIP
	Alpha 0.17
	RenderStyle Add
	Scale 1.0
	
	States
	{
		Spawn:
			X102 ABCDE 4 A_FadeIn(0.075)
			X102 FGHIJKLMNOPQ 3
			X102 RSTUVVVVVVVVVVVVVVV 4 A_FadeOut(0.05)
		Stop
	}
}

Actor PlaneDummy
{
	Alpha 0.8
	Renderstyle Translucent
	-SOLID
	-SHOOTABLE
	
	States
	{
		Spawn:
			MNK1 A 55
			TNT1 A 0 A_PlaySound("PW/Smoke")
			TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SmokeBombEffect", 0, 0, 0, random(-8,8), random(-8,8), random(0,1))
			MNK1 AAAAAAAA 2 A_FadeOut(0.1)
		Stop
	}
}

Actor PlaneVortexEffect
{
	Scale 0.6
	Alpha 0.8
	Renderstyle Add
	+CLIENTSIDEONLY
	+NOINTERACTION
	
	States
	{
		Spawn:
			NB02 F 8
		SpawnLoop:
			NB02 F 1 A_FadeOut(0.1)
		Loop
	}
}

Actor BulletPuffPlane : BulletPuff2
{
	DamageType "PlaneShotgun"
	obituary "%o got pummeled by %k's shotgun."
	RenderStyle Add
	Alpha 0.9
	VSpeed 0
    Scale 0.08
	States
	{
	  Spawn:
		TNT1 AA 0 A_PlaySound("PW/RICO")
		BPUF ABCD 1 Bright
		Stop
	}
}

actor PlaneLightSpawner
{
	Radius 8
	Height 8
	Scale 0.5
	+NOGRAVITY
	States
	{
		Spawn:
		TNT1 A 6
		Stop
	}
}

actor PlaneLightSpawner2
{
	Radius 8
	Height 8
	Scale 0.5
	+NOGRAVITY
	States
	{
		Spawn:
		TNT1 A 6
		Stop
	}
}

Actor PWShotgunFX
{
		Radius 2
		Height 2
		Speed 16
		Damage 0
		Scale 0.3
		PROJECTILE
		-NOGRAVITY
		+RIPPER
		+BLOODLESSIMPACT
		Gravity 0.1
		States
		{
		Spawn:
			FXPW ABCD 5 BRIGHT A_ScaleVelocity(0.75)
			Stop
		}
}

Actor PWDasher : CustomInventory {
	+INVBAR
	inventory.icon "PWDASHI"
	States {
		Use:
			TNT1 A 0 A_JumpIfInventory("DashCooldown", 1, "Failed")
			TNT1 A 0 A_JumpIfInventory("AbilityEnergy", 50, "ContinueDash")
		Fail
		ContinueDash:
			TNT1 A 0 A_GiveInventory("DashCooldown", 1)
			TNT1 A 0 A_GiveInventory("AttackEmpower", 1)
			TNT1 A 0 A_PlaySoundEx("PW/Dash", 5)
			TNT1 A 0 A_GiveInventory("PlaneTwister", 1)
			TNT1 A 0 A_SpawnItemEx("PlaneDummy", 0, 0, 0, 0, 0, 0, (angle+180)*256/360, SXF_TRANSFERTRANSLATION)
			TNT1 A 0 ACS_ExecuteAlways(907, 0, angle)
			TNT1 A 0 ACS_ExecuteAlways(908, 0, 0)
			TNT1 A 0 A_TakeInventory("AbilityEnergy", 50)	 
			TNT1 A 0 A_GiveInventory("EnergyUsage", 50)
			TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
		 Fail
		 Failed:
			TNT1 A 0
		 Fail
	}
}