//Movement recoded
actor Oilman : VCBaseClass
{
Player.ScoreIcon "OILMMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "IsFromMM1"
player.displayname "Oilman"
player.soundclass "Oilmanc"
player.startitem "OilSliderBoss"
player.startitem "UltimateAttackItem1"
player.startitem "UltSoundWatcherSpawn1"
player.startitem "Base28Ammo", 28
player.viewheight 44
player.forwardmove 0.85,0.85
player.sidemove 0.83,0.83
player.jumpz 10
States
{
Spawn:
NOIL B 0 
NOIL B 1 A_JumpIf(z-floorz>0, "Jumping")
NOIL A 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
NOIL B 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL B 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL B 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL B 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL B 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL B 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL B 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL B 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL C 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL C 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL C 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL C 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL C 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL C 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL C 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL C 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL D 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL D 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL D 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL D 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL D 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL D 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL D 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL D 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL E 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL E 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL E 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL E 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL E 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL E 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL E 0 A_JumpIf(z-floorz>0, "Jumping")
NOIL E 1 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
Goto Spawn+1

Jumping:
NOIL Q 1 A_JumpIf(z-floorz<=0, "Spawn")
loop

Missile:
NOIL F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
NOIL F 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL FFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")

Missile2:
NOIL GGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2

JumpingMissile:
NOIL A 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL RRRRR 1 A_JumpIf(z-floorz<=0, "Missile")

JumpingMissile2:
NOIL RRRR 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

OilSliderAnim:
NOIL SSTT 1 A_JumpIf(z-floorz>0, "OilSliderAnim.Jumping")
TNT1 A 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
NOIL SSTT 1 A_JumpIf(z-floorz>0, "OilSliderAnim.Jumping")
TNT1 A 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim")
Goto Spawn+1

OilSliderAnim.Jumping:
NOIL UUVV 1 A_JumpIf(z-floorz<=0, "OilSliderAnim")
TNT1 A 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim.Jumping")
NOIL UUVV 1 A_JumpIf(z-floorz<=0, "OilSliderAnim")
TNT1 A 0 A_JumpIfInventory("OilmanSlideFrame",1,"OilSliderAnim.Jumping")
Goto Spawn+1

Animation1:
N0IL OQRS 1
N0IL TUVW 1 A_JumpIf(z-floorz<=0, "OilmanPose")

A1Loop:
N0IL TUVWOQRS 1 A_JumpIf(z-floorz<=0, "OilmanPose")
loop

OilmanPose:
TNT1 A 0 A_JumpIfInventory("OilmanUltSlideGo",1,"OilSliderAnimUlt")
NOIL P 1
loop

OilSliderAnimUlt:
NOIL SS 1 A_JumpIf(z-floorz>0, "OilSliderAnim.Jumping")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
NOIL TT 1 A_JumpIf(z-floorz>0, "OilSliderAnim.Jumping")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("OilmanUltSlideGo",1,"OilSliderAnimUlt")
NOIL SS 1 A_JumpIf(z-floorz>0, "OilSliderAnim.Jumping")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
NOIL TT 1 A_JumpIf(z-floorz>0, "OilSliderAnim.Jumping")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("OilmanUltSlideGo",1,"OilSliderAnimUlt")
Goto Spawn+1

OilSliderAnimUlt.Jumping:
NOIL UU 1 A_JumpIf(z-floorz<=0, "OilSliderAnim")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
NOIL VV 1 A_JumpIf(z-floorz<=0, "OilSliderAnim")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("OilmanUltSlideGo",1,"OilSliderAnimUlt.Jumping")
NOIL UU 1 A_JumpIf(z-floorz<=0, "OilSliderAnim")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
NOIL VV 1 A_JumpIf(z-floorz<=0, "OilSliderAnim")
TNT1 A 0 A_SpawnItemEx("SliderAfterImage",0,0,0,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("OilmanUltSlideGo",1,"OilSliderAnimUlt.Jumping")
Goto Spawn+1

ClassPain:
NOIL H 0 A_JumpIfInventory("OilmanUltSlideGo",1,"ClassPain.Ult")
NOIL HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassPain.Ult:
NOIL H 0 A_SpawnItem("PainFX",0,3)
goto OilSliderAnimUlt
ClassDeath:
NOIL H 0
NOIL H 8 ACS_ExecuteAlways(999,0,0)
NOIL H 12 A_SpawnItemEx("MM1Death")
NOIL H 0 A_PlayerScream
NOIL H 0 A_SpawnItemEx("FakeDeathFXMM1", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("OilSliderWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("OilSliderWepM")
goto ClassDeath
}
}

Actor OilSliderBoss : VCBaseWeapon
{
weapon.ammotype "Base28Ammo"
weapon.ammouse 2
Obituary "$OB_OILMAN1"
States
{
Ready:
OILA A 0
OILA A 0 A_GiveInventory("OilManSkinCheck",1)
OILA A 0 A_GiveInventory("OilManColors",1)
OILA A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
Ready2:
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,2)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,2)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,2)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,2)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,2)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,2)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,2)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,2)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,2)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,2)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 0 A_GiveInventory("Base28Ammo",1)
Goto Ready

AltSkinFrame:
OIL_ A 0
goto Ready2

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
OILA A 1 A_Lower
Loop

Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,727)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
OILA A 1 A_Raise
Loop

Fire:
"####" A 0 A_JumpIfInventory("OilmanSlideFrame",1,"EarlySlideEndThrust")
"####" A 0 A_JumpIfNoAmmo("NoAmmo")
"####" B 1 OffSet(3,35)
"####" B 1 OffSet(14,47)
"####" A 0 A_PlaySoundEx("weapon/oilshot","Weapon")
"####" A 0 A_GiveInventory("OilmanShot_CI",1)//A_FireCustomMissile("OilmanShot",0,1,8,3)
"####" C 1 OffSet(6,38)
"####" C 1 OffSet(3,35)
"####" A 8 A_WeaponReady(WRF_NOFIRE)
Goto Ready

Altfire:
"####" A 0 A_JumpIfInventory("NoAltfire",1,"NoAltFire")
"####" A 0 A_JumpIfInventory("OilSliderCooldown",1,"NoAltFire")
"####" A 0 A_JumpIfInventory("OilmanSlideFrame",1,"EarlySlideEnd")
"####" A 0 A_GiveInventory("OilmanSlideFrame",1)
"####" AHIJK 1 A_GiveInventory("OilmanSlideFrame",1)

OilmanSlideBegin:
"####" A 0 A_GiveInventory("OilBoat", 1)
"####" A 0 A_GunFlash
"####" A 0 A_GiveInventory("FlyDeactivate", 1)
"####" A 0 A_GiveInventory("OilmanSlider_CI")//A_SpawnItemEx("OilmanSlider", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
"####" A 0 A_SpawnItemEx("OilmanSliderDamager", 0, 0, 8)
"####" KKKKK 1 A_WeaponReady(WRF_NOSWITCH)
"####" A 0 A_JumpIfInventory("IGotGrabbed",1,"EarlySlideEnd")
"####" A 0 A_JumpIfInventory("Base28Ammo",1,"SlideCont")
"####" K 0
Goto EarlySlideEnd

SlideCont:
"####" A 0 A_JumpIfInventory("Base28Ammo",1,"SlideCont2")
Goto EarlySlideEnd

SlideCont2:
"####" A 0 A_JumpIfInventory("IsUnderWater", 1, "UnderWater")
Goto SlideCont3
UnderWater:
"####" A 0 A_JumpIf(z-floorz > 32, 1)
Goto SlideCont3
"####" A 0 A_JumpIf(momz <= 0, 2)
"####" A 0 ThrustThingZ(0, 7, 0, 1)
Goto SlideCont3
"####" A 0 A_GiveInventory("FlyActivate", 1)
"####" A 0 ThrustThingZ(0, 5, 0, 0)
Goto SlideCont3+1

SlideCont3:
"####" A 0 A_JumpIfInventory("Base28Ammo",1,"SlideCont4")
Goto EarlySlideEnd

SlideCont4:
"####" A 0 A_GunFlash
"####" A 0 A_GiveInventory("FlyDeactivate", 1)
"####" A 0 A_GiveInventory("OilAmmoHandler")
"####" A 0 A_GiveInventory("OilmanSlider_CI")//A_SpawnItemEx("OilmanSlider", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
"####" A 0 A_SpawnItemEx("OilmanSliderDamager", 0, 0, 8)
"####" KKKKK 1 A_WeaponReady(WRF_NOSWITCH)
"####" A 0 A_JumpIfInventory("IGotGrabbed",1,"EarlySlideEnd")
"####" A 0 A_JumpIfInventory("Base28Ammo", 1, "SlideCont")
"####" K 1
Goto EarlySlideEnd

EarlySlideEnd:
"####" A 0 A_GunFlash("NoFlash")
"####" A 0 ThrustThingZ(0, 20, 0, 1)
"####" KJIHA 2 A_TakeInventory("OilmanSlideFrame",9)
"####" A 0 A_GiveInventory("OilSliderCooldown",70)
"####" A 0 A_SpawnItemEx("OilmanAltfireWatcher")
Goto Ready

EarlySlideEndThrust:
"####" A 0 A_GunFlash("NoFlash")
"####" A 0 A_GiveInventory("OilThrustHandler")
"####" KJIHA 2 A_TakeInventory("OilmanSlideFrame",9)
"####" A 0 A_GiveInventory("OilSliderCooldown",70)
"####" A 0 A_SpawnItemEx("OilmanAltfireWatcher")
Goto Ready

UltimateAttack:
"####" A 1
"####" A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,12)
"####" A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
"####" A 0 A_GiveInventory("PowerUltBuildCooldown",1)
"####" A 0 A_GiveInventory("UltAttackFlag",1)
"####" A 0 ThrustThingZ(0, 50, 0, 1)
"####" C 0 ACS_NamedExecuteWithResult("VC_SetState",1)
"####" A 1 Offset(80,32)
"####" A 1 Offset(160,32)
"####" A 1 Offset(240,32)
"####" A 1 Offset(320,32)
"####" A 1 Offset(400,32)
"####" A 1
"####" A 1 Offset(-400,32)
"####" A 1 Offset(-320,32)
"####" A 1 Offset(-240,32)
"####" A 1 Offset(-160,32)
"####" A 1 Offset(-80,32)
"####" A 0 A_WeaponReady(WRF_NOFIRE)

UltStall:
"####" A 0 ThrustThingZ(0, -7, 0, 1)
"####" A 1 A_JumpIf(z-floorz==0, "UltGo")
loop

UltGo:
"####" A 0 A_GiveInventory("OilmanUltSlideGo",1)
"####" D 0 A_TakeInventory("UnSolid",1)
"####" D 0 A_ChangeFlag("SOLID",0)
"####" D 0 A_GiveInventory("HalfHalfDamageProtection",1)
		
UltDrain:
"####" A 0 A_TakeInventory("ShortUltimateAmmo", 33)
"####" A 0 A_GiveInventory("OilmanSlideUltCount",1)
"####" A 0 A_TakeInventory("CutterFlag",99)
"####" HIJK 1
"####" AAAAAAA 0 A_PlaySoundEx("weapon/oilzoom","Weapon")
"####" A 0 A_Recoil(CallACS("VC_XYMob", -120.0))

UltSlide:
"####" A 0 A_SpawnItemEx("SliderUltHitBox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
"####" A 0 A_GiveInventory("OilmanUltSlider_CI",1)//A_SpawnItemEx("OilmanUltSlider", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
"####" K 1 A_GiveInventory("CutterFlag",1)
"####" K 0 A_JumpIfInventory("CutterFlag",20,"RedirectSlide")
loop

RedirectSlide:
"####" A 0 A_JumpIfInventory("OilmanSlideUltCount", 3, "UltEnd")
"####" A 0 A_Stop
"####" A 0 ThrustThingZ(0, 28, 0, 1)
"####" C 0 ACS_NamedExecuteWithResult("VC_SetState",1)
"####" A 1 Offset(80,32)
"####" A 1 Offset(160,32)
"####" A 1 Offset(240,32)
"####" A 1 Offset(320,32)
"####" A 1 Offset(400,32)
"####" A 1
"####" A 1 Offset(-400,32)
"####" A 1 Offset(-320,32)
"####" A 1 Offset(-240,32)
"####" A 1 Offset(-160,32)
"####" A 1 Offset(-80,32)
"####" A 1 A_WeaponReady(WRF_NOFIRE)
Goto UltStall

UltEnd:
"####" A 0 ThrustThingZ(0, 30, 0, 1)
"####" A 0 A_TakeInventory("OilmanUltSlideGo",9)
"####" A 0 A_TakeInventory("OilmanSlideUltCount",9)
"####" A 0 A_TakeInventory("ShortUltimateAmmo", 2)
"####" D 0 A_TakeInventory("HalfHalfDamageProtection",1)
"####" A 0 A_SpawnItemEx("ReSolidifier")
"####" A 0 A_TakeInventory("PowerUltBuildCooldown",1) "####" A 0 A_TakeInventory("UltAttackFlag",1)
Goto Ready

Flash:
TNT1 A 0 A_PlaySoundEx("weapon/OilSlider","Weapon")
TNT1 A 0 A_GiveInventory("OilSoundTime", 1)

FlashLoop:
TNT1 A 0 A_CheckFloor("FlashGround")
TNT1 A 0 A_GiveInventory("OilmanSliderMovement",1)//A_Recoil(-2)
Goto FlashEnd

FlashGround:
TNT1 A 0 A_GiveInventory("OilmanSliderMovement",1)//TNT1 A 0 A_Recoil(-2)

FlashEnd:
TNT1 A 2
TNT1 A 0 A_JumpIfInventory("OilSoundTime", 1, "FlashLoop")
TNT1 A 0 A_JumpIfInventory("OilSliderFlag", 1, "Flash")
TNT1 A 1 A_TakeInventory("OilBoat", 1)
stop

NoFlash:
TNT1 A 0 A_TakeInventory("OilBoat", 1)
stop

NoAmmo:
OILA A 5
TNT1 A 0 A_GiveInventory("Base28Ammo",1)
Goto Ready

NoAltFire:
"####" A 1
Goto Ready
}
}

actor OilmanShot
{
translation "47:47=77:77", "0:2=[0,30,40]:[0,30,40]"
PROJECTILE
Damage (16)
damagetype "Oilman"
Obituary "$OB_OILMAN1"
Height 12
Radius 12
Scale 2.5
speed 45
+THRUSPECIES
species "OilmanPorjectile"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
OILL D 1
goto Spawn+2
Crash:
XDeath:
OILL D 1
stop
Death:
OILL D 1 A_SpawnItemEx("OilmanBlob",0,0,0,0,0,0,0,1)
stop
}
}

Actor OilmanBlob
{
+MISSILE
+NODAMAGETHRUST
+NOBLOOD
+DONTSPLASH
+NOEXPLODEFLOOR
+NOTARGETSWITCH
-NOPAIN
-NOGRAVITY
Damage (7)
damagetype "OilmanSlick"
Obituary "$OB_OILMAN2"
Height 10
Radius 8
scale 2.5
mass 99999
painchance 256
damagefactor "Ignition", 1.0
+THRUSPECIES
species "OilmanPorjectile"
reactiontime 140
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
OILL D 1 A_JumpIf(z-floorz<=0,"Land")
goto Spawn+2
Land:
OILL G 0 A_JumpIf(ACS_NamedExecuteWithResult("core_checkPitByType",MOD_LAVA),"pain.Ignition") 
OILL G 1 A_Stop
OILL G 0 A_ChangeFlag("NOPAIN", false)
OILL G 0 A_ChangeFlag("NOGRAVITY",1)
OILL G 0 A_ChangeFlag("SHOOTABLE",1)
Blob:
OILL E 0 ThrustThingZ(0,0,0,0)
OILL E 1 A_CountDown
Goto Blob
pain.Ignition:
OILL E 0
OILL E 0 A_ChangeFlag("NOPAIN", true)
OILL E 1 A_SpawnItemEx("OilmanBlobFlame",0,0,0,0,0,0,0,1)
OILL E 0 A_Jump(256,"Death")
stop
Death:
XDeath:
TNT1 A 0
stop
}
}

actor OilmanBlobFlame 
{
PROJECTILE
-NOGRAVITY
+NODAMAGETHRUST
+NOBLOOD
+DOOMBOUNCE
+DONTSPLASH
+FLOORHUGGER
Damage (25)
damagetype "OilmanFlame"
Obituary "$OB_OILMAN4"
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 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
OILF CD 3 A_CountDown
goto Spawn+3
Death: 
TNT1 A 1
stop
}
}

actor OilmanSlider
{
translation "47:47=77:77", "0:2=[0,30,40]:[0,30,40]"
PROJECTILE
+RIPPER
+DONTBLAST
+NOCLIP
+NOINTERACTION
+CLIENTSIDEONLY
Radius 8
Height 16
scale 2.5
damage (0)
damagetype "Oilman"
speed 20
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ACS_NamedExecuteAlways("core_shieldwarper", 0, 1)
TNT1 A 0 A_Jump(256, "Shield")
Goto Shield

Shield:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,2,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
OILL FFFFF 1 A_Warp(AAPTR_TARGET,0,0,2,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
stop
}
}

actor OilmanSliderMovement : BaseMovement
{
states
{
itTimeGo:
TNT1 A 0 A_Recoil(CallACS("VC_XYMob", -2.0))//ACS_NamedExecuteWithResult("VC_Mobility",3.0,0,0,1)
stop
}
}
actor OilmanUltSlider : OilmanSlider
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ACS_NamedExecuteAlways("core_shieldwarper", 0, 1)
TNT1 A 0 A_Jump(256, "Shield")
Goto Shield

Shield:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,2,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
OILL FFFFF 1 A_Warp(AAPTR_TARGET,0,0,2,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
stop
}
}

actor OilmanSliderDamager : BasicExplosion
{
damagetype "OilmanAlt"
Obituary "$OB_OILMAN3"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(7,64,0,0,64)
stop
}
}

actor SliderAfterImage
{
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
States
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 0 A_CheckFloor("GroundImage")
NOIL UUVVUUVVUU 1 A_Fadeout(0.10)
stop
GroundImage:
NOIL SSTTSSTTSS 1 A_Fadeout(0.10)
stop
}
}

actor SliderUltHitBox : BasicExplosion
{
species "DustManType"
damagetype "OilmanUlt"
Obituary "$OB_OILMAN5"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(50,48,0,0,48)
stop
Death:
TNT1 A 0
stop
XDeath:
TNT1 A 0
stop
}
}

Actor SliderUltProtect : PowerProtection
{
	Powerup.Duration 17
	DamageFactor "OilmanUlt", 0.0
}

actor OilNoSlip : Powerup
{
powerup.duration 70
}

actor OilSlipWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
reactiontime 70
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("OilSlipGiver",1)
TNT1 A 0 A_GiveToTarget("OilSlipSpeed",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_GiveToTarget("OilSlipFX")
TNT1 A 0 A_Countdown
loop
Death:
TNT1 AAA 1 A_TakeFromTarget("OilSlipSpeed",1)
stop
}
}

actor OilSlipSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration 0x7FFFFFFD
Speed 0.4
}

Actor OilSlipDamage : PowerProtection
{
	Powerup.Duration 70
	damagefactor "MegaUppercutBurn", 2.0
	damagefactor "FiremanAlt", 2.0
	damagefactor "Fireman", 2.0
	damagefactor "FiremanUlt", 2.0
	damagefactor "HotDog", 2.0
	damagefactor "HeatmanPillar", 2.0
	damagefactor "HeatmanTackle", 2.0
	damagefactor "HeatmanAfterBurnPillar", 2.0
	damagefactor "HeatmanAfterBurnTackle", 2.0
	damagefactor "Heatman", 2.0
	damagefactor "AlienBreath", 2.0
	damagefactor "PharaohmanWave", 2.0
	damagefactor "PharaohmanWaveCounter", 2.0
	damagefactor "PharaohUlt", 2.0
	damagefactor "Flameman", 2.0
	damagefactor "FlamemanBurn", 2.0
	damagefactor "TurbomanWheel", 2.0
	damagefactor "TurbomanBurn", 2.0
	damagefactor "Turboman", 2.0
	damagefactor "Burnerman", 2.0
	damagefactor "BurnermanLunge", 2.0
	damagefactor "MagmaManBazooka", 2.0
	damagefactor "MagmamanChangkey", 2.0
	damagefactor "Magmaman", 2.0
	damagefactor "Solarman", 2.0
	damagefactor "SolarWave", 2.0
	damagefactor "SolarInferno", 2.0
	damagefactor "SolarSun", 2.0
	damagefactor "FireStorm", 2.0
	damagefactor "FireSpin", 2.0
	damagefactor "AtomicFire1", 2.0
	damagefactor "AtomicFire2", 2.0
	damagefactor "AtomicFire3", 2.0
	damagefactor "PharaohShot1", 2.0
	damagefactor "PharaohShot2", 2.0
	damagefactor "PharaohShot3", 2.0
	damagefactor "PharaohHold", 2.0
	damagefactor "FlameBlast", 2.0
	damagefactor "ScorchWheel", 2.0
	damagefactor "FlameSword", 2.0
	damagefactor "FlameSwordSpark", 2.0
	damagefactor "WaveBurner", 2.0
	damagefactor "MagmaBazooka1", 2.0
	damagefactor "MagmaBazooka2", 2.0
	damagefactor "FireTrap", 2.0
	damagefactor "FirePillar", 2.0
}

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

actor OilDripper : BasicClientSide
{
renderstyle translucent
alpha 0.6
-NOINTERACTION
-NOGRAVITY
gravity 1.7
scale 1.0
States
{
Spawn:
TNT1 A 0 A_JumpIf(z-floorz<=0, "Death")
OILL D 1
loop
Death:
OILS AABBCCDDEE 1
stop
}
}

actor OilSlipGiver : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
states
{
Pickup:
TNT1 A 0 A_CheckFloor("Success")
stop
Success:
TNT1 A 0 A_ChangeVelocity(momx*1.06,momy*1.06,momz,CVF_REPLACE)
stop
}
}

actor OilSliderCooldown : Ammo
{
	inventory.amount 1
	inventory.maxamount 70
	+INVENTORY.IGNORESKILL
}

actor OilmanAltfireWatcher
{
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("OilSliderCooldown",1)
TNT1 A 0 A_JumpIfInTargetInventory("OilSliderCooldown",1,"Spawn")
TNT1 A 1 A_TakeFromTarget("OilSliderCooldown",1)
TNT1 A 0 A_JumpIfInTargetInventory("OilSliderCooldown",1,"Spawn")
Death:
TNT1 A 1
stop
}
}

actor OilmanSlideFrame : Inventory
{
inventory.amount 1
inventory.maxamount 1
}
actor OilmanSlideUlt : Inventory {}
actor OilmanUltSlideGo : Inventory {}

actor OilmanSlideUltCount : Inventory
{
inventory.amount 1
inventory.maxamount 4
}

actor OilAmmoHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("Base28Ammo",1)
stop
}
}

Actor OilThrustHandler : BaseMovement//CustomInventory
{
States
{
itTimeGo:
TNT1 A 0 A_PlaySoundEx("shadowman/jump","Body")
TNT1 A 0 A_JumpIf(CallACS("VC_CheckBtn",1)==5,"JumpBack")
TNT1 A 0 A_JumpIf(CallACS("VC_CheckBtn",1)==17,"JumpLeft")
TNT1 A 0 A_JumpIf(CallACS("VC_CheckBtn",1)==9,"JumpRight")
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob", 40.0),0,10.0,CVF_RELATIVE|CVF_REPLACE)//A_ChangeVelocity(40,0,10,CVF_RELATIVE|CVF_REPLACE)
stop

JumpBack:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob", -40.0),0,10.0,CVF_RELATIVE|CVF_REPLACE)//A_ChangeVelocity(-40,0,10,CVF_RELATIVE|CVF_REPLACE)
stop

JumpLeft:
TNT1 A 0 A_ChangeVelocity(0,CallACS("VC_XYMob", 40.0),10.0,CVF_RELATIVE|CVF_REPLACE)//A_ChangeVelocity(0,40,10,CVF_RELATIVE|CVF_REPLACE)
stop

JumpRight:
TNT1 A 0 A_ChangeVelocity(0,CallACS("VC_XYMob", -40.0),10.0,CVF_RELATIVE|CVF_REPLACE)//A_ChangeVelocity(0,-40,10,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

Actor OilmanShot_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
TNT1 A 0 A_FireCustomMissile("OilmanShot",0,1,8,3)
stop
AltSkinFrame:
TNT1 A 0 A_FireCustomMissile("OilmanShotJapan",0,1,8,3)
stop
}
}

Actor OilmanSlider_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
TNT1 A 0 A_SpawnItemEx("OilmanSlider", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
stop
AltSkinFrame:
TNT1 A 0 A_SpawnItemEx("OilmanSliderJapan", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
stop
}
}

Actor OilmanUltSlider_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
TNT1 A 0 A_SpawnItemEx("OilmanUltSlider", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
stop
AltSkinFrame:
TNT1 A 0 A_SpawnItemEx("OilmanUltSliderJapan", 0, 0, 2, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
stop
}
}


actor OilManSkinCheck : SkinChecker
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CallACS("GC_GetSkinNum")==277,"AltSkin1")
goto NormalSkin
}
}

actor OilManColors : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
TNT1 A 0 ACS_ExecuteAlways(991,0,727)
stop
AltSkinFrame:
TNT1 A 0 ACS_ExecuteAlways(991,0,10889)
stop
}
}

actor OilmanShotJapan : OilmanShot
{
translation "47:47=3:3"//, "0:2=3:3"
}

actor OilmanSliderJapan : OilmanSlider
{
translation "47:47=3:3"//, "0:2=3:3"
}

actor OilmanUltSliderJapan : OilmanUltSlider
{
translation "47:47=3:3"//, "0:2=3:3"
}