actor Gravityman : ClassBase
{
Player.StartItem "IFMM05", 1
Player.ScoreIcon "C_05A0X"
player.displayname "gravityman"
player.soundclass "gravitymanc"
player.startitem "GravityHoldBoss"
player.startitem "ScrewGravityAmmo", 140
player.startitem "GroundFlag"
player.startitem "GravitySwitchItem"

player.maxhealth 100
health 100
player.forwardmove 0.8, 0.8
player.sidemove 0.78, 0.78
player.jumpz 15

player.startitem "StarCrashWeakness2", 1

//player.startitem "SkullBarrierWeakness", 1
player.startitem "StarCrashWeakness", 1
player.startitem "AstroCrushWeakness", 1
player.startitem "BlackHoleWeakness", 1
States
{ 
Spawn:
GRAM A 0
GRAM A 0 A_JumpIfInventory("CeilingFlag",1,4)
GRAM B 1 A_JumpIf(z-floorz>0, "Jumping")
GRAM A -1 A_JumpIfInventory("CeilingFlag",1,2)
GRAM N 1 A_JumpIf(z-floorz>0, "Jumping")
GRAM M 1 A_JumpIfInventory("GroundFlag",1,"Spawn")
Goto Spawn+5

Melee:
GRAM A 0 A_JumpIfInventory("VivifyDelay5",1,"MeleeWait_C")
GRAM A 0 A_JumpIfInventory("CeilingFlag",1,"MeleeWait")
goto Spawn+3
MeleeWait:
GRAM IJK 3
GRAM K 2
GRAM J 3
GRAM LLLLLLLLLLLLLLLLLLLL 1 A_JumpIf(z-ceilingz==0-56,"Spawn")
GRAM X 1 A_JumpIf(z-ceilingz==0-56,"Spawn")
wait
MeleeWait_C:
GRAM UVW 3
GRAM W 2
GRAM V 3
GRAM XXXXXXXXXXXXXXXXXXXX 1 A_JumpIf(momz==0,"Spawn")
GRAM L 1 A_JumpIf(momz==0,"Spawn")
wait

See:
GRAM B 0 A_JumpIfInventory("CeilingFlag",1,"See_C")
GRAM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn
See_C:
GRAM NNNNNOOOOOPPPPPQQQQQ 1 A_JumpIf(momz!=0,"Jumping_c")
Goto Spawn
Jumping:
GRAJ A 1 A_JumpIf(z-floorz<=0,"Spawn")
wait
Jumping_c:
GRAJ F 1 A_JumpIf(ceilingz-z>=64,"Spawn")
wait

JumpingMissile:
GRAJ F 0 A_JumpIfInventory("VivifyDelay8",1,"JumpingMissileGHold")
GRAJ F 0 A_JumpIfInventory("CeilingFlag",1,"JumpingMissile_C")
GRAJ C 5 A_JumpIf(z-floorz<=0,"Missile")
GRAJ C 4 A_JumpIf(z-floorz<=0,"Missile")
goto Jumping
JumpingMissile_C:
GRAJ E 5 A_JumpIf(z-ceilingz==0-56,"Missile_C")
GRAJ E 4 A_JumpIf(z-ceilingz==0-56,"Missile_C")
goto Jumping_c

JumpingMissileGHold:
GRAJ I 0 A_JumpIfInventory("CeilingFlag",1,"JumpingMissileGHold_C")
GRAJ BBB 3 A_JumpIf(z-floorz<=0,"MissileGHold")
GRAJ C 2 A_JumpIf(z-floorz<=0,"MissileGHold")
GRAJ CC 3 A_JumpIf(z-floorz<=0,"MissileGHold")
goto Jumping
JumpingMissileGHold_C:
GRAJ DDD 3 A_JumpIf(z-ceilingz==0-56,"MissileGHold_C")
GRAJ E 2 A_JumpIf(z-ceilingz==0-56,"MissileGHold_C")
GRAJ E 3 A_JumpIf(z-ceilingz==0-56,"MissileGHold_C")
goto Jumping_c

Missile:
GRAM F 0 A_JumpIfInventory("VivifyDelay8",1,"MissileGHold")
GRAM F 0 A_JumpIfInventory("CeilingFlag",1,"Missile_C")
GRAM F 5 A_JumpIf(z-floorz>0, "JumpingMissile")
GRAM G 4 A_JumpIf(z-floorz>0, "JumpingMissile")
goto Spawn+3
Missile_C:
GRAM R 5 A_JumpIf(ceilingz-z>=64, "JumpingMissile_C")
GRAM S 4 A_JumpIf(ceilingz-z>=64, "JumpingMissile_C")
goto Spawn+3

MissileGHold:
GRAM I 0 A_JumpIfInventory("CeilingFlag",1,"MissileGHold_C")
GRAM IJK 3 A_JumpIf(z-floorz>0, "JumpingMissileGHold")
GRAM K 2 A_JumpIf(z-floorz>0, "JumpingMissileGHold")
GRAM J 3 A_JumpIf(z-floorz>0, "JumpingMissileGHold")
goto Spawn+3
MissileGHold_C:
GRAM UVW 3 A_JumpIf(ceilingz-z>=64, "JumpingMissileGHold_C")
GRAM W 2 A_JumpIf(ceilingz-z>=64, "JumpingMissileGHold_C")
GRAM V 3 A_JumpIf(ceilingz-z>=64, "JumpingMissileGHold_C")
goto Spawn+3

ClassPain:
GRAM H 0 A_JumpIfInventory("CeilingFlag",1,"ClassPain_C")
GRAM H 0
goto PainContinue
ClassPain_C:
GRAM T 0
goto PainContinue
ClassDeath:
GRAM H 0 A_JumpIfInventory("CeilingFlag",1,1)
goto DeathContinue
GRAM T 0 A_JumpIfInventory("RiseDeathFlag",1,1)
goto DeathContinue
GRAM T 0
goto ClassDeathR
ClassDeathR:
GRAM T 1 ThrustThingZ(0,-11,0,1)
GRAM T 0 A_JumpIf(z-floorz<64,"GibDeathStop")
GRAM T 0 A_GiveInventory("RiseDeathFlag2",1)
GRAM T 0 A_JumpIfInventory("RiseDeathFlag2",25,"GibDeathStop")
Goto ClassDeathR
}
}