// -------------------------------------------------------------------------- // // Doom weapon base class // // -------------------------------------------------------------------------- class DoomWeapon : Weapon { Default { Weapon.Kickback 100; } } // -------------------------------------------------------------------------- // // 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; } }