[nexuiz-commits] r8239 - in trunk/data: . qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Nov 8 04:14:42 EST 2009
Author: div0
Date: 2009-11-08 04:14:31 -0500 (Sun, 08 Nov 2009)
New Revision: 8239
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:
add back the falloff curve that was MEANT to be linear before :P
Modified: trunk/data/balance.cfg
===================================================================
--- trunk/data/balance.cfg 2009-11-08 08:45:44 UTC (rev 8238)
+++ trunk/data/balance.cfg 2009-11-08 09:14:31 UTC (rev 8239)
@@ -186,6 +186,7 @@
// 4: forward + normal distribution on a plane
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
+// 7: forward + circle with (1-r)(2-r) 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-08 08:45:44 UTC (rev 8238)
+++ trunk/data/balance25.cfg 2009-11-08 09:14:31 UTC (rev 8239)
@@ -186,6 +186,7 @@
// 4: forward + normal distribution on a plane
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
+// 7: forward + circle with (1-r)(2-r) 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-08 08:45:44 UTC (rev 8238)
+++ trunk/data/balanceHavoc.cfg 2009-11-08 09:14:31 UTC (rev 8239)
@@ -186,6 +186,7 @@
// 4: forward + normal distribution on a plane
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
+// 7: forward + circle with (1-r)(2-r) 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-08 08:45:44 UTC (rev 8238)
+++ trunk/data/balanceNexrun.cfg 2009-11-08 09:14:31 UTC (rev 8239)
@@ -187,6 +187,7 @@
// 4: forward + normal distribution on a plane
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
+// 7: forward + circle with (1-r)(2-r) 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-08 08:45:44 UTC (rev 8238)
+++ trunk/data/balanceSamual.cfg 2009-11-08 09:14:31 UTC (rev 8239)
@@ -187,6 +187,7 @@
// 4: forward + normal distribution on a plane
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
+// 7: forward + circle with (1-r)(2-r) 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-08 08:45:44 UTC (rev 8238)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2009-11-08 09:14:31 UTC (rev 8239)
@@ -1416,9 +1416,36 @@
r = sqrt(1 - r);
return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
}
+ else if(sstyle == 7) // (1-r) (2-r)
+ {
+ sigma = spread * 1.224744871391589; // match baseline stddev
+ v1 = findperpendicular(forward);
+ v2 = cross(forward, v1);
+ // random point on unit circle
+ dx = random() * 2 * M_PI;
+ dy = sin(dx);
+ dx = cos(dx);
+ // radius in our dist function
+ r = random();
+ r = 1 - sqrt(r);
+ r = 1 - sqrt(r);
+ return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
+ }
else
- error("g_projectiles_spread_style must be 0 (sphere), 1 (flattened sphere), 2 (circle), 3 (gauss 3D), 4 (gauss plane), 5 (linear falloff), 6 (quadratic falloff)!");
+ error("g_projectiles_spread_style must be 0 (sphere), 1 (flattened sphere), 2 (circle), 3 (gauss 3D), 4 (gauss plane), 5 (linear falloff), 6 (quadratic falloff), 7 (stronger falloff)!");
return '0 0 0';
+ /*
+ * how to derive falloff functions:
+ * rho(r) := (2-r) * (1-r);
+ * a : 0;
+ * b : 1;
+ * rhor(r) := r * rho(r);
+ * cr(t) := integrate(rhor(r), r, a, t);
+ * scr(t) := integrate(rhor(r) * r^2, r, a, t);
+ * variance : scr(b) / cr(b);
+ * solve(cr(r) = rand * cr(b), r), programmmode:false;
+ * sqrt(0.4 / variance), numer;
+ */
}
void W_SetupProjectileVelocityEx(entity missile, vector dir, vector upDir, float pSpeed, float pUpSpeed, float spread)
More information about the nexuiz-commits
mailing list