mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-13 16:07:55 +00:00
514 lines
8.2 KiB
Text
514 lines
8.2 KiB
Text
|
|
class StrifeWeapon : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 100;
|
|
}
|
|
}
|
|
|
|
// Same as the bullet puff for Doom -----------------------------------------
|
|
|
|
class StrifePuff : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
+ALLOWPARTICLES
|
|
RenderStyle "Translucent";
|
|
Alpha 0.25;
|
|
}
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
POW3 ABCDEFGH 3;
|
|
Stop;
|
|
Crash:
|
|
PUFY A 4 Bright;
|
|
PUFY BCD 4;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// A spark when you hit something that doesn't bleed ------------------------
|
|
// Only used by the dagger.
|
|
|
|
class StrifeSpark : StrifePuff
|
|
{
|
|
Default
|
|
{
|
|
RenderStyle "Add";
|
|
}
|
|
States
|
|
{
|
|
Crash:
|
|
POW2 ABCD 4;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Flame Thrower ------------------------------------------------------------
|
|
|
|
class FlameThrower : StrifeWeapon
|
|
{
|
|
Default
|
|
{
|
|
+FLOORCLIP
|
|
Weapon.SelectionOrder 2100;
|
|
Weapon.Kickback 0;
|
|
Weapon.AmmoUse1 1;
|
|
Weapon.AmmoGive1 100;
|
|
Weapon.UpSound "weapons/flameidle";
|
|
Weapon.ReadySound "weapons/flameidle";
|
|
Weapon.AmmoType1 "EnergyPod";
|
|
Inventory.Icon "FLAMA0";
|
|
Tag "$TAG_FLAMER";
|
|
Inventory.PickupMessage "$TXT_FLAMER";
|
|
}
|
|
|
|
action native void A_FireFlamer ();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FLAM A -1;
|
|
Stop;
|
|
Ready:
|
|
FLMT AB 3 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
FLMT A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
FLMT A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
FLMF A 2 A_FireFlamer;
|
|
FLMF B 3 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
|
|
// Flame Thrower Projectile -------------------------------------------------
|
|
|
|
class FlameMissile : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 15;
|
|
Height 11;
|
|
Radius 8;
|
|
Mass 10;
|
|
Damage 4;
|
|
DamageType "Fire";
|
|
ReactionTime 8;
|
|
Projectile;
|
|
-NOGRAVITY
|
|
+STRIFEDAMAGE
|
|
MaxStepHeight 4;
|
|
RenderStyle "Add";
|
|
SeeSound "weapons/flamethrower";
|
|
Obituary "$OB_MPFLAMETHROWER";
|
|
}
|
|
|
|
native void A_FlameDie ();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
FRBL AB 3 Bright;
|
|
FRBL C 3 Bright A_Countdown;
|
|
Loop;
|
|
Death:
|
|
FRBL D 5 Bright A_FlameDie;
|
|
FRBL EFGHI 5 Bright;
|
|
Stop;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// Mauler -------------------------------------------------------------------
|
|
// The scatter version
|
|
|
|
class Mauler : StrifeWeapon
|
|
{
|
|
Default
|
|
{
|
|
+FLOORCLIP
|
|
Weapon.SelectionOrder 300;
|
|
Weapon.AmmoUse1 20;
|
|
Weapon.AmmoGive1 40;
|
|
Weapon.AmmoType1 "EnergyPod";
|
|
Weapon.SisterWeapon "Mauler2";
|
|
Inventory.Icon "TRPDA0";
|
|
Tag "$TAG_MAULER1";
|
|
Inventory.PickupMessage "$TXT_MAULER";
|
|
Obituary "$OB_MPMAULER1";
|
|
}
|
|
|
|
action native void A_FireMauler1 ();
|
|
|
|
States
|
|
{
|
|
Ready:
|
|
MAUL FGHA 6 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
MAUL A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
MAUL A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
BLSF A 5 Bright A_FireMauler1;
|
|
MAUL B 3 Bright A_Light1;
|
|
MAUL C 2 A_Light2;
|
|
MAUL DE 2;
|
|
MAUL A 7 A_Light0;
|
|
MAUL H 7;
|
|
MAUL G 7 A_CheckReload;
|
|
Goto Ready;
|
|
Spawn:
|
|
TRPD A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// Mauler Torpedo version ---------------------------------------------------
|
|
|
|
class Mauler2 : Mauler
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 3300;
|
|
Weapon.AmmoUse1 30;
|
|
Weapon.AmmoGive1 0;
|
|
Weapon.AmmoType1 "EnergyPod";
|
|
Weapon.SisterWeapon "Mauler";
|
|
Tag "$TAG_MAULER2";
|
|
}
|
|
|
|
action native void A_FireMauler2Pre ();
|
|
action native void A_FireMauler2 ();
|
|
|
|
States
|
|
{
|
|
Ready:
|
|
MAUL IJKL 7 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
MAUL I 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
MAUL I 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
MAUL I 20 A_FireMauler2Pre;
|
|
MAUL J 10 A_Light1;
|
|
BLSF A 10 Bright A_FireMauler2;
|
|
MAUL B 10 Bright A_Light2;
|
|
MAUL C 2;
|
|
MAUL D 2 A_Light0;
|
|
MAUL E 2 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
|
|
// Mauler "Bullet" Puff -----------------------------------------------------
|
|
|
|
class MaulerPuff : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
+PUFFONACTORS
|
|
RenderStyle "Add";
|
|
DamageType "Disintegrate";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
MPUF AB 5;
|
|
POW1 ABCDE 4;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// The Mauler's Torpedo -----------------------------------------------------
|
|
|
|
class MaulerTorpedo : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 20;
|
|
Height 8;
|
|
Radius 13;
|
|
Damage 1;
|
|
DamageType "Disintegrate";
|
|
Projectile;
|
|
+STRIFEDAMAGE
|
|
MaxStepHeight 4;
|
|
RenderStyle "Add";
|
|
SeeSound "weapons/mauler2fire";
|
|
DeathSound "weapons/mauler2hit";
|
|
Obituary "$OB_MPMAULER";
|
|
}
|
|
|
|
native void A_MaulerTorpedoWave ();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
TORP ABCD 4 Bright;
|
|
Loop;
|
|
Death:
|
|
THIT AB 8 Bright;
|
|
THIT C 8 Bright A_MaulerTorpedoWave;
|
|
THIT DE 8 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// The mini torpedoes shot by the big torpedo --------------------------------
|
|
|
|
class MaulerTorpedoWave : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 35;
|
|
Radius 13;
|
|
Height 13;
|
|
Damage 10;
|
|
DamageType "Disintegrate";
|
|
Projectile;
|
|
+STRIFEDAMAGE
|
|
MaxStepHeight 4;
|
|
RenderStyle "Add";
|
|
Obituary "$OB_MPMAULER";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
TWAV AB 9 Bright;
|
|
Death:
|
|
TWAV C 9 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// High-Explosive Grenade ---------------------------------------------------
|
|
|
|
class HEGrenade : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 15;
|
|
Radius 13;
|
|
Height 13;
|
|
Mass 20;
|
|
Damage 1;
|
|
Reactiontime 30;
|
|
Projectile;
|
|
-NOGRAVITY
|
|
+STRIFEDAMAGE
|
|
+BOUNCEONACTORS
|
|
+EXPLODEONWATER
|
|
MaxStepHeight 4;
|
|
BounceType "Doom";
|
|
BounceFactor 0.5;
|
|
BounceCount 2;
|
|
SeeSound "weapons/hegrenadeshoot";
|
|
DeathSound "weapons/hegrenadebang";
|
|
Obituary "$OB_MPSTRIFEGRENADE";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
GRAP AB 3 A_Countdown;
|
|
Loop;
|
|
Death:
|
|
BNG4 A 0 Bright A_NoGravity;
|
|
BNG4 A 0 Bright A_SetRenderStyle(1, STYLE_Normal);
|
|
BNG4 A 2 Bright A_Explode(192, 192, alert:true);
|
|
BNG4 BCDEFGHIJKLMN 3 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// White Phosphorous Grenade ------------------------------------------------
|
|
|
|
class PhosphorousGrenade : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 15;
|
|
Radius 13;
|
|
Height 13;
|
|
Mass 20;
|
|
Damage 1;
|
|
Reactiontime 40;
|
|
Projectile;
|
|
-NOGRAVITY
|
|
+STRIFEDAMAGE
|
|
+BOUNCEONACTORS
|
|
+EXPLODEONWATER
|
|
BounceType "Doom";
|
|
MaxStepHeight 4;
|
|
BounceFactor 0.5;
|
|
BounceCount 2;
|
|
SeeSound "weapons/phgrenadeshoot";
|
|
DeathSound "weapons/phgrenadebang";
|
|
Obituary "$OB_MPPHOSPHOROUSGRENADE";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
GRIN AB 3 A_Countdown;
|
|
Loop;
|
|
Death:
|
|
BNG3 A 2 A_SpawnItemEx("PhosphorousFire");
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Fire from the Phoshorous Grenade -----------------------------------------
|
|
|
|
class PhosphorousFire : Actor native
|
|
{
|
|
Default
|
|
{
|
|
Reactiontime 120;
|
|
DamageType "Fire";
|
|
+NOBLOCKMAP
|
|
+FLOORCLIP
|
|
+NOTELEPORT
|
|
+NODAMAGETHRUST
|
|
+DONTSPLASH
|
|
RenderStyle "Add";
|
|
Obituary "$OB_MPPHOSPHOROUSGRENADE";
|
|
}
|
|
|
|
native void A_Burnarea ();
|
|
native void A_Burnination ();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
BNG3 B 2 Bright A_Burnarea;
|
|
BNG3 C 2 Bright A_Countdown;
|
|
FLBE A 2 Bright A_Burnination;
|
|
FLBE B 2 Bright A_Countdown;
|
|
FLBE C 2 Bright A_Burnarea;
|
|
FLBE D 3 Bright A_Countdown;
|
|
FLBE E 3 Bright A_Burnarea;
|
|
FLBE F 3 Bright A_Countdown;
|
|
FLBE G 3 Bright A_Burnination;
|
|
Goto Spawn+5;
|
|
Death:
|
|
FLBE H 2 Bright;
|
|
FLBE I 2 Bright A_Burnination;
|
|
FLBE JK 2 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// High-Explosive Grenade Launcher ------------------------------------------
|
|
|
|
class StrifeGrenadeLauncher : StrifeWeapon
|
|
{
|
|
Default
|
|
{
|
|
+FLOORCLIP
|
|
Weapon.SelectionOrder 2400;
|
|
Weapon.AmmoUse1 1;
|
|
Weapon.AmmoGive1 12;
|
|
Weapon.AmmoType1 "HEGrenadeRounds";
|
|
Weapon.SisterWeapon "StrifeGrenadeLauncher2";
|
|
Inventory.Icon "GRNDA0";
|
|
Tag "$TAG_GLAUNCHER1";
|
|
Inventory.PickupMessage "$TXT_GLAUNCHER";
|
|
}
|
|
|
|
action native void A_FireGrenade (class<Actor> grenadetype, double angleofs, statelabel flash);
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
GRND A -1;
|
|
Stop;
|
|
Ready:
|
|
GREN A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
GREN A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
GREN A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
GREN A 5 A_FireGrenade("HEGrenade", -90, "Flash");
|
|
GREN B 10;
|
|
GREN A 5 A_FireGrenade("HEGrenade", 90, "Flash2");
|
|
GREN C 10;
|
|
GREN A 0 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
GREF A 5 Bright A_Light1;
|
|
Goto LightDone;
|
|
Flash2:
|
|
GREF B 5 Bright A_Light2;
|
|
Goto LightDone;
|
|
}
|
|
|
|
}
|
|
|
|
// White Phosphorous Grenade Launcher ---------------------------------------
|
|
|
|
class StrifeGrenadeLauncher2 : StrifeGrenadeLauncher
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 3200;
|
|
Weapon.AmmoUse1 1;
|
|
Weapon.AmmoGive1 0;
|
|
Weapon.AmmoType1 "PhosphorusGrenadeRounds";
|
|
Weapon.SisterWeapon "StrifeGrenadeLauncher";
|
|
Tag "$TAG_GLAUNCHER2";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
GREN D 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
GREN D 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
GREN D 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
GREN D 5 A_FireGrenade("PhosphorousGrenade", -90, "Flash");
|
|
GREN E 10;
|
|
GREN D 5 A_FireGrenade("PhosphorousGrenade", 90, "Flash2");
|
|
GREN F 10;
|
|
GREN A 0 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
GREF C 5 Bright A_Light1;
|
|
Goto LightDone;
|
|
Flash2:
|
|
GREF D 5 Bright A_Light2;
|
|
Goto LightDone;
|
|
}
|
|
}
|
|
|