//====================================
// Formatted and Cleaned by Ru5tK1ng
//------------------------------------
//====================================

  Actor Fakeman : ClassBase
  {
    Player.StartItem "IFMM09", 1
    Player.ScoreIcon "C_09I0X"
	Player.DisplayName "Fakeman"
	Player.SoundClass "fakemanc"
	Player.StartItem "RevolverBusterBoss"
	Player.StartItem "RevolverbusterAmmoBoss", 8
	Player.StartItem "FakemanDashCounter", 53
	Player.StartItem "FakemanDashItem"
	Player.StartItem "IsTheLaw"
	//Player.StartItem "CanSnatch_F"
	
	player.maxhealth 100
	health 100
	player.jumpz 10
	Player.ForwardMove 0.9, 0.9
	Player.SideMove 0.88, 0.88
	States
	{
		Spawn:
		FAKM A 0
		FAKM B 1
		FAKM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPQQQ 1 A_JumpIf(velz!=0,"FakeJumping")
		Goto Spawn+102

		See:
		FAKM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(velz!=0,"FakeJumping")
		Goto Spawn

		FakeJumping:
		FAKM S 0 A_JumpIfInventory("FakemanFiring",1,"FakeJumpingShot")
		FAKM S 1 A_JumpIf(velz==0, "Spawn")
		Loop

		FakeJumpingShot:
		FAKM OO 1 A_JumpIf(velz==0,"Missile")

		FakeJumpingShot.a:
		FAKM RR 1 A_JumpIf(velz==0,"Missile.a")

		FakeJumpingShot.b:
		FAKM OO 1 A_JumpIf(velz==0,"Missile.b")

		FakeJumpingShot.c:
		FAKM RR 1 A_JumpIf(velz==0,"Missile.c")
		Goto FakeJumping

		Missile:
		FAKM FF 1 A_JumpIf(velz!=0,"FakeJumpingShot")

		Missile.a:
		FAKM GG 1 A_JumpIf(velz!=0,"FakeJumpingShot.a")

		Missile.b:
		FAKM FF 1 A_JumpIf(velz!=0,"FakeJumpingShot.b")

		Missile.c:
		FAKM GG 1 A_JumpIf(velz!=0,"FakeJumpingShot.c")
		Goto Spawn

ClassPain:
FAKM H 0
goto PainContinue
ClassDeath:
FAKM H 0 A_JumpIfInventory("NoJumpCancel",1,1)
goto DeathContinue
FAKM H 0
FAKM H 0 A_JumpIfInventory("InstagibFlag",1,"GibDeath")
FAKM H 0 A_JumpIfInventory("FlingDeathFlag",1,"ClassDeathF")
FAKM Z 5 A_GiveInventory("FakeM_FlingCorpse_P")
goto DeathWait
ClassDeathF:
FAKM V 3 A_PlaySoundEx("*pain100","Voice")
FAKM Z 5 A_GiveInventory("FakeM_FlingCorpse_P")
goto DeathWait
}
}

actor FakeM_FlingCorpse_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("InstagibFlag",1,"No")
TNT1 A 0 A_JumpIfInventory("FlingDeathFlag",1,"P_Fling")
TNT1 A 0 A_PlaySoundEx("*pain100","Voice")
TNT1 A 0 A_JumpIfInventory("IceDeathFlag",1,"P_Ice")
TNT1 A 0 A_JumpIfInventory("RiseDeathFlag",1,"P_Rise")
TNT1 A 0 A_SpawnItemEx("FakemanBoomFlingCorpse",0,0,0,momx*1.5,momy*1.5,momz*1.5+5,0,9)
stop
P_Fling:
TNT1 A 0 A_JumpIfInventory("IceDeathFlag",1,"P_Ice")
TNT1 A 0 A_JumpIfInventory("RiseDeathFlag",1,"P_Rise")
TNT1 A 0 A_SpawnItemEx("FakemanBoomFlingCorpse",0,0,0,momx*0.8,momy*0.8,momz*0.8+1,0,9)
stop
P_Ice:
TNT1 A 0 A_SpawnItemEx("FakemanIceFlingCorpse",0,0,0,momx,momy,momz+5,0,8)
stop
P_Rise:
TNT1 A 0 A_SpawnItemEx("FakemanRiseFlingCorpse",0,0,0,momx*0.5,momy*0.5,momz+5,0,9)
TNT1 A 0 A_Stop
stop
No:
TNT1 A 0
stop
}
}

actor FakemanBoomFlingCorpse
{
+MISSILE
+THRUACTORS
+NOBLOCKMAP
-SOLID
+DOOMBOUNCE
bouncecount 3
Gravity 0.8
Damage(0)
radius 16
height 56
scale 2.5
States
{
Spawn:
FAKM W 0
FAKM W 0 A_JumpIfInventory("CriticalDeath",1,"SpawnCheckGib",2)
goto SpawnL
SpawnCheckGib:
FAKM W 0 A_GiveInventory("CriticalDeath",1)
goto SpawnL
SpawnL:
FAKM WTUV 4
loop
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFX_CBM",0,0,32,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("CriticalDeath",1,"DeathGibbed")
TNT1 A 4 A_PlaySoundEx("misc/devildeath","Body")
stop
DeathGibbed:
TNT1 A 0 A_PlaySoundEX("misc/gib","SoundSlot6")
TNT1 A 4 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,1)
stop
}
}

actor FakemanRiseFlingCorpse : FakemanBoomFlingCorpse
{
-DOOMBOUNCE
+NOGRAVITY
+SKYEXPLODE
ReactionTime 7
States
{
Spawn:
FAKM W 0
FAKM W 0 A_JumpIfInventory("CriticalDeath",1,"SpawnCheckGib",2)
goto SpawnL
SpawnCheckGib:
FAKM W 0 A_GiveInventory("CriticalDeath",1)
goto SpawnL
SpawnL:
FAKM WWWT 1 ThrustThingZ(0,4,0,1)
FAKM T 0 A_CountDown
FAKM TTUU 1 ThrustThingZ(0,4,0,1)
FAKM U 0 A_CountDown
FAKM UVVV 1 ThrustThingZ(0,4,0,1)
FAKM W 0 A_CountDown
loop
}
}

actor FakemanIceFlingCorpse : FakemanBoomFlingCorpse
{
-DOOMBOUNCE
Translation "192:192=4:4", "198:198=201:201", "3:8=72:72", "243:247=72:72", "208:215=4:4", "202:202=4:4", "199:199=201:201", "204:204=4:4", "195:195=201:201"
States
{
Spawn:
FAKM V 0
FAKM V 0 A_PlaySoundEx("CBM/freeze","Body")
FAKM V 0 A_JumpIfInventory("CriticalDeath",1,"SpawnCheckGib",2)
goto SpawnL
SpawnCheckGib:
FAKM V 0 A_GiveInventory("CriticalDeath",1)
goto SpawnL
SpawnL:
FAKM V 1 A_SpawnItemEx("FrozenDeathBitFX",frandom(16,48),0,fRandom(16,48),0,0,0,random(0,359))
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_PlaySoundEx("CBM/icebreak","Body")
TNT1 A 4 A_SpawnItemEx("FrozenDeathFXC",0,0,0)
stop
}
}
