set g_balance_hagar_secondary 1
set g_balance_hagar_secondary_load 0
set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
set g_balance_hagar_secondary_load_max 4
set g_balance_hagar_secondary_load_hold 0
set g_balance_hagar_secondary_load_releasedeath 1
set g_balance_hagar_secondary 1
set g_balance_hagar_secondary_load 0
set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
set g_balance_hagar_secondary_load_max 4
set g_balance_hagar_secondary_load_hold 0
set g_balance_hagar_secondary_load_releasedeath 1
set g_balance_hagar_secondary 1
set g_balance_hagar_secondary_load 0
set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
set g_balance_hagar_secondary_load_max 4
set g_balance_hagar_secondary_load_hold 0
set g_balance_hagar_secondary_load_releasedeath 1
// }}}
// {{{ misc
-set g_balance_selfdamagepercent 0.75
+set g_balance_selfdamagepercent 0.65
set g_balance_weaponswitchdelay 0.15
set g_weaponspeedfactor 1 "weapon projectile speed multiplier"
set g_weaponratefactor 1 "weapon fire rate multiplier"
set g_balance_uzi_burst_ammo 3
set g_balance_uzi_first 1
-set g_balance_uzi_first_damage 16
+set g_balance_uzi_first_damage 14
set g_balance_uzi_first_force 5
set g_balance_uzi_first_spread 0.03
-set g_balance_uzi_first_refire 0.3
+set g_balance_uzi_first_refire 0.4
set g_balance_uzi_first_ammo 1
-set g_balance_uzi_sustained_damage 14
+set g_balance_uzi_sustained_damage 12
set g_balance_uzi_sustained_force 5
set g_balance_uzi_sustained_spread 0.04
set g_balance_uzi_sustained_refire 0.1
// {{{ nex
set g_balance_nex_primary_damage 90
set g_balance_nex_primary_force 400
-set g_balance_nex_primary_refire 1.25
-set g_balance_nex_primary_animtime 0.3
+set g_balance_nex_primary_refire 1.5
+set g_balance_nex_primary_animtime 0.4
set g_balance_nex_primary_ammo 6
set g_balance_nex_primary_damagefalloff_mindist 0 // 1000 For tZork ;3
set g_balance_nex_primary_damagefalloff_maxdist 0 // 3000
set g_balance_minstanex_reload_time 2
// }}}
// {{{ hagar
-set g_balance_hagar_primary_damage 30
-set g_balance_hagar_primary_edgedamage 15
+set g_balance_hagar_primary_damage 25
+set g_balance_hagar_primary_edgedamage 12.5
set g_balance_hagar_primary_force 50
-set g_balance_hagar_primary_radius 70
-set g_balance_hagar_primary_spread 0.05
+set g_balance_hagar_primary_radius 60
+set g_balance_hagar_primary_spread 0.04
set g_balance_hagar_primary_speed 2000
set g_balance_hagar_primary_lifetime 5
set g_balance_hagar_primary_refire 0.15
set g_balance_hagar_secondary 1
set g_balance_hagar_secondary_load 1
set g_balance_hagar_secondary_load_speed 0.5
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
set g_balance_hagar_secondary_load_max 4
set g_balance_hagar_secondary_load_hold 1
set g_balance_hagar_secondary_load_releasedeath 0
set g_balance_hagar_secondary_edgedamage 20
set g_balance_hagar_secondary_force 50
set g_balance_hagar_secondary_radius 80
-set g_balance_hagar_secondary_spread 0.05
+set g_balance_hagar_secondary_spread 0.06
set g_balance_hagar_secondary_speed 2000
set g_balance_hagar_secondary_lifetime_min 10
set g_balance_hagar_secondary_lifetime_rand 0
set g_balance_rocketlauncher_damage 80
set g_balance_rocketlauncher_edgedamage 40
set g_balance_rocketlauncher_force 400
-set g_balance_rocketlauncher_radius 100
+set g_balance_rocketlauncher_radius 110
set g_balance_rocketlauncher_speed 1500
set g_balance_rocketlauncher_speedaccel 1500
set g_balance_rocketlauncher_speedstart 800
set g_balance_rocketlauncher_guidestop 0 // stop guiding when firing again
set g_balance_rocketlauncher_remote_damage 70
set g_balance_rocketlauncher_remote_edgedamage 35
-set g_balance_rocketlauncher_remote_radius 100
+set g_balance_rocketlauncher_remote_radius 110
set g_balance_rocketlauncher_remote_force 400
set g_balance_rocketlauncher_reload_ammo 0 //default: 25
set g_balance_rocketlauncher_reload_time 2
set g_balance_hagar_secondary 1
set g_balance_hagar_secondary_load 0
set g_balance_hagar_secondary_load_speed 0.6
+set g_balance_hagar_secondary_load_spread 0.075
+set g_balance_hagar_secondary_load_spread_bias 0.5
set g_balance_hagar_secondary_load_max 4
set g_balance_hagar_secondary_load_hold 0
set g_balance_hagar_secondary_load_releasedeath 1
float autocvar_g_balance_hagar_secondary;
float autocvar_g_balance_hagar_secondary_load;
float autocvar_g_balance_hagar_secondary_load_speed;
+float autocvar_g_balance_hagar_secondary_load_spread;
+float autocvar_g_balance_hagar_secondary_load_spread_bias;
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_lifetime_rand;
float autocvar_g_balance_hagar_secondary_radius;
float autocvar_g_balance_hagar_secondary_refire;
+float autocvar_g_balance_hagar_secondary_speed;
+float autocvar_g_balance_hagar_secondary_spread;
float autocvar_g_balance_hagar_reload_ammo;
float autocvar_g_balance_hagar_reload_time;
float autocvar_g_balance_health_limit;
// time to release the rockets we've loaded
local entity missile;
- local float counter, shots;
+ local float counter, shots, spread_pershot;
local vector s;
vector forward, right, up;
setorigin (missile, w_shotorg);
setsize(missile, '0 0 0', '0 0 0');
missile.movetype = MOVETYPE_FLY;
-
+
+ // per-shot spread calculation: the more shots there are, the less spread is applied (based on the bias cvar)
+ spread_pershot = ((shots - 1) / (autocvar_g_balance_hagar_secondary_load_max - 1));
+ spread_pershot = (1 - (spread_pershot * autocvar_g_balance_hagar_secondary_load_spread_bias));
+ spread_pershot = (autocvar_g_balance_hagar_secondary_spread * spread_pershot * g_weaponspreadfactor);
+
+ // pattern spread calculation
s = '0 0 0';
if (counter == 0)
s = '0 0 0';
s_y = v_forward_x;
s_z = v_forward_y;
}
- s = s * cvar("g_balance_hagar_secondary_spread") * g_weaponspreadfactor;
- W_SetupProjectileVelocityEx(missile, w_shotdir + right * s_y + up * s_z, v_up, cvar("g_balance_hagar_secondary_speed"), 0, 0, 0, FALSE);
+ s = s * autocvar_g_balance_hagar_secondary_load_spread * g_weaponspreadfactor;
+
+ W_SetupProjectileVelocityEx(missile, w_shotdir + right * s_y + up * s_z, v_up, autocvar_g_balance_hagar_secondary_speed, 0, 0, spread_pershot, FALSE);
missile.angles = vectoangles (missile.velocity);
missile.flags = FL_PROJECTILE;