UnrealShare
Class Sparks

source: e:\games\UnrealTournament\UnrealShare\Classes\Sparks.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Effects
         |
         +--UnrealShare.Sparks
Direct Known Subclasses:None

class Sparks
extends Engine.Effects

//============================================================================= // Sparks. //=============================================================================
Variables
 int AngularDeviation
           approx. 0x2000 -> 8192
 float MaxBetweenTime
           1.0
 float MaxBrightness
           1.0 " "
 float MaxBurnTime
           1.0
 float MaxSpawnSpeed
           300
 int MaxSpawnedAtOnce
           3
 float MinBetweenTime
           0.4
 float MinBrightness
           0.7 (values can only go from 0.0 -> 1.0)
 float MinBurnTime
           0.4
 float MinSpawnSpeed
           200
 int MinSpawnedAtOnce
           1
 float NextSparkTime
           approx. 0x2000 -> 8192
 int NumSpawnedNow
           approx. 0x2000 -> 8192
 rotator SpawnCenterDir
           1.0 " "
 int i
           approx. 0x2000 -> 8192

States
StartState
State StartState Function Summary
 void MoreSparks()



Source Code


00001	//=============================================================================
00002	// Sparks.
00003	//=============================================================================
00004	class Sparks extends Effects;
00005	
00006	// Spawns off a number of SparkBit elements, which all die out
00007	// within a random amount of time.  MZM
00008									// Reasonable defaults
00009	var() float    MinBetweenTime;		// 0.4
00010	var() float    MaxBetweenTime;		// 1.0
00011	var() int      MinSpawnedAtOnce;	// 1
00012	var() int      MaxSpawnedAtOnce;	// 3
00013	var() float    MinSpawnSpeed;		// 200
00014	var() float    MaxSpawnSpeed;		// 300
00015	var() float    MinBurnTime;		// 0.4
00016	var() float    MaxBurnTime;		// 1.0
00017	var() float    MinBrightness;		// 0.7	(values can only go from 0.0 -> 1.0)
00018	var() float    MaxBrightness;		// 1.0    "							   "
00019	var() rotator  SpawnCenterDir;
00020	var() int      AngularDeviation;	// approx. 0x2000 -> 8192
00021	
00022	var   float    NextSparkTime;
00023	var   int	  NumSpawnedNow;
00024	var   int	  i;
00025	
00026	auto state StartState {
00027	
00028		function MoreSparks () {
00029	
00030			local SparkBit TempSparkBit;
00031			local rotator SpawnDir;
00032	
00033			// Time to generate another SparkBit.
00034			TempSparkBit = Spawn (class 'SparkBit', , '', Location);
00035	
00036			SpawnDir = SpawnCenterDir;
00037			SpawnDir.Pitch += -AngularDeviation + Rand(AngularDeviation*2);
00038			SpawnDir.Yaw   += -AngularDeviation + Rand(AngularDeviation*2);
00039			TempSparkBit.Velocity = Vector(SpawnDir)*(MinSpawnSpeed + 
00040			                         FRand()*(MaxSpawnSpeed-MinSpawnSpeed));
00041	
00042			//TempSparkBit.Velocity = Normal(VRand())*(MinSpawnSpeed + 
00043			//                         FRand()*(MaxSpawnSpeed-MinSpawnSpeed));
00044			TempSparkBit.BurnTime = MinBurnTime + FRand()*(MaxBurnTime-MinBurnTime);
00045	
00046			// 0=dark  1=bright
00047			TempSparkBit.InitialBrightness = MinBrightness + 
00048										   FRand()*(MaxBrightness-MinBrightness);
00049		}
00050	
00051	Begin:
00052	
00053		if (minBetweenTime >= maxBetweenTime) maxBetweenTime=minBetweenTime + 0.1;
00054	
00055	Loop:
00056	
00057		//Log ("Making more sparks");
00058		NumSpawnedNow = Rand(MaxSpawnedAtOnce-MinSpawnedAtOnce+1)+MinSpawnedAtOnce;
00059		for (i=0; i<NumSpawnedNow; i++)
00060			MoreSparks();
00061	
00062		NextSparkTime = FRand()*(MaxBetweenTime-MinBetweenTime)+ MinBetweenTime;
00063		//Log ("Next spark(s) in " $ NextSparkTime);
00064		Sleep (NextSparkTime);
00065		goto 'Loop';
00066	}
00067	
00068	defaultproperties
00069	{
00070	     MinBetweenTime=0.400000
00071	     MaxBetweenTime=1.000000
00072	     MinSpawnedAtOnce=1
00073	     MaxSpawnedAtOnce=3
00074	     MinSpawnSpeed=200.000000
00075	     MaxSpawnSpeed=300.000000
00076	     MinBurnTime=0.400000
00077	     MaxBurnTime=1.000000
00078	     MinBrightness=0.700000
00079	     MaxBrightness=1.000000
00080	     bHidden=True
00081	     bNetTemporary=False
00082	     LifeSpan=1000.000000
00083	     DrawType=DT_Mesh
00084	     Mesh=LodMesh'UnrealShare.bolt1'
00085	     LightBrightness=78
00086	     LightHue=96
00087	     LightSaturation=224
00088	     LightRadius=4
00089	}

End Source Code