gzdoom/wadsrc/static/zscript/hexen/magestaff.txt
Christoph Oelckers 371712c53a - turned everything I could into non-action functions.
- 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.
2016-10-22 17:49:08 +02:00

160 lines
2.8 KiB
Text

// Mage Weapon Piece --------------------------------------------------------
class MageWeaponPiece : WeaponPiece
{
Default
{
Inventory.PickupSound "misc/w_pkup";
Inventory.PickupMessage "$TXT_BLOODSCOURGE_PIECE";
Inventory.ForbiddenTo "FighterPlayer", "ClericPlayer";
WeaponPiece.Weapon "MWeapBloodscourge";
+FLOATBOB
}
}
// Mage Weapon Piece 1 ------------------------------------------------------
class MWeaponPiece1 : MageWeaponPiece
{
Default
{
WeaponPiece.Number 1;
}
States
{
Spawn:
WMS1 A -1 Bright;
Stop;
}
}
// Mage Weapon Piece 2 ------------------------------------------------------
class MWeaponPiece2 : MageWeaponPiece
{
Default
{
WeaponPiece.Number 2;
}
States
{
Spawn:
WMS2 A -1 Bright;
Stop;
}
}
// Mage Weapon Piece 3 ------------------------------------------------------
class MWeaponPiece3 : MageWeaponPiece
{
Default
{
WeaponPiece.Number 3;
}
States
{
Spawn:
WMS3 A -1 Bright;
Stop;
}
}
// Bloodscourge Drop --------------------------------------------------------
class BloodscourgeDrop : Actor
{
States
{
Spawn:
TNT1 A 1;
TNT1 A 1 A_DropWeaponPieces("MWeaponPiece1", "MWeaponPiece2", "MWeaponPiece3");
Stop;
}
}
// The Mages's Staff (Bloodscourge) -----------------------------------------
class MWeapBloodscourge : MageWeapon native
{
Default
{
Health 3;
Weapon.SelectionOrder 3100;
Weapon.AmmoUse1 15;
Weapon.AmmoUse2 15;
Weapon.AmmoGive1 20;
Weapon.AmmoGive2 20;
Weapon.KickBack 150;
Weapon.YAdjust 20;
Weapon.AmmoType1 "Mana1";
Weapon.AmmoType2 "Mana2";
+WEAPON.PRIMARY_USES_BOTH;
+Inventory.NoAttenPickupSound
Inventory.PickupMessage "$TXT_WEAPON_M4";
Inventory.PickupSound "WeaponBuild";
Tag "$TAG_MWEAPBLOODSCOURGE";
}
native void A_MStaffAttack();
native void A_MStaffPalette();
States
{
Spawn:
TNT1 A -1;
Stop;
Select:
MSTF A 1 A_Raise;
Loop;
Deselect:
MSTF A 1 A_Lower;
Loop;
Ready:
MSTF AAAAAABBBBBBCCCCCCDDDDDDEEEEEEFFFFF 1 A_WeaponReady;
Loop;
Fire:
MSTF G 4 Offset (0, 40);
MSTF H 4 Bright Offset (0, 48) A_MStaffAttack;
MSTF H 2 Bright Offset (0, 48) A_MStaffPalette;
MSTF II 2 Offset (0, 48) A_MStaffPalette;
MSTF I 1 Offset (0, 40);
MSTF J 5 Offset (0, 36);
Goto Ready;
}
}
// Mage Staff FX2 (Bloodscourge) --------------------------------------------
class MageStaffFX2 : Actor native
{
Default
{
Speed 17;
Height 8;
Damage 4;
DamageType "Fire";
Projectile;
+SEEKERMISSILE
+SCREENSEEKER
+EXTREMEDEATH
DeathSound "MageStaffExplode";
Obituary "$OB_MPMWEAPBLOODSCOURGE";
}
native void A_MStaffTrack();
States
{
Spawn:
MSP2 ABCD 2 Bright A_MStaffTrack;
Loop;
Death:
MSP2 E 4 Bright A_SetTranslucent(1,1);
MSP2 F 5 Bright A_Explode (80, 192, 0);
MSP2 GH 5 Bright;
MSP2 I 4 Bright;
Stop;
}
}