]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_electro.qc
scores sorting: use strict and nonstrict sorting where useful
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_electro.qc
index b127f5cbac8523d41e5059b84e2d34243181236a..ad1fbf0fddcf2a02eb261cd7ec830b4f466c0662 100644 (file)
@@ -9,7 +9,7 @@ void W_Plasma_Explode_Combo (void);
 
 void W_Plasma_TriggerCombo(vector org, float rad, entity own)
 {
-       local entity e;
+       entity e;
        e = WarpZone_FindRadius(org, rad, TRUE);
        while (e)
        {
@@ -35,7 +35,7 @@ void W_Plasma_Explode (void)
                                        if(IsFlying(other))
                                                AnnounceTo(self.realowner, "electrobitch");
 
-       self.event_damage = SUB_Null;
+       self.event_damage = func_null;
        self.takedamage = DAMAGE_NO;
        if (self.movetype == MOVETYPE_BOUNCE)
        {
@@ -54,7 +54,7 @@ void W_Plasma_Explode_Combo (void)
 {
        W_Plasma_TriggerCombo(self.origin, autocvar_g_balance_electro_combo_comboradius, self.realowner);
 
-       self.event_damage = SUB_Null;
+       self.event_damage = func_null;
        RadiusDamage (self, self.realowner, autocvar_g_balance_electro_combo_damage, autocvar_g_balance_electro_combo_edgedamage, autocvar_g_balance_electro_combo_radius, world, autocvar_g_balance_electro_combo_force, WEP_ELECTRO | HITTYPE_BOUNCE, world); // use THIS type for a combo because primary can't bounce
        remove (self);
 }
@@ -114,7 +114,7 @@ void W_Plasma_Damage (entity inflictor, entity attacker, float damage, float dea
 
 void W_Electro_Attack()
 {
-       local entity proj;
+       entity proj;
 
        W_DecreaseAmmo(ammo_cells, autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_reload_ammo);
 
@@ -140,6 +140,7 @@ void W_Electro_Attack()
        proj.touch = W_Plasma_TouchExplode;
        setsize(proj, '0 0 -3', '0 0 -3');
        proj.flags = FL_PROJECTILE;
+       proj.missile_flags = MIF_SPLASH;
 
        CSQCProjectile(proj, TRUE, PROJECTILE_ELECTRO_BEAM, TRUE);
 
@@ -148,7 +149,7 @@ void W_Electro_Attack()
 
 void W_Electro_Attack2()
 {
-       local entity proj;
+       entity proj;
 
        W_DecreaseAmmo(ammo_cells, autocvar_g_balance_electro_secondary_ammo, autocvar_g_balance_electro_reload_ammo);
 
@@ -185,6 +186,7 @@ void W_Electro_Attack2()
 
        proj.bouncefactor = autocvar_g_balance_electro_secondary_bouncefactor;
        proj.bouncestop = autocvar_g_balance_electro_secondary_bouncestop;
+       proj.missile_flags = MIF_SPLASH | MIF_ARC;
 
 #if 0
        entity p2;
@@ -414,6 +416,7 @@ float w_electro(float req)
        {
                if(autocvar_g_balance_electro_reload_ammo) // forced reload
                {
+                       ammo_amount = 0;
                        if(autocvar_g_balance_electro_lightning)
                        {
                                if(self.clip_load > 0)
@@ -525,8 +528,16 @@ float w_electro(float req)
        }
        else if (req == WR_CHECKAMMO2)
        {
-               ammo_amount = self.ammo_cells >= autocvar_g_balance_electro_secondary_ammo;
-               ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= autocvar_g_balance_electro_secondary_ammo;
+               if(autocvar_g_balance_electro_combo_safeammocheck) // true if you can fire at least one secondary blob AND one primary shot after it, otherwise false.
+               {
+                       ammo_amount = self.ammo_cells >= autocvar_g_balance_electro_secondary_ammo + autocvar_g_balance_electro_primary_ammo;
+                       ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= autocvar_g_balance_electro_secondary_ammo + autocvar_g_balance_electro_primary_ammo;
+               }
+               else
+               {
+                       ammo_amount = self.ammo_cells >= autocvar_g_balance_electro_secondary_ammo;
+                       ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= autocvar_g_balance_electro_secondary_ammo;
+               }
                return ammo_amount;
        }
        else if (req == WR_RESETPLAYER)
@@ -538,7 +549,7 @@ float w_electro(float req)
                W_Reload(min(autocvar_g_balance_electro_primary_ammo, autocvar_g_balance_electro_secondary_ammo), autocvar_g_balance_electro_reload_ammo, autocvar_g_balance_electro_reload_time, "weapons/reload.wav");
        }
        return TRUE;
-};
+}
 #endif
 #ifdef CSQC
 float w_electro(float req)
@@ -578,27 +589,27 @@ float w_electro(float req)
        else if (req == WR_SUICIDEMESSAGE)
        {
                if(w_deathtype & HITTYPE_SECONDARY)
-                       w_deathtypestring = _("%s could not remember where they put plasma");
+                       w_deathtypestring = _("%s could not remember where they put their electro plasma");
                else
-                       w_deathtypestring = _("%s played with plasma");
+                       w_deathtypestring = _("%s played with electro plasma");
        }
        else if (req == WR_KILLMESSAGE)
        {
                if(w_deathtype & HITTYPE_SECONDARY)
                {
                        if(w_deathtype & HITTYPE_SPLASH) // unchecked: BOUNCE
-                               w_deathtypestring = _("%s just noticed %s's blue ball");
+                               w_deathtypestring = _("%s just noticed %s's electro plasma");
                        else // unchecked: BOUNCE
-                               w_deathtypestring = _("%s got in touch with %s's blue ball");
+                               w_deathtypestring = _("%s got in touch with %s's electro plasma");
                }
                else
                {
                        if(w_deathtype & HITTYPE_BOUNCE) // combo
-                               w_deathtypestring = _("%s felt the electrifying air of %s's combo");
+                               w_deathtypestring = _("%s felt the electrifying air of %s's electro combo");
                        else if(w_deathtype & HITTYPE_SPLASH)
-                               w_deathtypestring = _("%s got too close to %s's blue beam");
+                               w_deathtypestring = _("%s got too close to %s's blue electro bolt");
                        else
-                               w_deathtypestring = _("%s was blasted by %s's blue beam");
+                               w_deathtypestring = _("%s was blasted by %s's blue electro bolt");
                }
        }
        return TRUE;