[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