Actor ThreadcutterHit
{
	Alpha 0.99
	Renderstyle Add
	+NOGRAVITY
	+NOINTERACTION
	+NOTIMEFREEZE
	+NOTONAUTOMAP
	Scale 0.05
	States
	{
		Spawn:
			SHCK B 1 A_FadeOut(0.2)
			SHCK B 0 A_SetScale(ScaleX+0.02, ScaleX)
			Loop
	}
}

Actor ThreadcutterTrail1
{
	Alpha 0.99
	Renderstyle Add
	+NOGRAVITY
	+NOINTERACTION
	+NOTONAUTOMAP
	States
	{
		Spawn:
			KNF1 A 1 A_FadeOut(0.25)
			Loop
	}
}

Actor ThreadcutterWall1
{
	Alpha 0.99
	+NOGRAVITY
	+NOINTERACTION
	+NOTONAUTOMAP
	Renderstyle Add
	States
	{
		Spawn:
			KNF1 A 35 //A_CheckSight("Fadying")
			//Loop
		Fadying:
			KNF1 A 1 A_FadeOut(0.05)
			Loop
	}
}

Actor ThreadcutterKnife1
{
  Radius 6
  Height 10
  Speed 60
  Damage 3
  Projectile
  Gravity 0.8
  -NOGRAVITY
  -THRUGHOST
  //+DONTSPLASH
  //+EXPLODEONWATER
  DamageType "Manuel"
  SeeSound "Threadcutter/Fly"
  Renderstyle Add
  Obituary "%o was nailed to the wheel by %k's Manuel'ing skills."
  
  /*For one's curiousity: Manuel was a brand of butter in Poland during
  iron-curtain period. One of the only ones aviable back then, to be honest.
  It's long gone today, but it was still pretty livid in the memory of polish
  people, so a move in a rather crappy to dance to rather crappy music that is
  Disco-Polo (google it if you dare) was named after it, as it was resembling
  putting butter on some bread. So yeah, long story short - very distant
  reference to a butter, or something. THE MORE YOU KNOW!*/
  States
  {
  Spawn:
    TNT1 AA 0 ThrustThingZ(0,14,0,1)
  Looplet:
    KNF1 A 1 A_SpawnItemEx("ThreadcutterTrail1",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("ThreadcutterWall1",0,0,0,0,0,0,0,SXF_CLIENTSIDE,128)
  XDeath:
  Crash: 
    TNT1 A 0 A_SpawnItemEx("ThreadcutterHit",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
    TNT1 A 0 A_PlaySound("Threadcutter/Hit",5,0.8)
    Stop
  }
}

//Powered mode

Actor ThreadcutterTrail2 : ThreadcutterTrail1
{
	+NOTIMEFREEZE
	States
	{
		Spawn:
			KNF2 A 1 A_FadeOut(0.2)
			Loop
	}
}

Actor ThreadcutterWall2 : ThreadcutterWall1
{
	+NOTIMEFREEZE
	States
	{
		Spawn:
			KNF2 A 35 //A_CheckSight("Fadying")
			//Loop
		Fadying:
			KNF2 A 1 A_FadeOut(0.05)
			Loop
	}
}

Actor ThreadcutterKnife2 : ThreadcutterKnife1
{
  Speed 70
  +NOGRAVITY
  +SEEKERMISSILE
  +NOTIMEFREEZE
  Obituary "%o was nailed to the wheel and everything else by %k's supreme Manuel'ing skills."
  //Var Int User_Counter;
  States
  {
  Spawn:
    TNT1 AA 0 //ThrustThingZ(0,14,0,1)
    //TNT1 AA 0 A_SetUserVar("User_Counter",3)
  Looplet1:
    //KNF2 A 0 A_SetUserVar("User_Counter",User_Counter - 1)
    //KNF2 A 0 A_JumpIf(User_Counter > 0, 2)
	KNF2 A 0 A_JumpIfInTargetInventory("PowerZaWarudo",1,"DecreaseSpeed")
	KNF2 A 0 A_SeekerMissile(6,10,SMF_PRECISE|SMF_LOOK|SMF_CURSPEED,50,5)
    KNF2 A 1 A_SpawnItemEx("ThreadcutterTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
    Loop
  DecreaseSpeed:
	KNF2 A 0 A_ScaleVelocity(0.25)
	Goto Looplet2
  IncreaseSpeed:
	KNF2 A 0 A_ScaleVelocity(4.0)
	Goto Looplet1
   Looplet2:
	KNF2 A 0 A_SeekerMissile(2,4,SMF_PRECISE|SMF_LOOK|SMF_CURSPEED,50,5)
    KNF2 A 3 A_SpawnItemEx("ThreadcutterTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	KNF2 A 0 A_JumpIfInTargetInventory("PowerZaWarudo",1,"Looplet2")
	Goto IncreaseSpeed
  Death:
    TNT1 A 0 A_SpawnItemEx("ThreadcutterWall2",0,0,0,0,0,0,0,SXF_CLIENTSIDE,128)
	Goto Super::XDeath
  }
}

actor PowerZaWarudo : PowerTimeFreezer
{
	//Inventory.icon "TNT1A0"
}

//"Dio has rocked... for a loong, loong time... now it's time for him to pass the tooorch!"
actor Dio : PowerupGiver 
{
	inventory.maxamount 0
	+INVENTORY.AUTOACTIVATE
	powerup.type "ZaWarudo"
	powerup.duration 0x7FFFFFFF
	states
	{
	Spawn:
		TNT1 A -1
		Stop
	}
}