
// The Mage's Lightning Arc of Death ----------------------------------------

ACTOR MWeapLightning : MageWeapon
{
	+NOGRAVITY
	Weapon.SelectionOrder 1100
	Weapon.AmmoUse1 5
	Weapon.AmmoGive1 25
	Weapon.KickBack 0
	Weapon.YAdjust 20
	Weapon.AmmoType1 "Mana2"
	Inventory.PickupMessage "$TXT_WEAPON_M3"
	Tag "$TAG_MWEAPLIGHTNING"

	action native A_LightningReady();
	action native A_MLightningAttack(class<Actor> floor = "LightningFloor", class<Actor> ceiling = "LightningCeiling");

	States
	{
	Spawn:
		WMLG ABCDEFGH 4 Bright
		Loop
	Select:
		MLNG A 1 Bright A_Raise
		Loop
	Deselect:
		MLNG A 1 Bright A_Lower
		Loop
	Ready:
		MLNG AAAAA 1 Bright A_WeaponReady
		MLNG A 1 Bright A_LightningReady
		MLNG BBBBBB 1 Bright A_WeaponReady
		MLNG CCCCC 1 Bright A_WeaponReady
		MLNG C 1 Bright A_LightningReady
		MLNG BBBBBB 1 Bright A_WeaponReady
		Loop
	Fire:
		MLNG DE 3 Bright
		MLNG F 4 Bright A_MLightningAttack
		MLNG G 4 Bright
		MLNG HI 3 Bright
		MLNG I 6 Bright Offset (0, 199)
		MLNG C 2 Bright Offset (0, 55)
		MLNG B 2 Bright Offset (0, 50)
		MLNG B 2 Bright Offset (0, 45)
		MLNG B 2 Bright Offset (0, 40)
		Goto Ready
	}
}

// Ceiling Lightning --------------------------------------------------------

ACTOR Lightning native
{
	MissileType "LightningZap"
	AttackSound "MageLightningZap"
	ActiveSound "MageLightningContinuous"
	Obituary "$OB_MPMWEAPLIGHTNING"
}

ACTOR LightningCeiling : Lightning
{
	Health 144
	Speed 25
	Radius 16
	Height 40
	Damage 8
	Projectile
	+CEILINGHUGGER
	RenderStyle Add

	action native A_LightningZap();
	action native A_LightningClip();
	action native A_LightningRemove();

	States
	{
	Spawn:
		MLFX A 2 Bright A_LightningZap
		MLFX BCD 2 Bright A_LightningClip
		Loop
	Death:
		MLF2 A 2 Bright A_LightningRemove
		MLF2 BCDEKLM 3 Bright
		ACLO E 35
		MLF2 NO 3 Bright
		MLF2 P 4 Bright
		MLF2 QP 3 Bright
		MLF2 Q 4 Bright
		MLF2 P 3 Bright
		MLF2 O 3 Bright
		MLF2 P 3 Bright
		MLF2 P 1 Bright A_HideThing
		ACLO E 1050
		Stop
	}
}

// Floor Lightning ----------------------------------------------------------

ACTOR LightningFloor : LightningCeiling
{
	-CEILINGHUGGER
	+FLOORHUGGER
	RenderStyle Add

	action native A_LastZap();

	States
	{
	Spawn:
		MLFX E 2 Bright A_LightningZap
		MLFX FGH 2 Bright A_LightningClip
		Loop
	Death:
		MLF2 F 2 Bright A_LightningRemove
		MLF2 GHIJKLM 3 Bright
		ACLO E 20
		MLF2 NO 3 Bright
		MLF2 P 4 Bright
		MLF2 QP 3 Bright
		MLF2 Q 4 Bright A_LastZap
		MLF2 POP 3 Bright
		MLF2 P 1 Bright A_HideThing
		Goto Super::Death + 19
	}
}

// Lightning Zap ------------------------------------------------------------

ACTOR LightningZap native
{
	Radius 15
	Height 35
	Damage 2
	Projectile
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	RenderStyle Add
	Obituary "$OB_MPMWEAPLIGHTNING"

	action native A_ZapMimic();

	States
	{
	Spawn:
		MLFX IJKLM 2 Bright A_ZapMimic
		Loop
	Death:
		MLFX NOPQRSTU 2 Bright
		Stop
	}
}
