actor OilSliderWep : Megabuster 20042
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Obituary "%o was covered in %k's Oil Slider."
Inventory.Pickupmessage "Power up! Oil Slider!"
weapon.ammotype "OilAmmo"
weapon.ammotype2 "OilChargeAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Inventory.Icon "OILLI"
Scale 2.0 
states
{
Spawn:
WEA7 J 1
loop
Ready:
OILL A 0 A_TakeInventory("OilCheck", 999)
OILL A 0 ACS_ExecuteAlways (998,0,119)
OILL A 0 ACS_ExecuteAlways (991,0,119)
OILL A 0 A_JumpIfInventory("OilCheck",1,"Charge")
OILL A 1 A_WeaponReady
goto Ready+3
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
OILL A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
OILL A 1 A_Raise
Loop
//Hold:
Fire:
OILL A 0 A_JumpIfInventory("OilCheck",1,"Charge")
OILL A 0 A_JumpIfNoAmmo ("NoAmmo")
OILL A 0 A_PlaySoundEx("weapon/oilshot","Weapon")
OILL A 0 A_FireCustomMissile("OilShot",0,1,8,0)
OILL BCA 5
OILL A 0 A_Refire
goto Ready+2
Charge:
OILL A 0 A_JumpIfInventory("OilJump",1,"OilPogo")
OILL A 0 A_GiveInventory("OilChargeAmmo",30)
OILL A 0 A_TakeInventory("OilAmmo",4)
OILL A 0 A_JumpIfInventory("OilCheck",1,1)
Goto NoAmmo2
OILL A 0 A_JumpIfInventory("OilChargeAmmo",1,"Charge2")
Goto NoAmmo2
Charge2:
OILL A 0 A_GiveInventory("OilJump", 1)
OILL A 0 A_GiveInventory("OilBoat", 1)
OILL A 0 SetPlayerProperty(0,1,0)
OILL A 0 A_JumpIf(z-floorz>0,"ChargeAir")
OILL A 0 A_Recoil (-8)
Charge3:
OILL A 0 A_PlaySoundEx("weapon/OilSlider","Weapon")
OILL A 0 A_SpawnItemEx("SliderDamage", 24, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
OILL A 4 A_WeaponReady (WRF_NOSWITCH)
OILL A 0 A_TakeInventory ("OilChargeAmmo",1)
OILL A 0 SetPlayerProperty(0,0,0)
goto Charge+3
ChargeAir:
OILL A 0 A_Recoil (-5)
OILL A 0 A_JumpIf(z-floorz<48,"Charge3")
OILL A 0 A_JumpIf(ACS_ExecuteWithResult(250)==1, "UnderWater")
Goto Charge3
UnderWater:
OILL A 0 SetPlayerProperty(0,1,3)
OILL A 0 A_JumpIf(momz<=0,3)
OILL A 0 ThrustThingZ(0, 5, 0, 1)
OILL A 0 A_Jump(256,2)
OILL A 0 ThrustThingZ(0, 7, 0, 0)
OILL A 0 SetPlayerProperty(0,0,3)
goto Charge3
OilPogo:
OILL A 0
//OILL A 0 A_JumpIf(ACS_ExecuteWithResult(254)==1,"Charge2")
OILL A 0 A_JumpIfInventory("IsBotFlag",1,"Charge2")
OILL A 0 SetPlayerProperty(0,0,0)
OILL A 0 A_Recoil(5)
OILL A 0 A_TakeInventory ("OilChargeAmmo",32)
OILL A 0 A_TakeInventory("OilCheck", 1)
OILL A 0 ThrustThingZ(0, 30, 0, 0)
OILL A 20
Goto NoAmmo2+3
NoAmmo:
OILL A 1 ACS_Execute(979,0)
goto Ready+2
NoAmmo2:
OILL A 0 SetPlayerProperty(0,0,0)
OILL A 1 A_TakeInventory ("OilChargeAmmo",32)
OILL A 1 A_TakeInventory("OilCheck", 1)
OILL A 0 A_TakeInventory ("OilBoat",1)
OILL A 0 A_TakeInventory ("OilJump",1)
goto Ready+2
}
}

actor OilAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor OilShot
{
PROJECTILE
Damage (20)
damagetype "Oil"
Height 5
Radius 8
-NOGRAVITY
Scale 2.0
speed 28
States
{
Spawn:
OILL D 5 
loop
Crash:
XDeath:
OILL D 1 
stop
Death:
OILL D 1 A_SpawnItemEx("OilBlob",0,0,0)
stop
}
}


Actor OilBlob
{
+MISSILE
+NODAMAGETHRUST
+NOBLOOD
+DONTSPLASH
+NOEXPLODEFLOOR
+NOTARGETSWITCH
Damage (10)
damagetype "Oil"
Height 10
Radius 8
scale 2.5
mass 99999
reactiontime 250
painchance 256

states
{
Spawn:
OILL D 0
OILL D 1 A_JumpIf(z-floorz<=1,"Spawn2")
OILL D 0 A_CountDown
loop
pain.Flame:
Pain.FireStorm:
Pain.FireSpin:
Pain.Weakfire:
pain.Atomic:
pain.Scorch:
OILL E 0
OILL E 1 A_SpawnItemEx("OilBlobFlame",0,0,0)
OILL E 0 A_Jump(256,"Death")
stop
Spawn2:
OILL G 5 
OILL G 0 A_ChangeFlag("SHOOTABLE",1)
OILL E 0 A_JumpIfCloser(40, "Slide")
OILL EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_JumpIfCloser(40, "Slide")
OILL EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_JumpIfCloser(40, "Slide")
OILL EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_JumpIfCloser(40, "Slide")
OILL EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_JumpIfCloser(40, "Slide")
OILL EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_JumpIfCloser(40, "Slide")
stop
Slide:
OILL E 0
OILL E 0 A_JumpIfInTargetInventory("OilCheck", 1,"Spawn2")
TNT1 A 2 A_GiveToTarget("OilCheck",1)
stop
Death:
TNT1 A 0
stop
}
}

actor OilBlobFlame 
{
PROJECTILE
-NOGRAVITY
+NODAMAGETHRUST
+NOBLOOD
+DOOMBOUNCE //Don't ask, it acts derpy otherwise.
+DONTSPLASH
+FLOORHUGGER
+DONTBLAST
Damage (25)
damagetype "OilFlame"
Obituary "%o was ignited by %k's Oil Flame."
Height 32
Radius 8
scale 2.5
mass 99999
reactiontime 100
States
{
Spawn:
OILF C 0 
OILF C 0 A_ChangeFlag("DOOMBOUNCE",0)
OILF C 1 ACS_Execute(202,0)
OILF CD 3 A_CountDown
goto Spawn+3
Death: 
TNT1 A 1
stop
}
}

actor OilCheck : Inventory 
{
inventory.amount 1
inventory.maxamount 1
}

actor OilChargeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 32
}


actor SliderDamage
{
PROJECTILE
//+FLOORHUGGER
Radius 14
Height 25
scale 2.5
damage (10)
damagetype "Oil"
speed 20
States
{
Spawn:
OILL F 0 
OILL F 5 A_Explode(20,64,0)
stop
}
}

actor OilJump : Inventory
{
inventory.amount 1
inventory.maxamount 1
}


actor OilBoat : Inboat
{
}
