mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-25 12:00:55 +00:00
371712c53a
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
169 lines
3 KiB
Text
169 lines
3 KiB
Text
|
|
// 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<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 --------------------------------------------------------
|
|
|
|
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;
|
|
}
|
|
}
|