actor AirWallWep_NormalBar : NormalBar{args 229,75}
actor AirWallWep : BaseMM8BDMWep
{
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Weapon.SlotNumber 7
Inventory.Pickupmessage "$PU_AIRWALL"
Obituary "$OB_AIRWALL"
Tag "$TAG_AIRWALL"
weapon.ammotype "AirWallAmmo"
inventory.icon "AWLLICON"
States
{
SpawnLoop:
AWLL Z -1
loop
Ready:
AWLL A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_AIRWALL)
AWLL A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
AWLL A 0 
goto DeselectSwap
Select:
AWLL A 0 
goto SelectSwap
Fire:
AWLL B 0 A_JumpIfNoAmmo("NoAmmo")
AWLL B 0 A_PlaySound("weapon/airshooter","Weapon")
AWLL B 0 A_PlaySound("weapon/mbuster","Weapon")
AWLL B 1 A_FireCustomMissile("AirWallHelper",0,1,8,0)
AWL0 ABCDEF 2
AWLL A 5
Goto Ready+1
NoAmmo:
AWLL A 0 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor AirWallAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor AirWallHelper : BasicWatcher
{
+MISSILE
-SOLID
translation "200:208=229:229", "4:4=229:229", "198:198=75:75"

+NOCLIP
+NOINTERACTION
+NOGRAVITY
+DONTBLAST
+DONTREFLECT
+THRUACTORS
+DEFLECT
+DONTREFLECT
renderstyle none
radius 2
height 2
States
{
Spawn:
AIRS A 0 ACS_NamedExecuteAlways("core_targetyawpitch", 0, 1) //Turns projectile to direction player was facing
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,0.0,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,5,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,-5,0,0,1)
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,2.5,2.5,0,1)
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,-2.5,2.5,0,1)
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,2.5,-2.5,0,1)
AIRS A 0 A_SpawnItemEx("AirWallShot",2,0,0,15,-2.5,-2.5,0,1)
stop
}
}

//unused//
actor AirWall_V : BasicProjectile
{
projectile
var int user_TranslateWhiteColors;
damagetype "AirWall"
species "AirWall" +THRUSPECIES
Obituary "$OB_AIRWALL"
health 99999
+SHOOTABLE
-NOBLOCKMAP
+DONTRIP
+DONTREFLECT
//+GHOST
//+NOINTERACTION
+NOTARGETSWITCH
-SOLID
+SHOOTABLE
+NOBLOOD
+NOTARGETSWITCH
+NODAMAGE
+NORADIUSDMG
PAINCHANCE 256
damage (CallACS("vile_cbm_damage",7))
translation "200:208=229:229", "4:4=229:229", "80:95=229:229", "198:198=75:75"
Radius 8
Height 8
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2,3,4,5,6)
AIRS AABBCC 1 ThrustThingZ(0,2,0,1)
goto Spawn+2
Death:
AIRS GHIJ 2
stop

}
}
//unused//

actor AirWallShot : AirWall_V
{
speed 0
States
{
Spawn:
AIRS A 0
AIRS A 0 ACS_NamedExecuteAlways("core_targetyawpitch", 0, 1)//Turns projectile to direction player was facing
AIRS A 0 A_SpawnItemEx("AirWallGuard")
AIRS A 1 A_Recoil(3)
AIRS A 0 A_SpawnItemEx("AirWallGuard")
AIRS A 1 A_Recoil(3)
AIRS B 0 A_SpawnItemEx("AirWallGuard")
AIRS B 1 A_Recoil(3)
AIRS B 0 A_SpawnItemEx("AirWallGuard")
AIRS B 1 A_Recoil(3)
AIRS C 0 A_SpawnItemEx("AirWallGuard")
AIRS C 1 A_Recoil(3)
AIRS C 0 A_SpawnItemEx("AirWallGuard")
AIRS C 1 A_Recoil(3)
AIRS A 0 A_Stop
AIRS AABBCC 1 A_SpawnItemEx("AirWallGuard")
AIRS A 0 A_SpawnItemEx("AirWallShot2",0,0,0,cos(-pitch)*22,0,sin(-pitch)*22,0,1)
stop
}
}

actor AirWallGuard : AirWall_V
{
damage (0)
States
{
Spawn:
TNT1 AA 1
stop
Pain:
TNT1 "#" 0 A_PlaySound("item/protoreflect")//A_Pain
TNT1 "#" 1 A_SpawnItemEx("AirWallGuardFX")
stop
}
}


actor AirWallShot2 : AirWall_V
{
reactiontime 15
speed 22
damage (CallACS("vile_cbm_damage",7))
States
{
Spawn:
AIRS AA 0 ThrustThingZ(0,6,1,1)
AIRS ABC 2 ThrustThingZ(0,1,0,1)
goto Spawn+2
Pain:
AIRS "#" 0 A_PlaySound("item/protoreflect")//A_Pain
AIRS "#" 1 A_SpawnItemEx("AirWallGuardFX")
goto Spawn+2
}
}

actor AirWallGuardFX : BasicGraphicEffect
{
scale 3.0
+CLIENTSIDEONLY
alpha 0.9
renderstyle add
states
{
SpawnFrame:
AIRS K 0 A_SetScale(scaleX + 0.2, 3.0) 
AIRS K 1 A_FadeOut(0.1)
loop
}
}