actor AcidBarrierWep : BaseMM8BDMWep
{
dropitem "AcidBarrierWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_ACIDBARRC"
Obituary "%o was corroded by %k's Acid Barrier."
Tag "Acid Barrier"
weapon.ammotype "AcidBarrierAmmo"
inventory.icon "ACIDBCON"
States
{
Spawn:
11WP D 1
loop
Ready:
STHU A 0 ACS_ExecuteAlways(998,0,DYE_ACIDBARRIER)
ACDB A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldUp")
ACDB A 1
ACDB A 1 A_WeaponReady
Goto Ready+1
ShieldUp:
ACBS A 0 A_JumpIfInventory("AcidBar",280,"ShieldPop")
ACBS A 0
ACBS A 1
ACBS A 1 A_WeaponReady
ACDB A 0 A_JumpIfInventory("BasicArmor",1,"ShieldUp")
Goto ShieldPop
Deselect:
ACDB A 0 A_JumpIfInventory("BasicArmor",1,"DeselectDown")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
ACDB A 1 A_Lower
Loop
DeselectDown:
TNT1 A 0 A_PlaySoundEx("misc/splash","Weapon")
ACBS A 0 A_SpawnItemEx("AcidShotTwoSplasher")
ACBS A 0 A_TakeInventory("AcidVision",1)
ACBS A 0 A_TakeInventory("AcidBar",280)
ACBS A 0 A_TakeInventory("ShieldCheck",999)
ACBS A 0 A_TakeInventory("AcidShield",1)
ACBS A 0 A_TakeInventory("BasicArmor",50)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
ACDB A 1 A_Lower
Loop
Select:
ACDB A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldUp")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
ACDB A 1 A_Raise
Loop
Fire:
ACDB A 0 A_JumpIfInventory("ShieldCheck",1,"AcidBuster")
ACDB A 1 A_JumpIfInventory("AcidBarrierAmmo",14,"Activate")
ACBS A 0 A_JumpIfNoAmmo("NoAmmo")
goto Ready+1
AcidBuster:
ACBS A 0 A_JumpIfInventory("AcidBar",280,"ShieldPop")
ACBS A 0 A_PlaySoundEx("weapon/acidfire","Weapon")
ACBS A 0 A_FireCustomMissile("AcidShot",0,0,8,0)
ACBS ABCB 2
ACBS A 0 A_PlaySoundEx("weapon/acidfire","Weapon")
ACBS A 0 A_FireCustomMissile("AcidShot",0,0,8,0)
ACBS ABCB 2
ACBS A 0 A_PlaySoundEx("weapon/acidfire","Weapon")
ACBS A 0 A_FireCustomMissile("AcidShot",0,0,8,0)
ACBS ABC 2
ACBS CB 10
ACDB A 0 A_JumpIfInventory("BasicArmor",1,"ShieldUp")
Goto ShieldPop
Altfire:
ACDB A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldPop")
ACDB A 1 A_JumpIfInventory("AcidBarrierAmmo",14,"Activate")
ACBS A 0 A_JumpIfNoAmmo("NoAmmo")
goto Ready+1
Activate:
ACDB A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldExit")
ACDB A 0 A_JumpIfNoAmmo("NoAmmo")
ACDB ABCDEF 2
TNT1 A 0 A_TakeInventory("AcidBarrierAmmo",14)
TNT1 A 0 A_TakeInventory("BasicArmor",9999)
TNT1 A 0 A_GiveInventory("AcidShield",1)
TNT1 A 0 A_GiveInventory("ShieldCheck",1)
TNT1 A 0 A_PlaySoundEx("misc/oil","Weapon")
TNT1 A 1 A_SpawnItemEx("AcidBarrierWarper")
TNT1 A 1 A_GiveInventory("AcidVision",1)
TNT1 AA 5
ACBS A 2 Offset(0,80)
ACBS A 2 Offset(0,60)
ACBS A 2 Offset(0,40)
ACBS A 2 Offset(0,20)
ACBS A 0 A_Gunflash
goto ShieldUp
ShieldPop:
TNT1 A 0 A_PlaySoundEx("misc/splash","Weapon")
ACDB A 0 A_SpawnItemEx("AcidShotTwoSplasher")
ACDB A 0 A_SpawnItemEx("BarrierPopWarper")
ACDB A 0 A_SpawnItemEx("BarrierPop")
ACDB A 0 A_TakeInventory("AcidVision",1)
ACDB A 0 A_TakeInventory("AcidBar",280)
ACDB A 0 A_TakeInventory("ShieldCheck",999)
ACDB A 0 A_TakeInventory("AcidShield",1)
ACDB A 0 A_TakeInventory("BasicArmor",50)
ACBS A 2 Offset(0,20)
ACBS A 1 Offset(0,40)
ACBS A 1 Offset(0,60)
ACBS A 1 Offset(0,80)
TNT1 A 4
ACDB A 1 Offset(0,80)
ACDB A 1 Offset(0,60)
ACDB A 1 Offset(0,40)
ACDB A 2 Offset(0,20)
goto Ready+1
NoAmmo:
ACDB A 1 ACS_Execute(979,0)
ACDB A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldExit")
ACDB A 0 A_TakeInventory("AcidVision",1)
ACDB A 0 A_TakeInventory("AcidBar",280)
ACDB A 0 A_TakeInventory("ShieldCheck",999)
ACDB A 0 A_TakeInventory("AcidShield",1)
ACDB A 0 A_TakeInventory("BasicArmor",50)
ACDB A 0 A_Refire
goto Ready+1
ShieldExit:
ACDB A 0 A_PlaySoundEx("misc/splash","Weapon")
ACDB A 0 A_SpawnItemEx("AcidShotTwoSplasher")
ACDB A 0 A_SpawnItemEx("BarrierPopWarper")
ACDB A 0 A_SpawnItemEx("BarrierPop")
ACDB A 0 A_TakeInventory("AcidVision",1)
ACDB A 0 A_TakeInventory("AcidBar",280)
ACDB A 0 A_TakeInventory("ShieldCheck",999)
ACDB A 0 A_TakeInventory("AcidShield",1)
ACDB A 0 A_TakeInventory("BasicArmor",50)
ACBS A 2 Offset(0,80)
ACBS A 2 Offset(0,60)
ACBS A 2 Offset(0,40)
ACBS A 2 Offset(0,20)
TNT1 A 4
ACDB A 2 Offset(0,20)
ACDB A 2 Offset(0,40)
ACDB A 2 Offset(0,60)
ACDB A 2 Offset(0,80)
goto Ready+1
Exit:
ACDB A 1
Goto Ready+1
Flash:
TNT1 A 0
TNT1 A 1 A_GiveInventory("AcidBar",1)
TNT1 A 0 A_JumpIfInventory("AcidVision",1,"Flash")
stop
ReadyC:
Goto Ready+1
}
}

actor AcidBarrierWepC : AcidBarrierWep //replaces DarkShieldWep
{
dropitem "AcidBarrierWepCDropped"
States
{
Spawn:
TNT1 A 0
stop
AltfireC:
ACDB A 0 A_PlaySoundEx("misc/splash","Weapon")
ACDB A 0 A_SpawnItemEx("AcidShotTwoSplasher")
ACDB A 0 A_SpawnItemEx("BarrierPopWarper")
ACDB A 0 A_SpawnItemEx("BarrierPop")
ACDB A 0 A_TakeInventory("AcidVision",1)
ACDB A 0 A_TakeInventory("AcidBar",280)
ACDB A 0 A_TakeInventory("ShieldCheck",999)
ACDB A 0 A_TakeInventory("AcidShield",1)
ACDB A 0 A_TakeInventory("BasicArmor",50)
goto AltFireS
ReadyC:Goto Ready+1
}
}

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

actor AcidBarrierWarper : BaseShieldWarper
{
	scale 3
	States
	{
	Shield:
	ACIB AAAABBBBAAAACCCC 1 A_Warp(AAPTR_TARGET, 0, 0, -12, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
	loop
	}
}

actor BarrierPopWarper : BaseShieldWarper
{
	scale 3
	States
	{
	Shield:
	ABUB AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDDDDDDDDDDDD 1 A_Warp(AAPTR_TARGET, 0, 0, -20, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
	loop
	}
}

actor AcidShield : BasicArmorPickup
{
Armor.Savepercent 30
Armor.Saveamount 50
States
{
Spawn:
TNT1 A 0
loop
}
}


actor AcidShot
{
PROJECTILE
-NOGRAVITY
+SOLID
Obituary "%o was corroded by %k's Acid Barrier."
speed 55
Radius 4
Height 8
damagetype "AcidBarrier"
scale 3.5
gravity 2
damage (0)
States
{
Spawn:
ACIB D 0 
ACIB D 0 ThrustThingZ(0,30,0,1)
SpawnLOOP:
ACIB DE 1 A_SpawnItemEx("AcidShotFX")
loop
Death:
TNT1 A 0 A_Explode(13,50,0,0,50)
TNT1 A 0 A_SpawnItemEx("AcidSplash")
Stop
XDeath:
TNT1 A 0 A_Explode(13,50,0,0,50)
TNT1 A 0 A_SpawnItemEx("AcidSplash")
Stop
}
}

actor AcidShotTwoSplasher
{
PROJECTILE
+NOINTERACTION
States
{
Spawn:
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("AcidShotTwo",0,0,0,4,0,0,random(0,360))
Stop
}
}
actor AcidShotTwo
{
PROJECTILE
-NOGRAVITY
+SOLID
Obituary "%o was corroded by %k's Acid Barrier."
speed 4
Radius 4
Height 8
damagetype "AcidBarrier"
scale 2.5
gravity 1.8
damage (5)
reactiontime 100
States
{
Spawn:
ACID D 0
ACIB D 1 ThrustThingZ(0,random(50,100), 0, 1)
Goto Fall
Fall:
TNT1 A 1
ACIB D 0 A_SpawnItemEx("AcidShotFX")
ACIB DE 3
loop
Death:
TNT1 A 0 A_Explode(5,50,0,50)
TNT1 A 0 A_SpawnItemEx("AcidSplash")
Stop
XDeath:
TNT1 A 0 A_Explode(5,50,0,50)
TNT1 A 0 A_SpawnItemEx("AcidSplash")
Stop
}
}

actor BarrierPop
{
PROJECTILE
Obituary "%o was corroded by %k's Acid Barrier."
speed 0
Radius 7
Height 14
damagetype "AcidBarrier"
scale 2.5
gravity 1.8
damage (3)
reactiontime 100
States
{
Spawn:
TNT1 A 0 A_Explode(15, 250, 0,0,250)

TNT1 A 1
stop
}
}

actor AcidShotFX
{
scale 3.5
+NOGRAVITY
+CLIENTSIDEONLY
+MISSILE
+DONTSPLASH
renderstyle add
Damage (0)
height 0
radius 0
States
{
Spawn:
ACIB D 0
ACIB D 0 A_SetScale(scaleX-0.1)
ACIB D 0 A_SetScale(scaleY-0.1)
ACIB D 1 A_Fadeout(0.15)
ACIB E 0 A_SetScale(scaleX-0.1)
ACIB E 0 A_SetScale(scaleY-0.1)
ACIB E 1 A_Fadeout(0.15)
loop
}
}

actor AcidSplash
{
scale 4
+MISSILE
+NOINTERACTION
Damage (0)
height 0
radius 0
States
{
Spawn:
ACIB FGH 2
stop
}
}

actor AcidBar : Inventory
{
inventory.amount 1
inventory.maxamount 280
}

actor BubbleFlag : Inventory
{
inventory.amount 1
inventory.maxamount 100
}

actor AcidVision : PowerUp
{
	powerup.color "Green", 0.1
	powerup.duration -30
}