[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