//Movement recoded
actor Nitroman : SemiWeakArmorClass
{
Player.ScoreIcon "NITRMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Nitroman"
player.soundclass "Nitromanc"
player.startitem "WheelCutterBoss"
player.startitem "UltimateAttackItem2"
player.startitem "UltSoundWatcherSpawn2"
player.startitem "Base56Ammo", 56
player.startitem "BaseAltFireAmmo", 112
player.startitem "IsFromMM10"
player.viewheight 48
player.forwardmove 0.85,0.85
player.sidemove 0.83,0.83
player.jumpz 12
States
{
Spawn:
NITB I 0
NITB I 1 A_JumpIf(z-floorz>0, "Jumping") 
NITB A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2
See:
NITB IIIIIJJJJJKKKKKLLLLL 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1
Animation0:
TNT1 A 0
Goto Spawn+2
BikeForm:
Animation1:
NITB B 0 A_JumpIf(pitch>=270 && pitch<330,"Animation1.Up")
NITB B 1 A_JumpIf(z-floorz>0, "JumpingBikeA")
NITB B 0 A_JumpIf(pitch>=270 && pitch<330,"Animation1.Up")
NITB B 1 A_JumpIf(z-floorz>0, "JumpingBikeA")
NITB B 0 A_JumpIf(pitch>=270 && pitch<330,"Animation1.Up")
NITB B 1 A_JumpIf(z-floorz>0, "JumpingBikeA")
Goto Spawn+2
Animation2:
NITB C 0 A_JumpIf(pitch>=270 && pitch<330,"Animation2.Up")
NITB C 1 A_JumpIf(z-floorz>0, "JumpingBikeB")
NITB C 0 A_JumpIf(pitch>=270 && pitch<330,"Animation2.Up")
NITB C 1 A_JumpIf(z-floorz>0, "JumpingBikeB")
NITB C 0 A_JumpIf(pitch>=270 && pitch<330,"Animation2.Up")
NITB C 1 A_JumpIf(z-floorz>0, "JumpingBikeB")
Goto Spawn+2
Animation3:
NITB D 0 A_JumpIf(pitch>=270 && pitch<330,"Animation3.Up")
NITB D 1 A_JumpIf(z-floorz>0, "JumpingBikeC")
NITB D 0 A_JumpIf(pitch>=270 && pitch<330,"Animation3.Up")
NITB D 1 A_JumpIf(z-floorz>0, "JumpingBikeC")
NITB D 0 A_JumpIf(pitch>=270 && pitch<330,"Animation3.Up")
NITB D 1 A_JumpIf(z-floorz>0, "JumpingBikeC")
Goto Spawn+2
Animation4:
NITB E 0 A_JumpIf(pitch>=270 && pitch<330,"Animation4.Up")
NITB E 1 A_JumpIf(z-floorz>0, "JumpingBikeD")
NITB E 0 A_JumpIf(pitch>=270 && pitch<330,"Animation4.Up")
NITB E 1 A_JumpIf(z-floorz>0, "JumpingBikeD")
NITB E 0 A_JumpIf(pitch>=270 && pitch<330,"Animation4.Up")
NITB E 1 A_JumpIf(z-floorz>0, "JumpingBikeD")
Goto Spawn+2
Animation1.Up:
NITB WWW 1 A_JumpIf(z-floorz>0, "JumpingBikeA")
Goto Spawn+2
Animation2.Up:
NITB XXX 1 A_JumpIf(z-floorz>0, "JumpingBikeB")
Goto Spawn+2
Animation3.Up:
NITB WWW 1 A_JumpIf(z-floorz>0, "JumpingBikeC")
Goto Spawn+2
Animation4.Up:
NITB XXX 1 A_JumpIf(z-floorz>0, "JumpingBikeD")
Goto Spawn+2
JumpingBikeA: NITB PPP 1 A_JumpIf(z-floorz<=0, "Animation1") loop
JumpingBikeB: NITB QQQ 1 A_JumpIf(z-floorz<=0, "Animation2") loop
JumpingBikeC: NITB PPP 1 A_JumpIf(z-floorz<=0, "Animation3") loop
JumpingBikeD: NITB QQQ 1 A_JumpIf(z-floorz<=0, "Animation4") loop
BikeClimbA: NITB P 8
Goto WallBikeB
BikeClimbB: NITB Q 8
Goto WallBikeC
BikeClimbC: NITB P 8
Goto WallBikeD
BikeClimbD: NITB Q 8
Goto WallBikeA
BikeStart:
Animation5: NITB UUUU 1
Goto Spawn+2
Animation6: NITB VVVV 1
Goto Spawn+2
BikeEnd:
Animation7: NITB RSRSRSRS 2
Goto Spawn+2
Animation8: WallBikeA: NITB PPP 1
Goto Spawn+2
Animation9: WallBikeB: NITB QQQ 1
Goto Spawn+2
Animation10: WallBikeC: NITB PPP 1
Goto Spawn+2
Animation11: WallBikeD: NITB QQQ 1
Goto Spawn+2
Jumping:
NITB M 1 A_JumpIf(z-floorz<=0, "NitroLand")
loop
NitroLand:
NITB TTTT 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2
Animation13:
NITB U 3
goto Jumping
Missile: 
NITB FFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Missile2:
NITB GGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2
JumpingMissile:
NITB NNNNN 1 A_JumpIf(z-floorz<=0, "Missile")
JumpingMissile2:
NITB OOOOO 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping
ClassPain:
NITB HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
Animation12:
NITB H 20 ACS_ExecuteAlways(999,0,0)
NITB H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFXMM9", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
NITB H 0 A_JumpIfInTargetInventory("WheelCutterWepM",1,2)
NITB H 0 A_GiveToTarget("WeaponGetter")
NITB H 0 A_GiveToTarget("WheelCutterWepM")
goto ClassDeath
}
}

Actor WheelCutterBoss : VCBaseWeapon
{
weapon.ammotype "Base56Ammo"
weapon.ammotype2 "BaseAltFireAmmo"
Obituary "$OB_NITROMAN1"
States
{
Ready:
TNT1 A 0 A_SpawnItemEx("NitroAltAmmoWatcher")
TNT1 A 0 A_SpawnItemEx("NitroRageSoundWatcher")
Ready2:
NITR A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
Ready3:
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,7)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,7)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 0 A_GiveInventory("Base56Ammo",1)
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,7)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,7)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28)) "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
"####" A 0 A_GiveInventory("Base56Ammo",1) "####" A 0 A_GiveInventory("BaseAltFireAmmo",1)
Goto Ready2
AltSkinFrame:
A79H A 0
goto Ready3
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
NITR A 1 A_Lower
Loop
Select:
TNT1 A 0 A_SpawnItemEx("NitroSkinWatcher")
TNT1 A 0 ACS_ExecuteAlways(991,0,1906)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
NITR A 1 A_Raise
Loop
Fire:
"####" A 0 A_GiveInventory("BaseCustomFlag1",1)
"####" A 0 A_JumpIfInventory("NitroBoost",1,"NitroAir")
"####" A 0 A_GiveInventory("NitroManMainPickUp")
"####" BXXXXXXXXX 1 A_GiveInventory("NeedleFloatHandler",1)
"####" B 0 A_JumpIfInventory("NitroRoadRage",6,"FireAfter")
"####" XXXXX 1 A_GiveInventory("NeedleFloatHandler",1)
FireAfter:
"####" XXCDA 1 A_GiveInventory("NeedleFloatHandler",1)
Goto EndMain
NitroAir:
"####" A 0 A_JumpIfInventory("Base56Ammo",7,1)
Goto EndMain
"####" A 0 A_JumpIfInventory("NitroBoost",1,1)
Goto EndMain
"####" A 0 A_GiveInventory("NitroManMainPickUp")
"####" A 0 A_GiveInventory("NoSpeed",1)
"####" C 0 A_SetGravity(0.0)
"####" B 1 A_stop
"####" B 0 A_JumpIfInventory("NitroRoadRage",6,"NitroAirAfter")
"####" XXXXX 1 A_stop
NitroAirAfter:
"####" CDA 1 A_stop
"####" A 0 A_Refire("NitroAir")
EndMain:
"####" A 0 A_TakeInventory("NoSpeed",999)
"####" A 0 A_GiveInventory("GravityRestore")
"####" A 0 A_TakeInventory("BaseCustomFlag1",1)
"####" A 0 A_TakeInventory("NitroBoost",999)
"####" A 0 A_ClearRefire
Goto Ready2
Altfire:
"####" A 0 A_JumpIfInventory("NoAltfire",1,"Ready2")
"####" JJJ 1 ACS_NamedExecuteWithResult("VC_SetState",5)
"####" III 1 ACS_NamedExecuteWithResult("VC_SetState",6)
"####" A 0 A_PlaySoundEx("weapon/NitroStart","Weapon")
"####" A 0 A_GunFlash
Biking: 
"####" I 1 Offset(0,36)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking2")
Goto EndAlt
Biking2:
"####" I 1 Offset(0,36)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking3")
Goto EndAlt
Biking3:
"####" I 1 Offset(0,40)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking4")
Goto EndAlt
Biking4:
"####" I 1 Offset(0,40)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking5")
Goto EndAlt
Biking5:
"####" I 1 Offset(0,44)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking6")
Goto EndAlt
Biking6:
"####" I 1 Offset(0,44)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking7")
Goto EndAlt
Biking7:
"####" I 1 Offset(0,44)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking8")
Goto EndAlt
Biking8:
"####" I 1 Offset(0,40)A_GiveInventory("NitroM2Handler",1)
"####" I 0 A_TakeInventory("BaseAltFireAmmo",1)
"####" I 0 A_JumpIfInventory("BaseAltFireAmmo",1,1)
goto EndAlt
"####" A 0 A_Refire("Biking")
Goto Biking
EndAlt: 
"####" A 0 A_JumpIfInventory("WallRiding",1,"WallJump")
EndAltCont:
"####" A 0 A_GunFlash("NoFlash") "####" A 0 A_PlaySoundEx("weapon/NitroStop","Auto") "####" A 0 ACS_NamedExecuteWithResult("VC_SetState",7)
"####" IIIJJJ 1 Offset(0,32) A_SpawnItemEx("BikeFormSlideDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
"####" A 0 A_SpawnItemEx("NitroBoostWatcher")
Goto Ready2
WallJump:
"####" A 0 A_Stop
"####" A 0 A_Recoil(15)
"####" A 0 ThrustThingZ(0, 30, 0, 1)
"####" A 0 A_GunFlash("NoFlash") "####" A 0 A_PlaySoundEx("weapon/NitroStop","Auto") "####" A 0 ACS_NamedExecuteWithResult("VC_SetState",13)
"####" IJ 3 Offset(0,32)
"####" A 0 A_SpawnItemEx("NitroBoostWatcher")
Goto Ready2
UltimateAttack:
"####" A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,95) "####" A 0 A_PlaySoundEx("classes/ultimateactivation","Auto") "####" A 0 A_GiveInventory("NitroTruckCount",3)
"####" A 0 A_GiveInventory("PowerUltBuildCooldown",1) "####" A 0 A_TakeInventory("UltAttackFlag",1) "####" A 0 A_SpawnItemEx("NitroUltCoolDownWatcher")
"####" A 0 A_TakeInventory("MediumShortUltimateAmmo",67)
"####" A 0 A_SpawnItemEx("NitroTruckRandom")
"####" A 20 Offset(0,44)
"####" A 0 A_TakeInventory("MediumShortUltimateAmmo",67)
"####" A 0 A_SpawnItemEx("NitroTruckRandom")
"####" A 20
"####" A 0 A_TakeInventory("MediumShortUltimateAmmo",67)
"####" A 0 A_SpawnItemEx("NitroTruckRandom")
Goto Ready2
Flash:
TNT1 A 0 A_Recoil(-5)
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip1") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",1)
Goto Cont1
Skip1:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",8)
Cont1:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip2") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",1)
Goto Cont2
Skip2:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",8)
Cont2:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip3") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",1)
Goto Cont3
Skip3:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",8)
Cont3:
TNT1 A 0 A_Recoil(-5)
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip4") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",2)
Goto Cont4
Skip4:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",9)
Cont4:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip5") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",2)
Goto Cont5
Skip5:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",9)
Cont5:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip6") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",2)
Goto Cont6
Skip6:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",9)
Cont6:
TNT1 A 0 A_Recoil(-5)
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip7") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",3)
Goto Cont7
Skip7:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",10)
Cont7:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip8") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",3)
Goto Cont8
Skip8:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",10)
Cont8:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip9") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",3)
Goto Cont9
Skip9:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",10)
Cont9:
TNT1 A 0 A_Recoil(-5)
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip10") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4)
Goto Cont10
Skip10:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",11)
Cont10:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip11") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4)
Goto Cont11
Skip11:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",11)
Cont11:
TNT1 A 0 A_JumpIfInventory("WallRiding",1,"Skip12") TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndBike")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4)
Goto Cont12
Skip12:
TNT1 A 0 A_GiveInventory("NitroBoost",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",11)
Cont12:
TNT1 A 0
Goto Flash
EndBike:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
NoFlash:
TNT1 A 0
stop
StopNitro:
TNT1 AAAAAAAAAAAAAAAAAA 1 A_stop
stop
}
}

actor NitroManMainPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("Base56Ammo",7)
TNT1 A 0 A_PlaySoundEx("weapon/wheelstart","Weapon")
TNT1 A 0 A_JumpIfInventory("NitroRoadRage",6,"Pickup.Rage")
TNT1 A 0 A_FireCustomMissile("WheelBouncerRM",0,0,8,0)
TNT1 A 0 A_JumpIfHealthLower(46,"PickUp2")
Goto End
Pickup2:
TNT1 A 0 A_FireCustomMissile("WheelBouncerRM2",0,0,8,0)
End:
TNT1 A 0
stop
Pickup.Rage:
TNT1 A 0 A_FireCustomMissile("WheelBouncerRMRage",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("WheelBouncerRMRage",0,0,-8,0)
TNT1 A 0 A_JumpIfHealthLower(46,"PickUp2.Rage")
Goto End
Pickup2.Rage:
TNT1 A 0 A_FireCustomMissile("WheelBouncerRM2Rage",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("WheelBouncerRM2Rage",0,0,-8,0)
stop
}
}

actor WheelBouncerRM
{
PROJECTILE
damagetype "Nitroman"
Obituary "$OB_NITROMAN1"
-NOGRAVITY
speed 30
scale 2.5
Radius 10
Height 10
Damage (18)
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+USEBOUNCESTATE
bouncecount 1
bouncefactor 0.6
wallbouncefactor 1.0
gravity 1.5
var int user_angle;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 ThrustThingZ(0, 30, 0, 1)
TNT1 A 0 A_SetUserVar(user_angle, angle)
TNT1 A 0 A_JumpIf(z-floorz<=0, "Boost")
Spawn2:
TNT1 A 1
WHEE DE 2
goto Spawn2+1
Boost:
WHEE A 0 A_ChangeVelocity(0, 0, 10, CVF_RELATIVE)
goto Spawn2+2
XDeath:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1", 0, 0, 20)
stop
Death:
TNT1 A 0 A_CheckFloor("Runner")
TNT1 A 0 A_SpawnItemEx("UpCutter0",-1,0,16,0,0,1)
stop
Runner:
WHEE D 0
WHEE D 0 A_PlaySoundEx("weapon/wheelshot","weapon")
WHEE D 0 A_ChangeFlag("NOGRAVITY",0)
WHEE D 0 A_SpawnItemEx("WheelCutterRM",0,0,0,30)
WHEE D 0 A_ChangeFlag(NOINTERACTION, false)
TNT1 A 2
stop
}
}

actor WheelBouncerRM2 : WheelBouncerRM
{
speed 50
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 ThrustThingZ(0, 40, 0, 1)
TNT1 A 0 A_SetUserVar(user_angle, angle)
TNT1 A 0 A_JumpIf(z-floorz<=0, "Boost")
Spawn2:
TNT1 A 1
WHEE DE 2
goto Spawn2+1
}
}

actor WheelBouncerRMRage : WheelBouncerRM
{
damagetype "NitromanRage"
}

actor WheelBouncerRM2Rage : WheelBouncerRM2
{
damagetype "NitromanRage"
}

Actor NitroRageWheelProtect : PowerProtection
{
	Powerup.Duration 4
	DamageFactor "NitromanRage", 0.25
}

actor WheelBouncerRM3 : WheelBouncerRM
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
WHEE D 0 A_SetUserVar(user_angle, angle)
WHEE D 0 A_JumpIf(z-floorz<=0, "Boost")
Spawn2:
WHEE DE 2
goto Spawn2
Boost:
WHEE A 0 A_ChangeVelocity(0, 0, 10, CVF_RELATIVE)
goto Spawn2
Death:
XDeath:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1", 0, 0, 20)
stop
}
}

actor WheelCutterRM
{
PROJECTILE
+NOEXPLODEFLOOR
+STEPMISSILE
maxstepheight 16
bouncecount 1
+BOUNCEONCEILINGS
damagetype "Nitroman"
Obituary "$OB_NITROMAN1"
scale 2.5
-NOGRAVITY
Radius 10
Height 10
Speed 30
Damage (18)
reactiontime 150
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
WHEE DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE 2
goto XDeath
Death:
TNT1 A 0 A_SpawnItemEx("UpCutter0",-1,0,16,0,0,1)
stop
XDeath:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1", 0, 0, 20, 0, 0, 0, 0, 1)
stop
}
}

actor UpCutter0 : WheelCutterRM
{
+NOGRAVITY
const int X_SPD = 20;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_ChangeVelocity(X_SPD,0,0, CVF_REPLACE | CVF_RELATIVE) //A_Recoil(-23)
WHEE D 1
TNT1 A 0 A_JumpIf(z-floorz < 48, "SpawnFloor")
TNT1 A 0 A_SpawnItemEx("WheelCutterRM",0,0,0,X_SPD)
stop
SpawnFloor:
TNT1 A 0 A_SpawnItemEx("WheelCutterRM",0,0,-(z-floorz),X_SPD)
stop
XDeath:
Crash:
TNT1 A 0
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "JumpOff")
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
JumpOff:
TNT1 A 0 A_SpawnItemEx("WheelBouncerRM3",0,0,0,15,0,0,180)
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpCutter1",0,0,4,0,0,18)
stop
}
}

actor UpCutter1 : UpCutter0
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
WHEE D 2
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(X_SPD,0,0, CVF_REPLACE | CVF_RELATIVE) //A_Recoil(-23)
WHEE D 1
TNT1 A 0 A_JumpIf(z-floorz < 48, "SpawnFloor")
TNT1 A 0 A_SpawnItemEx("WheelCutterRM",0,0,0,X_SPD)
stop
SpawnFloor:
TNT1 A 0 A_SpawnItemEx("WheelCutterRM",0,0,-(z-floorz),X_SPD)
stop
XDeath:
Crash:
TNT1 A 0
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "JumpOff")
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
JumpOff:
TNT1 A 0 A_SpawnItemEx("WheelBouncerRM3",0,0,0,15,0,0,180)
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpCutter2",0,0,4,0,0,18)
stop
}
}

actor UpCutter2 : UpCutter1
{
States
{
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "JumpOff")
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
JumpOff:
TNT1 A 0 A_SpawnItemEx("WheelBouncerRM3",0,0,0,15,0,0,180)
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpCutter3",0,0,4,0,0,18)
stop
}
}

actor UpCutter3 : UpCutter1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
WHEE E 2
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(X_SPD,0,0, CVF_REPLACE | CVF_RELATIVE) //A_Recoil(-23)
WHEE E 1
TNT1 A 0 A_JumpIf(z-floorz < 48, "SpawnFloor")
TNT1 A 0 A_SpawnItemEx("WheelCutterRM",0,0,0,X_SPD)
stop
SpawnFloor:
TNT1 A 0 A_SpawnItemEx("WheelCutterRM",0,0,-(z-floorz),X_SPD)
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "JumpOff")
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
JumpOff:
TNT1 A 0 A_SpawnItemEx("WheelBouncerRM3",0,0,0,15,0,0,180)
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpCutter4",0,0,4,0,0,18)
stop
}
}

actor UpCutter4 : UpCutter3
{
States
{
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "JumpOff")
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
JumpOff:
TNT1 A 0 A_SpawnItemEx("WheelBouncerRM3",0,0,0,15,0,0,180)
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpCutter1",0,0,4,0,0,18)
stop
}
}

actor BikeFormDamager : BasicExplosion
{
Obituary "$OB_NITROMAN2"
damagetype "BikeForm"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(20,50,0,0,50)
stop
}
}

actor BikeFormDamager2 : BikeFormDamager
{
Obituary "$OB_NITROMAN4"
damagetype "BikeStunt"
}

actor BikeFormSlideDamager : BikeFormDamager
{
damagetype "BikeSlide"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(30,50,0,0,50)
stop
}
}

Actor BikeFormProtect : PowerProtection
{
	Powerup.Duration -1
	DamageFactor "BikeForm", 0.0
	DamageFactor "BikeStunt", 0.0
	DamageFactor "BikeSlide", 0.0
}

actor BikeFormWallDetector
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
+THRUSPECIES
damagetype "Nitroman"
Obituary "$OB_NITROMAN2"
damage (0)
Radius 32
Height 32
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0 A_GiveToTarget("BikeThrustPickUp",1)
TNT1 A 0 A_GiveToTarget("WallRiding")
XDeath:
TNT1 A 0
stop
}
}

actor BikeThrustPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0, 7, 0, 1)
stop
}
}

actor NitroTruckRandom
{
Radius 8
Height 8
scale 2.5
+NOCLIP
PROJECTILE
-DONTBLAST
+SKYEXPLODE
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Jump(256,"Truck1","Truck2")
Truck1:
TNT1 A 1 A_SpawnItemEx("NitroTruck",40,0,0,0,0,0,0,0,0)
stop
Truck2:
TNT1 A 1 A_SpawnItemEx("NitroTruck2",40,0,0,0,0,0,0,0,0)
stop
}
}

actor NitroTruck
{
damagetype "BadTraffic"
Obituary "$OB_NITROMAN3"
+MISSILE
-SOLID
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
+NOEXPLODEFLOOR
-BOUNCEONFLOORS
+SEEKERMISSILE
+LOOKALLAROUND
BounceCount 1
bouncefactor 1.0
wallbouncefactor 1.0
scale 2.5
damage (0)
radius 40
height 80
+STEPMISSILE
maxstepheight 16
speed 0
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("misc/honkhonk","Auto")
NTL8 "#" 0
"####" "#" 0 A_SeekerMissile(0,0,SMF_LOOK,256)
goto loopit
loopit:
"####" A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
"####" A 0 A_ChangeVelocity(25,0,momz,CVF_REPLACE|CVF_RELATIVE)
"####" AABB 1 A_FaceTracer(6, 0)
"####" A 0 A_SeekerMissile(0,0,SMF_LOOK,256)
loop
XDeath:
"####" A 0 A_GiveInventory("CutterFlag",1)
Death:
"####" A 0 A_ChangeFlag("NOINTERACTION",1)
"####" A 0 A_TakeFromTarget("NitroTruckCount",1)
"####" A 0 A_Explode(60,160,0,0,80)
"####" A 0 A_ChangeVelocity(-5, 0, 0, CVF_REPLACE | CVF_RELATIVE)
"####" AAA 0 A_SpawnItemEx("ExplosionEffect2",random(-90,30),random(-50,30),random(-30,90))
"####" A 5 A_PlaySound("misc/mm3explosion")
"####" A 0 A_Explode(10,160,0,0,80)
"####" AAA 0 A_SpawnItemEx("ExplosionEffect2",random(-50,30),random(-50,30),random(-30,90))
"####" A 5 A_PlaySound("misc/mm3explosion")
"####" A 0 A_Explode(10,160,0,0,80)
"####" A 0 A_Stop
"####" AAA 0 A_SpawnItemEx("ExplosionEffect2",random(-50,30),random(-50,30),random(-30,90))
"####" A 5 A_PlaySound("misc/mm3explosion")
"####" A 0 A_Explode(10,160,0,0,80)
"####" A 0 A_JumpIfInventory("CutterFlag",1,"Death2")
stop
Death2:
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NitroTruckExplosion2",0,0,16,0,0,0,random(0,360))
stop
}
}

actor NitroTruck2 : NitroTruck
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("misc/honkhonk","Auto")
NTS8 "#" 0
"####" "#" 0
goto loopit
}
}

actor NitroTruckExplosion2
{
PROJECTILE
damagetype "BadTraffic"
Obituary "$OB_NITROMAN3"
Species "NitroTruck"
scale 2.0
+THRUACTORS
-NOGRAVITY
Speed 16
Radius 15
Height 8
gravity 0.8
Damage (0)
reactiontime 30
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Recoil(random(-12,0))
TNT1 A 0 ThrustThingZ(0, random(10,100), 0, 1)
SpawnLoop:
TNT1 A 3 A_SpawnItemEx("NitroTruckExplosion2FX")
loop
Death:
XDeath:
TNT1 A 0
stop
}
}

actor NitroTruckExplosion2FX
{
PROJECTILE
damagetype "BadTraffic"
Obituary "$OB_NITROMAN3"
Species "NitroTruck"
Damage (0)
Radius 16
Height 16
scale 2.5
+NOINTERACTION
speed 0
States
{
Spawn:
RDUS ABCDEFJKLMNO 1
stop
}
}

actor NitroAltAmmoWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 AAAA 1
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death") 
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) 
Goto Spawn
TNT1 A 0 A_GiveToTarget("BaseAltFireAmmo",1)
Goto Spawn
Death:
TNT1 A 0
stop
}
}

actor NitroUltCoolDownWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("NitroTruckCount",1,"Spawn")
TNT1 A 0 A_TakeFromTarget("PowerUltBuildCooldown")
stop
}
}

actor NitroBoostWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_TakeFromTarget("NitroBoost",1)
TNT1 A 0 A_JumpIfInTargetInventory("NitroBoost",1,"Spawn")
stop
}
}

Actor NitroTruckProtect : PowerProtection
{
	Powerup.Duration 1
	DamageFactor "NitromanUlt", 0.0
}

actor WallRiding : Powerup 
{
powerup.duration 3
}

actor NitroTruckCount : Inventory
{
inventory.amount 1
inventory.maxamount 2
}

actor NitroBoost : Inventory 
{
inventory.amount 1
inventory.maxamount 70
}

actor NitroM2Handler : BaseMovement//CustomInventory
{
States
{
itTimeGo:
TNT1 A 0 A_SpawnItemEx("BikeFormWallDetector",16,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(pitch>=270 && pitch<330,"Pickup2")
TNT1 A 0 A_SpawnItemEx("BikeFormDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
stop

Pickup2:
TNT1 A 0 A_SpawnItemEx("BikeFormDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
stop
}
}

actor NitroCheerHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/nitrocheer","Nitroman")
stop
}
}

actor NitroSkinWatcher
{
Height 0
Radius 0
+NOINTERACTION
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 AAA 1 A_GiveToTarget("NitroSkinCheck")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
loop
Death:
TNT1 A 0
stop
}
}

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

actor NitroRageHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("NitroRoadRage",6,"Nope")
TNT1 A 0 A_JumpIfInventory("NitroRoadRage",5,"Pickup2")
Yes:
TNT1 A 0 A_GiveInventory("NitroRoadRage")
stop

Pickup2:
TNT1 A 0 ACS_NamedExecute("VC_ClientSound",0,3)
goto Yes

Nope:
TNT1 A 0
stop
}
}

actor NitroRoadRage : Inventory
{
inventory.amount 1
inventory.maxamount 6
}

actor NitroRageSoundWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 AAAA 1 A_JumpIfInTargetInventory("NitroRoadRage",6,"Sound")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
loop
Sound:
TNT1 A 0 A_GiveToTarget("NitroRageSounder")
Death:
TNT1 A 0
stop
}
}

actor NitroRageSounder : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecute("VC_ClientSound",0,3)
stop
}
}

actor CameramanTest
{
PROJECTILE
+THRUACTORS
+DONTREFLECT
Obituary "$OB_BASS5"
Damagetype "BassBusterVCUlt"
Damage (0)
Speed 0
Height 1
Radius 1
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
BASL A 0 A_SpawnItemEx("Cameraman")
BASL A 0 A_SpawnItemEx("CameramanTest",0,0,16,momx,momy,momz,0,SXF_ABSOLUTEANGLE|SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERPOINTERS)
BASL A 1 BRIGHT A_SpawnItemEx("SweepingLaserDamager")
stop
Death:
BASL A 0 A_SpawnItemEx("SweepingLaserExplode",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
BASL A 1
stop
}
}