gzdoom/wadsrc/static/zscript/hexen/magestaff.txt
Christoph Oelckers a2f4cd7cda - fixed: All functions that are callable from weapon states and not members of Actor need to be declared 'action'.
With the stricter type checks of the self pointer that were now implemented these all produced errors.
2016-11-13 14:20:30 +01: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";
}
action native void A_MStaffAttack();
action 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;
}
}