mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-29 07:22:07 +00:00
3f5bf88d69
- fixed: FxAssignSelf did not the correct number of registers for vector operations. - fixed a few asserts in vector2 instructions. - turned the virtual AActor::HitFloor method into a flag MF7_SMASHABLE. The only use of this function was to kill Hexen's pottery when they hit the floor, and this looks like something that can be exposed to modders less clumsily.
557 lines
8.3 KiB
Text
557 lines
8.3 KiB
Text
|
|
class HereticWeapon : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 150;
|
|
}
|
|
}
|
|
|
|
// Blaster ------------------------------------------------------------------
|
|
|
|
class Blaster : HereticWeapon
|
|
{
|
|
Default
|
|
{
|
|
+BLOODSPLATTER
|
|
Weapon.SelectionOrder 500;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 30;
|
|
Weapon.YAdjust 15;
|
|
Weapon.AmmoType "BlasterAmmo";
|
|
Weapon.SisterWeapon "BlasterPowered";
|
|
Inventory.PickupMessage "$TXT_WPNBLASTER";
|
|
Tag "$TAG_BLASTER";
|
|
Obituary "$OB_MPBLASTER";
|
|
}
|
|
|
|
action native void A_FireBlasterPL1();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
WBLS A -1;
|
|
Stop;
|
|
Ready:
|
|
BLSR A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
BLSR A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
BLSR A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
BLSR BC 3;
|
|
Hold:
|
|
BLSR D 2 A_FireBlasterPL1;
|
|
BLSR CB 2;
|
|
BLSR A 0 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
class BlasterPowered : Blaster
|
|
{
|
|
Default
|
|
{
|
|
+WEAPON.POWERED_UP
|
|
Weapon.AmmoUse 5;
|
|
Weapon.AmmoGive 0;
|
|
Weapon.SisterWeapon "Blaster";
|
|
Tag "$TAG_BLASTERP";
|
|
}
|
|
|
|
States
|
|
{
|
|
Fire:
|
|
BLSR BC 0;
|
|
Hold:
|
|
BLSR D 3 A_FireCustomMissile("BlasterFX1");
|
|
BLSR CB 4;
|
|
BLSR A 0 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
// Blaster FX 1 -------------------------------------------------------------
|
|
|
|
class BlasterFX1 : FastProjectile native
|
|
{
|
|
Default
|
|
{
|
|
Radius 12;
|
|
Height 8;
|
|
Speed 184;
|
|
Damage 2;
|
|
SeeSound "weapons/blastershoot";
|
|
DeathSound "weapons/blasterhit";
|
|
+SPAWNSOUNDSOURCE
|
|
Obituary "$OB_MPPBLASTER";
|
|
}
|
|
|
|
native void A_SpawnRippers();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
ACLO E 200;
|
|
Loop;
|
|
Death:
|
|
FX18 A 3 BRIGHT A_SpawnRippers;
|
|
FX18 B 3 BRIGHT;
|
|
FX18 CDEFG 4 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Blaster smoke ------------------------------------------------------------
|
|
|
|
class BlasterSmoke : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
+NOTELEPORT
|
|
+CANNOTPUSH
|
|
RenderStyle "Translucent";
|
|
Alpha 0.4;
|
|
}
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX18 HIJKL 4;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Ripper -------------------------------------------------------------------
|
|
|
|
class Ripper : Actor native
|
|
{
|
|
Default
|
|
{
|
|
Radius 8;
|
|
Height 6;
|
|
Speed 14;
|
|
Damage 1;
|
|
Projectile;
|
|
+RIPPER
|
|
DeathSound "weapons/blasterpowhit";
|
|
Obituary "$OB_MPPBLASTER";
|
|
}
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX18 M 4;
|
|
FX18 N 5;
|
|
Loop;
|
|
Death:
|
|
FX18 OPQRS 4 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Blaster Puff -------------------------------------------------------------
|
|
|
|
class BlasterPuff : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
+PUFFONACTORS
|
|
RenderStyle "Add";
|
|
SeeSound "weapons/blasterhit";
|
|
}
|
|
|
|
States
|
|
{
|
|
Crash:
|
|
FX17 ABCDE 4 BRIGHT;
|
|
Stop;
|
|
Spawn:
|
|
FX17 FG 3 BRIGHT;
|
|
FX17 HIJKL 4 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// Skull (Horn) Rod ---------------------------------------------------------
|
|
|
|
class SkullRod : HereticWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 200;
|
|
Weapon.AmmoUse1 1;
|
|
Weapon.AmmoGive1 50;
|
|
Weapon.YAdjust 15;
|
|
Weapon.AmmoType1 "SkullRodAmmo";
|
|
Weapon.SisterWeapon "SkullRodPowered";
|
|
Inventory.PickupMessage "$TXT_WPNSKULLROD";
|
|
Tag "$TAG_SKULLROD";
|
|
}
|
|
|
|
action native void A_FireSkullRodPL1();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
WSKL A -1;
|
|
Stop;
|
|
Ready:
|
|
HROD A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
HROD A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
HROD A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
HROD AB 4 A_FireSkullRodPL1;
|
|
HROD B 0 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
class SkullRodPowered : SkullRod
|
|
{
|
|
Default
|
|
{
|
|
+WEAPON.POWERED_UP
|
|
Weapon.AmmoUse1 5;
|
|
Weapon.AmmoGive1 0;
|
|
Weapon.SisterWeapon "SkullRod";
|
|
Tag "$TAG_SKULLRODP";
|
|
}
|
|
|
|
action native void A_FireSkullRodPL2();
|
|
|
|
States
|
|
{
|
|
Fire:
|
|
HROD C 2;
|
|
HROD D 3;
|
|
HROD E 2;
|
|
HROD F 3;
|
|
HROD G 4 A_FireSkullRodPL2;
|
|
HROD F 2;
|
|
HROD E 3;
|
|
HROD D 2;
|
|
HROD C 2 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
// Horn Rod FX 1 ------------------------------------------------------------
|
|
|
|
class HornRodFX1 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 12;
|
|
Height 8;
|
|
Speed 22;
|
|
Damage 3;
|
|
Projectile;
|
|
+WINDTHRUST
|
|
-NOBLOCKMAP
|
|
RenderStyle "Add";
|
|
SeeSound "weapons/hornrodshoot";
|
|
DeathSound "weapons/hornrodhit";
|
|
Obituary "$OB_MPSKULLROD";
|
|
}
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX00 AB 6 BRIGHT;
|
|
Loop;
|
|
Death:
|
|
FX00 HI 5 BRIGHT;
|
|
FX00 JK 4 BRIGHT;
|
|
FX00 LM 3 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// Horn Rod FX 2 ------------------------------------------------------------
|
|
|
|
class HornRodFX2 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 12;
|
|
Height 8;
|
|
Speed 22;
|
|
Damage 10;
|
|
Health 140;
|
|
Projectile;
|
|
RenderStyle "Add";
|
|
SeeSound "weapons/hornrodpowshoot";
|
|
DeathSound "weapons/hornrodpowhit";
|
|
Obituary "$OB_MPPSKULLROD";
|
|
}
|
|
|
|
native void A_AddPlayerRain();
|
|
native void A_HideInCeiling();
|
|
native void A_SkullRodStorm();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX00 C 3 BRIGHT;
|
|
FX00 D 3 BRIGHT A_SeekerMissile(10, 30);
|
|
FX00 E 3 BRIGHT;
|
|
FX00 F 3 BRIGHT A_SeekerMissile(10, 30);
|
|
Loop;
|
|
Death:
|
|
FX00 H 5 BRIGHT A_AddPlayerRain;
|
|
FX00 I 5 BRIGHT;
|
|
FX00 J 4 BRIGHT;
|
|
FX00 KLM 3 BRIGHT;
|
|
FX00 G 1 A_HideInCeiling;
|
|
FX00 G 1 A_SkullRodStorm;
|
|
Wait;
|
|
}
|
|
|
|
override int DoSpecialDamage (Actor target, int damage, Name damagetype)
|
|
{
|
|
Sorcerer2 s2 = Sorcerer2(target);
|
|
if (s2 != null && random[HornRodFX2]() < 96)
|
|
{ // D'Sparil teleports away
|
|
s2.DSparilTeleport ();
|
|
return -1;
|
|
}
|
|
return damage;
|
|
}
|
|
|
|
}
|
|
|
|
// Rain pillar 1 ------------------------------------------------------------
|
|
|
|
class RainPillar : Actor native
|
|
{
|
|
Default
|
|
{
|
|
Radius 5;
|
|
Height 12;
|
|
Speed 12;
|
|
Damage 5;
|
|
Mass 5;
|
|
Projectile;
|
|
-ACTIVATEPCROSS
|
|
-ACTIVATEIMPACT
|
|
RenderStyle "Add";
|
|
Obituary "$OB_MPPSKULLROD";
|
|
}
|
|
|
|
native void A_RainImpact();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX22 A -1 BRIGHT;
|
|
Stop;
|
|
Death:
|
|
FX22 B 4 BRIGHT A_RainImpact;
|
|
FX22 CDEF 4 BRIGHT;
|
|
Stop;
|
|
NotFloor:
|
|
FX22 GHI 4 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Rain tracker "inventory" item --------------------------------------------
|
|
|
|
class RainTracker : Inventory native
|
|
{
|
|
Default
|
|
{
|
|
+INVENTORY.UNDROPPABLE
|
|
}
|
|
}
|
|
|
|
|
|
// Phoenix Rod --------------------------------------------------------------
|
|
|
|
class PhoenixRod : Weapon native
|
|
{
|
|
Default
|
|
{
|
|
+WEAPON.NOAUTOFIRE
|
|
Weapon.SelectionOrder 2600;
|
|
Weapon.Kickback 150;
|
|
Weapon.YAdjust 15;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 2;
|
|
Weapon.AmmoType "PhoenixRodAmmo";
|
|
Weapon.Sisterweapon "PhoenixRodPowered";
|
|
Inventory.PickupMessage "$TXT_WPNPHOENIXROD";
|
|
Tag "$TAG_PHOENIXROD";
|
|
}
|
|
|
|
action native void A_FirePhoenixPL1();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
WPHX A -1;
|
|
Stop;
|
|
Ready:
|
|
PHNX A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
PHNX A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
PHNX A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
PHNX B 5;
|
|
PHNX C 7 A_FirePhoenixPL1;
|
|
PHNX DB 4;
|
|
PHNX B 0 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
class PhoenixRodPowered : PhoenixRod native
|
|
{
|
|
Default
|
|
{
|
|
+WEAPON.POWERED_UP
|
|
+WEAPON.MELEEWEAPON
|
|
Weapon.SisterWeapon "PhoenixRod";
|
|
Weapon.AmmoGive 0;
|
|
Tag "$TAG_PHOENIXRODP";
|
|
}
|
|
|
|
action native void A_InitPhoenixPL2();
|
|
action native void A_FirePhoenixPL2();
|
|
action native void A_ShutdownPhoenixPL2();
|
|
|
|
States
|
|
{
|
|
Fire:
|
|
PHNX B 3 A_InitPhoenixPL2;
|
|
Hold:
|
|
PHNX C 1 A_FirePhoenixPL2;
|
|
PHNX B 4 A_ReFire;
|
|
Powerdown:
|
|
PHNX B 4 A_ShutdownPhoenixPL2;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
// Phoenix FX 1 -------------------------------------------------------------
|
|
|
|
class PhoenixFX1 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 11;
|
|
Height 8;
|
|
Speed 20;
|
|
Damage 20;
|
|
DamageType "Fire";
|
|
Projectile;
|
|
+THRUGHOST
|
|
+SPECIALFIREDAMAGE
|
|
SeeSound "weapons/phoenixshoot";
|
|
DeathSound "weapons/phoenixhit";
|
|
Obituary "$OB_MPPHOENIXROD";
|
|
}
|
|
|
|
native void A_PhoenixPuff();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX04 A 4 BRIGHT A_PhoenixPuff;
|
|
Loop;
|
|
Death:
|
|
FX08 A 6 BRIGHT A_Explode;
|
|
FX08 BC 5 BRIGHT;
|
|
FX08 DEFGH 4 BRIGHT;
|
|
Stop;
|
|
}
|
|
|
|
override int DoSpecialDamage (Actor target, int damage, Name damagetype)
|
|
{
|
|
Sorcerer2 s2 = Sorcerer2(target);
|
|
if (s2 != null && random[HornRodFX2]() < 96)
|
|
{ // D'Sparil teleports away
|
|
s2.DSparilTeleport ();
|
|
return -1;
|
|
}
|
|
return damage;
|
|
}
|
|
|
|
}
|
|
|
|
// Phoenix puff -------------------------------------------------------------
|
|
|
|
class PhoenixPuff : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
+NOTELEPORT
|
|
+CANNOTPUSH
|
|
RenderStyle "Translucent";
|
|
Alpha 0.4;
|
|
}
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX04 BCDEF 4;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Phoenix FX 2 -------------------------------------------------------------
|
|
|
|
class PhoenixFX2 : Actor native
|
|
{
|
|
Default
|
|
{
|
|
Radius 6;
|
|
Height 8;
|
|
Speed 10;
|
|
Damage 2;
|
|
DamageType "Fire";
|
|
Projectile;
|
|
RenderStyle "Add";
|
|
Obituary "$OB_MPPPHOENIXROD";
|
|
}
|
|
|
|
native void A_FlameEnd();
|
|
native void A_FloatPuff();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FX09 ABABA 2 BRIGHT;
|
|
FX09 B 2 BRIGHT A_FlameEnd;
|
|
FX09 CDEF 2 BRIGHT;
|
|
Stop;
|
|
Death:
|
|
FX09 G 3 BRIGHT;
|
|
FX09 H 3 BRIGHT A_FloatPuff;
|
|
FX09 I 4 BRIGHT;
|
|
FX09 JK 5 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|