]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote branch 'origin/master' into fruitiex/balance
authorFruitieX <fruitiex@gmail.com>
Sun, 9 Jan 2011 01:06:24 +0000 (03:06 +0200)
committerFruitieX <fruitiex@gmail.com>
Sun, 9 Jan 2011 01:06:24 +0000 (03:06 +0200)
1  2 
balance25.cfg
balanceLeeStricklin.cfg
balanceSamual.cfg
balanceXonotic.cfg
balancetZork.cfg
defaultXonotic.cfg
qcsrc/server/autocvars.qh
qcsrc/server/g_damage.qc

diff --combined balance25.cfg
index faf4fbfa166b352b8361bc744b2fd33e3ad9673d,f50eb7e290b70ac7635499a0cdb6ca6c1cb35681..bb646c8f7af55b75bbfcab5bd95efb42f375c2b3
@@@ -226,7 -226,6 +226,7 @@@ set g_balance_laser_primary_delay 0.0
  set g_balance_laser_primary_gauntlet 0
  set g_balance_laser_primary_force_zscale 1
  set g_balance_laser_primary_force_velocitybias 0
 +set g_balance_laser_primary_force_other_scale 1
  set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
  set g_balance_laser_secondary_damage 35
  set g_balance_laser_secondary_edgedamage 10
@@@ -242,7 -241,6 +242,7 @@@ set g_balance_laser_secondary_delay 
  set g_balance_laser_secondary_gauntlet 0
  set g_balance_laser_secondary_force_zscale 1
  set g_balance_laser_secondary_force_velocitybias 0
 +set g_balance_laser_secondary_force_other_scale 1
  // }}}
  // {{{ shotgun
  set g_balance_shotgun_primary_bullets 6
@@@ -269,6 -267,7 +269,7 @@@ set g_balance_uzi_mode 0                           // Activat
  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
@@@ -276,17 -275,20 +277,20 @@@ set g_balance_uzi_burst_spread 0.0
  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
  set g_balance_uzi_first_spread 0.015
  set g_balance_uzi_first_refire 0.2
  set g_balance_uzi_first_ammo 1
  set g_balance_uzi_sustained_damage 15
  set g_balance_uzi_sustained_force 27
  set g_balance_uzi_sustained_spread 0.05
  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
  // }}}
@@@ -330,7 -332,7 +334,7 @@@ set g_balance_grenadelauncher_secondary
  set g_balance_grenadelauncher_bouncefactor 0.5
  set g_balance_grenadelauncher_bouncestop 0.075
  // }}}
- // {{{ minelayer // TODO
+ // {{{ minelayer
  set g_balance_minelayer_damage 35
  set g_balance_minelayer_edgedamage 30
  set g_balance_minelayer_force 250
@@@ -408,6 -410,7 +412,7 @@@ set g_balance_crylink_primary_refire 0.
  set g_balance_crylink_primary_animtime 0.3
  set g_balance_crylink_primary_ammo 2
  set g_balance_crylink_primary_bouncedamagefactor 0.5
+ set g_balance_crylink_primary_joindelay 0
  set g_balance_crylink_primary_joinspread 0
  set g_balance_crylink_primary_jointime 0
  set g_balance_crylink_primary_joinexplode 0
@@@ -435,6 -438,7 +440,7 @@@ set g_balance_crylink_secondary_refire 
  set g_balance_crylink_secondary_animtime 0.3
  set g_balance_crylink_secondary_ammo 2
  set g_balance_crylink_secondary_bouncedamagefactor 0.5
+ set g_balance_crylink_secondary_joindelay 0
  set g_balance_crylink_secondary_joinspread 0
  set g_balance_crylink_secondary_jointime 0
  set g_balance_crylink_secondary_joinexplode 0                 
diff --combined balanceLeeStricklin.cfg
index 87d5b2bc27b9ce9cc9042f3dbfd19af97d1c18ff,dd1a2022ad500f852ce2c9d5e285c5613278754a..0ee81798805b6a32f6ff7bf946ee363b55cb4c94
@@@ -226,7 -226,6 +226,7 @@@ set g_balance_laser_primary_delay 0.0
  set g_balance_laser_primary_gauntlet 0
  set g_balance_laser_primary_force_zscale 2 // 300 upforce
  set g_balance_laser_primary_force_velocitybias 0.3
 +set g_balance_laser_primary_force_other_scale 1
  set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
  set g_balance_laser_secondary_damage 200 // dps
  set g_balance_laser_secondary_edgedamage 0
@@@ -242,7 -241,6 +242,7 @@@ set g_balance_laser_secondary_delay 
  set g_balance_laser_secondary_gauntlet 1
  set g_balance_laser_secondary_force_zscale 1.25
  set g_balance_laser_secondary_force_velocitybias 0
 +set g_balance_laser_secondary_force_other_scale 1
  // }}}
  // {{{ shotgun
  set g_balance_shotgun_primary_bullets 5
@@@ -269,6 -267,7 +269,7 @@@ set g_balance_uzi_mode 0                           // Activat
  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
@@@ -276,21 -275,24 +277,24 @@@ set g_balance_uzi_burst_spread 0.0
  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
  set g_balance_uzi_first_spread 0.01
  set g_balance_uzi_first_refire 0.2
  set g_balance_uzi_first_ammo 1
  set g_balance_uzi_sustained_damage 17
  set g_balance_uzi_sustained_force 27
  set g_balance_uzi_sustained_spread 0.05
  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 300 // 13.1qu
  // }}}
- // {{{ mortar 
+ // {{{ mortar
  set g_balance_grenadelauncher_primary_type 0
  set g_balance_grenadelauncher_primary_damage 65
  set g_balance_grenadelauncher_primary_edgedamage 35
@@@ -330,7 -332,7 +334,7 @@@ set g_balance_grenadelauncher_secondary
  set g_balance_grenadelauncher_bouncefactor 0.7
  set g_balance_grenadelauncher_bouncestop 0.12
  // }}}
- // {{{ minelayer 
+ // {{{ minelayer
  set g_balance_minelayer_damage 65
  set g_balance_minelayer_edgedamage 30
  set g_balance_minelayer_force 250
@@@ -352,7 -354,7 +356,7 @@@ set g_balance_minelayer_remote_edgedama
  set g_balance_minelayer_remote_radius 200
  set g_balance_minelayer_remote_force 300
  // }}}
- // {{{ electro 
+ // {{{ electro
  set g_balance_electro_lightning 0
  set g_balance_electro_primary_damage 55
  set g_balance_electro_primary_edgedamage 5
@@@ -408,6 -410,7 +412,7 @@@ set g_balance_crylink_primary_refire 0.
  set g_balance_crylink_primary_animtime 0.30008
  set g_balance_crylink_primary_ammo 3
  set g_balance_crylink_primary_bouncedamagefactor 0.2
+ set g_balance_crylink_primary_joindelay 0
  set g_balance_crylink_primary_joinspread 0
  set g_balance_crylink_primary_jointime 0
  set g_balance_crylink_primary_joinexplode 0
@@@ -435,6 -438,7 +440,7 @@@ set g_balance_crylink_secondary_refire 
  set g_balance_crylink_secondary_animtime 0.3
  set g_balance_crylink_secondary_ammo 3
  set g_balance_crylink_secondary_bouncedamagefactor 0.5
+ set g_balance_crylink_secondary_joindelay 0
  set g_balance_crylink_secondary_joinspread 0
  set g_balance_crylink_secondary_jointime 0
  set g_balance_crylink_secondary_joinexplode 0                 
@@@ -516,7 -520,7 +522,7 @@@ set g_balance_hagar_secondary_lifetime_
  set g_balance_hagar_secondary_refire 0.15
  set g_balance_hagar_secondary_ammo 2
  // }}}
- // {{{ rocketlauncher 
+ // {{{ rocketlauncher
  set g_balance_rocketlauncher_damage 65
  set g_balance_rocketlauncher_edgedamage 25
  set g_balance_rocketlauncher_force 360
diff --combined balanceSamual.cfg
index d2a394e05b4df02792283e54a8ff3ba916d51022,bfe331b151860f02269de54245f3b32f542af4d6..451adf196ef4dd84738c211866ffb7e8d815652e
@@@ -226,7 -226,6 +226,7 @@@ set g_balance_laser_primary_delay 0.0
  set g_balance_laser_primary_gauntlet 0
  set g_balance_laser_primary_force_zscale 2 // 350 upforce
  set g_balance_laser_primary_force_velocitybias 0.3
 +set g_balance_laser_primary_force_other_scale 1
  set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
  set g_balance_laser_secondary_damage 25
  set g_balance_laser_secondary_edgedamage 10
@@@ -242,7 -241,6 +242,7 @@@ set g_balance_laser_secondary_delay 
  set g_balance_laser_secondary_gauntlet 0
  set g_balance_laser_secondary_force_zscale 1.25
  set g_balance_laser_secondary_force_velocitybias 0
 +set g_balance_laser_secondary_force_other_scale 1
  // }}}
  // {{{ shotgun
  set g_balance_shotgun_primary_bullets 10
@@@ -269,6 -267,7 +269,7 @@@ set g_balance_uzi_mode 0                           // Activat
  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
@@@ -276,17 -275,20 +277,20 @@@ set g_balance_uzi_burst_spread 0.0
  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 20
  set g_balance_uzi_first_spread 0.03
  set g_balance_uzi_first_refire 0.2
  set g_balance_uzi_first_ammo 1
  set g_balance_uzi_sustained_damage 10
  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
  // }}}
@@@ -330,7 -332,7 +334,7 @@@ set g_balance_grenadelauncher_secondary
  set g_balance_grenadelauncher_bouncefactor 0.5
  set g_balance_grenadelauncher_bouncestop 0.075
  // }}}
- // {{{ minelayer // TODO
+ // {{{ minelayer
  set g_balance_minelayer_damage 35
  set g_balance_minelayer_edgedamage 30
  set g_balance_minelayer_force 250
@@@ -352,7 -354,7 +356,7 @@@ set g_balance_minelayer_remote_edgedama
  set g_balance_minelayer_remote_radius 200
  set g_balance_minelayer_remote_force 300
  // }}}
- // {{{ electro // TODO
+ // {{{ electro
  set g_balance_electro_lightning 1
  set g_balance_electro_primary_damage 90
  set g_balance_electro_primary_edgedamage 0
@@@ -395,7 -397,7 +399,7 @@@ set g_balance_electro_combo_radius 25
  set g_balance_electro_combo_comboradius 0
  set g_balance_electro_combo_speed 400
  // }}}
- // {{{ crylink 
+ // {{{ crylink
  set g_balance_crylink_primary_damage 10
  set g_balance_crylink_primary_edgedamage 0
  set g_balance_crylink_primary_force -55
@@@ -408,6 -410,7 +412,7 @@@ set g_balance_crylink_primary_refire 0.
  set g_balance_crylink_primary_animtime 0.3
  set g_balance_crylink_primary_ammo 2
  set g_balance_crylink_primary_bouncedamagefactor 0.5
+ set g_balance_crylink_primary_joindelay 0
  set g_balance_crylink_primary_joinspread 0
  set g_balance_crylink_primary_jointime 0
  set g_balance_crylink_primary_joinexplode 0
@@@ -435,6 -438,7 +440,7 @@@ set g_balance_crylink_secondary_refire 
  set g_balance_crylink_secondary_animtime 0.2
  set g_balance_crylink_secondary_ammo 2
  set g_balance_crylink_secondary_bouncedamagefactor 0.5
+ set g_balance_crylink_secondary_joindelay 0
  set g_balance_crylink_secondary_joinspread 0
  set g_balance_crylink_secondary_jointime 0
  set g_balance_crylink_secondary_joinexplode 0                 
diff --combined balanceXonotic.cfg
index 9db5724d219c83674f1eb4c9a7605d188703a74a,b66ef86bd6682d916cb3850f50cbd46414ef41b6..30d9daae20c196ed6ed46b2e2d34f58f21c6fd5a
@@@ -181,7 -181,7 +181,7 @@@ set g_balance_falldamage_maxdamage 1
  // }}}
  
  // {{{ powerups
 -set g_balance_powerup_invincible_takedamage 0.3
 +set g_balance_powerup_invincible_takedamage 0.6
  set g_balance_powerup_invincible_time 30
  set g_balance_powerup_strength_damage 3
  set g_balance_powerup_strength_force 4
@@@ -226,7 -226,6 +226,7 @@@ set g_balance_laser_primary_delay 
  set g_balance_laser_primary_gauntlet 0
  set g_balance_laser_primary_force_zscale 2 // 300 upforce
  set g_balance_laser_primary_force_velocitybias 0.3
 +set g_balance_laser_primary_force_other_scale 2.5 // force 375 when pushing others around
  set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
  set g_balance_laser_secondary_damage 200 // dps
  set g_balance_laser_secondary_edgedamage 0
@@@ -242,7 -241,6 +242,7 @@@ set g_balance_laser_secondary_delay 
  set g_balance_laser_secondary_gauntlet 1
  set g_balance_laser_secondary_force_zscale 1.25
  set g_balance_laser_secondary_force_velocitybias 0
 +set g_balance_laser_secondary_force_other_scale 0
  // }}}
  // {{{ shotgun
  set g_balance_shotgun_primary_bullets 18
@@@ -273,13 -271,13 +273,13 @@@ set g_balance_uzi_spread_add 0.00
  set g_balance_uzi_burst 3                             // # 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.45  // refire after burst
 -set g_balance_uzi_burst_spread 0.05
 -set g_balance_uzi_burst_damage 20       // 100 dps, delivered in 0.15s        
 +set g_balance_uzi_burst_spread 0.07
 +set g_balance_uzi_burst_damage 25
  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 20       // 100 dps
 +set g_balance_uzi_first_damage 22
  set g_balance_uzi_first_force 50
  set g_balance_uzi_first_spread 0.03
  set g_balance_uzi_first_refire 0.2
@@@ -287,7 -285,7 +287,7 @@@ set g_balance_uzi_first_ammo 
  
  set g_balance_uzi_sustained_damage 12   // 120 dps
  set g_balance_uzi_sustained_force 12
 -set g_balance_uzi_sustained_spread 0.08
 +set g_balance_uzi_sustained_spread 0.06
  set g_balance_uzi_sustained_refire 0.1
  set g_balance_uzi_sustained_ammo 1
  
@@@ -363,7 -361,7 +363,7 @@@ set g_balance_electro_primary_edgedamag
  set g_balance_electro_primary_force 425
  set g_balance_electro_primary_force_up 125
  set g_balance_electro_primary_radius 850
 -set g_balance_electro_primary_comboradius 75
 +set g_balance_electro_primary_comboradius 150
  set g_balance_electro_primary_speed 0
  set g_balance_electro_primary_spread 0
  set g_balance_electro_primary_lifetime 0
@@@ -412,6 -410,7 +412,7 @@@ set g_balance_crylink_primary_refire 0.
  set g_balance_crylink_primary_animtime 0.3
  set g_balance_crylink_primary_ammo 2
  set g_balance_crylink_primary_bouncedamagefactor 0.2
+ set g_balance_crylink_primary_joindelay 0
  set g_balance_crylink_primary_joinspread 0.2
  set g_balance_crylink_primary_jointime 0.1
  set g_balance_crylink_primary_joinexplode 0
@@@ -439,6 -438,7 +440,7 @@@ set g_balance_crylink_secondary_refire 
  set g_balance_crylink_secondary_animtime 0.15
  set g_balance_crylink_secondary_ammo 1
  set g_balance_crylink_secondary_bouncedamagefactor 0.5
+ set g_balance_crylink_secondary_joindelay 0
  set g_balance_crylink_secondary_joinspread 0
  set g_balance_crylink_secondary_jointime 0
  set g_balance_crylink_secondary_joinexplode 0                 
@@@ -468,14 -468,14 +470,14 @@@ set g_balance_nex_secondary 
  set g_balance_nex_secondary_charge 1
  set g_balance_nex_secondary_charge_rate 0.4
  set g_balance_nex_secondary_chargepool 1
 -set g_balance_nex_secondary_chargepool_regen 0.15
 -set g_balance_nex_secondary_chargepool_pause_regen 1
 -set g_balance_nex_secondary_chargepool_pause_health_regen 1
 +set g_balance_nex_secondary_chargepool_regen 0.25
 +set g_balance_nex_secondary_chargepool_pause_regen 0.5
 +set g_balance_nex_secondary_chargepool_pause_health_regen 0.5
  set g_balance_nex_secondary_damage 0
  set g_balance_nex_secondary_force 0
  set g_balance_nex_secondary_refire 0
  set g_balance_nex_secondary_animtime 0
 -set g_balance_nex_secondary_ammo 0.2 // full charge pool is 1, so it depletes in 5 secs
 +set g_balance_nex_secondary_ammo 0.4 // full charge pool is 1, so it depletes in 2.5 secs
  set g_balance_nex_secondary_damagefalloff_mindist 0
  set g_balance_nex_secondary_damagefalloff_maxdist 0
  set g_balance_nex_secondary_damagefalloff_halflife 0
@@@ -487,7 -487,7 +489,7 @@@ set g_balance_nex_charge_start 0.
  set g_balance_nex_charge_rate 0.5
  set g_balance_nex_charge_limit 0.5
  set g_balance_nex_charge_rot_rate 0.1
 -set g_balance_nex_charge_rot_pause 1 // Dont rot down until this long after release of charge button
 +set g_balance_nex_charge_rot_pause 0.5 // Dont rot down until this long after release of charge button
  set g_balance_nex_charge_shot_multiplier 0
  set g_balance_nex_charge_velocity_rate 0
  set g_balance_nex_charge_minspeed 600
@@@ -502,7 -502,7 +504,7 @@@ set g_balance_minstanex_ammo 1
  set g_balance_hagar_primary_damage 14
  set g_balance_hagar_primary_edgedamage 6
  set g_balance_hagar_primary_force 70
 -set g_balance_hagar_primary_radius 115
 +set g_balance_hagar_primary_radius 110
  set g_balance_hagar_primary_spread 0.1
  set g_balance_hagar_primary_speed 1800
  set g_balance_hagar_primary_lifetime 5
diff --combined balancetZork.cfg
index ce37fdb53db1748b43a181b9b5ce62dcda4e32a8,e7f5431d045aefcd0946461e388ab07b0922ec62..b0b589867b9f6573c845334077add9cb1013fc43
@@@ -55,67 -55,52 +55,52 @@@ set g_balance_nix_ammoincr_fuel 
  // {{{ pickup items
  set g_pickup_ammo_anyway 1
  set g_pickup_weapons_anyway 1
  set g_pickup_shells 20
  set g_pickup_shells_weapon 10
  set g_pickup_shells_max 50
  set g_pickup_nails 60
  set g_pickup_nails_weapon 60
  set g_pickup_nails_max 300
  set g_pickup_rockets 25
  set g_pickup_rockets_weapon 15
  set g_pickup_rockets_max 150
  set g_pickup_cells 30
  set g_pickup_cells_weapon 20
  set g_pickup_cells_max 300
  set g_pickup_fuel 25
  set g_pickup_fuel_weapon 15
  set g_pickup_fuel_jetpack 50
  set g_pickup_fuel_max 999
  set g_pickup_armorsmall 5
  set g_pickup_armorsmall_max 999
  set g_pickup_armorsmall_anyway 0
  set g_pickup_armormedium 25
  set g_pickup_armormedium_max 100
  set g_pickup_armormedium_anyway 0
  set g_pickup_armorbig 50
  set g_pickup_armorbig_max 150
  set g_pickup_armorbig_anyway 0
  set g_pickup_armorlarge 100
  set g_pickup_armorlarge_max 999
  set g_pickup_armorlarge_anyway 0
  set g_pickup_healthsmall 5
  set g_pickup_healthsmall_max 999
  set g_pickup_healthsmall_anyway 0
  set g_pickup_healthmedium 25
  set g_pickup_healthmedium_max 100
  set g_pickup_healthmedium_anyway 0
  set g_pickup_healthlarge 50
  set g_pickup_healthlarge_max 150
  set g_pickup_healthlarge_anyway 0
  set g_pickup_healthmega 100
  set g_pickup_healthmega_max 999
  set g_pickup_healthmega_anyway 0
  set g_pickup_respawntime_short 15
  set g_pickup_respawntime_medium 20
  set g_pickup_respawntime_long 30
  set g_pickup_respawntime_powerup 120
  set g_pickup_respawntime_weapon 20
  set g_pickup_respawntime_ammo 15
  set g_pickup_respawntimejitter_short 0
  set g_pickup_respawntimejitter_medium 0
  set g_pickup_respawntimejitter_long 0
@@@ -241,7 -226,6 +226,7 @@@ set g_balance_laser_primary_delay 
  set g_balance_laser_primary_gauntlet 0
  set g_balance_laser_primary_force_zscale 1.2
  set g_balance_laser_primary_force_velocitybias 0
 +set g_balance_laser_primary_force_other_scale 1
  set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
  set g_balance_laser_secondary_damage 35
  set g_balance_laser_secondary_edgedamage 10
@@@ -257,7 -241,6 +242,7 @@@ set g_balance_laser_secondary_delay 
  set g_balance_laser_secondary_gauntlet 0
  set g_balance_laser_secondary_force_zscale 1
  set g_balance_laser_secondary_force_velocitybias 0
 +set g_balance_laser_secondary_force_other_scale 1
  // }}}
  // {{{ shotgun
  set g_balance_shotgun_primary_bullets 10
@@@ -279,7 -262,6 +264,6 @@@ set g_balance_shotgun_secondary_force 1
  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
@@@ -350,7 -332,7 +334,7 @@@ set g_balance_grenadelauncher_secondary
  set g_balance_grenadelauncher_bouncefactor 0.5
  set g_balance_grenadelauncher_bouncestop 0.075
  // }}}
- // {{{ minelayer // TODO
+ // {{{ minelayer
  set g_balance_minelayer_damage 35
  set g_balance_minelayer_edgedamage 30
  set g_balance_minelayer_force 250
@@@ -390,7 -372,6 +374,6 @@@ set g_balance_electro_primary_range 
  set g_balance_electro_primary_falloff_mindist 255 // 0.3 * radius
  set g_balance_electro_primary_falloff_maxdist 850
  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 50
@@@ -409,7 -390,6 +392,6 @@@ set g_balance_electro_secondary_damagef
  set g_balance_electro_secondary_count 3
  set g_balance_electro_secondary_bouncefactor 0.5
  set g_balance_electro_secondary_bouncestop 0.075
  set g_balance_electro_combo_damage 80
  set g_balance_electro_combo_edgedamage 10
  set g_balance_electro_combo_force 150
@@@ -430,6 -410,7 +412,7 @@@ set g_balance_crylink_primary_refire 
  set g_balance_crylink_primary_animtime 0.4
  set g_balance_crylink_primary_ammo 2
  set g_balance_crylink_primary_bouncedamagefactor 0.2
+ set g_balance_crylink_primary_joindelay 0
  set g_balance_crylink_primary_joinspread 0.1
  set g_balance_crylink_primary_jointime 0
  set g_balance_crylink_primary_joinexplode 1                           //if != 0 do a extra damage pass when projectiles join
@@@ -438,6 -419,7 +421,7 @@@ set g_balance_crylink_primary_joinexplo
  set g_balance_crylink_primary_joinexplode_radius 200
  set g_balance_crylink_primary_joinexplode_force 400
  set g_balance_crylink_primary_linkexplode 0
  set g_balance_crylink_primary_middle_lifetime 5 
  set g_balance_crylink_primary_middle_fadetime 0.25
  set g_balance_crylink_primary_other_lifetime 2 // range: 800 full, fades to 1300
@@@ -456,6 -438,7 +440,7 @@@ set g_balance_crylink_secondary_refire 
  set g_balance_crylink_secondary_animtime 0.15
  set g_balance_crylink_secondary_ammo 1
  set g_balance_crylink_secondary_bouncedamagefactor 0.5
+ set g_balance_crylink_secondary_joindelay 0
  set g_balance_crylink_secondary_joinspread 0
  set g_balance_crylink_secondary_jointime 0
  set g_balance_crylink_secondary_joinexplode 0                 
@@@ -537,7 -520,7 +522,7 @@@ set g_balance_hagar_secondary_lifetime_
  set g_balance_hagar_secondary_refire 0.15
  set g_balance_hagar_secondary_ammo 1
  // }}}
- // {{{ rocketlauncher // TODO
+ // {{{ rocketlauncher
  set g_balance_rocketlauncher_damage 120
  set g_balance_rocketlauncher_edgedamage 25
  set g_balance_rocketlauncher_force 350
@@@ -617,6 -600,7 +602,7 @@@ set g_balance_hlac_secondary_force 10
  set g_balance_hlac_secondary_radius 50
  set g_balance_hlac_secondary_speed 15000
  set g_balance_hlac_secondary_lifetime 3
  set g_balance_hlac_secondary_refire 1
  set g_balance_hlac_secondary_animtime 0.7
  set g_balance_hlac_secondary_ammo 10
@@@ -718,7 -702,6 +704,6 @@@ set g_balance_seeker_flac_speed 500
  set g_balance_seeker_flac_speed_up 500
  set g_balance_seeker_flac_speed_z 0
  set g_balance_seeker_flac_spread 0.25
  set g_balance_seeker_missile_accel 1400
  set g_balance_seeker_missile_ammo 2
  set g_balance_seeker_missile_animtime 0.3
@@@ -746,7 -729,6 +731,6 @@@ set g_balance_seeker_missile_speed_z 
  set g_balance_seeker_missile_speed_max 1400
  set g_balance_seeker_missile_spread 0
  set g_balance_seeker_missile_turnrate 0.65
  set g_balance_seeker_tag_ammo 1
  set g_balance_seeker_tag_animtime 0.3
  set g_balance_seeker_tag_damageforcescale 4
diff --combined defaultXonotic.cfg
index f234f934698ebc82e9b8514069b75a7b5c927c25,72f43f6fd453e639938bd07b5420eb782d39725e..6b5b21f9a12689861fc72532884b8a0072cee66b
@@@ -565,7 -565,8 +565,8 @@@ set g_freezetag 0 "Freeze Tag: Freeze t
  seta g_freezetag_warmup 5 "Time players get to run around before the round starts"
  seta g_freezetag_point_limit -1       "Freeze Tag point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
  seta g_freezetag_point_leadlimit -1   "Freeze Tag point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
- seta g_freezetag_revive_time 2.5 "Time it takes to revive a frozen teammate"
+ seta g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate"
+ seta g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range"
  seta g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him"
  seta g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with"
  
@@@ -642,7 -643,6 +643,7 @@@ seta g_mirrordamage 0.700000       "for teamp
  seta g_mirrordamage_virtual 1 "for teamplay 4: do not actually apply mirror damage, just show graphics effect for it"
  seta g_friendlyfire 0.500000  "for teamplay 4: fiendly fire factor"
  seta g_friendlyfire_virtual 1 "for teamplay 4: do not actually apply friendly fire, just show graphics effect for it"
 +seta g_friendlyfire_virtual_force 1   "for teamplay 4: apply force even though damage was made virtual only"
  seta g_teamdamage_threshold 40        "for teamplay 4: threshold over which to apply mirror damage"
  seta g_teamdamage_resetspeed 20       "for teamplay 4: how fast player's teamdamage count decreases"
  
@@@ -1361,6 -1361,7 +1362,7 @@@ seta slowmo 
  seta menu_skin "luminos"
  set menu_slowmo 1
  seta menu_sounds 0 "enables menu sound effects. 1 enables click sounds, 2 also enables hover sounds"
+ set menu_picmip_bypass 0 "bypass texture quality enforcement based on system resources, not recommended and may cause crashes!"
  
  r_textbrightness 0.2
  r_textcontrast 0.8
index fb9afec70627e9e4a2975bf28b405d5d9fbeefb9,b00c1acc4c58c2e6fe53244048cc5d1468c27988..d8d0c5f82c27da2c17e724097425d49a5c06ac39
@@@ -121,6 -121,7 +121,7 @@@ float autocvar_g_balance_crylink_primar
  float autocvar_g_balance_crylink_primary_damage;
  float autocvar_g_balance_crylink_primary_edgedamage;
  float autocvar_g_balance_crylink_primary_force;
+ float autocvar_g_balance_crylink_primary_joindelay;
  float autocvar_g_balance_crylink_primary_joinexplode;
  float autocvar_g_balance_crylink_primary_joinexplode_damage;
  float autocvar_g_balance_crylink_primary_joinexplode_edgedamage;
@@@ -146,6 -147,7 +147,7 @@@ float autocvar_g_balance_crylink_second
  float autocvar_g_balance_crylink_secondary_damage;
  float autocvar_g_balance_crylink_secondary_edgedamage;
  float autocvar_g_balance_crylink_secondary_force;
+ float autocvar_g_balance_crylink_secondary_joindelay;
  float autocvar_g_balance_crylink_secondary_joinexplode;
  float autocvar_g_balance_crylink_secondary_joinexplode_damage;
  float autocvar_g_balance_crylink_secondary_joinexplode_edgedamage;
@@@ -388,7 -390,6 +390,7 @@@ float autocvar_g_balance_laser_primary_
  float autocvar_g_balance_laser_primary_delay;
  float autocvar_g_balance_laser_primary_edgedamage;
  float autocvar_g_balance_laser_primary_force;
 +float autocvar_g_balance_laser_primary_force_other_scale;
  float autocvar_g_balance_laser_primary_force_velocitybias;
  float autocvar_g_balance_laser_primary_force_zscale;
  float autocvar_g_balance_laser_primary_lifetime;
@@@ -401,7 -402,6 +403,7 @@@ float autocvar_g_balance_laser_secondar
  float autocvar_g_balance_laser_secondary_damage;
  float autocvar_g_balance_laser_secondary_edgedamage;
  float autocvar_g_balance_laser_secondary_force;
 +float autocvar_g_balance_laser_secondary_force_other_scale;
  float autocvar_g_balance_laser_secondary_force_velocitybias;
  float autocvar_g_balance_laser_secondary_force_zscale;
  float autocvar_g_balance_laser_secondary_lifetime;
@@@ -721,11 -721,11 +723,12 @@@ float autocvar_g_freezetag_frozen_force
  float autocvar_g_freezetag_point_leadlimit;
  float autocvar_g_freezetag_point_limit;
  float autocvar_g_freezetag_revive_extra_size;
- float autocvar_g_freezetag_revive_time;
+ float autocvar_g_freezetag_revive_speed;
+ float autocvar_g_freezetag_revive_clearspeed;
  float autocvar_g_freezetag_warmup;
  #define autocvar_g_friendlyfire cvar("g_friendlyfire")
  #define autocvar_g_friendlyfire_virtual cvar("g_friendlyfire_virtual")
 +#define autocvar_g_friendlyfire_virtual_force cvar("g_friendlyfire_virtual_force")
  float autocvar_g_full_getstatus_responses;
  float autocvar_g_fullbrightitems;
  float autocvar_g_fullbrightplayers;
diff --combined qcsrc/server/g_damage.qc
index 0c07ad5a74de568af22a5fbb73cdf7345a4ba439,3530fcaccd038c739f553862acd750a1c536f2ac..357f5191ec8355c9d22533f016a53a45191e372a
@@@ -602,8 -602,7 +602,8 @@@ void Damage (entity targ, entity inflic
                                                                targ.dmg_save += v_y;
                                                                targ.dmg_inflictor = inflictor;
                                                                damage = 0;
 -                                                              force = '0 0 0';
 +                                if(!autocvar_g_friendlyfire_virtual_force)
 +                                    force = '0 0 0';
                                                        }
                                                }
                                                else
                                {
                                        if(damage > 0)
                                        {
-                                               if(attacker.weapon != WEP_ELECTRO && attacker.weapon != WEP_LASER || ((attacker.weapon == WEP_ELECTRO && autocvar_g_balance_electro_lightning || attacker.weapon == WEP_LASER) && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time))
+                                               if(attacker.weapon != WEP_LASER
+                                               && (attacker.weapon != WEP_ELECTRO || !autocvar_g_balance_electro_lightning)
+                                               && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time)
                                                {
                                                        if(targ.BUTTON_CHAT)
                                                                attacker.typehitsound += 1;
                                }
                                else
                                {
-                                       if(deathtype != DEATH_FIRE)
+                                       if(deathtype != DEATH_FIRE
+                                       && attacker.prevhitsound + autocvar_sv_hitsound_antispam_time < time)
+                                       {
                                                attacker.typehitsound += 1;
+                                               attacker.prevhitsound = time;
+                                       }
                                        if(mirrordamage > 0)
                                                if(time > attacker.teamkill_complain)
                                                {
@@@ -1021,47 -1026,33 +1027,47 @@@ float RadiusDamage (entity inflictor, e
                                                // laser force adjustments :P
                                                if(DEATH_WEAPONOF(deathtype) == WEP_LASER)
                                                {
 -                                                      vector vel;
 -
 -                                                      float force_zscale;
 -                                                      float force_velocitybiasramp;
 -                                                      float force_velocitybias;
 -
 -                                                      force_velocitybiasramp = autocvar_sv_maxspeed;
 -                                                      if(deathtype & HITTYPE_SECONDARY)
 -                                                      {
 -                                                              force_zscale = autocvar_g_balance_laser_secondary_force_zscale;
 -                                                              force_velocitybias = autocvar_g_balance_laser_secondary_force_velocitybias;
 -                                                      }
 -                                                      else
 -                                                      {
 -                                                              force_zscale = autocvar_g_balance_laser_primary_force_zscale;
 -                                                              force_velocitybias = autocvar_g_balance_laser_primary_force_velocitybias;
 -                                                      }
 -
 -                                                      vel = targ.velocity;
 -                                                      vel_z = 0;
 -                                                      vel = normalize(vel) * bound(0, vlen(vel) / force_velocitybiasramp, 1) * force_velocitybias;
 -                                                      force =
 -                                                              vlen(force)
 -                                                              *
 -                                                              normalize(normalize(force) + vel);
 -
 -                                                      force_z *= force_zscale;
 +                            if (targ == attacker)
 +                            {
 +                                vector vel;
 +
 +                                float force_zscale;
 +                                float force_velocitybiasramp;
 +                                float force_velocitybias;
 +
 +                                force_velocitybiasramp = autocvar_sv_maxspeed;
 +                                if(deathtype & HITTYPE_SECONDARY)
 +                                {
 +                                    force_zscale = autocvar_g_balance_laser_secondary_force_zscale;
 +                                    force_velocitybias = autocvar_g_balance_laser_secondary_force_velocitybias;
 +                                }
 +                                else
 +                                {
 +                                    force_zscale = autocvar_g_balance_laser_primary_force_zscale;
 +                                    force_velocitybias = autocvar_g_balance_laser_primary_force_velocitybias;
 +                                }
 +
 +                                vel = targ.velocity;
 +                                vel_z = 0;
 +                                vel = normalize(vel) * bound(0, vlen(vel) / force_velocitybiasramp, 1) * force_velocitybias;
 +                                force =
 +                                    vlen(force)
 +                                    *
 +                                    normalize(normalize(force) + vel);
 +
 +                                force_z *= force_zscale;
 +                            }
 +                            else
 +                            {
 +                                if(deathtype & HITTYPE_SECONDARY)
 +                                {
 +                                    force *= autocvar_g_balance_laser_secondary_force_other_scale;
 +                                }
 +                                else
 +                                {
 +                                    force *= autocvar_g_balance_laser_primary_force_other_scale;
 +                                }
 +                            }
                                                }
  
                                                //if (targ == attacker)