actor Acidman : WeakArmorClass
{
Player.ScoreIcon "ACIDMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "WeakArmor"
player.displayname "Acidman"
player.soundclass "acidmanc"
player.startitem "AcidBarrierBoss"
player.startitem "UltimateAttackItem2"
player.startitem "UltSoundWatcherSpawn2"
player.forwardmove 0.75, 0.75
player.sidemove 0.73, 0.73
player.startitem "Base28Ammo", 28
player.startitem "CanThirdFire"
player.startitem "IsFromMM11"
player.startitem "NoHealthBar"
player.viewheight 51
player.jumpz 12
States
{
Spawn:
ACIY B 0 
ACIY B 1 A_JumpIf(z-floorz>0, "Jumping")
ACIY A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
ACIY BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
ACIY I 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

Missile:
ACIY FFFFFGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile")
goto Spawn+1

JumpingMissile:
ACIY JJJJJJJJJ 1 A_JumpIf(z-floorz<=0, "Missile")
goto Jumping

ClassPain:
ACIY HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
TNT1 A 0 A_StopSound(CHAN_VOICE)
TNT1 A 0 A_SpawnItemEx("DeadAcidMan",0,0,0,0,0,0,0,1)
TNT1 A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("AcidBarrierWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("AcidBarrierWepM")
goto ClassDeath
}
}

actor DeadAcidMan : DeadBlastMan
{
States
{
Spawn:
ACIY H 0 
goto Spawn2

Spawn3:
"####" "#" 0 A_PlaySoundEx("acidman/deadx","Body")
goto loopit
}
}

Actor AcidBarrierBoss : VCBaseWeapon
{
weapon.ammotype "Base28Ammo"
weapon.ammouse 1
Obituary "$OB_ACIDMAN1"
States
{
Ready:
TNT1 A 0
ACIE A 0 A_JumpIfInventory("AcidActiveFlag",1,"Ready.NoTF")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") ACIE A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") ACIE A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") ACIE A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") ACIE A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") ACIE A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") ACIE A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
ACIE A 0 A_JumpIfInventory("AcidBarrierVision",1,"Ready")
ACIE A 0 A_GiveInventory("Base28Ammo",1)
Goto Ready

Ready.NoTF:
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") 
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
ACIE A 1 A_WeaponReady ACIE A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
ACIE A 0 A_JumpIfInventory("AcidBarrierVision",1,"Ready")
ACIE A 0 A_GiveInventory("Base28Ammo",1)
Goto Ready

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
ACIE A 1 A_Lower
Loop

Select:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(991,0,909)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
ACIE A 1 A_Raise
Loop

User1:
ACIE A 0 A_GiveInventory("AcidTFHandler")
ACIE A 0 A_FireCustomMissile("AcidManGeyser",0,0,0,0)
ACIE A 0 A_GiveInventory("AcidActiveFlag", 195) TNT1 A 0 A_SpawnItemEx("AcidActiveWatcher")
ACIE A 1 Offset(0,44)
ACIE A 1 Offset(0,56)
ACIE A 5 Offset(0,68)
ACIE A 1 Offset(0,56)
ACIE A 1 Offset(0,44)
goto Ready

Fire:
ACIE A 0 A_JumpIfInventory("AcidBarrierVision",1,"Fire2")
ACIE A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
ACIE A 0 A_PlaySoundEx("weapon/acidshot","Body")
ACIE B 0 A_FireCustomMissile("AcidManShot",0,0,8,12)
ACIE B 0 A_SpawnItemEx("AcidShotFX",48,24,40)
ACIE A 0 A_GiveInventory("Base28Ammo",1)
ACIE B 1 OffSet(-3,29)
ACIE B 1 OffSet(-14,17)
ACIE B 1 OffSet(-6,26)
ACIE B 1 OffSet(-3,29)
ACIE BBBBBAAAAAAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
goto Ready

Fire2:
ACIE A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
ACIE A 0 A_PlaySoundEx("weapon/acidshot","Body")
ACIE B 0 A_FireCustomMissile("AcidManShot2",0,0,8,12)
ACIE B 0 A_SpawnItemEx("AcidShotFX",48,24,40)
ACIE B 1 OffSet(-3,29)
ACIE B 1 OffSet(-14,17)
ACIE B 1 OffSet(-6,26)
ACIE B 1 OffSet(-3,29)
ACIE BBBAAAAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
goto Ready

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
ACIE A 0 A_JumpIfInventory("AcidBarrierCancel",1,"Ready")
ACIE A 0 A_JumpIfInventory("AcidBarrierVision",1,"Ready")
ACIE A 0 A_JumpIfInventory("Base28Ammo",28,"Altfire.Real")
goto NoAmmo

Altfire.Real:
ACIF A 0 A_GiveInventory("AcidM2Handler")
ACIF BCDEF 2
ACIE A 7
goto Ready

UltimateAttack:
BLA3 G 0 //A_PlaySoundEx("acidman/speedgearx","Voice")
BLA3 G 0 A_PlaySoundEx("megaman/powergear3","Auto")
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,99)
CUTA A 0 A_TakeInventory("MediumShortUltimateAmmo",200)
CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_GiveInventory("AcidUltCooldown",1)
TNT1 A 0 A_FireCustomMissile("AcidWave",0,0,0,0)
TNT1 A 0 A_PlaySoundEx("weapon/acidwave","Auto")
ACIE A 1 Offset(0,44)
ACIE A 1 Offset(0,56)
ACIE A 5 Offset(0,68)
ACIE A 1 Offset(0,56)
ACIE A 1 Offset(0,44) A_TakeInventory("UltAttackFlag")
goto Ready

Flash:
TNT1 A 1 A_ChangeFlag("PICKUP",0)
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Flash")
TNT1 A 0 A_GiveInventory("AcidBarrierCancel",1)
TNT1 A 0 A_ChangeFlag("PICKUP",1)
stop

NoAmmo:
ACIE A 6 A_GiveInventory("Base28Ammo",1)
goto Ready
}
}

actor AcidActiveFlag : Powerup
{
Inventory.amount 1
Inventory.maxamount 195
+INVENTORY.IGNORESKILL
}

actor AcidActiveWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("AcidActiveFlag",1)
TNT1 A 0 A_JumpIfInTargetInventory("AcidActiveFlag",1,"Spawn")
Death:
TNT1 A 1
stop
}
}

actor AcidUltCooldown : GyroUltCooldown {}

actor AcidShotFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
ACP1 ABCDE 1
stop
}
}

actor AcidManShot
{
Obituary "$OB_ACIDMAN1"
PROJECTILE
Damage (14)
damagetype "AcidmanBuster"
Height 12
Radius 12
Scale 2.5
Speed 45
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
ACP1 FG 2
Goto Spawn+2
}
}

actor AcidManShot2 : AcidManShot
{
-NOGRAVITY
gravity 0.5
speed 40
}

actor AcidDebuffWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_GiveToTarget("AcidYellowDripGiver")
TNT1 A 0 A_JumpIfInTargetInventory("AcidDebuffCount",3,"Spawn.Red")
TNT1 A 0 A_JumpIfInTargetInventory("AcidDebuffTimer",1,"Spawn")
TNT1 A 1
Death:
TNT1 A 0 A_TakeFromTarget("AcidYellowVision")
TNT1 A 0 A_TakeFromTarget("AcidRedVision")
TNT1 A 0 A_TakeFromTarget("AcidGreenVision")
TNT1 A 0 A_GiveToTarget("BurnDamageEnd")
TNT1 A 0 A_TakeFromTarget("AcidDebuffCount",999)
stop
Spawn.Red:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_GiveToTarget("AcidRedDripGiver")
TNT1 A 0 A_JumpIfInTargetInventory("AcidDebuffCount",5,"Spawn.Green")
TNT1 A 0 A_JumpIfInTargetInventory("AcidDebuffTimer",1,"Spawn.Red")
TNT1 A 1
goto Death
Spawn.Green:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_GiveToTarget("AcidGreenDripGiver")
TNT1 A 0 A_JumpIfInTargetInventory("AcidDebuffTimer",1,"Spawn.Green")
TNT1 A 1
goto Death
}
}

actor AcidYellowDripGiver : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("AcidYellowDrop",random(0,32),0,random(0,40),0,0,random(0,-1),random(0,359))
stop
}
}

actor AcidRedDripGiver : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("AcidRedDrop",random(0,32),0,random(0,40),0,0,random(0,-1),random(0,359))
stop
}
}

actor AcidGreenDripGiver : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("AcidGreenDrop",random(0,32),0,random(0,40),0,0,random(0,-1),random(0,359))
stop
}
}

actor AcidYellowVision : PowerUp
{
	Powerup.Color 173, 156, 1, 0.3
	powerup.duration 0x7ffffffd
}

actor AcidRedVision : PowerUp
{
	Powerup.Color 122, 15, 0, 0.3
	powerup.duration 0x7ffffffd
}

actor AcidGreenVision : PowerUp
{
	Powerup.Color 0, 122, 10, 0.3
	powerup.duration 0x7ffffffd
}

actor AcidYellowColor : PowerupGiver
{
Powerup.ColorMap 0.678, 0.611, 0.003, 0.5, 0.5, 0.5
powerup.duration 0x7FFFFFFD
powerup.type "AcidColor"
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
states
{
Pickup:
TNT1 A 0 
TNT1 A 999
stop
}
}

actor AcidRedColor : PowerupGiver
{
Powerup.ColorMap 0.478, 0.058, 0, 0.5, 0.5, 0.5
powerup.duration 0x7FFFFFFD
powerup.type "AcidColor"
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
states
{
Pickup:
TNT1 A 0 
TNT1 A 999
stop
}
}

actor AcidGreenColor : PowerupGiver
{
Powerup.ColorMap 0, 0.478, 0.039, 0.5, 0.5, 0.5
powerup.duration 0x7FFFFFFD
powerup.type "AcidColor"
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
states
{
Pickup:
TNT1 A 0 
TNT1 A 999
stop
}
}

actor PowerAcidColor : PowerUp
{
}

actor AcidDebuffTimer : Powerup
{
Powerup.Duration 280
}

actor AcidDebuffCount : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 5
}
/*
actor AcidBarrierHealth : BasicArmorPickup
{
  armor.saveamount 60
  armor.savepercent 100
}*/

actor AcidBarrierHealth : Inventory
{
Inventory.MaxAmount 60
}

actor AcidBarrierWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
-DONTBLAST
States
{
Spawn:
TNT1 A 0 
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0// A_GiveToTarget("AcidArmorCheck")
TNT1 A 0 A_JumpIfInTargetInventory("AcidBarrierHealth",1,"Spawn")
TNT1 A 0
Death:
TNT1 A 0 A_TakeFromTarget("AcidBarrierVision",1)
TNT1 A 0 A_TakeFromTarget("BasicArmor",100)
TNT1 A 0 A_GiveToTarget("AcidDispelGiver")
TNT1 A 0 A_TakeFromTarget("BaseCustomFlag1")
stop
}
}

actor AcidDispelGiver : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/acidbreak","Auto")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("AcidGeyserFX",32,0,random(0,80),random(1,7),0,random(0,7),random(0,359))
stop
}
}

actor AcidBarrierVision : PowerUp
{
	Powerup.Color 92 208 46, 0.3
	powerup.duration 0x7ffffffd
}

actor AcidAfterBurnPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("AcidNoNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("AcidNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("AcidAfterBurnDuration",1)
stop
}
}

actor AcidAfterBurnDuration : PowerUp
{
Powerup.Duration 999
}

actor AcidNoNewAfterBurn : PowerUp
{
Powerup.Duration 6
}

actor AcidNewAfterBurn : PowerUp
{
Powerup.Duration 3
}

actor AcidAfterBurnDamageTimer : PowerUp
{
Powerup.Duration 14
}

actor AcidAfterBurn
{
Height 0
Radius 0
+NOINTERACTION
+NOCLIP
damagetype "AcidBurning"
Obituary "$OB_ACIDMAN1"
PROJECTILE
states
{
Spawn:
TNT1 A 0
SpawnStart0:
TNT1 A 0 A_GiveInventory("AcidAfterBurnDamageTimer",1)
SpawnStart:
TNT1 A 1
TNT1 A 0 A_JumpIfInventory("NewAfterBurn",1,"SpawnStart",AAPTR_TRACER)
Spawn2:
TNT1 A 1 A_JumpIfInventory("BurnDamageEnd",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_GiveInventory("AcidAfterburnFunc",1)
loop
Death:
TNT1 A 0
stop
}
}

actor AcidAfterburnFunc : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("AcidAfterBurnDuration",1,"Pickup2",AAPTR_TRACER)
PickupRemove:
TNT1 A 0 Thing_Remove(0)
stop
Pickup2:
TNT1 A 0 A_JumpIfInventory("AcidNewAfterBurn",1,"PickupRemove",AAPTR_TRACER)
TNT1 A 0 A_JumpIfInventory("AcidAfterBurnDamageTimer",1,"PickupWait")
TNT1 A 0 A_GiveInventory("AcidAfterBurnDamageTimer",1)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,ACS_NamedExecuteWithResult("TracerHeightGet")/2,0,0)
TNT1 A 0 A_RadiusGive("AfterBurnImmune",IMMUNE_RADIUS,RGF_PLAYERS|RGF_MONSTERS|RGF_OBJECTS)
TNT1 A 0 A_TakeInventory("AfterBurnImmune",1,0,AAPTR_TRACER)
TNT1 A 0 A_Explode(1,1,0,0,1)
stop
PickupWait:
TNT1 A 0
stop
}
}

actor AcidMeltFX : BasicClientSide
{
+CLIENTSIDEONLY
+NOCLIP
-NOGRAVITY
scale 2.5
height 2
radius 2
speed 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
ACP1 HIJ 4
stop
}
}

actor AcidBarrierVisual
{
Height 2
Radius 2
scale 2.5
+NOCLIP
-SOLID
+NOGRAVITY
+NOINTERACTION
//+CLIENTSIDEONLY
+MISSILE
States
{
Spawn:
ACBA A 0
ACBA A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
//ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")
ACBA B 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
//ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

loopit:
ACBA C 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

ACBA C 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

ACBA D 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

ACBA D 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")
loop
/*ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierBoss",1,"loopit")
ACBA C 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

ACBA C 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

ACBA D 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")

ACBA D 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
ACBA A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
ACBA A 0 A_JumpIfInTargetInventory("AcidBarrierCancel",1,"Death")
goto Death*/

Death:
TNT1 A 0
stop
}
}

actor AcidBarrierCancel : PowerUp
{
Powerup.Duration 13
}

actor AcidManGeyser
{
PROJECTILE
Obituary "$OB_ACIDMAN5"
+THRUACTORS
-DONTBLAST
+THRUGHOST
+FLOORHUGGER
+SPAWNCEILING
+DONTREFLECT
radius 1
height 1
renderstyle translucent
reactiontime 60
alpha 0.9
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("misc/splash","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/acidgeyserloop","Body",1)
AGEY CCCCCCCCCCCCCCCCCCCCCCCC 0 A_SpawnItemEx("AcidGeyserFX",random(0,40),0,0,random(0,10),0,random(10,40),random(0,359),1)
AGEY AB 1 A_ChangeFlag("FLOORHUGGER",1)

loopit:
AGEY CCCC 0 A_SpawnItemEx("AcidGeyserFX",random(0,40),0,0,random(0,10),0,random(0,2),random(0,359),1)
AGEY CCCC 0 A_SpawnItemEx("AcidGeyserFX",random(0,40),0,random(0,270),random(0,2),0,random(-1,1),random(0,359),1)
AGEY CD 1 A_SpawnItemEx("AcidGeyserHitbox")
AGEY A 0 A_Countdown
loop

Death:
AGEY C 0 A_StopSound
AGEY C 0 A_PlaySoundEx("weapon/waterwave","Weapon")
AGEY CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 0 A_SpawnItemEx("AcidGeyserFX",random(0,40),0,random(0,260),random(0,6),0,random(-5,9),random(0,359),1)
TNT1 A 3
stop
}
}

actor AcidGeyserHitbox
{
PROJECTILE
damagetype "AcidManGeyser"
Obituary "$OB_ACIDMAN5"
+RIPPER
+DONTSPLASH
-DONTBLAST
+THRUGHOST
Damage (3)
Radius 56
Height 270
States
{
Spawn:
TNT1 A 2
stop
}
}

actor AcidGeyserFX : BasicClientSide
{
renderstyle translucent
alpha 0.6
-NOINTERACTION
-NOGRAVITY
gravity 2.0
+NOEXPLODEFLOOR
States
{
Spawn:
AGEY "#" 0
"####" "#" 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6","Spawn7")

Spawn1:
"####" E 1 A_GiveInventory("CutterFlag",random(1,35))
"####" E 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Spawn2:
"####" F 1 A_GiveInventory("CutterFlag",random(1,35))
"####" F 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Spawn3:
"####" G 1 A_GiveInventory("CutterFlag",random(1,35))
"####" F 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Spawn4:
"####" H 1 A_GiveInventory("CutterFlag",random(1,35))
"####" H 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Spawn5:
"####" I 1 A_GiveInventory("CutterFlag",random(1,35))
"####" I 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Spawn6:
"####" J 1 A_GiveInventory("CutterFlag",random(1,35))
"####" J 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Spawn7:
"####" K 1 A_GiveInventory("CutterFlag",random(1,35))
"####" K 0 A_JumpIfInventory("CutterFlag",350,"Death")
loop

Death:
"####" "##########" 1 A_SetScale(scalex-0.25,scaley-0.25) 
stop
}
}

actor AcidGeyserProtect : PowerProtection
{
	powerup.duration 3
	DamageFactor "AcidManGeyser", 0.0
}

actor AcidTFHandler : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("AcidTeamGeyserCheck")
TNT1 A 0 A_CheckFloor("Boost")
stop

Boost:
TNT1 A 0 ThrustThingZ(0,100,0,0)
stop
}
}

actor AcidYellowDrop : BasicClientSide
{
renderstyle translucent
alpha 0.6
-NOINTERACTION
-NOGRAVITY
gravity 1.7
+NOEXPLODEFLOOR
reactiontime 25
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ACDX A 10
loopit:
ACDX A 1 A_SetScale(scalex-0.1,scaley-0.1)
ACDX A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor AcidRedDrop : AcidYellowDrop
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ACDX B 10
loopit:
ACDX B 1 A_SetScale(scalex-0.1,scaley-0.1)
ACDX B 0 A_Countdown
loop
}
}

actor AcidGreenDrop : AcidYellowDrop
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ACDX C 10
loopit:
ACDX C 1 A_SetScale(scalex-0.1,scaley-0.1)
ACDX C 0 A_Countdown
loop
}
}

actor AcidDeathDrop : AcidYellowDrop
{
gravity 0.1
reactiontime 75
scale 0.0
States
{
Spawn:
TNT1 A 0
ACDX D 1 A_SetScale(random(2.5,7.5))
loopit:
ACDX D 1 A_SetScale(scalex-0.1,scaley-0.1)
ACDX D 0 A_JumpIf(scalex<=0,"Death")
ACDX D 0 A_Countdown
loop
}
}

actor AcidWave
{
PROJECTILE
radius 16
height 16
damage (0)
scale 2.5
+FLOORHUGGER
+THRUACTORS
Obituary "$OB_ACIDMAN3"
damagetype "AcidmanUlt"
reactiontime 70
speed 40
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/acidwaveloop","Body",1)
loopit:
ACWV A 0 A_GiveToTarget("AcidUltCooldown")
ACWV AAAA 0 A_SpawnItemEx("AcidGreenDrop",random(0,8),random(-72,72),random(0,56),0,0,0)
ACWV A 1 A_Explode(16,150,0,0,0)
ACWV AAAA 0 A_SpawnItemEx("AcidGreenDrop",random(0,8),random(-72,72),random(0,56),0,0,0)
ACWV A 1 A_Explode(16,150,0,0,0)
ACWV BBBB 0 A_SpawnItemEx("AcidGreenDrop",random(0,8),random(-72,72),random(0,56),0,0,0)
ACWV B 1 A_Explode(16,150,0,0,0)
ACWV BBBB 0 A_SpawnItemEx("AcidGreenDrop",random(0,8),random(-72,72),random(0,56),0,0,0)
ACWV B 1 A_Explode(16,150,0,0,0)
ACWV A 0 A_Countdown
loop
Death:
ACWV A 0 A_StopSound
ACWV A 0 A_PlaySoundEx("misc/splash","Body")
ACWV AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("AcidGreenDrop",random(0,8),random(-72,72),random(0,56),random(6,16),0,random(-1,14),random(135,225),1)
ACWV AAAAA 1 A_FadeOut(0.2)
stop
}
}

actor AcidArmorCheck : CustomInventory
{
States
{
Pickup:
//TNT1 A 0 A_JumpIf(CallACS("VC_ArmorCheck")<CallACS("VC_ArmorRecordCheck"),"Pickup2")
//stop
//Pickup2:
//TNT1 A 0 A_TakeInventory("BasicArmorRecord",999)
//TNT1 A 0 A_GiveInventory("BasicArmorRecord",CallACS("VC_ArmorCheck"))
TNT1 A 0 A_PlaySoundEx("weapon/acidhurt","Auto")
TNT1 AAAA 0 A_SpawnItemEx("AcidGeyserFX",32,0,random(0,80),random(1,7),0,random(0,7),random(0,359))
stop
}
}

actor AcidTeamGeyserCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"L")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"W")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"C")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"K")
goto X

L:
TNT1 A 0 A_RadiusGive("AcidGeyserBoostL",100,RGF_PLAYERS|RGF_MONSTERS,1)
stop

W:
TNT1 A 0 A_RadiusGive("AcidGeyserBoostW",100,RGF_PLAYERS|RGF_MONSTERS,1)
stop

C:
TNT1 A 0 A_RadiusGive("AcidGeyserBoostC",100,RGF_PLAYERS|RGF_MONSTERS,1)
stop

K:
TNT1 A 0 A_RadiusGive("AcidGeyserBoostK",100,RGF_PLAYERS|RGF_MONSTERS,1)
stop
}
}

actor AcidGeyserBoostL : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Next")
stop

Next:
TNT1 A 0 ThrustThingZ(0,100,0,0)
stop
}
}

actor AcidGeyserBoostW : AcidGeyserBoostL
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Next")
stop
}
}

actor AcidGeyserBoostC : AcidGeyserBoostL
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Next")
stop
}
}

actor AcidGeyserBoostK : AcidGeyserBoostL
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Next")
stop
}
}

actor AcidM2Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("BaseCustomFlag1")
TNT1 A 0 A_PlaySoundEx("weapon/acidbarrier","Weapon")
TNT1 A 0 A_GiveInventory("AcidBarrierVision")
TNT1 A 0 A_GiveInventory("AcidBarrierHealth",60)
TNT1 A 0 A_GunFlash
TNT1 A 0 A_TakeInventory("Base28Ammo",28)
TNT1 A 0 A_SpawnItemEx("AcidBarrierWatcher")
TNT1 A 0 A_SpawnItemEx("AcidBarrierVisual")
//TNT1 A 0 A_TakeInventory("BasicArmorRecord",999)
//TNT1 A 0 A_GiveInventory("BasicArmorRecord",CallACS("VC_ArmorCheck"))
stop
}
}