[nexuiz-commits] r8233 - in trunk/data: . qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Nov 7 17:21:46 EST 2009
Author: div0
Date: 2009-11-07 17:21:45 -0500 (Sat, 07 Nov 2009)
New Revision: 8233
Modified:
trunk/data/balance.cfg
trunk/data/balance25.cfg
trunk/data/balanceHavoc.cfg
trunk/data/balanceNexrun.cfg
trunk/data/balanceSamual.cfg
trunk/data/qcsrc/server/cl_weaponsystem.qc
Log:
yet another style: linear falloff
Modified: trunk/data/balance.cfg
===================================================================
--- trunk/data/balance.cfg 2009-11-07 21:54:51 UTC (rev 8232)
+++ trunk/data/balance.cfg 2009-11-07 22:21:45 UTC (rev 8233)
@@ -184,6 +184,7 @@
// 2: forward + solid circle
// 3: forward + normal distribution 3D - varies velocity
// 4: forward + normal distribution on a plane
+// 5: forward + circle with linear falloff
set g_balance_falldamage_deadminspeed 150
set g_balance_falldamage_minspeed 1400
set g_balance_falldamage_factor 0.15
Modified: trunk/data/balance25.cfg
===================================================================
--- trunk/data/balance25.cfg 2009-11-07 21:54:51 UTC (rev 8232)
+++ trunk/data/balance25.cfg 2009-11-07 22:21:45 UTC (rev 8233)
@@ -184,6 +184,7 @@
// 2: forward + solid circle
// 3: forward + normal distribution 3D - varies velocity
// 4: forward + normal distribution on a plane
+// 5: forward + circle with linear falloff
set g_balance_falldamage_deadminspeed 150
set g_balance_falldamage_minspeed 1400
set g_balance_falldamage_factor 0.15
Modified: trunk/data/balanceHavoc.cfg
===================================================================
--- trunk/data/balanceHavoc.cfg 2009-11-07 21:54:51 UTC (rev 8232)
+++ trunk/data/balanceHavoc.cfg 2009-11-07 22:21:45 UTC (rev 8233)
@@ -184,6 +184,7 @@
// 2: forward + solid circle
// 3: forward + normal distribution 3D - varies velocity
// 4: forward + normal distribution on a plane
+// 5: forward + circle with linear falloff
set g_balance_falldamage_deadminspeed 150
set g_balance_falldamage_minspeed 1400
set g_balance_falldamage_factor 0.15
Modified: trunk/data/balanceNexrun.cfg
===================================================================
--- trunk/data/balanceNexrun.cfg 2009-11-07 21:54:51 UTC (rev 8232)
+++ trunk/data/balanceNexrun.cfg 2009-11-07 22:21:45 UTC (rev 8233)
@@ -185,6 +185,7 @@
// 2: forward + solid circle
// 3: forward + normal distribution 3D - varies velocity
// 4: forward + normal distribution on a plane
+// 5: forward + circle with linear falloff
set g_balance_falldamage_deadminspeed 150
set g_balance_falldamage_minspeed 675
set g_balance_falldamage_factor 0.25
Modified: trunk/data/balanceSamual.cfg
===================================================================
--- trunk/data/balanceSamual.cfg 2009-11-07 21:54:51 UTC (rev 8232)
+++ trunk/data/balanceSamual.cfg 2009-11-07 22:21:45 UTC (rev 8233)
@@ -185,6 +185,7 @@
// 2: forward + solid circle
// 3: forward + normal distribution 3D - varies velocity
// 4: forward + normal distribution on a plane
+// 5: forward + circle with linear falloff
set g_balance_falldamage_deadminspeed 150
set g_balance_falldamage_minspeed 1400
set g_balance_falldamage_factor 0.15
Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-11-07 21:54:51 UTC (rev 8232)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-11-07 22:21:45 UTC (rev 8233)
@@ -1279,7 +1279,7 @@
{
float sigma;
vector v1, v2;
- float dx, dy;
+ float dx, dy, r, t;
float sstyle;
if(spread <= 0)
return forward;
@@ -1326,8 +1326,30 @@
v1_z = gsl_ran_gaussian(sigma);
return normalize(forward + cliptoplane(v1, forward));
}
+ else if(sstyle == 5)
+ {
+ sigma = spread * 1.154700538379252; // match baseline stddev
+ v1 = findperpendicular(forward);
+ v2 = cross(forward, v1);
+ do
+ {
+ dx = -1 + 2 * random();
+ dy = -1 + 2 * random();
+ }
+ while(dx * dx + dy * dy >= 1);
+ // now we want a LINEAR falloff, though...
+ // i.e. radius X has a multiplied-in probability multiplier of 1-X
+ r = sqrt(dx * dx + dy * dy);
+ if(r > 0)
+ {
+ t = 1 - sqrt(1 - r);
+ dx *= t/r;
+ dy *= t/r;
+ }
+ return normalize(forward + (v1 * dx + v2 * dy) * sigma);
+ }
else
- error("g_projectiles_spread_style must be 0 (sphere), 1 (flattened sphere), 2 (circle), 3 (gauss 3D), 4 (gauss plane)!");
+ error("g_projectiles_spread_style must be 0 (sphere), 1 (flattened sphere), 2 (circle), 3 (gauss 3D), 4 (gauss plane), 5 (linear falloff)!");
return '0 0 0';
}
More information about the nexuiz-commits
mailing list