]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_hagar.qc
Bring back the debug prints -- working on fixing a bug with hagar secondary's "is_lin...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_hagar.qc
index dc2c11c9e595a83a211ebe38fd74929bf58f0c8b..aa0dcdcd6ecc5cfa5bd6729ed91c9ffd3e851b70 100644 (file)
@@ -25,11 +25,23 @@ void W_Hagar_Damage (entity inflictor, entity attacker, float damage, float deat
        if (self.health <= 0)
                return;
                
-       float is_linkexplode = ((inflictor.realowner == self.realowner) 
-               && ((inflictor.projectiledeathtype & HITTYPE_SECONDARY) && (self.projectiledeathtype & HITTYPE_SECONDARY))
-               && autocvar_g_balance_hagar_secondary_load_linkexplode);
+       float is_linkexplode = ((inflictor.owner == self.owner) 
+               && (inflictor.projectiledeathtype & HITTYPE_SECONDARY) 
+               && (self.projectiledeathtype & HITTYPE_SECONDARY));
                
-       print("is_linkexplode: ", ftos(is_linkexplode), ". \n");
+       /*
+       float is_linkexplode = ( ( ((inflictor.realowner == self.realowner) 
+       && (inflictor.projectiledeathtype & HITTYPE_SECONDARY))
+       || (deathtype == DEATH_SLIME || deathtype == DEATH_LAVA) ) 
+               && (self.projectiledeathtype & HITTYPE_SECONDARY) );
+       */
+       
+       if(is_linkexplode)
+               is_linkexplode = (is_linkexplode && autocvar_g_balance_hagar_secondary_load_linkexplode);
+       else
+               is_linkexplode = -1; // not secondary load, so continue as normal without exception.
+               
+       print(strcat("is_linkexplode: ", ftos(is_linkexplode), ", inflict_owner_classname: ", inflictor.owner.classname, ", self_owner_classname: ", self.owner.classname, ". \n"));
                
        if (!W_CheckProjectileDamage(inflictor.realowner, self.realowner, deathtype, is_linkexplode))
                return; // g_projectiles_damage says to halt
@@ -37,8 +49,6 @@ void W_Hagar_Damage (entity inflictor, entity attacker, float damage, float deat
        self.health = self.health - damage;
        self.angles = vectoangles(self.velocity);
        
-       print(strcat("hagar rocket health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n"));
-       
        if (self.health <= 0)
                W_PrepareExplosionByDamage(attacker, self.think);
 }
@@ -66,7 +76,7 @@ void W_Hagar_Touch2 (void)
 
 void W_Hagar_Attack (void)
 {
-       local entity missile;
+       entity missile;
 
        W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_reload_ammo);
 
@@ -108,7 +118,7 @@ void W_Hagar_Attack (void)
 
 void W_Hagar_Attack2 (void)
 {
-       local entity missile;
+       entity missile;
 
        W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_hagar_secondary_ammo, autocvar_g_balance_hagar_reload_ammo);
 
@@ -154,9 +164,9 @@ void W_Hagar_Attack2_Load_Release (void)
 {
        // time to release the rockets we've loaded
 
-       local entity missile;
-       local float counter, shots, spread_pershot;
-       local vector s;
+       entity missile;
+       float counter, shots, spread_pershot;
+       vector s;
        vector forward, right, up;
 
        if(!self.hagar_load)
@@ -235,12 +245,12 @@ void W_Hagar_Attack2_Load (void)
 {
        // loadable hagar secondary attack, must always run each frame
 
-       local float loaded, enough_ammo;
+       float loaded, enough_ammo;
        loaded = self.hagar_load >= autocvar_g_balance_hagar_secondary_load_max;
 
        // this is different than WR_CHECKAMMO when it comes to reloading
        if(autocvar_g_balance_hagar_reload_ammo)
-               enough_ammo = self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_secondary_ammo;
+               enough_ammo = self.(weapon_load[WEP_HAGAR]) >= autocvar_g_balance_hagar_secondary_ammo;
        else
                enough_ammo = self.ammo_rockets >= autocvar_g_balance_hagar_secondary_ammo;
 
@@ -348,7 +358,7 @@ float w_hagar(float req)
                }
        else if (req == WR_THINK)
        {
-               local float loadable_secondary;
+               float loadable_secondary;
                loadable_secondary = autocvar_g_balance_hagar_secondary_load && autocvar_g_balance_hagar_secondary;
 
                if (loadable_secondary)
@@ -406,13 +416,13 @@ float w_hagar(float req)
        else if (req == WR_CHECKAMMO1)
        {
                ammo_amount = self.ammo_rockets >= autocvar_g_balance_hagar_primary_ammo;
-               ammo_amount += self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_primary_ammo;
+               ammo_amount += self.(weapon_load[WEP_HAGAR]) >= autocvar_g_balance_hagar_primary_ammo;
                return ammo_amount;
        }
        else if (req == WR_CHECKAMMO2)
        {
                ammo_amount = self.ammo_rockets >= autocvar_g_balance_hagar_secondary_ammo;
-               ammo_amount += self.weapon_load[WEP_HAGAR] >= autocvar_g_balance_hagar_secondary_ammo;
+               ammo_amount += self.(weapon_load[WEP_HAGAR]) >= autocvar_g_balance_hagar_secondary_ammo;
                return ammo_amount;
        }
        else if (req == WR_RESETPLAYER)
@@ -431,7 +441,7 @@ float w_hagar(float req)
                        W_Reload(min(autocvar_g_balance_hagar_primary_ammo, autocvar_g_balance_hagar_secondary_ammo), autocvar_g_balance_hagar_reload_ammo, autocvar_g_balance_hagar_reload_time, "weapons/reload.wav");
        }
        return TRUE;
-};
+}
 #endif
 #ifdef CSQC
 float w_hagar(float req)
@@ -458,13 +468,13 @@ float w_hagar(float req)
                precache_sound("weapons/hagexp3.wav");
        }
        else if (req == WR_SUICIDEMESSAGE)
-               w_deathtypestring = _("%s played with tiny rockets");
+               w_deathtypestring = _("%s played with tiny hagar rockets");
        else if (req == WR_KILLMESSAGE)
        {
                if(w_deathtype & HITTYPE_BOUNCE) // must be secondary; unchecked: SPLASH
-                       w_deathtypestring = _("%s hoped %s's missiles wouldn't bounce");
+                       w_deathtypestring = _("%s was pummeled with a burst of hagar rockets by %s");
                else // unchecked: SPLASH, SECONDARY
-                       w_deathtypestring = _("%s was pummeled by %s");
+                       w_deathtypestring = _("%s was pummeled with hagar rockets by %s");
        }
        return TRUE;
 }