]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
sticky grenades for balanceFruit!
authorFruitieX <rasse@rasse-lappy.localdomain>
Sun, 20 Jun 2010 12:06:35 +0000 (15:06 +0300)
committerFruitieX <rasse@rasse-lappy.localdomain>
Sun, 20 Jun 2010 12:06:35 +0000 (15:06 +0300)
balance.cfg
balance25.cfg
balanceFruit.cfg
balanceSamual.cfg
balanceXPM.cfg
qcsrc/server/w_grenadelauncher.qc

index cb58e9a14e563876567ed9accf0ebb85b4e2b5c3..8c531589276b83be5d8ad9f72a5003264d90b418 100644 (file)
@@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar
 set g_balance_grenadelauncher_primary2secondary 0
+set g_balance_grenadelauncher_primary_sticky 0
 set g_balance_grenadelauncher_primary_damage 50
 set g_balance_grenadelauncher_primary_edgedamage 38
 set g_balance_grenadelauncher_primary_force 400
@@ -278,9 +279,11 @@ set g_balance_grenadelauncher_primary_speed_up 220
 set g_balance_grenadelauncher_primary_speed_z 0
 set g_balance_grenadelauncher_primary_spread 0
 set g_balance_grenadelauncher_primary_lifetime 30
+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 25
 set g_balance_grenadelauncher_secondary_damage 60
 set g_balance_grenadelauncher_secondary_edgedamage 38
 set g_balance_grenadelauncher_secondary_force 400
index a4369249fad75c47203fb17c752354c91dcf8677..d3dae3b72096732215cf0b0aadfdd4ffc49a67ed 100644 (file)
@@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar
 set g_balance_grenadelauncher_primary2secondary 0
+set g_balance_grenadelauncher_primary_sticky 0
 set g_balance_grenadelauncher_primary_damage 70
 set g_balance_grenadelauncher_primary_edgedamage 38
 set g_balance_grenadelauncher_primary_force 400
index 415a45808426df32717ab3684ff11492f19b0cc4..3231f2d74e77a9758d8622ae5852e0e2cad7f5cb 100644 (file)
@@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar // TODO
 set g_balance_grenadelauncher_primary2secondary 0
+set g_balance_grenadelauncher_primary_sticky 1
 set g_balance_grenadelauncher_primary_damage 60
 set g_balance_grenadelauncher_primary_edgedamage 28
 set g_balance_grenadelauncher_primary_force 200
@@ -277,10 +278,12 @@ set g_balance_grenadelauncher_primary_speed 1200
 set g_balance_grenadelauncher_primary_speed_up 200
 set g_balance_grenadelauncher_primary_speed_z 0
 set g_balance_grenadelauncher_primary_spread 0
-set g_balance_grenadelauncher_primary_lifetime 10
+set g_balance_grenadelauncher_primary_lifetime 5
+set g_balance_grenadelauncher_primary_lifetime2 1
 set g_balance_grenadelauncher_primary_refire 0.8
 set g_balance_grenadelauncher_primary_animtime 0.5
 set g_balance_grenadelauncher_primary_ammo 2
+set g_balance_grenadelauncher_primary_health 25
 set g_balance_grenadelauncher_secondary_damage 65
 set g_balance_grenadelauncher_secondary_edgedamage 30
 set g_balance_grenadelauncher_secondary_force 300
@@ -289,7 +292,7 @@ set g_balance_grenadelauncher_secondary_speed 800
 set g_balance_grenadelauncher_secondary_speed_up 0
 set g_balance_grenadelauncher_secondary_speed_z 200
 set g_balance_grenadelauncher_secondary_spread 0
-set g_balance_grenadelauncher_secondary_lifetime 2
+set g_balance_grenadelauncher_secondary_lifetime 1.5
 set g_balance_grenadelauncher_secondary_refire 0.8
 set g_balance_grenadelauncher_secondary_animtime 0.5
 set g_balance_grenadelauncher_secondary_ammo 2
@@ -505,7 +508,7 @@ set g_balance_campingrifle_magazinecapacity 8
 set g_balance_campingrifle_reloadtime 2 // matches reload anim
 set g_balance_campingrifle_auto_reload_after_changing_weapons 0
 set g_balance_campingrifle_bursttime 0
-set g_balance_campingrifle_tracer 0
+set g_balance_campingrifle_tracer 1
 set g_balance_campingrifle_primary_damage 60
 set g_balance_campingrifle_primary_headshotaddeddamage 100
 set g_balance_campingrifle_primary_spread 0
index 21242f16f0364632fbd0eaeb42bf0fba6d854283..2b716463eb9f298caa8105fa83d34fd8877ed09a 100644 (file)
@@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar
 set g_balance_grenadelauncher_primary2secondary 0
+set g_balance_grenadelauncher_primary_sticky 0
 set g_balance_grenadelauncher_primary_damage 50
 set g_balance_grenadelauncher_primary_edgedamage 38
 set g_balance_grenadelauncher_primary_force 400
@@ -278,9 +279,11 @@ set g_balance_grenadelauncher_primary_speed_up 220
 set g_balance_grenadelauncher_primary_speed_z 0
 set g_balance_grenadelauncher_primary_spread 0
 set g_balance_grenadelauncher_primary_lifetime 30
+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 25
 set g_balance_grenadelauncher_secondary_damage 60
 set g_balance_grenadelauncher_secondary_edgedamage 38
 set g_balance_grenadelauncher_secondary_force 400
index bb0416a3418daac9523bfc87c806ba0c4054d29c..83bd146b09b345f0192f96dacff7a107a5e75d2f 100644 (file)
@@ -270,6 +270,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar
 set g_balance_grenadelauncher_primary2secondary 1
+set g_balance_grenadelauncher_primary_sticky 0
 set g_balance_grenadelauncher_primary_damage 60
 set g_balance_grenadelauncher_primary_edgedamage 10
 set g_balance_grenadelauncher_primary_force 250
@@ -279,9 +280,11 @@ set g_balance_grenadelauncher_primary_speed_up 200
 set g_balance_grenadelauncher_primary_speed_z 0
 set g_balance_grenadelauncher_primary_spread 0
 set g_balance_grenadelauncher_primary_lifetime 5
+set g_balance_grenadelauncher_primary_lifetime2 1
 set g_balance_grenadelauncher_primary_refire 0.7
 set g_balance_grenadelauncher_primary_animtime 0.3
 set g_balance_grenadelauncher_primary_ammo 2
+set g_balance_grenadelauncher_primary_health 25
 set g_balance_grenadelauncher_secondary_damage 65
 set g_balance_grenadelauncher_secondary_edgedamage 10
 set g_balance_grenadelauncher_secondary_force 300
index a7d9a4935d7202a7a4a2bf18975cdafb4b1c5af1..a6e4d0dc0fc1cad0013db7639dcca143359aaf2b 100644 (file)
@@ -33,10 +33,56 @@ void W_Grenade_Explode2 (void)
        remove (self);
 }
 
+void W_Grenade_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
+{
+       if (self.health <= 0)
+               return;
+       self.health = self.health - damage;
+       if (self.health <= 0)
+       {
+               W_PrepareExplosionByDamage(attacker, self.think);
+       }
+}
+
 void W_Grenade_Touch1 (void)
 {
        PROJECTILE_TOUCH;
-       W_Grenade_Explode ();
+       if(cvar("g_balance_grenadelauncher_primary_sticky") && other.takedamage != DAMAGE_AIM)
+       {
+               entity oldowner;
+               oldowner = self.owner;
+
+               vector temporigin;
+               temporigin = self.origin;
+
+               remove(self);
+               local entity gren;
+
+               gren = spawn ();
+               gren.owner = oldowner;
+               gren.classname = "grenade";
+               gren.bot_dodge = TRUE;
+               gren.bot_dodgerating = cvar("g_balance_grenadelauncher_primary_damage");
+               gren.movetype = MOVETYPE_NONE;
+               PROJECTILE_MAKETRIGGER(gren);
+               gren.projectiledeathtype = WEP_GRENADE_LAUNCHER;
+               setorigin(gren, temporigin);
+               setsize(gren, '0 0 -3', '0 0 -3');
+
+               gren.nextthink = time + cvar("g_balance_grenadelauncher_primary_lifetime2");
+               gren.think = adaptor_think2use_hittype_splash;
+               gren.use = W_Grenade_Explode;
+
+               gren.flags = FL_PROJECTILE;
+
+               gren.takedamage = DAMAGE_YES;
+               gren.health = cvar("g_balance_grenadelauncher_primary_health");
+               gren.event_damage = W_Grenade_Damage;
+
+               CSQCProjectile(gren, TRUE, PROJECTILE_GRENADE, TRUE);   
+       }
+       else
+               W_Grenade_Explode ();
 }
 
 void W_Grenade_Touch2 (void)
@@ -66,17 +112,6 @@ void W_Grenade_Touch2 (void)
        }
 }
 
-void W_Grenade_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
-{
-       if (self.health <= 0)
-               return;
-       self.health = self.health - damage;
-       if (self.health <= 0)
-       {
-               W_PrepareExplosionByDamage(attacker, self.think);
-       }
-}
-
 void W_Grenade_Attack (void)
 {
        local entity gren;