// -------------------------------------------------------------------------- // // Doom weapon base class // // -------------------------------------------------------------------------- class DoomWeapon : Weapon { Default { Weapon.Kickback 100; } } // -------------------------------------------------------------------------- // // Fist // // -------------------------------------------------------------------------- class Fist : Weapon { Default { Weapon.SelectionOrder 3700; Weapon.Kickback 100; Obituary "$OB_MPFIST"; Tag "$TAG_FIST"; +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON } States { Ready: PUNG A 1 A_WeaponReady; Loop; Deselect: PUNG A 1 A_Lower; Loop; Select: PUNG A 1 A_Raise; Loop; Fire: PUNG B 4; PUNG C 4 A_Punch; PUNG D 5; PUNG C 4; PUNG B 5 A_ReFire; Goto Ready; } } // -------------------------------------------------------------------------- // // Pistol // // -------------------------------------------------------------------------- class Pistol : DoomWeapon { Default { Weapon.SelectionOrder 1900; Weapon.AmmoUse 1; Weapon.AmmoGive 20; Weapon.AmmoType "Clip"; Obituary "$OB_MPPISTOL"; +WEAPON.WIMPY_WEAPON Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"; Tag "$TAG_PISTOL"; } States { Ready: PISG A 1 A_WeaponReady; Loop; Deselect: PISG A 1 A_Lower; Loop; Select: PISG A 1 A_Raise; Loop; Fire: PISG A 4; PISG B 6 A_FirePistol; PISG C 4; PISG B 5 A_ReFire; Goto Ready; Flash: PISF A 7 Bright A_Light1; Goto LightDone; PISF A 7 Bright A_Light1; Goto LightDone; Spawn: PIST A -1; Stop; } } // -------------------------------------------------------------------------- // // 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; } } // -------------------------------------------------------------------------- // // 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; } }