]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_hagar.qc
Also update the reload delay when firing, to add a forced pause that was missing
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_hagar.qc
index 53419540060eb80a63d176a0404d40703ba3e15b..d4b47a29e55ff64231e9b8bd8b7f5496db0a138a 100644 (file)
@@ -130,7 +130,7 @@ void W_Hagar_Attack2_Load (void)
        local vector s;
        vector forward, right, up;
 
-       loaded = self.hagar_load >= autocvar_g_balance_hagar_secondary_load_maxload;
+       loaded = self.hagar_load >= autocvar_g_balance_hagar_secondary_load_max;
 
        // check if we have enough ammo for another rocket
        used_ammo = autocvar_g_balance_hagar_secondary_ammo;
@@ -150,15 +150,16 @@ void W_Hagar_Attack2_Load (void)
                        self.hagarload_refire = time + autocvar_g_balance_hagar_secondary_refire;
                }
        }
-       else if(self.hagar_load && (!self.BUTTON_ATCK2 || ((loaded || !enough_ammo) && !autocvar_g_balance_hagar_secondary_load_canhold)))
+       else if(self.hagar_load && (!self.BUTTON_ATCK2 || ((loaded || !enough_ammo) && !autocvar_g_balance_hagar_secondary_load_hold)))
+       if(weapon_prepareattack(0, autocvar_g_balance_hagar_secondary_refire))
        {
                // time to release the rockets we've loaded
 
+               W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo * self.hagar_load, autocvar_g_balance_hagar_reload_ammo);
+
                W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", CHAN_WEAPON, autocvar_g_balance_hagar_secondary_damage);
                pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
-               W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo * self.hagar_load, autocvar_g_balance_hagar_reload_ammo);
-
                forward = v_forward;
                right = v_right;
                up = v_up;
@@ -192,8 +193,8 @@ void W_Hagar_Attack2_Load (void)
                        }
                        prevmissile = missile;
 
-                       missile.touch = W_Hagar_Touch;
-                       missile.use = W_Hagar_Explode;
+                       missile.touch = W_Hagar_Touch; // not bouncy
+                       missile.use = W_Hagar_Explode2;
                        missile.think = adaptor_think2use_hittype_splash;
                        missile.nextthink = time + autocvar_g_balance_hagar_secondary_lifetime_min + random() * autocvar_g_balance_hagar_secondary_lifetime_rand;
                        PROJECTILE_MAKETRIGGER(missile);
@@ -224,6 +225,8 @@ void W_Hagar_Attack2_Load (void)
                        counter = counter + 1;
                }
 
+               weapon_thinkf(WFRAME_DONTCHANGE, autocvar_g_balance_hagar_secondary_refire, w_ready);
+               self.hagarload_refire = time + autocvar_g_balance_hagar_secondary_refire;
                self.hagar_load = 0;
        }
 }