set g_balance_nex_secondary_damagefalloff_maxdist 0
set g_balance_nex_secondary_damagefalloff_halflife 0
set g_balance_nex_secondary_damagefalloff_forcehalflife 0
+
+set g_balance_nex_velocitydependent 0
+set g_balance_nex_velocitydependent_minspeed 400
+set g_balance_nex_velocitydependent_minspeed 1000
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_nex_secondary_damagefalloff_maxdist 9999999
set g_balance_nex_secondary_damagefalloff_halflife 9999999
set g_balance_nex_secondary_damagefalloff_forcehalflife 9999999
+
+set g_balance_nex_velocitydependent 0
+set g_balance_nex_velocitydependent_minspeed 400
+set g_balance_nex_velocitydependent_minspeed 1000
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_nex_secondary_damagefalloff_maxdist 3000
set g_balance_nex_secondary_damagefalloff_halflife 1500
set g_balance_nex_secondary_damagefalloff_forcehalflife 1500
+
+set g_balance_nex_velocitydependent 0
+set g_balance_nex_velocitydependent_minspeed 400
+set g_balance_nex_velocitydependent_minspeed 1000
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_nex_secondary_damagefalloff_maxdist 3000
set g_balance_nex_secondary_damagefalloff_halflife 1500
set g_balance_nex_secondary_damagefalloff_forcehalflife 1500
+
+set g_balance_nex_velocitydependent 0
+set g_balance_nex_velocitydependent_minspeed 400
+set g_balance_nex_velocitydependent_minspeed 1000
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1
set g_balance_crylink_secondary_line_fadetime 2
// }}}
// {{{ nex
-set g_balance_nex_primary_damage 80
+set g_balance_nex_primary_damage 125
set g_balance_nex_primary_force 400
-set g_balance_nex_primary_refire 1.25
+set g_balance_nex_primary_refire 1
set g_balance_nex_primary_animtime 0.75
set g_balance_nex_primary_ammo 5
-set g_balance_nex_primary_damagefalloff_mindist 0
-set g_balance_nex_primary_damagefalloff_maxdist 4000
+set g_balance_nex_primary_damagefalloff_mindist 500
+set g_balance_nex_primary_damagefalloff_maxdist 4500
set g_balance_nex_primary_damagefalloff_halflife 2000
set g_balance_nex_primary_damagefalloff_forcehalflife 2000
set g_balance_nex_secondary 1
-set g_balance_nex_secondary_damage 80
+set g_balance_nex_secondary_damage 125
set g_balance_nex_secondary_force -500
-set g_balance_nex_secondary_refire 1.25
+set g_balance_nex_secondary_refire 1
set g_balance_nex_secondary_animtime 0.75
set g_balance_nex_secondary_ammo 5
-set g_balance_nex_secondary_damagefalloff_mindist 0
-set g_balance_nex_secondary_damagefalloff_maxdist 4000
+set g_balance_nex_secondary_damagefalloff_mindist 500
+set g_balance_nex_secondary_damagefalloff_maxdist 4500
set g_balance_nex_secondary_damagefalloff_halflife 2000
set g_balance_nex_secondary_damagefalloff_forcehalflife 2000
+
+set g_balance_nex_velocitydependent 1
+set g_balance_nex_velocitydependent_minspeed 400
+set g_balance_nex_velocitydependent_minspeed 1000
// }}}
// {{{ minstanex
set g_balance_minstanex_refire 1.25
void W_Nex_Attack (float issecondary)
{
- float mydmg, myforce, mymindist, mymaxdist, myhalflife, myforcehalflife, myammo;
+ float mydmg, myforce, mymindist, mymaxdist, myhalflife, myforcehalflife, myammo, myvel;
if(issecondary)
{
mydmg = cvar("g_balance_nex_secondary_damage");
float flying;
flying = IsFlying(self); // do this BEFORE to make the trace values from FireRailgunBullet last
+ if(cvar("g_balance_nex_velocitydependent")) // player velocity dependent damage and force
+ {
+ myvel = vlen(self.velocity);
+
+ if(myvel < cvar("g_balance_nex_velocitydependent_minspeed"))
+ myvel = bound(cvar("g_balance_nex_velocitydependent_minspeed"), myvel, cvar("g_balance_nex_velocitydependent_maxspeed"));
+
+ // TODO: make it more obvious (through effects, indicator on weapon) that damage increases when speed increases
+ mydmg *= cvar("g_balance_nex_velocitydependent_maxspeed") / myvel;
+ myforce *= cvar("g_balance_nex_velocitydependent_maxspeed") / myvel;
+ }
+
W_SetupShot (self, TRUE, 5, "weapons/nexfire.wav", mydmg);
yoda = 0;