]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Support g_balance_uzi_mode & g_balance_uzi_burst. Tweak balance.
authorunknown <jm@.(none)>
Tue, 9 Nov 2010 05:43:26 +0000 (06:43 +0100)
committerunknown <jm@.(none)>
Tue, 9 Nov 2010 05:43:26 +0000 (06:43 +0100)
balance25.cfg
balanceLeeStricklin.cfg
balanceNexSVN.cfg
balanceSamual.cfg
balanceTest.cfg
balanceXonotic.cfg
balancetZork.cfg
qcsrc/server/w_uzi.qc

index b31c4487801cd37d29d60bbba89c6cac188d6681..addd2f4ef7a6b31e757aca5c31e711590df3075d 100644 (file)
@@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
 // {{{ uzi
+set g_balance_uzi_mode 0                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+set g_balance_uzi_burst 0                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 30
 set g_balance_uzi_first_force 50
index f428beb524537dee01bfc8dcb9ef870b8a70f732..46c45dbda1c8913c27cd51e990653af4fa6a5817 100644 (file)
@@ -274,6 +274,17 @@ set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
 // {{{ uzi
+set g_balance_uzi_mode 0                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+set g_balance_uzi_burst 0                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 26
 set g_balance_uzi_first_force -30
index 7792942629d25572b62d1843be45aa92a4136b1b..4873051f9ebe59635f3f185f2eb27d3fe2d47588 100644 (file)
@@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
 // {{{ uzi
+set g_balance_uzi_mode 0                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+set g_balance_uzi_burst 0                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 30
 set g_balance_uzi_first_force 50
index 52f4f8163dbfe95405d2a6482704fb8e49f780f2..48f9bf11b213430fda8170615318efc6310ee29f 100644 (file)
@@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
 // {{{ uzi
+set g_balance_uzi_mode 0                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+set g_balance_uzi_burst 0                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 12
 set g_balance_uzi_first_force 5
index 9215bb546a66832aefddc5a2cd3842e3a859e15f..b6cc98648adb43310a100f8dd0fcfc5bed6c01e8 100644 (file)
@@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
 // {{{ uzi
+set g_balance_uzi_mode 0                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+set g_balance_uzi_burst 0                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 30
 set g_balance_uzi_first_force 50
index 1aaa771ed838acb3e04aea04752cd0f507729f35..048effe1797ae2796648a4b239d9198626a6ed52 100644 (file)
@@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
 // {{{ uzi
+set g_balance_uzi_mode 0                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+set g_balance_uzi_burst 0                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 18
 set g_balance_uzi_first_force 35
index 7879d7a24d959ec61194897db276b4842a7a0ba2..7a5e209521eeb8bee4381290aa055607f3955232 100644 (file)
@@ -277,26 +277,42 @@ set g_balance_shotgun_secondary_force 150
 set g_balance_shotgun_secondary_refire 1.1
 set g_balance_shotgun_secondary_animtime 1
 // }}}
+
 // {{{ uzi
+set g_balance_uzi_mode 1                               // Activates varible spread for sustained & burst mode secondary
+set g_balance_uzi_spread_min 0.02
+set g_balance_uzi_spread_max 0.6
+set g_balance_uzi_spread_add 0.012
+
+set g_balance_uzi_burst 5                              // # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_refire 0.05            // refire between burst bullets
+set g_balance_uzi_burst_refire2 0.75   // refire after burst
+set g_balance_uzi_burst_spread 0.04
+set g_balance_uzi_burst_damage 18              // 90 dps (but 90 dmg deliverd in .25s)
+set g_balance_uzi_burst_force 50
+set g_balance_uzi_burst_ammo 3
+
 set g_balance_uzi_first 1
 set g_balance_uzi_first_damage 30
 set g_balance_uzi_first_force 50
 set g_balance_uzi_first_spread 0.015
 set g_balance_uzi_first_refire 0.3
 set g_balance_uzi_first_ammo 1
-set g_balance_uzi_sustained_damage 15
+
+set g_balance_uzi_sustained_damage 12  // 120 dps
 set g_balance_uzi_sustained_force 10
 set g_balance_uzi_sustained_spread 0.08
 set g_balance_uzi_sustained_refire 0.1
 set g_balance_uzi_sustained_ammo 1
+
 set g_balance_uzi_speed 18000
 set g_balance_uzi_bulletconstant 115 // 13.1qu
 // }}}
 // {{{ mortar
 set g_balance_grenadelauncher_primary_type 0
-set g_balance_grenadelauncher_primary_damage 60
-set g_balance_grenadelauncher_primary_edgedamage 38
-set g_balance_grenadelauncher_primary_force 400
+set g_balance_grenadelauncher_primary_damage 50
+set g_balance_grenadelauncher_primary_edgedamage 30
+set g_balance_grenadelauncher_primary_force 250
 set g_balance_grenadelauncher_primary_radius 140
 set g_balance_grenadelauncher_primary_speed 2000
 set g_balance_grenadelauncher_primary_speed_up 200
@@ -314,9 +330,9 @@ set g_balance_grenadelauncher_primary_bouncestop 0.075
 set g_balance_grenadelauncher_primary_remote_minbouncecnt 0
 
 set g_balance_grenadelauncher_secondary_type 1
-set g_balance_grenadelauncher_secondary_damage 70
-set g_balance_grenadelauncher_secondary_edgedamage 38
-set g_balance_grenadelauncher_secondary_force 400
+set g_balance_grenadelauncher_secondary_damage 60
+set g_balance_grenadelauncher_secondary_edgedamage 35
+set g_balance_grenadelauncher_secondary_force 300
 set g_balance_grenadelauncher_secondary_radius 140
 set g_balance_grenadelauncher_secondary_speed 1400
 set g_balance_grenadelauncher_secondary_speed_up 200
@@ -377,11 +393,11 @@ set g_balance_electro_primary_falloff_halflifedist 425
 set g_balance_electro_secondary_damage 25
 set g_balance_electro_secondary_edgedamage 0
 set g_balance_electro_secondary_force 100
-set g_balance_electro_secondary_radius 75
-set g_balance_electro_secondary_speed 500
-set g_balance_electro_secondary_speed_up 150
+set g_balance_electro_secondary_radius 100
+set g_balance_electro_secondary_speed 900
+set g_balance_electro_secondary_speed_up 200
 set g_balance_electro_secondary_speed_z 0
-set g_balance_electro_secondary_spread 0.08
+set g_balance_electro_secondary_spread 0.025
 set g_balance_electro_secondary_lifetime 5
 set g_balance_electro_secondary_refire 0.1
 set g_balance_electro_secondary_refire2 2
@@ -391,12 +407,12 @@ set g_balance_electro_secondary_health 10
 set g_balance_electro_secondary_damageforcescale 2
 set g_balance_electro_secondary_count 3
 
-set g_balance_electro_combo_damage 90
-set g_balance_electro_combo_edgedamage 0
+set g_balance_electro_combo_damage 80
+set g_balance_electro_combo_edgedamage 10
 set g_balance_electro_combo_force 80
 set g_balance_electro_combo_radius 250
 set g_balance_electro_combo_comboradius 0
-set g_balance_electro_combo_speed 400
+set g_balance_electro_combo_speed 1000
 // }}}
 // {{{ crylink
 set g_balance_crylink_primary_damage 5
index 788c9880fe7c4f57df428a9ccc17afbbdc2e7138..33f7372a19f7bfe17487548b2002d4821eb4b004 100644 (file)
@@ -38,8 +38,6 @@ void UziFlash()
        self.muzzle_flash.angles_z = random() * 180;
        self.muzzle_flash.effects = EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION;
        self.muzzle_flash.owner = self;
-       
-       
 }
 
 .float uzi_bulletcounter;
@@ -100,10 +98,101 @@ void uzi_fire1_02()
        }
        else
                weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), w_ready);
-};
+}
+
+
+void uzi_mode1_fire_auto()
+{
+       float uzi_spread;
+       
+       if (self.BUTTON_ATCK)
+               weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_mode1_fire_auto);
+       else
+       {
+               ATTACK_FINISHED(self) = time + cvar("g_balance_uzi_first_refire") * W_WeaponRateFactor();
+               weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), w_ready);
+               return;
+       }
+
+       if (!weapon_action(self.weapon, WR_CHECKAMMO1))
+       {
+               W_SwitchWeapon_Force(self, w_getbestweapon(self));
+               w_ready();
+               return;
+       }
+       
+       W_SetupShot (self, cvar("g_antilag_bullets") && cvar("g_balance_uzi_speed") >= cvar("g_antilag_bullets"), 0, "weapons/uzi_fire.wav", cvar("g_balance_uzi_first_damage"));
+       if (!g_norecoil)
+       {
+               self.punchangle_x = random () - 0.5;
+               self.punchangle_y = random () - 0.5;
+       }
+       
+       uzi_spread = bound(cvar("g_balance_uzi_spread_min"), cvar("g_balance_uzi_spread_min") + (cvar("g_balance_uzi_spread_add") * self.uzi_bulletcounter), cvar("g_balance_uzi_spread_max"));
+       fireBallisticBullet(w_shotorg, w_shotdir, uzi_spread, cvar("g_balance_uzi_speed"), 5, cvar("g_balance_uzi_sustained_damage"), 0, cvar("g_balance_uzi_sustained_force"), WEP_UZI, 0, 1, cvar("g_balance_uzi_bulletconstant"));
+       endFireBallisticBullet();
+       
+       self.uzi_bulletcounter = self.uzi_bulletcounter + 1;
+       
+       pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+
+       UziFlash();
+       W_AttachToShotorg(self.muzzle_flash, '5 0 0');
+       
+       if (cvar("g_casings") >= 2) // casing code
+               SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
+       
+       if not(self.items & IT_UNLIMITED_WEAPON_AMMO)   
+               self.ammo_nails = self.ammo_nails - cvar("g_balance_uzi_sustained_ammo");
+       
+}
+
+void uzi_mode1_fire_burst()
+{
+       W_SetupShot (self, cvar("g_antilag_bullets") && cvar("g_balance_uzi_speed") >= cvar("g_antilag_bullets"), 0, "weapons/uzi_fire.wav", cvar("g_balance_uzi_first_damage"));
+       if (!g_norecoil)
+       {
+               self.punchangle_x = random () - 0.5;
+               self.punchangle_y = random () - 0.5;
+       }
+       
+       fireBallisticBullet(w_shotorg, w_shotdir, cvar("g_balance_uzi_burst_spread"), cvar("g_balance_uzi_speed"), 5, cvar("g_balance_uzi_sustained_damage"), 0, cvar("g_balance_uzi_sustained_force"), WEP_UZI, 0, 1, cvar("g_balance_uzi_bulletconstant"));
+       endFireBallisticBullet();
+       
+       
+       pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+
+       UziFlash();
+       W_AttachToShotorg(self.muzzle_flash, '5 0 0');
+       
+       if (cvar("g_casings") >= 2) // casing code
+               SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
+
+       self.uzi_bulletcounter = self.uzi_bulletcounter + 1;
+       if (self.uzi_bulletcounter == 0)
+               weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_burst_refire2"), w_ready);
+       else
+       {
+               weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_burst_refire"), uzi_mode1_fire_burst);
+               dprint("bullets:", ftos(self.uzi_bulletcounter),"\n");
+       }
+               
+}
 
 void spawnfunc_weapon_machinegun(); // defined in t_items.qc
 
+/*
+set g_balance_uzi_mode 1
+set g_balance_uzi_spread_min 0.025
+set g_balance_uzi_spread_max 0.85
+set g_balance_uzi_spread_add 0.01
+set g_balance_uzi_burst 5
+set g_balance_uzi_burst_refire 0.05
+set g_balance_uzi_burst_refire2 0.75
+set g_balance_uzi_burst_spread 0.04
+g_balance_uzi_burst_ammo
+*/
+
 float w_uzi(float req)
 {
        if (req == WR_AIM)
@@ -115,19 +204,50 @@ float w_uzi(float req)
                }
        else if (req == WR_THINK)
        {
-               if (self.BUTTON_ATCK)
-               if (weapon_prepareattack(0, 0))
+               if(cvar("g_balance_uzi_mode") == 1)
                {
-                       self.uzi_bulletcounter = 1;
-                       W_Uzi_Attack(WEP_UZI); // sets attack_finished
-                       weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_fire1_02);
+                       if (self.BUTTON_ATCK)
+                       if (weapon_prepareattack(0, 0))
+                       {                               
+                               self.uzi_bulletcounter = 0;
+                               uzi_mode1_fire_auto();
+                       }
+                       
+                       if(self.BUTTON_ATCK2)
+                       if(weapon_prepareattack(1, 0))
+                       {
+                               if (!weapon_action(self.weapon, WR_CHECKAMMO2))
+                               {
+                                       W_SwitchWeapon_Force(self, w_getbestweapon(self));
+                                       w_ready();
+                                       return;
+                               }
+                               
+                               if not(self.items & IT_UNLIMITED_WEAPON_AMMO)   
+                                       self.ammo_nails = self.ammo_nails - cvar("g_balance_uzi_burst_ammo");
+
+                               self.uzi_bulletcounter = cvar("g_balance_uzi_burst") * -1;
+                               uzi_mode1_fire_burst();
+                       }
                }
-               if (self.BUTTON_ATCK2 && cvar("g_balance_uzi_first"))
-               if (weapon_prepareattack(1, 0))
+               else
                {
-                       self.uzi_bulletcounter = 1;
-                       W_Uzi_Attack(WEP_UZI | HITTYPE_SECONDARY); // sets attack_finished
-                       weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_first_refire"), w_ready);
+                       
+                       if (self.BUTTON_ATCK)
+                       if (weapon_prepareattack(0, 0))
+                       {
+                               self.uzi_bulletcounter = 1;
+                               W_Uzi_Attack(WEP_UZI); // sets attack_finished
+                               weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_fire1_02);
+                       }
+
+                       if (self.BUTTON_ATCK2 && cvar("g_balance_uzi_first"))
+                       if (weapon_prepareattack(1, 0))
+                       {
+                               self.uzi_bulletcounter = 1;
+                               W_Uzi_Attack(WEP_UZI | HITTYPE_SECONDARY); // sets attack_finished
+                               weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_first_refire"), w_ready);
+                       }
                }
        }
        else if (req == WR_PRECACHE)
@@ -141,9 +261,15 @@ float w_uzi(float req)
        else if (req == WR_SETUP)
                weapon_setup(WEP_UZI);
        else if (req == WR_CHECKAMMO1)
-               return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
+               if(cvar("g_balance_uzi_mode") == 1)
+                       return self.ammo_nails >= cvar("g_balance_uzi_sustained_ammo");
+               else
+                       return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
        else if (req == WR_CHECKAMMO2)
-               return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
+               if(cvar("g_balance_uzi_mode") == 1)
+                       return self.ammo_nails >= cvar("g_balance_uzi_burst_ammo");
+               else
+                       return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
        return TRUE;
 };
 #endif