actor AirShooterBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_2B"
dropitem "AirShooterWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Obituary "$OB_AIRSHOOTER"
weapon.ammotype "Can'tDefeatAmmo"
States
{
Spawn:
C_02 B 1
loop
Ready:
AIRA A 0 ACS_ExecuteAlways(998,0,DYE_AIRMAN)
/*AIRA A 0 A_JumpIfInventory("Can'tDefeatAmmo",2,"Ready2")
AIRA A 10 A_WeaponReady(WRF_NOFIRE)
AIRA A 0 A_GiveInventory("Can'tDefeatAmmo",2)
Goto Ready+1
Ready2:*/
AIRA A 0 A_JumpIfInventory("Can'tDefeatAmmo",4,"Ready3")
AIRA A 10 A_WeaponReady(WRF_NOSECONDARY)
AIRA A 0 A_GiveInventory("Can'tDefeatAmmo",2)
//loop
Goto Ready+1
Ready3:
AIRA A 10 A_WeaponReady
AIRA A 0 A_GiveInventory("Can'tDefeatAmmo",2)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
AIRA A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
AIRA A 1 A_Raise
Loop
Fire:
TNT1 A 0 A_JumpIfInventory("IsBot",1,"BotFire")
//TNT1 A 0 A_JumpIfInventory("AirmanSpamCD",1,"Fire2")
//AIRA A 0 A_JumpIfNoAmmo("NoAmmo")
TNT1 A 0 A_JumpIfInventory("Can'tDefeatAmmo",2,1)
goto Fire2
AIRA A 0 A_TakeInventory("Can'tDefeatAmmo",2)
AIRA A 0 A_PlaySoundEx("weapon/airshooter","Weapon")
AIRA A 0 A_GiveInventory("AirmanMain_CI",1)
//AIRA BC 6
AIRA BC 2
AIRA CCCCCCCCBA 1
AIRA A 5
AIRA A 0 A_Refire
Goto Ready+1
Fire2:
AIRA A 0 A_PlaySoundEx("weapon/airshooter","Weapon")
AIRA A 0 A_GiveInventory("AirmanMainW_CI",1)
//AIRA BC 6
AIRA BC 2
AIRA CCCCCCCCBA 1
AIRA A 5
AIRA A 0 A_Refire
Goto Ready+1
AltFire:
AIRA A 0 A_JumpIfInventory("Can'tDefeatAmmo",4,"AirWall")
goto Ready+1
AirWall:
AIRA A 0 A_GiveInventory("VivifyDelay6",1)
AIRA A 0 A_Refire(1)
AIRA A 0 A_PlaySoundEx("weapon/airwall","Body")
AIRA A 0 A_TakeInventory("Can'tDefeatAmmo",4)
AIRA A 0 A_GiveInventory("AirmanAlt_CI",1)
AIRA B 1 offset(-2,34)
AIRA B 1 offset(-4,37)
AIRA B 1 offset(-9,41)
AIRA B 1 offset(-12,43)
AIRA C 1 offset(-16,47)
AIRA C 1 offset(-20,54)
AIRA C 1 offset(-23,58)
AIRA C 1 offset(-26,62)
AIRA C 1 offset(-23,58)
AIRA C 1 offset(-20,54)
AIRA B 1 offset(-9,41)
AIRA B 1 offset(-2,34)
AIRA A 7 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
AIRA A 0 A_Refire
Goto Ready+1

NoAmmo:
AIRA A 0
//AIRA A 1 ACS_Execute(979,0)
Goto Ready+1

BotFire:
TNT1 A 0 A_JumpIfCloser(350,"BotFire2")
AIRA A 0 A_JumpIfInventory("Can'tDefeatAmmo",4,"AirWall")
AIRA A 10
AIRA A 0 A_GiveInventory("Can'tDefeatAmmo",2)
goto AltFire
BotFire2:
TNT1 A 0 A_Jump(192,"BotFire3")
goto BotFire+1
BotFire3:
AIRA A 0
goto Fire+1
}
}

actor Can'tDefeatAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor AirmanSpamCD : Powerup
{
Powerup.Duration 30
}
/*
actor AirWind
{
PROJECTILE
Radius 32
Height 24
scale 2.5
speed 40
States
{
Spawn:
AIWI ABCD 3 A_RadiusThrust (740000, 1, 0)
loop
}
}
*/

actor AirShotB
{
PROJECTILE
scale 2.5
damage (15)
speed 35//22
damagetype "AirM_Shot"
Obituary "$OB_AIRSHOOTER"
Radius 6
Height 7
+NOEXPLODEFLOOR
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
AIRS A 1
SpawnLoop:
AIRS AABBCC 1 ThrustThingZ(0, 2, 0, 1)
loop
Death:
AIRA A 0 A_PlaySoundEx("weapon/airshotdeath","Body")
AIRS GHIJ 2
stop
XDeath:
AIRA A 0 A_PlaySoundEx("weapon/airshotimpact","Body")
AIRS GHIJ 2
stop
}
}

actor AirShotBB : AirShotB{translation "198:198=74:74"}
actor AirShotBR : AirShotB{translation "198:198=41:41"}
actor AirShotBO : AirShotB{translation "198:198=128:128"}
actor AirShotBP : AirShotB{translation "198:198=232:232"}

actor AirShotBW : AirShotB
{
damage (15)
speed 35//22
damagetype "AirM_Shot"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
goto Spawn2
Spawn2:
AIRS AABBCC 1 ThrustThingZ(0, 4, 0, 1)
loop
}
}

actor AirShotBWB : AirShotBW{translation "198:198=74:74"}
actor AirShotBWR : AirShotBW{translation "198:198=41:41"}
actor AirShotBWO : AirShotBW{translation "198:198=128:128"}
actor AirShotBWP : AirShotBW{translation "198:198=232:232"}

actor AirWallSpawner
{
PROJECTILE
+NOINTERACTION
height 1
radius 1
States
{
Spawn:
AIRS A 0
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,0,0,0,1)
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,random(4,8),random(-2,16),0,1)
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,random(-8,-4),random(-2,16),0,1)
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,random(12,16),random(-3,16),0,1)
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,random(-16,-12),random(-3,16),0,1)
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,random(20,24),random(-4,16),0,1)
//AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,random(-24,-20),random(-4,16),0,1)
AIRS A 0 A_Jump(256,"Pattern1","Pattern2","Pattern3","Pattern4","Pattern5")
Pattern1:
//AIRS A 0 a_print("pattern1")
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,0,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-18,4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-12,16,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-6,8,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,6,-4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,12,12,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,18,20,0,1)
stop
Pattern2:
//AIRS A 0 a_print("pattern2")
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,0,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-18,-4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-12,20,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-6,8,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,6,12,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,12,4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,18,16,0,1)
stop
Pattern3:
//AIRS A 0 a_print("pattern3")
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,0,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-18,16,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-12,-4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-6,8,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,6,4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,12,20,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,18,12,0,1)
stop
Pattern4:
//AIRS A 0 a_print("pattern4")
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,0,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-18,20,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-12,-4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-6,8,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,6,16,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,12,12,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,18,4,0,1)
stop
Pattern5:
//AIRS A 0 a_print("pattern5")
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,0,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-18,4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-12,16,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,-6,20,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,6,8,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,12,-4,0,1)
AIRS A 0 A_SpawnItemEx("AirWall",2,0,0,15,18,12,0,1)
stop
}
}

actor AirWallSpawnerB : AirWallSpawner{translation "198:198=74:74"}
actor AirWallSpawnerR : AirWallSpawner{translation "198:198=41:41"}
actor AirWallSpawnerO : AirWallSpawner{translation "198:198=128:128"}
actor AirWallSpawnerP : AirWallSpawner{translation "198:198=232:232"}

actor AirWall : AirShotB
{
-NOEXPLODEFLOOR
damagetype "AirM_Wall"
damage (6)
speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
AIRS A 0
AIRS A 0 ACS_ExecuteAlways(259, 0, 1)//Turns projectile to direction player was facing
AIRS AABBCC 1 A_Recoil(3)
AIRS A 0 A_Stop
AIRS ABC 2
//AIRS A 0 A_CustomMissile("AirWall2",0,0,0,2,-pitch)
AIRS A 0 A_SpawnItemEx("AirWall2",0,0,0,cos(-pitch)*24.75,0,sin(-pitch)*24.75,0,1)
stop
}
}

actor AirWall2 : AirWall
{
speed 22
damagetype "AirM_Wall"
damage (15)
States
{

Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
AIRS AABBCC 1 A_ScaleVelocity(1.03)
loop
}
}

actor AirM_WallProtect : PowerProtection
{
Powerup.Duration 4
DamageFactor "AirM_Wall", 0.19
}

actor AirmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("AirShotB",-9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotB",9,0,-8,0)//15
TNT1 A 0 A_FireCustomMissile("AirShotB",0,1,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("AirShotBB",-9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBB",9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBB",0,1,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("AirShotBR",-9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBR",9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBR",0,1,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("AirShotBO",-9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBO",9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBO",0,1,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("AirShotBP",-9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBP",9,0,-8,0)
TNT1 A 0 A_FireCustomMissile("AirShotBP",0,1,-8,0)
goto Done
Done:
TNT1 A 0 //A_GiveInventory("AirmanSpamCD",1)
stop
}
}

actor AirmanMainW_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("AirShotB",0,1,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("AirShotBB",0,1,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("AirShotBR",0,1,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("AirShotBO",0,1,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("AirShotBP",0,1,-8,0)
goto Done
}
}



actor AirmanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("AirWallSpawner",0,1,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("AirWallSpawnerB",0,1,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("AirWallSpawnerR",0,1,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("AirWallSpawnerO",0,1,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("AirWallSpawnerP",0,1,-8,0)
goto Done
}
}
