class Sceptre : SquareWeapon
{
	Default
	{
		Weapon.SelectionOrder 450;
		Weapon.AmmoGive 20;
		Weapon.AmmoUse 1;
		Weapon.AmmoType "MarbleAmmo";
		Inventory.PickupSound "misc/secret";
		Tag "$TAG_SCEPTRE";
		Inventory.PickupMessage "$GOTSCEPTRE";
		Obituary "$OB_SCEPTRE";
	}
	States
	{
	Spawn:
		SCPT A -1;
		Stop;
	Ready:
		SCEP AAAABBBBCCCCDDDD 1 A_WeaponReady();
		Loop;
	Deselect:
		SCEP A 1 A_Lower();
		SCEP A 0 A_Lower();
		Loop;
	Select:
		SCEP A 1 A_Raise();
		SCEP A 0 A_Raise();
		Loop;
	ResetSprite:
		SCEP A 0;
		Goto Reraise;
	Fire:
		SCEP E 1 Offset( 9, 36);
		SCEP E 1 Offset( 4, 40);
		SCEP E 1 Offset( 1, 44);
	Hold:
		SCEP E 0 Offset(-1, 48) A_GunFlash();
		SCEP E 0 A_PlaySound("weapons/sceptre/fire", CHAN_WEAPON);
		SCEP E 0 A_FireProjectile("SceptreBall", -12, 1);
		SCEP E 0 A_FireProjectile("SceptreBall", 12, 0);
		SCEP E 0 A_Jump(128, "Zap1");
		SCEP F 2 Bright A_Light2();
		Goto Zap2;
	Zap1:
		SCEP F 2 Bright A_Light2();
	Zap2:
		SCEP G 2 Bright A_Light1();
		SCEP E 2 A_Light0();
		SCEP E 1 Offset(	3, 46) A_ReFire();
		SCEP E 1 Offset(	6, 43);
		SCEP E 1 Offset( 12, 40);
		SCEP E 1 Offset( 20, 32);
		SCEP B 1 Offset(-70, 72);
		SCEP B 1 Offset(-60, 68);
		SCEP C 1 Offset(-50, 64);
		SCEP C 1 Offset(-35, 56);
		SCEP D 1 Offset(-20, 48);
		SCEP D 1 Offset(-10, 40);
		Goto Ready;
	}
}

class SceptreBall : SquareActor
{
	Default
	{
		Projectile;
		+SEEKERMISSILE;
		+BLOODSPLATTER;

		Radius 8;
		Height 15;
		DamageFunction (25);
		Speed 26;
		Scale 1;
		Alpha 1.0;
		Renderstyle 'Add';
		Decal 'CrescentScorch';
		DamageType 'Magic';
		DeathSound "weapons/sceptre/explode";
	}
	States
	{
	Spawn:
		TNT1 A 2; // Blank for a tick for presentation purposes.
	SpawnLoop:
		SCPB A 3 Bright A_SeekerMissile(10, 10);
		Goto SpawnLoop;
	Death:
		SCPB BCDE 2 Bright;
		Stop;
	}
}
