]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_electro.qc
new lg beam, and use CHAN_WEAPON. However now the secondary stops the lightning fire...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_electro.qc
index 72f97da34a51afbdf3be7544ee66d90fee0acbdf..4eadbac21d523e1d23f9053ba6c815e2f9816e5a 100644 (file)
@@ -185,9 +185,10 @@ void W_Electro_Attack2()
 }
 
 .entity lgbeam, exteriorlgbeam;
-.float nextdamagethink;
+.float prevlgfire;
 void lgbeam_think()
 {
+       self.owner.prevlgfire = time;
        if (self.owner.weaponentity.state != WS_INUSE || (self.owner.ammo_cells <= 0 && !(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)) || self != self.owner.lgbeam || self.owner.deadflag != DEAD_NO || !self.owner.BUTTON_ATCK)
        {
                remove(self);
@@ -241,11 +242,15 @@ void lgbeam_think()
 // experimental lightning gun
 void W_Electro_Attack3 (void)
 {
+       // only play fire sound if 0.5 sec has passed since player let go the fire button
+       if(time - self.prevlgfire > 0.5)
+       {
+               sound (self, CHAN_WEAPON, "weapons/lgbeam_fire.wav", VOL_BASE, ATTN_NORM);
+       }
+
        entity beam, oldself;
 
        self.lgbeam = beam = spawn();
-       setmodel(beam,"models/turrets/phaser_beam.md3");
-       beam.effects = EF_LOWPRECISION;
        beam.solid = SOLID_NOT;
        beam.think = lgbeam_think;
        beam.owner = self;
@@ -263,10 +268,10 @@ void W_Electro_Attack3 (void)
 void ElectroInit()
 {
        weapon_action(WEP_ELECTRO, WR_PRECACHE);
-       electro_shotorigin[0] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), TRUE, FALSE, 1);
-       electro_shotorigin[1] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), TRUE, FALSE, 2);
-       electro_shotorigin[2] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), TRUE, FALSE, 3);
-       electro_shotorigin[3] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), TRUE, FALSE, 4);
+       electro_shotorigin[0] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), FALSE, FALSE, 1);
+       electro_shotorigin[1] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), FALSE, FALSE, 2);
+       electro_shotorigin[2] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), FALSE, FALSE, 3);
+       electro_shotorigin[3] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_ELECTRO), FALSE, FALSE, 4);
 }
 
 void spawnfunc_weapon_electro (void)
@@ -361,7 +366,9 @@ float w_electro(float req)
                precache_sound ("weapons/electro_impact.wav");
                precache_sound ("weapons/electro_impact_combo.wav");
                if(cvar("g_balance_electro_lightning"))
-                       precache_sound ("weapons/crylink_fire2.wav");
+               {
+                       precache_sound ("weapons/lgbeam_fire.wav");
+               }
        }
        else if (req == WR_SETUP)
                weapon_setup(WEP_ELECTRO);