qzdoom-gpl/wadsrc/static/zscript/strife/strifeweapons.txt
2016-11-29 13:28:43 +01:00

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;
}
}