

//==============================================================================
//================= Corvus' Super Awesome Melee Staff of Doom ==================
//==============================================================================


ACTOR BrutalMeleeStaff : HereticWeapon
{
	Weapon.YAdjust 5
	Inventory.RestrictedTo "BrutalCorvus"
	Inventory.ForbiddenTo "Corvette"
	Obituary "$OB_MPSTAFF"
	Tag "$TAG_STAFF"
	Weapon.SelectionOrder 6
	Weapon.SlotPriority 1
	Weapon.SlotNumber 1
	Damagetype "BrutalStaff"
	//+NOALERT
	-THRUGHOST
	+WIMPY_WEAPON
	+MELEEWEAPON
	+NOEXTREMEDEATH
	+DONTSPLASH	
  
	var int user_buttons;
  
	States
	{
		Spawn:
			TNT1 A -1
			Stop
		Ready:
			TNT1 A 0 A_ClearOverlays(10,10)
			TNT1 A 0 A_ChangeFlag(SOLID,TRUE)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			TNT1 A 0 A_UnSetReflective
			TNT1 A 0 A_Light(0)
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_ChangeFlag("THRUGHOST",True)
			STAF A 0 A_JumpIfInventory("Action1",1,"Kicking")
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredReady")
			STAF A 1 A_WeaponReady(WRF_ALLOWRELOAD)
			Loop
		PoweredReady:
			STFF DDEEFF 1 
			{
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("Kicking");
				}
				Else
				{
					A_WeaponReady (WRF_ALLOWZOOM|WRF_ALLOWRELOAD);
					return state("");
				}
			}
			Goto Ready
		Deselect:
			STAF A 0 A_Lower
			STAF A 1 A_Lower
			Loop
		Select:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredSelect")
			STAF A 0 A_Raise
			STAF A 1 A_Raise
			Loop
		PoweredDeselect:
			STFF E 0 A_Lower
			STFF E 1 A_Lower
			Goto Deselect
		PoweredSelect:
			STFF F 0 A_Raise
			STFF F 1 A_Raise
			Goto Select
		Fire:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredFire")
			goto Fire1
		Fire1:
			STAF A 1 Offset(0,62)
			STAF A 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STAF B 1 
			STAF B 1 A_CustomPunch(random(10,15),TRUE,0,"BrutalStaffPuff",128)
			STAF CB 2
			TNT1 A 0 A_Recoil(2)
			STAF A 2
			STAF A 1 Offset(0,62)
			TNT1 A 0 A_ReFire("Fire2")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedFire2")
			TNT1 A 0 A_ReFire("Fire2")
			Goto Ready
		TimedFire2:
			TNT1 A 0 A_SetRoll(359, SPF_INTERPOLATE)
			STFR A 2 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_SetRoll(358, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(-1)
			STFR C 2 
			TNT1 A 0 A_SetRoll(357, SPF_INTERPOLATE)
			STFR C 1 A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128,0.1)
			TNT1 A 0 A_SetRoll(358, SPF_INTERPOLATE)
			STFR C 2
			TNT1 A 0 A_SetRoll(359, SPF_INTERPOLATE)
			STFR B 2 
			TNT1 A 0 A_SetRoll(0, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(1)
			STFR A 2
			TNT1 A 0 A_ReFire("LockedFire3")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedFire3")
			TNT1 A 0 A_ReFire("LockedFire3")
			Goto Ready
		TimedFire3:
			TNT1 A 0 A_SetRoll(1, SPF_INTERPOLATE)
			STFL A 2 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_SetRoll(2, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(-1)
			STFL B 2 
			TNT1 A 0 A_SetRoll(3, SPF_INTERPOLATE)
			STFL C 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128,0.1)
			TNT1 A 0 A_SetRoll(2)
			STFL C 2
			TNT1 A 0 A_SetRoll(1, SPF_INTERPOLATE)
			STFL B 2 
			TNT1 A 0 A_SetRoll(0, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(1)
			STFL A 2
			TNT1 A 0 A_ReFire("LockedFire4")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedFire4")
			TNT1 A 0 A_ReFire("LockedFire4")
			Goto Ready
		TimedFire4:
			TNT1 A 0 A_StartSound("WHOP",7,CHANF_NOPAUSE|CHANF_LOOP)
			SSPN ABCFABCFABCFABCFABCFABCFABCFABCFABCF 1 
			{
				A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalStaffPuff",64,0.1,50,"HDArmorBonus");
				A_Recoil(-1.5);
			}
			TNT1 A 0 A_StopSound(7)
			Goto Ready
		Fire2:
			STAF D 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF E 1 A_WeaponOffset(0,32)
			STAF M 2 Offset(-5,0) A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF M 3 A_WeaponOffset(-15,32)
			STAF M 2 A_WeaponOffset(-5,32)
			STAF E 1 A_WeaponOffset(0,32)
			TNT1 A 0 A_Recoil(1)
			STAF D 2
			TNT1 A 0 A_ReFire("Fire3")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedCombo2")
			TNT1 A 0 A_ReFire("Fire3")
			Goto Ready
		TimedCombo2:
			STAF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 1 
			STAF H 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF G 1
			TNT1 A 0 A_Recoil(1)
			STAF F 1
			STAF D 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF E 1 
			STAF M 1 A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF E 1
			TNT1 A 0 A_Recoil(1)
			STAF D 1
			STAF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 1 
			STAF H 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF G 1
			TNT1 A 0 A_Recoil(1)
			STAF D 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF E 1 
			STAF M 1 A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF E 1 
			TNT1 A 0 A_Recoil(1)
			STAF D 1
			TNT1 A 0 A_ReFire("LockedFire4")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedCombo2Finisher")
			TNT1 A 0 A_ReFire("LockedFire4")
			Goto Ready
		TimedCombo2Finisher:
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 ThrustthingZ(0,50,0,1)
			STAF FGHHHHHHHHHH 1 
			{
				A_SetAngle((angle-60),SPF_INTERPOLATE);
				A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalStaffPuff",128,0.1,200,"HDArmorBonus");
			}
			STAF I 1 A_SetPitch(15,SPF_INTERPOLATE)
			STAF I 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(45,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(75,SPF_INTERPOLATE)
			STAF L 1 A_SetPitch(90,SPF_INTERPOLATE)
			TNT1 A 0 A_Gravity
			TNT1 A 0 A_SetInvulnerable
			STAF L 1 ThrustThingZ(0,-200,0,1)
		TimedCombo2FinisherLoop:
			STAF L 1 A_CheckFloor(2)
			TNT1 A 0 A_JumpIf((VelZ > -1),1)
			Goto TimedCombo2FinisherLoop
			TNT1 A 0 A_Explode(random(45,70)+(CallACS("StrengthCalculator")),256,XF_NOTMISSILE,TRUE,256)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",75,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,-25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",25,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,-25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("DSBAREXP",4,CHANF_NOPAUSE)
			TNT1 A 0 A_UnsetInvulnerable
			STAF LJI 4
			STAF I 1 A_SetPitch(90,SPF_INTERPOLATE)
			STAF I 1 A_SetPitch(75,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(45,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(15,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(0,SPF_INTERPOLATE)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		Fire3:
			STAF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 1 A_WeaponOffset(0,32)
			STAF H 2 Offset(5,0) A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF H 3 A_WeaponOffset(15,32)
			STAF H 2 A_WeaponOffset(5,32)
			STAF G 1 A_WeaponOffset(0,32)
			TNT1 A 0 A_Recoil(1)
			STAF F 2
			TNT1 A 0 A_ReFire("Fire4")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedSmash")
			TNT1 A 0 A_ReFire("Fire4")
			Goto Ready
		LockedFire3:
			STAF F 2 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 2 
			STAF H 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",128)
			STAF HG 2
			TNT1 A 0 A_Recoil(1)
			STAF F 2
			TNT1 A 0 A_ReFire("LockedFire4")
			Goto Ready
		TimedSmash:
			TNT1 A 0 A_Stop
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 A_SetPitch(0,SPF_INTERPOLATE)
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_StartSound("BKSTART",1,CHANF_NOPAUSE)
			TNT1 A 0 A_QuakeEx(2,2,2,29,0,128,"")
			TNT1 A 0 Offset(0,32)
			SSPN HHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK),"Cancel")
			TNT1 A 0 A_QuakeEx(4,4,4,64,0,128,"")
			SSPN HHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK),"Cancel")
			TNT1 A 0 A_ChangeFlag(SOLID,FALSE)
			STFC A 1 Offset(0,62)
			TNT1 A 0 A_GiveInventory("PowerTimeFreezer")
			TNT1 A 0 A_ChangeVelocity(60,0,0,CVF_REPLACE|CVF_Relative)
			TNT1 A 0 A_SpawnItemEx("SpikeTrail")
			STFC BCCCCC 2
			{
				A_Explode((CallACS("StrengthCalculator")),256,XF_NOTMISSILE,1,32);
				A_ChangeVelocity(60,0,0,CVF_REPLACE|CVF_Relative);
				A_SpawnItemEx("SpikeTrail");
				A_StartSound("IMPACT3",1,CHANF_NOPAUSE|CHANF_LOOP);
			}
			TNT1 A 0 A_Stop
			TNT1 A 0 A_StartSound("IMPACT3",1,CHANF_NOPAUSE)
			STFC AABB 1 A_SetAngle((Angle+45),SPF_INTERPOLATE)
			TNT1 A 0 A_QuakeEx(6,6,4,56,0,128,"")
			SSPN ABCFABCFABCFABCFABCF 1
			STAF IZZZZZ 5
			TNT1 A 0 A_ChangeFlag(SOLID,TRUE)
			TNT1 A 0 A_TakeInventory("PowerTimeFreezer")
			STAF Z 6 A_StartSound("LITCRASH",0,CHANF_NOPAUSE)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		Cancel:
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		Fire4:
			STAF I 1 Offset(0,62)
			STAF I 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STAF J 1 A_WeaponOffset(0,52)
			STAF L 1 A_WeaponOffset(0,42)
			STAF L 1 A_CustomPunch(random(45,70)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",104)
			STAF L 3 A_WeaponOffset(0,40)
			STAF L 3 A_WeaponOffset(0,42)
			STAF J 2 A_WeaponOffset(0,52)
			TNT1 A 0 A_Recoil(2)
			STAF I 1
			STAF I 1 A_WeaponOffset(0,62)
			TNT1 A 1 A_WeaponOffset(0,32)
			TNT1 A 0 A_ReFire("Fire2")
			Goto Ready
		LockedFire4:
			STAF I 1 Offset(0,62)
			STAF I 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STAF J 2 
			STAF L 1 A_CustomPunch(random(45,70)+(CallACS("StrengthCalculator")/3),TRUE,0,"BrutalStaffPuff",104)
			STAF L 3  
			STAF J 2
			TNT1 A 0 A_Recoil(2)
			STAF I 1
			STAF I 1 Offset(0,62)
			TNT1 A 1
			TNT1 A 0 A_ReFire("Fire2")
			Goto Ready
		AltFire:
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "SuperAttack")
			TNT1 A 0 A_JumpIfInventory("Level",2,"SuperAttack")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,2)
			Goto Ready
		SuperAttack:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredHold")
			STAF A 1 Offset(0,55)
			STAF A 1 Offset(0,75)
			STAF A 1 Offset(0,85)
			TNT1 A 0 A_GiveInventory("ReflectorToken")
			TNT1 A 0 A_SpawnItemEx("MissileReflector",15,-9)
			TNT1 A 0 A_SpawnItemEx("MissileReflector2",15,-4)
			TNT1 A 0 A_SpawnItemEx("MissileReflector3",15)
			TNT1 A 0 A_SpawnItemEx("MissileReflector4",15,4)
			TNT1 A 0 A_SpawnItemEx("MissileReflector5",15,9)
			TNT1 A 0 Offset(0,50)
		SpinLoop:
			TNT1 A 0  A_StartSound("WHOP",1,CHANF_NOPAUSE)
			SSPN AABBCCFF 1
			{						
				If (GetPlayerInput (INPUT_BUTTONS) & BT_JUMP)
				{
					return state("PropellerStart");
				}
				If (GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK)
				{
					return state("PoleVault");
				}
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("SpinAttack");
				}
				Else
				{
					return state("");
				}
			}
			TNT1 A 0 A_Refire("SpinLoop")
			TNT1 A 0 A_TakeInventory("ReflectorToken")
			Goto Ready
		PropellerStart:
			TNT1 A 0 A_TakeInventory("ReflectorToken")
			TNT1 A 0 ACS_NamedExecute("WhirlyBird")
		Propeller:
			TNT1 A 0 A_StartSound("Tails",1,CHANF_NOPAUSE|CHANF_LOOPING)
			
			PROP ABCD 1 
			{
				ThrustThingZ(0,3,0,1);
				
				If (A_JumpIfInventory("Action1",1,"BicycleKicking"))
				{
					return state("BicycleKicking");
				}
				If (A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"PoleVault"))
				{
					return state("PoleVault");
				}
				Else
				{
					return state("");
				}
			}		
			TNT1 A 0 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_JUMP),"Propeller")
			Goto Ready
		PoleVault:
			TNT1 A 0 A_TakeInventory("ReflectorToken")
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 ThrustThingZ(0,100,0,1)
			TNT1 A 0 A_SetPitch(15,SPF_INTERPOLATE)
			STAF J 1 Offset (30,35)
			TNT1 A 0 A_SetPitch(30,SPF_INTERPOLATE)
			STAF J 1 Offset (30,35)
			TNT1 A 0 A_SetPitch(45,SPF_INTERPOLATE)
			STAF J 1 Offset (30,65)
			TNT1 A 0 A_SetPitch(35,SPF_INTERPOLATE)
			STAF J 1 Offset (30,65)
			TNT1 A 0 A_SetPitch(25,SPF_INTERPOLATE)
			SSPN G 1 Offset(30,30)
			TNT1 A 0 A_SetPitch(15,SPF_INTERPOLATE)
			SSPN G 1 Offset(30,45)
			TNT1 A 0 A_SetPitch(5,SPF_INTERPOLATE)
			SSPN G 1 Offset(30,60)
			TNT1 A 0 A_SetPitch(0,SPF_INTERPOLATE)
			SSPN G 1 Offset(30,75)
			SSPN G 1 Offset(30,90)
			SSPN G 1 Offset(30,105)
			SSPN G 1 Offset(30,120)
			SSPN G 1 Offset(30,135)
			SSPN G 1 Offset(30,150)
			STAF A 1 Offset (1, 100)
			STAF A 1 Offset (1, 95)
			STAF A 1 Offset (1, 90)
			STAF A 1 Offset (1, 85)
			STAF A 1 Offset (1, 80)
			STAF A 1 Offset (1, 75)
			STAF A 1 Offset (1, 70)
			STAF A 1 Offset (1, 65)
			STAF A 1 Offset (1, 60)
			STAF A 1 Offset (1, 55)
			STAF A 1 Offset (1, 50)
			STAF A 1 Offset (1, 45)
			STAF A 1 Offset (1, 40)
			STAF A 1 Offset (1, 35)
		FallLoop:
		
			STAF A 1
			{				
				If (A_CheckFloor("Ready"))
				{
					Return State("Ready");
				}
				If (GetPlayerInput (INPUT_BUTTONS) & BT_Jump)
				{
					Return State("PropellerFall");
				}
				If (GetPlayerInput (INPUT_BUTTONS) & BT_Attack)
				{
					Return State("Stomp");
				}
				Else
				{
					Return State("");
				}
			}
			/*STAF A 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_Jump),"PropellerFall")
			TNT1 A 0 Offset (0, 32) A_CheckFloor("Ready")
			TNT1 A 0 A_StopSound(1)
			STAF A 0 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_Attack),"Stomp")*/
			TNT1 A 0 A_StopSound(1)
			Loop
		Stomp:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"ChaosDunk")
			TNT1 A 0 A_Stop
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_NoGravity
			STAF I 1 A_SetPitch(15,SPF_INTERPOLATE)
			STFC A 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(45,SPF_INTERPOLATE)
			STFC B 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(75,SPF_INTERPOLATE)
			STFC C 1 A_SetPitch(90,SPF_INTERPOLATE)
			TNT1 A 0 A_Gravity
			TNT1 A 0 A_SetInvulnerable
			TNT1 A 0 ThrustThingZ(0,-80,0,1)
		StompLoop:
			STAF L 1
			TNT1 A 0 A_CheckFloor("StompLand")
			TNT1 A 0 A_JumpIf((VelZ > -1),"StompLand")
			STFC C 1 Bright 
			TNT1 A 0 A_CheckFloor("StompLand")
			TNT1 A 0 A_JumpIf((VelZ > -1),"StompLand")
			STAF L 1 
			TNT1 A 0 A_CheckFloor("StompLand")
			TNT1 A 0 A_JumpIf((VelZ > -1),"StompLand")
			Loop
		StompLand:
			TNT1 A 0 A_Explode(random(45,70)+(CallACS("StrengthCalculator")),256,XF_NOTMISSILE,TRUE,32)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",75,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,-25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",25,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,-25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("DSBAREXP",4,CHANF_NOPAUSE)
			TNT1 A 0 A_ChangeVelocity(0,0,0)
			TNT1 A 0 A_UnSetInvulnerable
			STAF LJI 4
			STAF I 1 A_SetPitch(90,SPF_INTERPOLATE)
			STAF I 1 A_SetPitch(75,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(45,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(15,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(0,SPF_INTERPOLATE)
			Goto Ready
		ChaosDunk:
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_GiveInventory("PowerTimeFreezer")
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 A_StartSound("DUNKSTRT",7,CHANF_NOPAUSE)
			TNT1 A 0 A_Stop
			TNT1 A 0 A_SetGravity(0)
			TNT1 A 0 A_SetInvulnerable
			TNT1 A 0 A_ChangeFlag("SOLID",FALSE)
			TNT1 A 0 A_ChangeFlag("THRUACTORS",TRUE)
			TNT1 A 0 A_ChangeFlag("SHOOTABLE",FALSE)
			SSPN H 12 A_ChangeVelocity(0,0,0.3,CVF_Replace)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			SSPN H 10 A_Light(0)
			SSPN H 10 A_Light(-10)
			TNT1 A 0 A_Light(0)
			TNT1 A 0 A_StartSound("DUNKLOOP",7,CHANF_NOPAUSE|CHANF_LOOPING)
			TNT1 A 0 A_SetGravity(1)
			STAF I 1 A_SetPitch(15,SPF_INTERPOLATE)
			STFC A 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(45,SPF_INTERPOLATE)
			STFC B 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(75,SPF_INTERPOLATE)
			STFC C 1 A_SetPitch(90,SPF_INTERPOLATE)
		DunkLoop:
			STAF L 1
			TNT1 A 0 ThrustThingZ(0,-80,0,1)
			TNT1 A 0 A_CheckFloor("DunkLand")
			TNT1 A 0 A_JumpIf((VelZ > -1),"DunkLand")
			STFC C 1 Bright 
			TNT1 A 0 ThrustThingZ(0,-80,0,1)
			TNT1 A 0 A_CheckFloor("DunkLand")
			TNT1 A 0 A_JumpIf((VelZ > -1),"DunkLand")
			STAF L 1 
			TNT1 A 0 ThrustThingZ(0,-80,0,1)
			TNT1 A 0 A_CheckFloor("DunkLand")
			TNT1 A 0 A_JumpIf((VelZ > -1),"DunkLand")
			Loop
		DunkLand:
			TNT1 A 0 A_TakeInventory("PowerTimeFreezer")
			TNT1 A 0 A_ChangeFlag("SOLID",TRUE)
			TNT1 A 0 A_ChangeFlag("SHOOTABLE",TRUE)
			TNT1 A 0 A_ChangeFlag("THRUACTORS",FALSE)
			TNT1 A 0 A_Explode(random(45,70)+(CallACS("StrengthCalculator")*6),2048,XF_NOTMISSILE,TRUE,2048)
			TNT1 A 0 A_SetBlend("White",1,120)
			TNT1 A 0 A_StartSound("CDUNK",1,CHANF_NOPAUSE)
			TNT1 A 0 A_SetPitch(0)
			SSPN ABCFABCFABCFABCFABCFABCFABCFABCF 3
			TNT1 A 0 A_StopSound(7)
			TNT1 A 0 A_UnSetInvulnerable
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		PropellerFall:
			TNT1 A 0 A_StartSound("Tails",1,CHANF_NOPAUSE|CHANF_LOOPING)
			PROP ACBD 1
			{
				ThrustThingZ(0,3,0,1);
				
				If (A_CheckFloor("Ready"))
				{
					Return State("Ready");
				}
				If (A_JumpIf((VelZ > -1),"Ready"))
				{
					Return State("Ready");
				}
				If (A_JumpIfInventory("Action1",1,"BicycleKicking"))
				{
					Return State("BicycleKicking");
				}
				If (GetPlayerInput (INPUT_BUTTONS) & BT_Attack)
				{
					Return State("Stomp");
				}
				Else
				{
					Return State("");
				}
			}
			Goto FallLoop
		PoweredHold:
			TNT1 A 0 A_TakeInventory("ReflectorToken")
			TNT1 A 0  A_StartSound("WHOP",1,CHANF_NOPAUSE)
			TNT1 A 0 A_SetReflective
			TNT1 A 0 A_CustomPunch(random(10,20)+(CallACS("StrengthCalculator")/3),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalStaffPuff",64,0.1,200,"HDArmorBonus")
			SSPN ABCF 1
			{
				A_RadiusThrust(-650,640,RTF_NOIMPACTDAMAGE);
				A_RadiusThrust(-5,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
				
				If (GetPlayerInput (INPUT_BUTTONS) & BT_JUMP)
				{
					return state("PropellerStart");
				}
				If (GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK)
				{
					return state("PoleVault");
				}
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("SpinAttack");
				}
				Else
				{
					return state("");
				}
			}
			TNT1 A 0 
			{
				If ((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK) && (A_JumpIfInventory("Mana",1,"PoweredHold")))
				{
					return state("PoweredHold");
				}
				Else
				{
					return state("Ready");
				}
			}
			Goto Ready
		PoweredFire:
			TNT1 A 1 A_JumpIfInventory("PowerHDLevel2",1,"PoweredFire1")
			goto Ready
		PoweredFire1:
			TNT1 A 0 A_ChangeFlag("THRUGHOST",false)
			STFF F 1 Offset(0,62)
			STFF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFF G 1 
			STFF H 1 A_CustomPunch(random(15,25) + (CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",104)
			STFF H 2
			STFF G 1
			TNT1 A 0 A_Recoil(2)
			STFF F 1
			STFF F 1 Offset(0,62)
			TNT1 A 2
			TNT1 A 0 A_ReFire("PoweredFire2")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"PowerTimedFire2")
			TNT1 A 0 A_ReFire("PoweredFire2")
			Goto Ready
		PowerTimedFire2:
			TNT1 A 0 A_SetRoll(358, SPF_INTERPOLATE)
			STFR A 2 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_SetRoll(356, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(-1)
			STFR C 2 
			TNT1 A 0 A_SetRoll(354, SPF_INTERPOLATE)
			STFR C 1 A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128,0.5)
			TNT1 A 0 A_SetRoll(356, SPF_INTERPOLATE)
			STFR C 2
			TNT1 A 0 A_SetRoll(358, SPF_INTERPOLATE)
			STFR B 2 
			TNT1 A 0 A_SetRoll(0, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(1)
			STFR A 2
			TNT1 A 0 A_ReFire("PowerLockedFire3")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"PowerTimedFire3")
			TNT1 A 0 A_ReFire("PowerLockedFire3")
			Goto Ready
		PowerTimedFire3:
			TNT1 A 0 A_SetRoll(2, SPF_INTERPOLATE)
			STFL A 2 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_SetRoll(4, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(-1)
			STFL B 2 
			TNT1 A 0 A_SetRoll(6, SPF_INTERPOLATE)
			STFL C 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128,0.5)
			TNT1 A 0 A_SetRoll(4, SPF_INTERPOLATE)
			STFL C 2
			TNT1 A 0 A_SetRoll(2, SPF_INTERPOLATE)
			STFL B 2 
			TNT1 A 0 A_SetRoll(0, SPF_INTERPOLATE)
			TNT1 A 0 A_Recoil(1)
			STFL A 2
			TNT1 A 0 A_ReFire("PowerLockedFire4")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"PowerTimedFire4")
			TNT1 A 0 A_ReFire("PowerLockedFire4")
			Goto Ready
		PowerTimedFire4:
			TNT1 A 0 A_StartSound("WHOPF",7,CHANF_NOPAUSE|CHANF_LOOPING)
			TNT1 A 0 A_SetReflectiveInvulnerable
			SSPN ABCFABCFABCFABCFABCFABCFABCFABCFABCF 1 
			{
				A_CustomPunch(random(10,40),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus");
				A_Recoil(-2.5);
			}
			TNT1 A 0 A_UnSetReflectiveInvulnerable
			TNT1 A 0 A_StopSound(7)
			Goto Ready
		PoweredFire2:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,2)
			goto Ready
			STFR A 1 Offset(0,62)
			STFR A 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFR B 1 
			STFR C 1 A_CustomPunch(random(25,40)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",104)
			STFR C 2
			STFR B 1
			TNT1 A 0 A_Recoil(2)
			STFR A 1
			STFR A 1 Offset(0,62)
			TNT1 A 2
			TNT1 A 0 A_ReFire("PoweredFire3")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"PowerTimedCombo2")
			TNT1 A 0 A_ReFire("PoweredFire3")
			Goto Ready
		PowerTimedCombo2:
			STAF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 1 
			STAF H 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128)
			STAF G 1
			TNT1 A 0 A_Recoil(1)
			STAF F 1
			STAF D 1 A_PlayWeaponSound("STAFSWNG")
			STAF D 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF E 1 
			STAF M 1 A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128)
			STAF E 1
			TNT1 A 0 A_Recoil(1)
			STAF D 1
			TNT1 A 0 Offset(0,62)
			STFC A 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFC B 1 Bright
			STFC C 1 Bright A_CustomPunch(random(45,70)+(CallACS("StrengthCalculator")*2),TRUE,0,"BrutalPoweredStaffPuff",128)  
			STFC B 1
			TNT1 A 0 A_Recoil(2)
			STFC A 1 Offset(0,32)
			STAF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 1 
			STAF H 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128)
			STAF G 1
			TNT1 A 0 A_Recoil(1)
			STAF F 1
			STAF D 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF E 1 
			STAF M 1 A_CustomPunch(random(20,30)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128)
			STAF E 1 
			TNT1 A 0 A_Recoil(1)
			STAF D 1
			STAF F 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-1)
			STAF G 1 
			STAF H 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",128)
			STAF G 1
			TNT1 A 0 A_Recoil(1)
			STAF F 1
			TNT1 A 0 Offset(0,62)
			STFC A 1 Bright A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFC B 1 Bright
			STFC C 1 Bright A_CustomPunch(random(45,70)+(CallACS("StrengthCalculator")*2),TRUE,0,"BrutalPoweredStaffPuff",128)  
			STFC B 1
			TNT1 A 0 A_Recoil(2)
			STFC A 1 Offset(0,32)
			TNT1 A 0 A_ReFire("LockedFire4")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"TimedCombo2Finisher")
			TNT1 A 0 A_ReFire("LockedFire4")
			Goto Ready
		PowerTimedCombo2Finisher:
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 ThrustthingZ(0,50,0,1)
			STAF F 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF G 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF H 1 A_SetAngle((angle-60),SPF_INTERPOLATE)
			TNT1 A 0 A_CustomPunch(random(10,20),TRUE,CPF_NOTURN|CPF_STEALARMOR,"BrutalPoweredStaffPuff",128,0.2,200,"HDArmorBonus")
			STAF I 1 A_SetPitch(15,SPF_INTERPOLATE)
			STAF I 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(45,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF J 1 A_SetPitch(75,SPF_INTERPOLATE)
			STAF L 1 A_SetPitch(90,SPF_INTERPOLATE)
			TNT1 A 0 A_Gravity
			TNT1 A 0 A_SetInvulnerable
			STAF L 1 ThrustThingZ(0,-200,0,1)
			STAF L 1 A_CheckFloor(2)
			TNT1 A 0 A_JumpIf((VelZ > -1),1)
			Goto PowerTimedCombo2Finisher+26
			TNT1 A 0 A_Explode(random(45,70)+(CallACS("StrengthCalculator")),400,XF_NOTMISSILE,TRUE,400)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",75,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,-25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",50,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",25,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,-25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,25,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",0,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-25,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,-50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("BurnTrail",-50,50,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("DSBAREXP",4,CHANF_NOPAUSE)
			TNT1 A 0 A_UnsetInvulnerable
			STAF LJI 4
			STAF I 1 A_SetPitch(90,SPF_INTERPOLATE)
			STAF I 1 A_SetPitch(75,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(60,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(45,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(30,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(15,SPF_INTERPOLATE)
			STAF A 1 A_SetPitch(0,SPF_INTERPOLATE)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		PoweredFire3:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,2)
			goto Ready
			STFL A 1 Offset(0,62)
			STFL A 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFL B 1 
			STFL C 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",104)
			STFL C 2 
			STFL B 1
			TNT1 A 0 A_Recoil(2)
			STFL A 1
			STFL A 1 Offset(0,62)
			TNT1 A 2
			TNT1 A 0 A_ReFire("PoweredFire4")
			THIT AABCDEE 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"PowerTimedSmash")
			TNT1 A 0 A_ReFire("PoweredFire4")
			Goto Ready
		PowerLockedFire3:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,2)
			goto Ready
			STFL A 1 Offset(0,62)
			STFL A 1 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFL B 1 
			STFL C 1 A_CustomPunch(random(35,55)+(CallACS("StrengthCalculator")),TRUE,0,"BrutalPoweredStaffPuff",104)
			STFL C 2 
			STFL B 1
			TNT1 A 0 A_Recoil(2)
			STFL A 1
			STFL A 1 Offset(0,62)
			TNT1 A 2
			TNT1 A 0 A_ReFire("PoweredFire4")
			Goto Ready
		PowerTimedSmash:
			TNT1 A 0 A_Stop
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 A_SetPitch(0,SPF_INTERPOLATE)
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_StartSound("BKSTART",1,CHANF_NOPAUSE)
			TNT1 A 0 A_QuakeEx(2,2,2,29,0,128,"")
			TNT1 A 0 Offset(0,32)
			SSPN HHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK),"Cancel")
			TNT1 A 0 A_QuakeEx(4,4,4,64,0,128,"")
			SSPN HHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK),"Cancel")
			TNT1 A 0 A_ChangeFlag(SOLID,FALSE)
			STFC A 1 Offset(0,62)
			TNT1 A 0 A_GiveInventory("PowerTimeFreezer")
			STFC BCCCCC 2 Bright
			{
				A_Explode((CallACS("StrengthCalculator")),512,XF_NOTMISSILE,1,256);
				A_ChangeVelocity(70,0,0,CVF_REPLACE|CVF_Relative);
				A_SpawnItemEx("SpikeTrail");
				A_SpawnItemEx("SpikeTrail",0,64);
				A_SpawnItemEx("SpikeTrail",0,-64);
			}
			TNT1 A 0 A_Stop
			STFC AABB 1 A_SetAngle((Angle+45),SPF_INTERPOLATE)
			TNT1 A 0 A_QuakeEx(6,6,4,56,0,128,"")
			SSPN ABCFABCFABCFABCFABCF 1
			STAF IZZZZZ 5
			TNT1 A 0 A_ChangeFlag(SOLID,TRUE)
			TNT1 A 0 A_TakeInventory("PowerTimeFreezer")
			STAF Z 6 A_StartSound("LITCRASH",0,CHANF_NOPAUSE)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready	
		PoweredFire4:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,2)
			goto Ready
			STFC A 1 Offset(0,62)
			STFC A 1 Bright A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			TNT1 A 0 A_Recoil(-3)
			STFC B 2 Bright
			STFC C 1 Bright A_CustomPunch(random(45,70)+(CallACS("StrengthCalculator")*2),TRUE,0,"BrutalPoweredStaffPuff",104)
			STFC C 2  
			STFC B 2
			TNT1 A 0 A_Recoil(2)
			STFC A 1
			STFC A 1 Offset(0,62)
			TNT1 A 2
			TNT1 A 0 A_ReFire("PoweredFire2")
			Goto Ready
		SpinAttack:
			TNT1 A 0 A_TakeInventory("ReflectorToken")
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 A_SetReflectiveInvulnerable
			TNT1 A 0 A_JumpIfInventory("Mana",4, "AugSpinAttack")
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"AugSpinAttack")
			STAF DEMMMMMMMMMM 1 Offset(-17,0)
			{
				A_SetAngle((angle+60),SPF_INTERPOLATE);
				A_CustomPunch(random(10,20),TRUE,CPF_NOTURN,"BrutalStaffPuff",128);
			}
			TNT1 A 0 A_UnSetReflectiveInvulnerable
			TNT1 A 0 A_Explode(random(20,50),256,XF_NOTMISSILE,TRUE,256)
			TNT1 A 0 A_RadiusThrust(3000,256,RTF_NOTMISSILE | RTF_NOIMPACTDAMAGE,256)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			TNT1 A 0 SetPlayerProperty(1,1,PROP_FROZEN)
			STAF MED 1
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			PROP ABCD 2
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			PROP ABCD 2
			TNT1 A 0 SetPlayerProperty(1,0,PROP_FROZEN)
			Goto Ready
		AugSpinAttack:
			TNT1 A 0 A_QuakeEX(3,3,3,13,0,32)
			TNT1 A 0 A_Light(-3)
			STAF DEMMMMMMMMMM 1 Offset(-17,0)
			{
				A_SetAngle((angle+60),SPF_INTERPOLATE);
				A_CustomPunch(random(10,20),TRUE,CPF_NOTURN,"BrutalStaffPuff",128);
				A_FireProjectile("StaffWindSlash",0,FALSE);
			}
			TNT1 A 0 A_UnSetReflectiveInvulnerable
			TNT1 A 0 A_Light(0)
			TNT1 A 0 A_Explode(random(20,50),256,XF_NOTMISSILE,TRUE,256)
			TNT1 A 0 A_RadiusThrust(3000,512,RTF_NOTMISSILE | RTF_NOIMPACTDAMAGE,256)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			TNT1 A 0 SetPlayerProperty(1,1,PROP_FROZEN)
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PowerSpinFinisher")
			STAF MED 1
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			PROP ABCD 1 A_TakeInventory("Mana",1)
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			PROP ABC 1
			PROP D 1
			TNT1 A 0 SetPlayerProperty(1,0,PROP_FROZEN)
			Goto Ready
		PowerSpinFinisher:
			STAF MED 1
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			PROP ABCD 2 A_TakeInventory("Mana",1)
			TNT1 A 0
			{
				A_FireCustomMissile("StaffWindSlash",0,FALSE);
				A_FireCustomMissile("StaffWindSlash",18,FALSE);
				A_FireCustomMissile("StaffWindSlash",-18,FALSE);
				A_FireCustomMissile("StaffWindSlash",36,FALSE);
				A_FireCustomMissile("StaffWindSlash",-36,FALSE);
				A_FireCustomMissile("StaffWindSlash",54,FALSE);
				A_FireCustomMissile("StaffWindSlash",-54,FALSE);
				A_FireCustomMissile("StaffWindSlash",72,FALSE);
				A_FireCustomMissile("StaffWindSlash",-72,FALSE);
				A_FireCustomMissile("StaffWindSlash",90,FALSE);
				A_FireCustomMissile("StaffWindSlash",-90,FALSE);
				A_FireCustomMissile("StaffWindSlash",108,FALSE);
				A_FireCustomMissile("StaffWindSlash",-108,FALSE);
				A_FireCustomMissile("StaffWindSlash",126,FALSE);
				A_FireCustomMissile("StaffWindSlash",-126,FALSE);
				A_FireCustomMissile("StaffWindSlash",144,FALSE);
				A_FireCustomMissile("StaffWindSlash",-144,FALSE);
				A_FireCustomMissile("StaffWindSlash",162,FALSE);
				A_FireCustomMissile("StaffWindSlash",-162,FALSE);
				A_FireCustomMissile("StaffWindSlash",180,FALSE);
			}
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			PROP ABCD 2 A_TakeInventory("Mana",1)
			TNT1 A 0
			{
				A_FireCustomMissile("PowerStaffWindSlash",0,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",18,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-18,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",36,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-36,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",54,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-54,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",72,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-72,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",90,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-90,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",108,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-108,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",126,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-126,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",144,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-144,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",162,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",-162,FALSE);
				A_FireCustomMissile("PowerStaffWindSlash",180,FALSE);
			}
			TNT1 A 0 SetPlayerProperty(1,0,PROP_FROZEN)
			STAF A 1 Offset(0,85)
			STAF A 1 Offset(0,75)
			STAF A 1 Offset(0,55)
			Goto Ready
		Kicking:
			TNT1 A 0 A_JumpIf(GetCVAR("DancingMad")== 0, "BoringKick")
			TNT1 A 1 A_StartSound("NEMOKICK",1,CHANF_NOPAUSE|CHANF_LOOPING,GetCvar("PlayItLoud"))
			TNT1 A 0 A_StartSound("WPNUPL",4,CHANF_NOPAUSE, GetCvar("PlayItLoud"))
		KickingLoop:
			TNT1 A 0 A_StartSound("WHOP",4,CHANF_NOPAUSE, 0.2)
			TNT1 A 0 A_SetSpeed(0.3)
			CKCK ABCD 1 A_SetPitch(pitch+0.13)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			CKCK E 2
			CKCK DCB 1
			CKCK AA 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 AAA 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 A 0 A_SetPitch(pitch-0.5)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickingLoop2")
			TNT1 A 0 A_StopSound(1)
			CKBF ABC 1
			TNT1 A 0 A_FireCustomMissile("BootOfFury2",0,0,0,0)
			CKBF D 10 A_StartSound("HEY",4,CHANF_NOPAUSE, GetCvar("PlayItLoud"))
			CKBF CBA 1
			TNT1 A 0 A_SetSpeed(1)
			Goto Ready
		KickingLoop2:
			TNT1 A 0 A_StartSound("WHOP",4,CHANF_NOPAUSE, 0.2)
			CKCK FGHI 1 A_SetPitch(pitch+0.13)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			CKCK J 2
			CKCK IHG 1
			CKCK FF 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 AAA 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 A 0 A_SetPitch(pitch-0.5)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickingLoop")
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			CKBF ABC 1
			TNT1 A 0 A_FireCustomMissile("BootOfFury2",0,0,0,0)
			CKBF D 7 A_StartSound("HEY",4,CHANF_NOPAUSE, GetCvar("PlayItLoud"))
			TNT1 A 0 A_SetSpeed(1)
			Goto Ready
		BoringKick:
			STAF A 0 Offset(0,32)
			STAF A 1 Offset(0,42)
			STAF A 1 Offset(0,52)
			STAF A 1 Offset(0,62)
			STAF A 1 Offset(0,72)
			STAF A 1 Offset(0,82)
			TNT1 A 0 A_StartSound("WHOP",4,CHANF_NOPAUSE)
			CKCK ABCD 1 Offset(0,32)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			TNT1 A 0 A_Recoil(-6)
			CKCK E 2
			TNT1 A 0 A_Recoil(3)
			CKCK DCB 1
			CKCK AA 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 AAA 1 A_WeaponReady(WRF_NOSECONDARY)
			STAF A 1 Offset(0,82)
			STAF A 1 Offset(0,72)
			STAF A 1 Offset(0,62)
			STAF A 1 Offset(0,52)
			STAF A 1 Offset(0,42)
			STAF A 0 Offset(0,32)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"BoringKick")
			Goto Ready
		BicycleKicking:
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_StartSound("BKLOOP",1,CHANF_NOPAUSE|CHANF_LOOPING)
			TNT1 A 0 A_Overlay(10,"PropellerOnly", FALSE)
		BicycleLoop:
			CKCK ACE 1 A_ChangeVelocity(12,0,-1,CVF_RELATIVE|CVF_REPLACE)
			TNT1 A 0 A_QuakeEx(0,0,1,3,0,128,"")
			TNT1 A 0 A_CheckFloor(23)
			TNT1 A 0 A_JumpIf((VelZ > -0.8),22)
			TNT1 A 0 A_CustomPunch(random(20,40)+(CallACS("StrengthCalculator")),1,0,"BrutalKickPuff", 104)
			CKCK DCB 1 A_ChangeVelocity(12,0,-1,CVF_RELATIVE|CVF_REPLACE)
			TNT1 A 0 A_QuakeEx(0,0,2,3,0,128,"")
			TNT1 A 0 A_CheckFloor(16)
			TNT1 A 0 A_JumpIf((VelZ > -0.8),15)
			CKCK FHJ 1 A_ChangeVelocity(12,0,-1,CVF_RELATIVE|CVF_REPLACE)
			TNT1 A 0 A_QuakeEx(0,0,1,3,0,128,"")
			TNT1 A 0 A_CheckFloor(10)
			TNT1 A 0 A_JumpIf((VelZ > -0.8),9)
			TNT1 A 0 A_CustomPunch(random(20,40)+(CallACS("StrengthCalculator")),1,0,"BrutalKickPuff", 104)
			CKCK JHF 1 A_ChangeVelocity(12,0,-1,CVF_RELATIVE|CVF_REPLACE)
			TNT1 A 0 A_QuakeEx(0,0,2,3,0,128,"")
			TNT1 A 0 A_CheckFloor(3)
			TNT1 A 0 A_JumpIf((VelZ > -0.8),2)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"BicycleLoop")
			TNT1 A 0 A_ClearOverlays(10,10)
			TNT1 A 0 A_StopSound(1)
			TNT1 A 0 A_Stop
			TNT1 A 0 A_SetGravity(0)
			CKBF ABC 1 A_RadiusThrust(9000,96,RTF_NOTMISSILE,96)
			CKBF D 7 A_StartSound("HEY",4,CHANF_NOPAUSE, GetCvar("PlayItLoud"))
			TNT1 A 0 A_SetGravity(1)
			Goto Ready
		PropellerOnly:
			PROP ABCD 1
			Loop
		Reload:
			TNT1 A 0 A_WeaponReady(WRF_NOSWITCH|WRF_NOFIRE)
			TNT1 A 0 SetPlayerProperty(1,1,PROP_TOTALLYFROZEN)
			TNT1 A 0 A_Print("Begging the ether for respite...", 2)
			STAF III 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_Stop
			STAF JJJ 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_SetPitch(0,SPF_INTERPOLATE)
			TNT1 A 0 A_Light(-2)
			STAF LLLLLLLLLLLLLLLLLLLLLL 1 Bright A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("GNTHIT",0,CHANF_NOPAUSE)
			TNT1 A 0 A_Light(-4)
			STAF LLLLLLLLLLLLLLLLLLL 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("GNTHIT",0,CHANF_NOPAUSE)
			TNT1 A 0 A_Light(-6)
			STAF LLLLLLLLLLLLLLLL 1 Bright A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("GNTHIT",0,CHANF_NOPAUSE)			
			TNT1 A 0 A_Light(-8)
			STAF LLLLLLLLLLLLL 1 Bright A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("GNTHIT",0,CHANF_NOPAUSE)
			TNT1 A 0 A_Light(-10)
			STAF LLLLLLLLLL 1 Bright A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"Reload2")
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredReload")
			TNT1 A 0 A_StartSound("WPNUPL",0,CHANF_NOPAUSE)
			TNT1 A 0 A_GiveInventory(Health, random(5,10))
			STAF L 10 Bright A_SetBlend("20 99 20",0.5,20)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			STAF J 3 
			Goto Ready
		ReloadHealLoop:
			TNT1 A 0 A_Log("Nurse thy wounds!")
			STAF L 5 Bright
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_GiveInventory(Health, 2)
			STAF L 5 
			STAF J 3 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_Reload),"ReloadHealLoop")
			TNT1 A 0 A_PlaySound("WPNUPL",1)
			TNT1 A 0 A_StartSound("WPNUPL",1,CHANF_NOPAUSE)
			TNT1 A 0 Bright A_SetBlend("20 99 20",0.5,10)
			TNT1 A 0 A_Light(0)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		Reload2:
			TNT1 A 0 A_SetSpeed(0)
			TNT1 A 0 A_Light(0)
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			SSPN ABCF 2 A_WeaponReady(WRF_NOSWITCH)
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			SSPN ABCF 2 A_WeaponReady(WRF_NOSWITCH)
			TNT1 A 0 A_StartSound("STAFSWNG",1,CHANF_NOPAUSE)
			SSPN ABCF 2 A_WeaponReady(WRF_NOSWITCH)
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredReload2")
			TNT1 A 0 ACS_NamedExecute ("HealingCheck")
		Reload2Finish:	
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,45,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-1,44,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-1,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,42,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,41,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("RegenParticle2",8,-2,40,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_StartSound("WPNUPL",0,CHANF_NOPAUSE)
			TNT1 A 0 A_Log("Restore Thyself!")
			STAF L 10 Bright A_SetBlend("20 99 20",0.5,35)
			STAF J 3 
			STAF I 3 A_SetSpeed(1)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		PoweredReload:
			TNT1 A 0 A_JumpIfInventory("Mana",20,1)
			Goto ConjureFail
			TNT1 A 0 A_Log("Conjured a Quartz Flask from the beyond!")
			TNT1 A 0 A_GiveInventory("BrutalArtiHealth", random(1,2))
			TNT1 A 0 A_TakeInventory("Mana", 20)
			STAF L 10 Bright A_SetBlend("99 20 99",0.5,35)
			STAF J 3 
			STAF I 3 A_SetSpeed(1)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		PoweredReload2:
			TNT1 A 0 A_JumpIfInventory("Mana",75,1)
			Goto ConjureFail
			TNT1 A 0 A_Log("Thine anscestors bestow a Mystic urn!")
			TNT1 A 0 A_TakeInventory("Mana", 75)
			TNT1 A 0 A_GiveInventory("BrutalArtiSuperHealth", 1)
			STAF L 10 Bright A_SetBlend("99 99 99",0.5,35)
			STAF J 3 
			STAF I 3 A_SetSpeed(1)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		ConjureFail:
			TNT1 A 0 A_JumpIfInventory("RetributionToken",3,"ConjureWarn")
			TNT1 A 0 A_Log("But alas, nothing happened...")
			TNT1 A 0 A_StartSound("CLHMM",0,CHANF_NOPAUSE)
			TNT1 A 0 A_GiveInventory("RetributionToken",1)
			STAF L 10 Bright
			STAF J 3 
			STAF I 3 A_SetSpeed(1)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		ConjureWarn:
			TNT1 A 0 A_JumpIfInventory("RetributionToken",5,"ConjurePunish")
			TNT1 A 0 A_Print("\cQ The spirits are getting angry with you...",2)
			TNT1 A 0 A_StartSound("ERROR",0,CHANF_NOPAUSE)
			TNT1 A 0 A_GiveInventory("RetributionToken",1)
			STAF L 10 Bright
			STAF J 3 
			STAF I 3 A_SetSpeed(1)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
		ConjurePunish:
			TNT1 A 0 A_Print("\cG Your Ancestors look on in shame",3,"BIGFONT")
			TNT1 A 0 A_DamageSelf(5)
			TNT1 A 0 A_StartSound("LITCRASH",0,CHANF_NOPAUSE)
			TNT1 A 0 A_TakeInventory("RetributionToken",5)
			STAF L 10 Bright
			STAF J 3 
			STAF I 3 A_SetSpeed(1)
			TNT1 A 0 SetPlayerProperty(1,0,PROP_TOTALLYFROZEN)
			Goto Ready
	}
}