//= Cut Man
//	Assist now gives the surprise bonus on kill
//	Mainfire speed increased: 40 > 50
actor Cutman : VCBaseClass
{
	Player.ScoreIcon "CUTMMUGS"
	player.startitem "BaseFlagPack", 1
	player.startitem "NormalArmor"
	player.soundclass "cutmanc"
	Player.ViewHeight 45
	player.displayname "Cutman"
	player.forwardmove 0.85, 0.85
	player.sidemove 0.83, 0.83
	player.jumpz 12
	player.startitem "IsFromMM1"
	player.startitem "RollingCutterBoss"
	player.startitem "Base28Ammo", 14
	player.startitem "UltimateAttackItem1", 1
	player.startitem "UltSoundWatcherSpawn1", 1
	player.startitem "CutmanSurpriseCount", 5
	States
	{
		Spawn:
		CUTM A 0
		CUTM B 1 A_JumpIf(z-floorz>0, "Jumping")
		CUTM AAAAAAJJJJJJ 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn+2
		
		See:
		CUTM BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn
		
		Jumping:
		CUTM N 1 A_JumpIf(z-floorz<=0, "Spawn")//CUTJ A 1 A_JumpIf(z-floorz<=0, "Spawn")
		wait
		
		Animation1:
		CUTM F 7
		
		Missile:
		CUTM F 5
		CUTM G 4
		
		Repeat:
		CUTM G 1
		CUTM G 1 A_JumpIfInventory("CutterFlag",1,"Repeat")
		CUTM G 1 A_JumpIfInventory("CutterFlag2",1,"Repeat")
		CUTM G 0
		Goto Spawn+1
		
		Animation2:
		CUTM G 20
		goto Spawn+1
		
		ClassTimeStop:
		PLAY A 0 SetPlayerProperty(0,1,4)
		PLAY A 0 ACS_Execute(528,0)
		CUTM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
		PLAY A 0 SetPlayerProperty(0,0,4)
		Goto pain+1
		ClassPain:
		CUTM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		ClassDeath:
		CUTM ] 8 ACS_ExecuteAlways(999,0,0)
		CUTM ] 12 A_SpawnItemEx("MM1Death")
		CUTM ] 0 A_PlayerScream
		NOFX A 0 A_SpawnItemEx("FakeDeathFXMM1",0,0,32)
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassIceDeath:
		CUTM A 35
		NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
		NOFX A 1 A_CheckPlayerDone
		wait
		WeaponGetM:
		CUTM H 0 A_JumpIfInTargetInventory("RollingCutterWepM",1,2)
		CUTM H 0 A_GiveToTarget("WeaponGetter")
		CUTM H 0 A_GiveToTarget("RollingCutterWepM")
		goto ClassDeath
	}
}

actor MM1Death : BasicClientSide
{
States
{
Spawn:
1DED ABCDEFGHIJKL 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
stop
}
}

actor RollingCutterBoss : VCBaseWeapon
{
	Obituary "$OB_CUTMAN1"
	Weapon.AmmoType2 "CutmanSurpriseCount"
	States
	{
		Ready:
		TNT1 A 0 
		CUTH A 0 A_TakeInventory("CutterFlag",999)
		CUTH A 0 A_TakeInventory("CutterFlag2",999)
		CUTH A 0 A_GiveInventory("CutmanSkinCheck")
		CUTH A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		Ready2:
		"####" A 1 A_WeaponReady "####" A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		Goto Ready
		
		AltSkinFrame:
		C_TH A 0
		goto Ready2
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		CUTH A 1 A_Lower
		Loop
		Select:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(991,0,720)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		CUTH A 1 A_Raise
		Loop
		
		Fire:
		"####" A 0 A_JumpIfInventory("CutterFlag",1,"NoAmmo")
		"####" BCCC 1 A_GiveInventory("CutterFlag",1)
		"####" A 0 A_FireCustomMissile("CutRollingCutter",0,0,8,0)
		"####" DEEEE 2
		"####" A 0 A_GiveInventory("RollingCutterFlag",1)
		Goto Check1
		Check1:
		"####" E 1 A_GiveInventory("CutterFlag",1)
		"####" A 0 A_JumpIfInventory("CutterFlag",150,"Return1")
		Goto Check1
		Return1:
		"####" A 0 A_TakeInventory("CutterFlag",999)
		"####" A 0 A_TakeInventory("RollingCutterFlag",1)
		"####" D 2
		"####" BCCCCCAAA 1
		"####" A 0 A_Refire
		Goto Ready

		AltFire:
		"####" A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
		"####" A 0 A_JumpIfInventory("CutterFlag",1,"Altfire.NoAmmo")
		"####" A 0 A_JumpIfInventory("CutmanSurpriseCount",15,"Altfire.FullAmmo")
		"####" A 0 A_JumpIfInventory("CutmanSurpriseCount",1,"Altfire.FireRNGCheck")
		Goto Altfire.NoAmmo
		Altfire.FireRNGCheck:
		"####" A 0 A_PlaySoundEx("weapon/cutvoid","Body")
		"####" A 0 A_SpawnItemEx("CutVoid",20,0,0)
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		"####" A 0 A_Jump(256,"Altfire.FireRNG1","Altfire.FireRNG1","Altfire.FireRNG2","Altfire.FireRNG3","Altfire.FireRNG3","Altfire.FireRNG4","Altfire.FireRNG4","Altfire.FireRNG5","Altfire.FireRNG5","Altfire.FireRNG6","Altfire.FireRNG6")
		Goto Altfire.FireRNG1
		Altfire.FireRNG1:
		"####" FFG 1
		"####" G 1 A_GiveInventory("CutmanSurpriseFire1_CI")
		"####" HIJKLMN 2
		"####" A 1
		"####" A 1 Offset(0,80)
		"####" A 1 Offset(0,64)
		"####" A 1 Offset(0,48)
		Goto Ready
		Altfire.FireRNG2:
		"####" FFG 1
		"####" G 1 A_GiveInventory("CutmanSurpriseFire2_CI")
		"####" HIJKLMN 2
		"####" A 1
		"####" A 1 Offset(0,80)
		"####" A 1 Offset(0,64)
		"####" A 1 Offset(0,48)
		Goto Ready
		Altfire.FireRNG3:
		"####" FFG 1
		"####" G 1 A_GiveInventory("CutmanSurpriseFire3_CI")
		"####" HIJKLMN 2
		"####" A 1
		"####" A 1 Offset(0,80)
		"####" A 1 Offset(0,64)
		"####" A 1 Offset(0,48)
		Goto Ready
		Altfire.FireRNG4:
		"####" FFG 1
		"####" G 1 A_GiveInventory("CutmanSurpriseFire4_CI")
		"####" HIJKLMN 2
		"####" A 1
		"####" A 1 Offset(0,80)
		"####" A 1 Offset(0,64)
		"####" A 1 Offset(0,48)
		Goto Ready
		Altfire.FireRNG5:
		"####" FFG 1
		"####" A 0
		"####" G 1 A_GiveInventory("CutmanSurpriseFire5_CI")
		"####" HIJKLMN 2
		"####" A 1
		"####" A 1 Offset(0,80)
		"####" A 1 Offset(0,64)
		"####" A 1 Offset(0,48)
		Goto Ready
		Altfire.FireRNG6:
		"####" BCC 1
		"####" A 0 A_GiveInventory("CutmanSurpriseFire6_CI")
		"####" DEEEE 2
		"####" A 0 A_GiveInventory("RollingCutterFlag",1)
		Goto Altfire.FireRNG6Check1
		Altfire.FireRNG6Check1:
		"####" E 1 A_GiveInventory("CutterFlag",1)
		"####" A 0 A_JumpIfInventory("CutterFlag",150,"Altfire.FireRNG6Return")
		Goto Altfire.FireRNG6Check1
		Altfire.FireRNG6Return:
		"####" A 0 A_TakeInventory("CutterFlag",999)
		"####" A 0 A_TakeInventory("RollingCutterFlag",9)
		"####" D 2
		"####" BCCCCCCAAA 1
		Goto Ready
		Altfire.FullAmmo:
		"####" A 0 A_PlaySoundEx("weapon/cutvoid","Body")
		"####" A 0 A_SpawnItemEx("CutVoid",20,0,0)
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		"####" BCCC 1
		"####" A 0 A_GiveInventory("CutmanFullAmmoSurprise_CI")
		"####" DEEEDBCA 2
		Goto Ready

		Altfire.NoAmmo:
		"####" BCCC 1 A_GiveInventory("CutterFlag2",1)
		"####" A 0 A_FireCustomMissile("CutFlyingCutter",0,0,8,0)
		"####" DEEEE 2
		Goto Check2
		Check2:
		"####" E 1 A_GiveInventory("CutterFlag2",1)
		"####" A 0 A_JumpIfInventory("CutterFlag2",150,"Return2")
		"####" A 0 A_JumpIfInventory("CutterFlag",150,"Return1")
		"####" A 0 //A_GiveInventory("Base28Ammo",1)
		Goto Check2
		Return2:
		"####" A 0 A_JumpIfInventory("CutterFlag",999,"Return1")
		"####" A 0 A_JumpIfInventory("RollingCutterFlag",1,"Check1")
		"####" A 0 A_TakeInventory("CutterFlag2",999)
		"####" D 2
		"####" BCCCCCAAA 1
		Goto Ready
		UltimateAttack:
		"####" A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		"####" A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,6)
		"####" A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		"####" A 0 A_GiveInventory("UltBuildCooldownGiver",1)
		"####" BCCCCC 1
		"####" C 1 Offset(-1,0)
		"####" C 1 Offset(1,0)
		"####" C 1 Offset(-2,0)
		"####" C 1 Offset(2,0)
		"####" C 1 Offset(-3,0)
		"####" C 1 Offset(3,0)
		"####" C 0 A_WeaponReady(WRF_NOFIRE)
		"####" A 0 A_FireCustomMissile("GiantRollingCutter",0,0,8,0)
		"####" A 0 A_TakeInventory("ShortUltimateAmmo",100)
		"####" D 1 A_TakeInventory("UltAttackFlag",1)
		Goto Check3
		Check3:
		"####" E 1 A_GiveInventory("CutterFlag",2)
		"####" A 0 A_JumpIfInventory("CutterFlag",300,"Return3")
		Goto Check3
		Return3:
		"####" A 0 A_TakeInventory("CutterFlag",999)
		"####" D 2 A_GiveInventory("DrillFlag",2)
		"####" A 0 A_TakeInventory("DrillFlag",999)
		"####" A 0 A_TakeInventory("PowerUltBuildCooldown",1)
		"####" BCCCCCAAA 1
		Goto Ready
		NoAmmo:
		"####" A 1
		Goto Ready
	}
}

actor CutmanSurpriseCount : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 15
	+INVENTORY.IGNORESKILL
}

Actor CutmanSurpriseFire1_CI : CustomInventory
{
States
{
Pickup:
BUST B 0 A_PlaySoundEx("weapon/cfire2","Weapon")
TNT1 A 0 A_FireCustomMissile("CutmanBusterSurprise",0,0,8,0)
Goto Done
Done:
TNT1 A 0 A_TakeInventory("CutmanSurpriseCount",1,1)
Stop
}
}

Actor CutmanSurpriseFire2_CI : CutmanSurpriseFire1_CI
{
States
{
Pickup:
BUST B 0 A_PlaySoundEx("weapon/mbuster","Weapon")
TNT1 A 0 A_FireCustomMissile("CutmanSatsuiSurprise",0,0,8,0)
Goto Done
}
}
Actor CutmanSurpriseFire3_CI : CutmanSurpriseFire1_CI
{
States
{
Pickup:
BUST B 0 A_PlaySoundEx("weapon/coilfire2","Weapon")
TNT1 A 0 A_FireCustomMissile("CutmanSideArmsSurprise",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("CutmanSideArmsSurprise",-9,0,8,0)
TNT1 A 0 A_FireCustomMissile("CutmanSideArmsSurprise",9,0,8,0)
Goto Done
}
}
Actor CutmanSurpriseFire4_CI : CutmanSurpriseFire1_CI
{
States
{
Pickup:
BUST B 0 A_PlaySoundEx("weapon/pshot","Weapon")
TNT1 A 0 A_FireCustomMissile("CutmanSpookySurprise",-8,0,8,0)
TNT1 A 0 A_FireCustomMissile("CutmanSpookySurprise",8,0,8,0)
Goto Done
}
}
Actor CutmanSurpriseFire5_CI : CutmanSurpriseFire1_CI
{
States
{
Pickup:
BUST B 0 A_PlaySoundEx("weapon/magiccard","Weapon")
TNT1 A 0 A_FireCustomMissile("CutmanTsuranattoriSurpriseSpawner",0,0,8,0)
Goto Done
}
}
Actor CutmanSurpriseFire6_CI : CutmanSurpriseFire1_CI
{
States
{
Pickup:
BUST B 0 A_PlaySoundEx("weapon/rollingcutter","Weapon")
TNT1 A 0 A_FireCustomMissile("CutmanCutterSurprise",0,0,8,0)
Goto Done
}
}

Actor CutmanFullAmmoSurprise_CI : CustomInventory
{
	States
	{
		Pickup:
		BUST B 0 A_PlaySoundEx("weapon/pshot","Weapon")
		BUST B 0 A_PlaySoundEx("weapon/rollingcutter","Auto")
		TNT1 A 0 A_FireCustomMissile("CutmanSpinningYashichi",0,0,8,0)
		TNT1 A 0 A_TakeInventory("CutmanSurpriseCount",1,1)
		Stop
	}
}

actor CutmanBusterSurprise : FastProjectile
{
	PROJECTILE
	+RIPPER
	+SKYEXPLODE
	-DONTBLAST
	DamageType "CutmanBuster"
	Obituary "$OB_CUTMANSURPRISE1"
	Speed 40
	Damage (35)
	Radius 32
	Height 32
	Scale 2.5
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		1CSU BCDEF 3
		Goto Spawn+2
		Death:
		MMFX BCDE 2
		Stop
	}
}

actor CutmanBusterProtect : PowerProtection
{
	Powerup.Duration 7
	DamageFactor "CutmanBuster", 0.0
}

actor CutmanSatsuiSurprise
{
	PROJECTILE
	-NOGRAVITY
	Gravity 0.9
	-RIPPER
	+SKYEXPLODE
	-DONTBLAST
	+NOEXPLODEFLOOR
	+HEXENBOUNCE
	-BOUNCEONFLOORS
	-BOUNCEONCEILINGS
	+BOUNCEONWALLS
	BounceFactor 0.9
	WallBounceFactor 0.9
	BounceCount 5
	DamageType "CutmanAkuma"
	Obituary "$OB_CUTMANSURPRISE2"
	Speed 18
	Damage (10)
	Radius 16
	Height 32
	Scale 2.5
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
		CSP1 A 0 A_Recoil(-5)
		Spawn2:
		CSP1 A 0 ThrustThingZ(0,0,0,1)
		loopit:
		CSP1 A 0 A_GiveInventory("CutterFlag",8)
		CSP1 A 0 A_JumpIfInventory("CutterFlag",150,"Death")
		CSP1 ABCDEFGH 1 A_JumpIf(z-floorz>0, "Air")
		loop
		Air:
		CSP1 A 0 A_GiveInventory("CutterFlag",8)
		CSP1 A 0 A_JumpIfInventory("CutterFlag",150,"Death")
		CSP1 ABCDEFGH 1 A_JumpIf(z-floorz<=0, "Spawn2")
		loop
		Death:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_Stop
		MMFX EFGH 2
		stop
		XDeath:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_SpawnItemEx("CutAkumaFX",0,0,0,0,0,0,0,1)
		TNT1 AAAAAAAAAAAAAA 5 A_SpawnItemEx("CutAkumaHitbox")
		stop
	}
}

actor CutAkumaFX : BasicClientSide
{
reactiontime 70
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
CSP1 ABCDEFGH 1 A_Countdown
goto Spawn+2
}
}

actor CutAkumaHitbox
{
Obituary "$OB_CUTMANSURPRISE2"
PROJECTILE
+NOEXPLODEFLOOR
Radius 32
Height 32
scale 2.5
speed 0
damage (3)
Damagetype "CutmanAkuma"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor HitFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
PFHX ABCDEF 1
Stop
}
}

Actor CutmanSideArmsSurprise
{
	PROJECTILE
	Damage (20)
	Speed 45
	DamageType "CutmanMeat"
	Obituary "$OB_CUTMANSURPRISE3"
	Radius 20
	Height 30
	Scale 2.5
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		1CSU HIJKL 3
		Goto Spawn+2
		Death:
		TNT1 A 0 A_Stop
		MMFX BCDE 2
		Stop
	}
}

actor CutmanMeatProtect : PowerProtection
{
	Powerup.Duration 35
	DamageFactor "CutmanMeat", 0.25
}

actor CutmanSpookySurprise
{
	PROJECTILE
	+SKYEXPLODE
	-DONTBLAST
	+NOEXPLODEFLOOR
	+HEXENBOUNCE
	BounceFactor 0.9
	WallBounceFactor 0.9
	BounceCount 10
	DamageType "CutmanMeat"
	Obituary "$OB_CUTMANSURPRISE4"
	Speed 35
	Damage (12)
	Radius 16
	Height 16
	Scale 2.5
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		1CSU M 2
		Goto Spawn+2
		Death:
		TNT1 A 0 A_Stop
		MMFX BCDE 2
		Stop
	}
}

Actor CutmanTsuranattoriSurpriseSpawner
{
PROJECTILE
+DONTREFLECT
+FORCEXYBILLBOARD
+RIPPER
Species "CutmanTsuranattori"
+THRUSPECIES
Speed 50
Damage (0)
radius 5
height 5
scale 2.5
ReactionTime 4
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_ScaleVelocity(SPEED_SCALAR/4)
Spawn2:
TNT1 A 0 A_SpawnItemEx("CutmanTsuranattoriSurprise",0,0,0,(momx/SPEED_SCALAR),(momy/SPEED_SCALAR),(momz/SPEED_SCALAR),0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 3 A_CountDown
loop
Death:
TNT1 A 0
stop
}
}

Actor CutmanTsuranattoriSurprise
{
PROJECTILE
Radius 16
Height 16
Scale 2.5
Damage (10)
Obituary "$OB_CUTMANSURPRISE5"
DamageType "Cutman"
Species "CutmanTsuranattori"
+THRUSPECIES
Speed 32
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
1CSU QQQRRRSSS 1 A_Weave(2,0,7,0)
Goto Spawn+2
Death:
TNT1 A 0 A_Stop
MMFX BCDE 2
Stop
}
}

actor CutmanCutterSurprise
{
	Obituary "$OB_CUTMANSURPRISE6"
	PROJECTILE
	Radius 20
	Height 20
	Scale 5.0
	Damage (0)
	+DONTSPLASH
	+DOOMBOUNCE
	+RIPPER
	-DONTBLAST
	+NOTARGETSWITCH
	+SKYEXPLODE
	MeleeRange 12
	ReactionTime 48
	//+FLOAT
	DamageType "Cutman"
	Speed 30
	FloatSpeed 20
	BounceFactor 1.0
	WallBounceFactor 1.0
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		RCUT A 0 A_PlaySound("weapon/rollingcutter")
		RCUT AAAB 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT BBCC 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT CDDD 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT AAAB 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_PlaySound("weapon/rollingcutter")
		RCUT BBCC 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT CDDD 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_CustomMissile("CutmanCutterSurprise2",0,0,0,0)
		stop
		Death:
		XDeath:
		Crash:
		RCUT A 0 A_CustomMissile("CutmanCutterSurpriseReturn",0,0,0,0)
		stop
	}
}

actor CutmanCutterSurprise2
{
	Obituary "$OB_CUTMANSURPRISE6"
	PROJECTILE
	Radius 8
	Height 8
	Scale 5.0
	Damage (0)
	+DONTSPLASH
	+DOOMBOUNCE
	+RIPPER
	-DONTBLAST
	+NOTARGETSWITCH
	+SKYEXPLODE
	MeleeRange 12
	ReactionTime 48
	DamageType "Cutman"
	Speed 30
	FloatSpeed 20
	BounceFactor 1.0
	WallBounceFactor 1.0
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		RCUT AAAB 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT BBCC 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_CustomMissile("CutmanCutterSurpriseReturn",0,0,0,0)
		stop
		Death:
		RCUT A 0 A_GiveToTarget("CutterFlag",999)
		stop
	}
}

actor CutmanCutterSurpriseReturn : RollingCutter
{
	Scale 5.0
	Obituary "$OB_CUTMANSURPRISE6"
	radius 0
	height 0
	speed 30
	damagetype "Cutman"
	damage 0
	+DONTSPLASH
	+NOINTERACTION
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		RCUT A 0 A_FaceTarget
		RCUT A 0 A_PlaySound("weapon/rollingcutter")
		RCUT D 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT D 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT D 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_FaceTarget
		RCUT A 0 A_JumpIfCloser(60,"Death")
		RCUT A 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT B 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT B 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_Countdown
		RCUT A 0 A_FaceTarget
		RCUT A 0 A_JumpIfCloser(60,"Death")
		RCUT A 0 A_PlaySound("weapon/rollingcutter")
		RCUT B 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT C 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT C 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT C 1 A_JumpIfCloser(60,"Death")
		RCUT D 0 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_FaceTarget
		RCUT A 0 A_JumpIfCloser(60,"Death")
		/*RCUT DDDA 1 A_SpawnItemEx("CutmanCutterSurpriseDamager",0,0,0,2,0,0)
		RCUT A 0 A_JumpIfInTargetInventory("CutterFlag",999,"Death")*/
		RCUT A 0 A_CustomMissile("CutmanCutterSurpriseReturn",0,0,0,0)
		stop
		Death:
		RCUT A 0 A_GiveToTarget("CutterFlag",999)
		CUTH A 0 A_TakeFromTarget("RollingCutterFlag",1)
		stop
	}
}

actor CutmanCutterSurpriseDamager
{
	Obituary "$OB_CUTMANSURPRISE6"
	PROJECTILE
	damagetype "Cutman"
	damage (13)
	radius 32
	height 32
	States
	{
		Spawn:
		TNT1 A 2
		stop
	}
}

actor CutmanSpinningYashichi : FastProjectile
{
	PROJECTILE
	Damage (0)
	Radius 16
	Height 16
	Obituary "$OB_CUTMANSURPRISE7"
	Speed 75
	Scale 2.5
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		1CSU N 0 A_PlaySoundEx("cutman/gigacut","Body")
		1CSU NOP 2
		Goto Spawn+2
		Death:
		TNT1 A 0 A_Stop
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_SpawnItemEx("NapalmExplodeFX",80,0,0)
		TNT1 A 0 A_SpawnItemEx("NapalmExplodeFX",-80,0,0)
		TNT1 A 0 A_SpawnItemEx("NapalmExplodeFX",0,80,0)
		TNT1 A 0 A_SpawnItemEx("NapalmExplodeFX",0,-80,0)
		TNT1 A 0 A_PlaySoundEx("weapon/drillexplode","Body")
		TNT1 A 0 A_Explode(50,256,0,0,16)
		TNT1 A 3
		stop
	}
}

actor GiantRollingCutter
{
	Obituary "$OB_CUTMAN2"
	PROJECTILE
	radius 4
	height 4
	Damage (0)
	scale 2.5
	+RIPPER
	+SKYEXPLODE
	+NOEXPLODEFLOOR
	-NOGRAVITY
	+DONTREFLECT
	Speed 40
	damagetype "CutmanUlt"
	+STEPMISSILE
	maxstepheight 24
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
		G1GC A 0 A_PlaySoundEx("weapon/cut","Body",1)
		
		Air:
		G1GC A 0 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC A 1 A_CheckFloor("Land")
		G1GC B 0 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC B 1 A_CheckFloor("Land")
		G1GC C 0 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC C 1 A_CheckFloor("Land")
		loop
		
		Land:
		G1GC A 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("CutImpactDot",0,0,random(14,18),random(36,48),0,random(-4,4),random(160,220),1)
		G1GC A 0 A_ChangeVelocity(40,0,0,CVF_RELATIVE|CVF_REPLACE)
		G1GC A 0 ThrustThingZ(0,0,0,1)
		
		loopit:
		TNT1 AA 0 A_SpawnItemEx("CutImpactDot",0,0,random(8,11),random(36,48),0,random(-4,4),random(160,220),1)
		G1GC A 0 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC A 1 A_JumpIf(z-floorz>0, "Air")
		TNT1 AA 0 A_SpawnItemEx("CutImpactDot",0,0,random(8,11),random(36,48),0,random(-4,4),random(160,220),1)
		G1GC B 0 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC B 1 A_JumpIf(z-floorz>0, "Air")
		TNT1 AA 0 A_SpawnItemEx("CutImpactDot",0,0,random(8,11),random(36,48),0,random(-4,4),random(160,220),1)
		G1GC C 0 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC C 1 A_JumpIf(z-floorz>0, "Air")
		loop
		
		Death:
		G1GC A 0 A_Stop
		G1GC A 0 A_ChangeFlag("NOGRAVITY",1)
		DeathLoop:
		TNT1 AAAA 0 A_SpawnItemEx("CutImpactDot",0,0,random(8,11),random(36,48),0,random(-4,4),random(160,220),1)
		G1GC A 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
		G1GC ABC 1 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC A 0 A_GiveInventory("CutterFlag",1)
		TNT1 A 0 A_JumpIfInventory("CutterFlag",10,"Death2")
		loop
		Death2:
		G1GC AAA 0 A_CustomMissile("GiantReturningCutter",0,0,0,100)
		TNT1 AAAA 0 A_SpawnItemEx("CutImpactDot",0,0,random(8,11),random(36,48),0,random(-4,4),random(160,220),1)
		stop
		}
		}

actor CutImpactDot : BasicClientSide
{
States
{
Spawn:
G1GC GH 2
stop
}
}

actor GiantReturningCutter : RollingCutter
{
	Obituary "$OB_CUTMAN2"
	radius 0
	height 0
	speed 40
	damagetype "CutmanUlt"
	damage 0
	+DONTSPLASH
	+NOINTERACTION
	+NOCLIP
	+DONTREFLECT
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		G1GC A 0 A_FaceTarget
		G1GC A 0 //A_ChangeVelocity(24,momy,momz,CVF_REPLACE|CVF_RELATIVE)
		G1GC A 0 A_PlaySoundEx("weapon/cut","weapon")
		G1GC A 0 A_JumpIfCloser(64,"End")
		G1GC A 1 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC B 0 A_JumpIfCloser(64,"End")
		G1GC B 1 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC C 0 A_JumpIfCloser(64,"End")
		G1GC C 1 A_SpawnItemEx("GiantCutRollingCutterDamager")
		G1GC C 0 A_CustomMissile("GiantReturningCutter",0,0,0,0)
		stop
		End:
		CUTM A 0 A_PlaySoundEx("weapon/adapterreturn","Voice")
		RCUT E 0 A_GiveToTarget("CutterFlag",999)
		stop
	}
}

actor CutSliced : BasicClientSide
{
States
{
Spawn:
G1GC DEF 2
stop
}
}

actor CutRollingCutter
{
	Obituary "$OB_CUTMAN1"
	PROJECTILE
	Radius 8
	Height 8
	scale 2.5
	damage (0)
	+DONTSPLASH
	+DOOMBOUNCE
	+RIPPER
	-DONTBLAST
	+NOTARGETSWITCH
	+SKYEXPLODE
	+DONTREFLECT
	meleerange 12
	reactiontime 48
	//+FLOAT
	damagetype "Cutman"
	speed 40
	FloatSpeed 20
	bouncefactor 1.0
	wallbouncefactor 1.0
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		RCUT A 0 A_PlaySound("weapon/rollingcutter")
		RCUT A 0 A_JumpIfInTargetInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		
		"####" AAAB 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" BBCC 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" CDDD 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" AAAB 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 0 A_PlaySound("weapon/rollingcutter")
		"####" BBCC 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" CDDD 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 0 A_CustomMissile("CutRollingCutter2",0,0,0,0)
		stop
		AltSkinFrame:
		R_UT A 0
		goto Spawn+4
		
		Death:
		XDeath:
		Crash:
		RCUT A 0 A_CustomMissile("CutReturningCutter",0,0,0,0)
		stop
	}
}

actor CutRollingCutter2
{
	Obituary "$OB_CUTMAN1"
	PROJECTILE
	Radius 8
	Height 8
	scale 2.5
	damage (0)
	+DONTSPLASH
	+DOOMBOUNCE
	+RIPPER
	-DONTBLAST
	+NOTARGETSWITCH
	+SKYEXPLODE
	+DONTREFLECT
	meleerange 12
	reactiontime 48
	damagetype "Cutman"
	speed 30
	FloatSpeed 20
	bouncefactor 1.0
	wallbouncefactor 1.0
	States
	{
		Spawn:
		RCUT AA 0 A_GiveInventory("ProjectileCode",1)
		RCUT A 0 A_JumpIfInTargetInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		
		"####" AAAB 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" BBCC 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 0 A_CustomMissile("CutReturningCutter",0,0,0,0)
		stop
		
		AltSkinFrame:
		R_UT A 0
		goto Spawn+3
		
		Death:
		RCUT A 0 A_GiveToTarget("CutterFlag",999)
		stop
	}
}

actor CutFlyingCutter : FastProjectile
{
	Obituary "$OB_CUTMAN3"
	PROJECTILE
	Radius 8
	Height 8
	scale 2.5
	damage (0)
	+DONTSPLASH
	+RIPPER
	+NOTARGETSWITCH
	+SKYEXPLODE
	+DONTREFLECT
	meleerange 12
	//+FLOAT
	damagetype "CutmanFlying"
	speed 60
	FloatSpeed 20
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		CFCU A 0 A_PlaySound("weapon/rollingcutter")
		CFCU A 0 A_SpawnItemEx("CutFlyingFX1")
		CFCU A 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU B 0 A_SpawnItemEx("CutFlyingFX2")
		CFCU B 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU C 0 A_SpawnItemEx("CutFlyingFX3")
		CFCU C 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU D 0 A_SpawnItemEx("CutFlyingFX4")
		CFCU D 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU E 0 A_SpawnItemEx("CutFlyingFX5")
		CFCU E 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU F 0 A_SpawnItemEx("CutFlyingFX6")
		CFCU F 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU G 0 A_SpawnItemEx("CutFlyingFX7")
		CFCU G 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU H 0 A_SpawnItemEx("CutFlyingFX8")
		CFCU H 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU A 0 A_SpawnItemEx("CutFlyingFX1")
		CFCU A 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU B 0 A_SpawnItemEx("CutFlyingFX2")
		CFCU B 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU C 0 A_SpawnItemEx("CutFlyingFX3")
		CFCU C 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU D 0 A_SpawnItemEx("CutFlyingFX4")
		CFCU D 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU A 0 A_PlaySound("weapon/rollingcutter")
		CFCU E 0 A_SpawnItemEx("CutFlyingFX5")
		CFCU E 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU F 0 A_SpawnItemEx("CutFlyingFX6")
		CFCU F 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU G 0 A_SpawnItemEx("CutFlyingFX7")
		CFCU G 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU H 0 A_SpawnItemEx("CutFlyingFX8")
		CFCU H 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU A 0 A_SpawnItemEx("CutFlyingFX1")
		CFCU A 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU B 0 A_SpawnItemEx("CutFlyingFX2")
		CFCU B 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU C 0 A_SpawnItemEx("CutFlyingFX3")
		CFCU C 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU D 0 A_SpawnItemEx("CutFlyingFX4")
		CFCU D 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU E 0 A_SpawnItemEx("CutFlyingFX5")
		CFCU E 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU F 0 A_SpawnItemEx("CutFlyingFX6")
		CFCU F 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU G 0 A_SpawnItemEx("CutFlyingFX7")
		CFCU G 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU H 0 A_SpawnItemEx("CutFlyingFX8")
		CFCU H 1 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		goto Spawn+2
		Death:
		CFCU A 0 A_CustomMissile("CutReturningFlyingCutter",0,0,0,0)
		stop
	}
}

actor CutFlyingFX1 : BasicClientSide
{
translation "0:2=[35,87,255]:[35,87,255]", "100:200=[104,178,248]:[104,178,248]"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU A 3
stop
}
}

actor CutFlyingFX2 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU B 3
stop
}
}

actor CutFlyingFX3 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU C 3
stop
}
}

actor CutFlyingFX4 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU D 3
stop
}
}

actor CutFlyingFX5 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU E 3
stop
}
}

actor CutFlyingFX6 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU F 3
stop
}
}

actor CutFlyingFX7 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU G 3
stop
}
}

actor CutFlyingFX8 : CutFlyingFX1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CFCU H 3
stop
}
}

actor CutReturningCutter : RollingCutter
{
	Obituary "$OB_CUTMAN1"
	radius 0
	height 0
	speed 40
	damagetype "Cutman"
	damage 0
	+DONTSPLASH
	+NOINTERACTION
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		RCUT A 0 A_FaceTarget
		RCUT A 0 A_PlaySound("weapon/rollingcutter")
		RCUT A 0 A_JumpIfInTargetInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		
		Spawn2:
		"####" D 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" D 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" D 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 0 A_FaceTarget
		"####" A 0 A_JumpIfCloser(60,"Death")
		"####" A 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" B 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" B 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 0 A_Countdown
		"####" A 0 A_FaceTarget
		"####" A 0 A_JumpIfCloser(60,"Death")
		"####" A 0 A_PlaySound("weapon/rollingcutter")
		"####" B 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" C 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" C 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" C 1 A_JumpIfCloser(60,"Death")
		"####" D 0 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		"####" A 0 A_FaceTarget
		"####" A 0 A_JumpIfCloser(60,"Death")
		/*RCUT DDDA 1 A_SpawnItemEx("CutRollingCutterDamager",0,0,0,2,0,0)
		RCUT A 0 A_JumpIfInTargetInventory("CutterFlag",999,"Death")*/
		RCUT A 0 A_CustomMissile("CutReturningCutter",0,0,0,0)
		stop
		
		AltSkinFrame:
		R_UT A 0
		goto Spawn2
		
		Death:
		RCUT A 0 A_GiveToTarget("CutterFlag",999)
		CUTH A 0 A_TakeFromTarget("RollingCutterFlag",1)
		stop
	}
}

actor CutReturningFlyingCutter : RollingCutter
{
	Obituary "$OB_CUTMAN3"
	radius 0
	height 0
	speed 60
	damagetype "Cutman"
	damage 0
	+DONTSPLASH
	+NOINTERACTION
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		CFCU A 0 A_FaceTarget
		CFCU A 0 A_PlaySound("weapon/rollingcutter")
		CFCU A 1 A_JumpIfCloser(60,"Death")
		CFCU A 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU B 1 A_JumpIfCloser(60,"Death")
		CFCU B 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU C 1 A_JumpIfCloser(60,"Death")
		CFCU C 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU D 1 A_JumpIfCloser(60,"Death")
		CFCU D 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU E 0 A_FaceTarget
		CFCU E 0 A_JumpIfCloser(60,"Death")
		CFCU E 1 A_JumpIfCloser(60,"Death")
		CFCU E 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU F 1 A_JumpIfCloser(60,"Death")
		CFCU F 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU G 1 A_JumpIfCloser(60,"Death")
		CFCU G 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU H 1 A_JumpIfCloser(60,"Death")
		CFCU H 0 A_SpawnItemEx("CutRollingCutterDamager2",0,0,0,2,0,0)
		CFCU A 0 A_Countdown
		CFCU A 0 A_FaceTarget
		CFCU A 0 A_CustomMissile("CutReturningFlyingCutter",0,0,0,0)
		stop
		Death:
		CFCU A 0 A_GiveToTarget("CutterFlag2",999)
		CFCU A 0 A_GiveToTarget("CutterFlag",1)
		stop
	}
}

actor GiantCutRollingCutterDamager
{
	Obituary "$OB_CUTMAN2"
	PROJECTILE
	damagetype "CutmanUlt"
	+RIPPER
	damage (14)
	radius 48
	height 64
	States
	{
		Spawn:
		TNT1 A 2
		stop
	}
}

actor CutRollingCutterDamager
{
	Obituary "$OB_CUTMAN1"
	PROJECTILE
	damagetype "CutmanM1"
	damage (20)
	radius 16
	height 16
	States
	{
		Spawn:
		TNT1 A 2
		TNT1 A 0 A_JumpIfInTargetInventory("IsUsingAltSkin1",1,"AltSkinFrame")
		stop
		AltSkinFrame:
		TNT1 A 0 A_SpawnItemEx("CutCapNFX")
		stop
	}
}

actor CutRollingCutterDamager2
{
	Obituary "$OB_CUTMAN3"
	PROJECTILE
	damagetype "CutmanFlying"
	//+RIPPER
	damage (8)
	radius 16
	height 16
	States
	{
		Spawn:
		TNT1 A 2
		//TNT1 A 1
		stop
	}
}

actor CutterFlag2 : Inventory
{
	inventory.amount 1
	inventory.maxamount 999
}

actor CutmanFlyingProtect : PowerProtection
{
	Powerup.Duration 35
	DamageFactor "CutmanFlying", 1.0
}

actor CutmanM1Protect : PowerProtection
{
	Powerup.Duration 20
	DamageFactor "CutmanM1", 0.0
}

actor CutVoid : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
CUVO AAAAAAAAAAAAAAAAAA 1 A_Warp(AAPTR_TARGET,20,0,10,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)
CUVO AAAAAAAAAA 1 A_FadeOut(0.1)
stop
}
}


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

actor CutCapNFX : BasicClientSide
{
//translation "0:2=[35,87,255]:[35,87,255]", "100:200=[104,178,248]:[104,178,248]"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
R_UT EEEEE 1 A_FadeOut(0.08)//AAAAA 1 A_FadeOut(0.08)
stop
}
}