qzdoom-gpl/wadsrc/static/zscript/hexen/clericstaff.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

105 lines
1.8 KiB
Text

// The Cleric's Serpent Staff -----------------------------------------------
class CWeapStaff : ClericWeapon
{
Default
{
Weapon.SelectionOrder 1600;
Weapon.AmmoUse1 1;
Weapon.AmmoGive1 25;
Weapon.KickBack 150;
Weapon.YAdjust 10;
Weapon.AmmoType1 "Mana1";
Inventory.PickupMessage "$TXT_WEAPON_C2";
Obituary "$OB_MPCWEAPSTAFFM";
Tag "$TAG_CWEAPSTAFF";
}
action native void A_CStaffInitBlink();
action native void A_CStaffCheckBlink();
action native void A_CStaffCheck();
action native void A_CStaffAttack();
States
{
Spawn:
WCSS A -1;
Stop;
Select:
CSSF C 1 A_Raise;
Loop;
Deselect:
CSSF B 3;
CSSF C 4;
CSSF C 1 A_Lower;
Wait;
Ready:
CSSF C 4;
CSSF B 3 A_CStaffInitBlink;
CSSF AAAAAAA 1 A_WeaponReady;
CSSF A 1 A_CStaffCheckBlink;
Goto Ready + 2;
Fire:
CSSF A 1 Offset (0, 45) A_CStaffCheck;
CSSF J 1 Offset (0, 50) A_CStaffAttack;
CSSF J 2 Offset (0, 50);
CSSF J 2 Offset (0, 45);
CSSF A 2 Offset (0, 40);
CSSF A 2 Offset (0, 36);
Goto Ready + 2;
Blink:
CSSF BBBCCCCCBBB 1 A_WeaponReady;
Goto Ready + 2;
Drain:
CSSF K 10 Offset (0, 36);
Goto Ready + 2;
}
}
// Serpent Staff Missile ----------------------------------------------------
class CStaffMissile : Actor native
{
Default
{
Speed 22;
Radius 12;
Height 10;
Damage 5;
RenderStyle "Add";
Projectile;
DeathSound "ClericCStaffExplode";
Obituary "$OB_MPCWEAPSTAFFR";
}
States
{
Spawn:
CSSF DDEE 1 Bright A_CStaffMissileSlither;
Loop;
Death:
CSSF FG 4 Bright;
CSSF HI 3 Bright;
Stop;
}
}
// Serpent Staff Puff -------------------------------------------------------
class CStaffPuff : Actor
{
Default
{
+NOBLOCKMAP +NOGRAVITY
+PUFFONACTORS
RenderStyle "Translucent";
Alpha 0.6;
SeeSound "ClericCStaffHitThing";
}
States
{
Spawn:
FHFX STUVW 4;
Stop;
}
}