]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix several bugs, plus some more progress all around
authorSamual <samual@xonotic.org>
Wed, 28 Sep 2011 04:41:36 +0000 (00:41 -0400)
committerSamual <samual@xonotic.org>
Wed, 28 Sep 2011 04:41:36 +0000 (00:41 -0400)
balanceXonotic.cfg
qcsrc/server/autocvars.qh
qcsrc/server/sv_main.qc
qcsrc/server/w_grenadelauncher.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_minelayer.qc
qcsrc/server/w_rocketlauncher.qc
qcsrc/server/w_seeker.qc

index e2e20fc3b3422422ffbb1545c61ec6dc87319896..92cb68912130de3429a7f9501bfea99b9b55043e 100644 (file)
@@ -179,11 +179,11 @@ set g_balance_falldamage_minspeed 900
 set g_balance_falldamage_factor 0.20
 set g_balance_falldamage_maxdamage 40
 set g_balance_damagepush_speedfactor 2.5
-set g_balance_contents_damagerate 10
+set g_balance_contents_damagerate 5
 set g_balance_contents_playerdamage_drowning 20
 set g_balance_contents_playerdamage_lava 50
 set g_balance_contents_playerdamage_slime 30
-set g_balance_contents_projectiledamage 40
+set g_balance_contents_projectiledamage 100
 // }}}
 
 // {{{ powerups
@@ -328,7 +328,7 @@ set g_balance_grenadelauncher_primary_lifetime2 1
 set g_balance_grenadelauncher_primary_refire 0.8
 set g_balance_grenadelauncher_primary_animtime 0.3
 set g_balance_grenadelauncher_primary_ammo 2
-set g_balance_grenadelauncher_primary_health 10
+set g_balance_grenadelauncher_primary_health 15
 set g_balance_grenadelauncher_primary_damageforcescale 0
 set g_balance_grenadelauncher_primary_remote_minbouncecnt 0
 
index 64b6b7411303eef073c896f8d5136333a28d811a..8f0c3f015f169da0ea8376cbc29b56dd80fd8aa3 100644 (file)
@@ -338,6 +338,7 @@ float autocvar_g_balance_hagar_secondary_load_max;
 float autocvar_g_balance_hagar_secondary_load_hold;
 float autocvar_g_balance_hagar_secondary_load_releasedeath;
 float autocvar_g_balance_hagar_secondary_load_abort;
+float autocvar_g_balance_hagar_secondary_load_linkexplode;
 float autocvar_g_balance_hagar_secondary_ammo;
 float autocvar_g_balance_hagar_secondary_damage;
 float autocvar_g_balance_hagar_secondary_edgedamage;
index 96b3b867139347b5270e5fb53a31eb57b13d70ec..3d2f562977f564689ff04213c59c23a2c6d13cb5 100644 (file)
@@ -1,4 +1,3 @@
-
 void CreatureFrame (void)
 {
        local entity oldself;
@@ -15,13 +14,16 @@ void CreatureFrame (void)
                float vehic = (self.vehicle_flags & VHF_ISVEHICLE);
                float projectile = (self.projectiledeathtype);
                
-               if (self.waterlevel)
+               //if(projectile)
+               //      print("waterlevel: ", ftos((self.watertype <= CONTENT_WATER && self.waterlevel > 0)), ". \n");
+               
+               if (self.watertype <= CONTENT_WATER && self.waterlevel > 0) // workaround a retarded bug made by id software :P (yes, it's that old of a bug)
                {
                        if (!(self.flags & FL_INWATER))
                        {
                                self.flags |= FL_INWATER;
                                self.dmgtime = 0;
-                               te_customflash(self.origin, 40,  2, '50 1 1');
+                               //te_customflash(self.origin, 200, 20, '50 0.1 0.1');
                        }
                        
                        if(!vehic && !projectile) // vehicles and projectiles don't drown
@@ -82,6 +84,7 @@ void CreatureFrame (void)
                                // play leave water sound
                                self.flags &~= FL_INWATER;
                                self.dmgtime = 0;
+                               //te_customflash(self.origin, 200, 20, '0.1 0.1 50');
                        }
                        self.air_finished = time + 12;
                        self.dmg = 2;
index dcaa1f7ce4d0f23e1c344a7df20344ce5dbce923..929b10528325160aa13c2b6500ac97b6cf20496f 100644 (file)
@@ -50,10 +50,11 @@ void W_Grenade_Damage (entity inflictor, entity attacker, float damage, float de
        if (self.health <= 0)
                return;
        self.health = self.health - damage;
+       
+       print(strcat("grenade health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n"));
+       
        if (self.health <= 0)
-       {
-               W_PrepareExplosionByDamage(attacker, self.think);
-       }
+               W_PrepareExplosionByDamage(attacker, self.use);
 }
 
 void W_Grenade_Think1 (void)
@@ -243,6 +244,7 @@ void W_Grenade_Attack2 (void)
        gren.health = autocvar_g_balance_grenadelauncher_secondary_health;
        gren.damageforcescale = autocvar_g_balance_grenadelauncher_secondary_damageforcescale;
        gren.event_damage = W_Grenade_Damage;
+       gren.damagedbycontents = TRUE;
        W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_secondary);
 
        gren.angles = vectoangles (gren.velocity);
index 97c4e001cc4797ee49918722c88eaaed3d20219b..e7eede1758794b193038043974b06913e4a4ef40 100644 (file)
@@ -24,8 +24,15 @@ void W_Hagar_Damage (entity inflictor, entity attacker, float damage, float deat
 {
        if (self.health <= 0)
                return;
+               
+       if ((attacker.realowner == self.realowner) && !autocvar_g_balance_hagar_secondary_load_linkexplode)
+               return;
+
        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);
 }
index f6d0616d80f9e493ccee487713fda6a3e215f161..af60af14e12fde2302e6e2ce96ad688ff95235f3 100644 (file)
@@ -244,6 +244,9 @@ void W_Mine_Damage (entity inflictor, entity attacker, float damage, float death
                return;
        self.health = self.health - damage;
        self.angles = vectoangles(self.velocity);
+       
+       print(strcat("mine health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n"));
+       
        if (self.health <= 0)
                W_PrepareExplosionByDamage(attacker, W_Mine_Explode);
 }
@@ -285,6 +288,7 @@ void W_Mine_Attack (void)
        mine.damageforcescale = autocvar_g_balance_minelayer_damageforcescale;
        mine.health = autocvar_g_balance_minelayer_health;
        mine.event_damage = W_Mine_Damage;
+       mine.damagedbycontents = TRUE;
 
        mine.movetype = MOVETYPE_TOSS;
        PROJECTILE_MAKETRIGGER(mine);
index 30201a742f6d7cc88156b86e37b696597998c152..1c0b5a8b5c103da5e93cbb92feeabae90a3811d7 100644 (file)
@@ -240,6 +240,9 @@ void W_Rocket_Damage (entity inflictor, entity attacker, float damage, float dea
                return;
        self.health = self.health - damage;
        self.angles = vectoangles(self.velocity);
+       
+       print(strcat("rocket health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n"));
+       
        if (self.health <= 0)
                W_PrepareExplosionByDamage(attacker, W_Rocket_Explode);
 }
index 99de29dde6320243f5bd460dd30986515048d2ee..326680cbd8a8d2ff9629a73b91ee7c60b326ab29 100644 (file)
@@ -130,6 +130,8 @@ void Seeker_Missile_Damage (entity inflictor, entity attacker, float damage, flo
        else
                self.health = self.health - damage;
                
+       print(strcat("seeker missile health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n"));
+               
        if (self.health <= 0)
                W_PrepareExplosionByDamage(attacker, Seeker_Missile_Explode);
 }