// The Mage's Lightning Arc of Death ---------------------------------------- class MWeapLightning : MageWeapon { Default { +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"; } native void A_LightningReady(); native void A_MLightningAttack(class floor = "LightningFloor", class 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 -------------------------------------------------------- class Lightning : Actor native { Default { MissileType "LightningZap"; AttackSound "MageLightningZap"; ActiveSound "MageLightningContinuous"; Obituary "$OB_MPMWEAPLIGHTNING"; } } class LightningCeiling : Lightning { Default { Health 144; Speed 25; Radius 16; Height 40; Damage 8; Projectile; +CEILINGHUGGER RenderStyle "Add"; } native void A_LightningZap(); native void A_LightningClip(); native void 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 ---------------------------------------------------------- class LightningFloor : LightningCeiling { Default { -CEILINGHUGGER +FLOORHUGGER RenderStyle "Add"; } native void 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 ------------------------------------------------------------ class LightningZap : Actor native { Default { Radius 15; Height 35; Damage 2; Projectile; -ACTIVATEIMPACT -ACTIVATEPCROSS RenderStyle "Add"; Obituary "$OB_MPMWEAPLIGHTNING"; } native void A_ZapMimic(); States { Spawn: MLFX IJKLM 2 Bright A_ZapMimic; Loop; Death: MLFX NOPQRSTU 2 Bright; Stop; } }