//Donut

ACTOR StupidRatDonutWeapon : Weapon
{
	Inventory.RestrictedTo "StupidRatClass"
	Weapon.SelectionOrder 3700
	Weapon.Kickback 600
	Obituary "%o got donut'd."
	Tag "Donut"
	+WEAPON.MELEEWEAPON
	States
	{
	Reload:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDanceState")
		TNT1 A 0 A_GiveInventory("StupidRatDancing")
		TNT1 A 0 SetPlayerProperty(0,1,PROP_FROZEN)
		TNT1 A 0 A_PlaySound("characters/stupidrat/music",7,1,1,5)
		TNT1 A 0 ACS_NamedExecuteWithResult("SetRatChasecam2",40)
		TNT1 A 0 ACS_NamedExecuteWithResult("SpookyDoiseTime")
	Dance:
		TNT1 A 0 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		SRWD D 10 bright 
		TNT1 A 0 A_jumpifinventory("reloadholding",1,"Dance")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
		TNT1 A 0 A_takeinventory("StupidRatDancing")
		TNT1 A 0 A_StopSound(7)
		TNT1 A 0 ACS_NamedExecuteWithResult("SetRatChasecam2",0)
		TNT1 A 0 ACS_NamedExecuteWithResult("SpookyDoiseTimeStop")
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatCheeseState")
		SRWD DEFG 4 bright
		Goto Ready
	Ready: 
		TNT1 A 0 A_GiveInventory("StupidRatHoldingDonut")
		TNT1 A 0 A_takeinventory("StupidRatSpeedup")
		SRWD DEFG 4 bright A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD)
		Loop
	Deselect:
		TNT1 A 0 ACS_NamedExecuteWithResult("SetRatChasecam2",0)
		TNT1 A 0 A_StopSound(7)
	DeselectLoop:
		TNT1 A 0 A_TakeInventory("StupidRatHoldingDonut")
		TNT1 A 0 A_Gunflash("FlashEnd")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
		TNT1 A 0 A_StopSound(6)
		SRWD A 0 A_Lower
		Loop
	Select:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDonutState")
		SelectLoop:
		SRWD A 0 A_Raise
		Loop
	Fire:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDonutAttack1State")
		TNT1 A 0 A_PlaySound("characters/stupidrat/turnintoball",1)
		SRWD H 4 bright
		1ACL D 0 A_TakeInventory("StupidRatDonutBumpInventory")
		SRWD H 1 bright A_ChangeVelocity(30, 0, velz, CVF_RELATIVE|CVF_REPLACE)
		TNT1 A 0 A_Gunflash("FlashRoll",GFF_NOEXTCHANGE)
	RollLoop:	
		TNT1 A 0 A_giveinventory("StupidRatSpeedup")
		TNT1 A 0 a_FireBullets(0,0,1,0,"InvisibleBulletpuff",FBF_NOFLASH)
		TNT1 D 1 A_FireCustomMissile("StupidRatDonutBumpProjectile")
// 		1ACL D 1 A_ChangeVelocity(24, 0, 0, CVF_RELATIVE|CVF_REPLACE)
		TNT1 A 0 SetPlayerProperty(0,1,PROP_FROZEN)
		Tnt1 A 0 a_jumpif(abs(velz) <= 0.04,"GiveRecoil")
		TNT1 D 1 bright A_Recoil(-1) 
	Goto RollLoopContinue
	GiveRecoil:
		TNT1 D 1 bright A_Recoil(-4) 
	RollLoopContinue:
		TNT1 D 0 A_JumpIfInventory("StupidRatDonutBumpInventory",0,"Bump")
		TNT1 A 0 A_Refire("RollLoop")
	FinishRoll:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDonutState")
		TNT1 A 0 A_gunflash("FlashEnd")
		SRWD H 2 bright
		TNT1 A 0 A_takeinventory("StupidRatSpeedup")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
		Goto Ready
	Bump: 
		TNT1 A 0 A_gunflash("FlashEnd")
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDonutAttack3State")
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_Quake(2, 7, 0, 16, "NOSOUND")
		TNT1 A 0 A_ChangeVelocity(0, 0, 0, CVF_RELATIVE|CVF_REPLACE)
		TNT1 A 0 A_Recoil(10)
		TNT1 A 0 SetPlayerProperty(0,1,PROP_FROZEN)
		TNT1 A 0 A_PlaySound("characters/stupidrat/ballhit", 7)
		SRWD KJIH 4 bright
		TNT1 A 0 A_takeinventory("StupidRatSpeedup")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
// 		SRWD H 4 bright A_WeaponReady(WRF_NOFIRE)
		SRWD H 4 bright A_WeaponReady(WRF_NOFIRE)
		Goto Ready
	FlashRoll:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDonutAttack2State")
		SRWD HIJK 2 bright
		Loop
	FlashEnd: //For canPeppinoMagicAmmoing the running anim 1
		TNT1 A 1
		Loop
	}
}