]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote branch 'origin/fruitiex/fruitbalance' into divVerent/fruitbalance
authorRudolf Polzer <divverent@alientrap.org>
Fri, 23 Jul 2010 05:53:02 +0000 (07:53 +0200)
committerRudolf Polzer <divverent@alientrap.org>
Fri, 23 Jul 2010 05:53:02 +0000 (07:53 +0200)
1  2 
qcsrc/server/w_electro.qc
qcsrc/server/w_laser.qc

index 2be1573cd34e0c6b049acfffbb8eba464b4bc328,ef478e2b225e109170b53827e46ba5169e0c9a56..fed520492c5857d644cc090c7533ad4ffb87f77a
@@@ -215,8 -215,6 +215,8 @@@ float lgbeam_send(entity to, float sf
  void lgbeam_think()
  {
        vector endpos;
 +      float oldsolid;
 +
        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)
        {
                vecs = debug_shotorg;
        org = self.owner.origin + self.owner.view_ofs + v_forward * vecs_x + v_right * -vecs_y + v_up * vecs_z;
  
 -      WarpZone_traceline_antilag(self.owner, self.owner.origin + self.owner.view_ofs, self.owner.origin + self.owner.view_ofs + angle * cvar("g_balance_electro_primary_range"), FALSE, self.owner, ANTILAG_LATENCY(self.owner));
 +      oldsolid = self.owner.dphitcontentsmask;
 +      self.owner.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
 +
 +      WarpZone_traceline_antilag(self.owner, self.owner.origin + self.owner.view_ofs, self.owner.origin + self.owner.view_ofs + angle * cvar("g_balance_electro_primary_range"), MOVE_NORMAL, self.owner, ANTILAG_LATENCY(self.owner));
        endpos = WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos);
 -      WarpZone_traceline_antilag(self.owner, org, endpos, FALSE, self.owner, ANTILAG_LATENCY(self.owner));
 +      WarpZone_traceline_antilag(self.owner, org, endpos + 4 * normalize(endpos - org), MOVE_NORMAL, self.owner, ANTILAG_LATENCY(self.owner));
 +
 +      self.owner.dphitcontentsmask = oldsolid;
  
        if not(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)
                self.owner.ammo_cells = max(0, self.owner.ammo_cells - cvar("g_balance_electro_primary_ammo") * frametime);
@@@ -360,7 -353,7 +360,7 @@@ float w_electro(float req
        {
                if (self.BUTTON_ATCK)
                {
-                       if (weapon_prepareattack(0, cvar("g_balance_electro_primary_refire")))
+                       if (weapon_prepareattack(0, (cvar("g_balance_electro_lightning") ? 0 : cvar("g_balance_electro_primary_refire"))))
                        {
                                if(cvar("g_balance_electro_lightning"))
                                {
diff --combined qcsrc/server/w_laser.qc
index 870c26627819df6a7af355e508025a016ad5e243,49e2cc47c96309f45b10b9bfe5006f8e52502b2f..c3840ac9e67f9a89b76ed9e1f67ec668d834811a
@@@ -132,8 -132,6 +132,8 @@@ float gauntletbeam_send(entity to, floa
  void gauntletbeam_think()
  {
        vector endpos;
 +      float oldsolid;
 +
        float damage, myforce, myradius;
        if(self.cnt)
        {
                vecs = debug_shotorg;
        org = self.owner.origin + self.owner.view_ofs + v_forward * vecs_x + v_right * -vecs_y + v_up * vecs_z;
        
 -      WarpZone_traceline_antilag(self.owner, self.owner.origin + self.owner.view_ofs, self.owner.origin + self.owner.view_ofs + angle * myradius, FALSE, self.owner, ANTILAG_LATENCY(self.owner));
 +      oldsolid = self.owner.dphitcontentsmask;
 +      self.owner.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
 +
 +      WarpZone_traceline_antilag(self.owner, self.owner.origin + self.owner.view_ofs, self.owner.origin + self.owner.view_ofs + angle * myradius, MOVE_NORMAL, self.owner, ANTILAG_LATENCY(self.owner));
        endpos = WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos);
 -      WarpZone_traceline_antilag(self.owner, org, endpos, FALSE, self.owner, ANTILAG_LATENCY(self.owner));
 +      WarpZone_traceline_antilag(self.owner, org, endpos + 4 * normalize(endpos - org), MOVE_NORMAL, self.owner, ANTILAG_LATENCY(self.owner));
 +
 +      self.owner.dphitcontentsmask = oldsolid;
  
        // apply the damage
        if(trace_fraction < 1)
@@@ -263,7 -256,7 +263,7 @@@ float w_laser(float req
        else if (req == WR_THINK)
        {
                if (self.BUTTON_ATCK)
-               if (weapon_prepareattack(0, cvar("g_balance_laser_primary_refire")))
+               if (weapon_prepareattack(0, (cvar("g_balance_laser_primary_gauntlet") ? 0 : cvar("g_balance_laser_primary_refire"))))
                {
                        if(cvar("g_balance_laser_primary_gauntlet"))
                                W_Laser_Attack2(0);
                {
                        if(cvar("g_balance_laser_secondary"))
                        {
-                               if (weapon_prepareattack(0, cvar("g_balance_laser_secondary_refire")))
+                               if (weapon_prepareattack(0, (cvar("g_balance_laser_secondary_gauntlet") ? 0 : cvar("g_balance_laser_secondary_refire"))))
                                {
                                        if(cvar("g_balance_laser_secondary_gauntlet"))
                                                W_Laser_Attack2(1);