mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-13 16:07:55 +00:00
d50da34664
- made APlayerPawn::PlayAttacking(2) virtual script functions so that mods have better control over player animations. Note that these have no native base so they skip the templated interface for managing virtual functions.
540 lines
8.4 KiB
Text
540 lines
8.4 KiB
Text
// --------------------------------------------------------------------------
|
|
//
|
|
// Doom weapon base class
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class DoomWeapon : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 100;
|
|
}
|
|
}
|
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Chainsaw
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Chainsaw : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 0;
|
|
Weapon.SelectionOrder 2200;
|
|
Weapon.UpSound "weapons/sawup";
|
|
Weapon.ReadySound "weapons/sawidle";
|
|
Inventory.PickupMessage "$GOTCHAINSAW";
|
|
Obituary "$OB_MPCHAINSAW";
|
|
Tag "$TAG_CHAINSAW";
|
|
+WEAPON.MELEEWEAPON
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
SAWG CD 4 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
SAWG C 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
SAWG C 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
SAWG AB 4 A_Saw;
|
|
SAWG B 0 A_ReFire;
|
|
Goto Ready;
|
|
Spawn:
|
|
CSAW A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Shotgun
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Shotgun : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 1300;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 8;
|
|
Weapon.AmmoType "Shell";
|
|
Inventory.PickupMessage "$GOTSHOTGUN";
|
|
Obituary "$OB_MPSHOTGUN";
|
|
Tag "$TAG_SHOTGUN";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
SHTG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
SHTG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
SHTG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
SHTG A 3;
|
|
SHTG A 7 A_FireShotgun;
|
|
SHTG BC 5;
|
|
SHTG D 4;
|
|
SHTG CB 5;
|
|
SHTG A 3;
|
|
SHTG A 7 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
SHTF A 4 Bright A_Light1;
|
|
SHTF B 3 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
SHOT A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Shotgun
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class SuperShotgun : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 400;
|
|
Weapon.AmmoUse 2;
|
|
Weapon.AmmoGive 8;
|
|
Weapon.AmmoType "Shell";
|
|
Inventory.PickupMessage "$GOTSHOTGUN2";
|
|
Obituary "$OB_MPSSHOTGUN";
|
|
Tag "$TAG_SUPERSHOTGUN";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
SHT2 A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
SHT2 A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
SHT2 A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
SHT2 A 3;
|
|
SHT2 A 7 A_FireShotgun2;
|
|
SHT2 B 7;
|
|
SHT2 C 7 A_CheckReload;
|
|
SHT2 D 7 A_OpenShotgun2;
|
|
SHT2 E 7;
|
|
SHT2 F 7 A_LoadShotgun2;
|
|
SHT2 G 6;
|
|
SHT2 H 6 A_CloseShotgun2;
|
|
SHT2 A 5 A_ReFire;
|
|
Goto Ready;
|
|
// unused states
|
|
SHT2 B 7;
|
|
SHT2 A 3;
|
|
Goto Deselect;
|
|
Flash:
|
|
SHT2 I 4 Bright A_Light1;
|
|
SHT2 J 3 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
SGN2 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Chaingun
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Chaingun : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 700;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 20;
|
|
Weapon.AmmoType "Clip";
|
|
Inventory.PickupMessage "$GOTCHAINGUN";
|
|
Obituary "$OB_MPCHAINGUN";
|
|
Tag "$TAG_CHAINGUN";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
CHGG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
CHGG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
CHGG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
CHGG AB 4 A_FireCGun;
|
|
CHGG B 0 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
CHGF A 5 Bright A_Light1;
|
|
Goto LightDone;
|
|
CHGF B 5 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
MGUN A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Rocket launcher
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class RocketLauncher : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 2500;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 2;
|
|
Weapon.AmmoType "RocketAmmo";
|
|
+WEAPON.NOAUTOFIRE
|
|
Inventory.PickupMessage "$GOTLAUNCHER";
|
|
Tag "$TAG_ROCKETLAUNCHER";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
MISG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
MISG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
MISG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
MISG B 8 A_GunFlash;
|
|
MISG B 12 A_FireMissile;
|
|
MISG B 0 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
MISF A 3 Bright A_Light1;
|
|
MISF B 4 Bright;
|
|
MISF CD 4 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
LAUN A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class Rocket : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 11;
|
|
Height 8;
|
|
Speed 20;
|
|
Damage 20;
|
|
Projectile;
|
|
+RANDOMIZE
|
|
+DEHEXPLOSION
|
|
+ROCKETTRAIL
|
|
SeeSound "weapons/rocklf";
|
|
DeathSound "weapons/rocklx";
|
|
Obituary "$OB_MPROCKET";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
MISL A 1 Bright;
|
|
Loop;
|
|
Death:
|
|
MISL B 8 Bright A_Explode;
|
|
MISL C 6 Bright;
|
|
MISL D 4 Bright;
|
|
Stop;
|
|
BrainExplode:
|
|
MISL BC 10 Bright;
|
|
MISL D 10 A_BrainExplode;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Grenade -- Taken and adapted from Skulltag, with MBF stuff added to it
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Grenade : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 8;
|
|
Height 8;
|
|
Speed 25;
|
|
Damage 20;
|
|
Projectile;
|
|
-NOGRAVITY
|
|
+RANDOMIZE
|
|
+DEHEXPLOSION
|
|
+GRENADETRAIL
|
|
BounceType "Doom";
|
|
Gravity 0.25;
|
|
SeeSound "weapons/grenlf";
|
|
DeathSound "weapons/grenlx";
|
|
BounceSound "weapons/grbnce";
|
|
Obituary "$OB_GRENADE";
|
|
DamageType "Grenade";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
SGRN A 1 Bright;
|
|
Loop;
|
|
Death:
|
|
MISL B 8 Bright A_Explode;
|
|
MISL C 6 Bright;
|
|
MISL D 4 Bright;
|
|
Stop;
|
|
Grenade:
|
|
MISL A 1000 A_Die;
|
|
Wait;
|
|
Detonate:
|
|
MISL B 4 A_Scream;
|
|
MISL C 6 A_Detonate;
|
|
MISL D 10;
|
|
Stop;
|
|
Mushroom:
|
|
MISL B 8 A_Mushroom;
|
|
Goto Death+1;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Plasma rifle
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class PlasmaRifle : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 100;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 40;
|
|
Weapon.AmmoType "Cell";
|
|
Inventory.PickupMessage "$GOTPLASMA";
|
|
Tag "$TAG_PLASMARIFLE";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
PLSG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
PLSG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
PLSG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
PLSG A 3 A_FirePlasma;
|
|
PLSG B 20 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
PLSF A 4 Bright A_Light1;
|
|
Goto LightDone;
|
|
PLSF B 4 Bright A_Light1;
|
|
Goto LightDone;
|
|
Spawn:
|
|
PLAS A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class PlasmaBall : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 13;
|
|
Height 8;
|
|
Speed 25;
|
|
Damage 5;
|
|
Projectile;
|
|
+RANDOMIZE
|
|
RenderStyle "Add";
|
|
Alpha 0.75;
|
|
SeeSound "weapons/plasmaf";
|
|
DeathSound "weapons/plasmax";
|
|
Obituary "$OB_MPPLASMARIFLE";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
PLSS AB 6 Bright;
|
|
Loop;
|
|
Death:
|
|
PLSE ABCDE 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// BFG 2704
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class PlasmaBall1 : PlasmaBall
|
|
{
|
|
Default
|
|
{
|
|
Damage 4;
|
|
BounceType "Classic";
|
|
BounceFactor 1.0;
|
|
Obituary "$OB_MPBFG_MBF";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
PLS1 AB 6 Bright;
|
|
Loop;
|
|
Death:
|
|
PLS1 CDEFG 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class PlasmaBall2 : PlasmaBall1
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
PLS2 AB 6 Bright;
|
|
Loop;
|
|
Death:
|
|
PLS2 CDE 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// BFG 9000
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class BFG9000 : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Height 20;
|
|
Weapon.SelectionOrder 2800;
|
|
Weapon.AmmoUse 40;
|
|
Weapon.AmmoGive 40;
|
|
Weapon.AmmoType "Cell";
|
|
+WEAPON.NOAUTOFIRE;
|
|
Inventory.PickupMessage "$GOTBFG9000";
|
|
Tag "$TAG_BFG9000";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
BFGG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
BFGG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
BFGG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
BFGG A 20 A_BFGsound;
|
|
BFGG B 10 A_GunFlash;
|
|
BFGG B 10 A_FireBFG;
|
|
BFGG B 20 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
BFGF A 11 Bright A_Light1;
|
|
BFGF B 6 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
BFUG A -1;
|
|
Stop;
|
|
OldFire:
|
|
BFGG A 10 A_BFGsound;
|
|
BFGG BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 1 A_FireOldBFG;
|
|
BFGG B 0 A_Light0;
|
|
BFGG B 20 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
|
|
class BFGBall : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 13;
|
|
Height 8;
|
|
Speed 25;
|
|
Damage 100;
|
|
Projectile;
|
|
+RANDOMIZE
|
|
RenderStyle "Add";
|
|
Alpha 0.75;
|
|
DeathSound "weapons/bfgx";
|
|
Obituary "$OB_MPBFG_BOOM";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BFS1 AB 4 Bright;
|
|
Loop;
|
|
Death:
|
|
BFE1 AB 8 Bright;
|
|
BFE1 C 8 Bright A_BFGSpray;
|
|
BFE1 DEF 8 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class BFGExtra : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
RenderStyle "Add";
|
|
Alpha 0.75;
|
|
DamageType "BFGSplash";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BFE2 ABCD 8 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|