RuneI
Class BlazeEffect

source: c:\runehov\RuneI\Classes\BlazeEffect.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.ParticleSystem
         |
         +--RuneI.BlazeEffect
Direct Known Subclasses:None

class BlazeEffect
extends Engine.ParticleSystem

//============================================================================= // BlazeEffect. //=============================================================================

Function Summary
 
simulated
SystemInit()
     
// init function
 
simulated
Tick(float DeltaTime)



Source Code


00001	//=============================================================================
00002	// BlazeEffect.
00003	//=============================================================================
00004	class BlazeEffect expands ParticleSystem;
00005	
00006	
00007	// init function
00008	simulated function SystemInit()
00009	{
00010		local int i;
00011		local float f;
00012	
00013		for (i=0; i<ParticleCount; i++)
00014		{
00015			ParticleArray[i].Valid = True;
00016			ParticleArray[i].Velocity = (VRand()+vect(0,0,1))*10;
00017			ParticleArray[i].Alpha = vect(1,1,1)*AlphaStart;
00018			ParticleArray[i].LifeSpan = LifeSpanMin + (LifeSpanMax-LifeSpanMin)*FRand();
00019			ParticleArray[i].TextureIndex = 0;
00020			ParticleArray[i].Style = Style;
00021	
00022			if (bRelativeToSystem)
00023				ParticleArray[i].Location = vect(0,0,0);
00024			else
00025				ParticleArray[i].Location = Location;
00026	
00027			switch(i)
00028			{
00029			case 0: case 1:// case 2: case 3: case 4: case 5:
00030				// Large explosions
00031				f = RandRange(1.0, 1.1);
00032				ParticleArray[i].Location += VRand()*10;
00033				ParticleArray[i].ScaleStartX = f;
00034				ParticleArray[i].ScaleStartY = f;
00035				ParticleArray[i].XScale = f;
00036				ParticleArray[i].YScale = f;
00037				break;
00038			default:
00039				// smaller explosions
00040				f = RandRange(0.2, 0.3);
00041				ParticleArray[i].Location += VRand()*50;
00042				ParticleArray[i].ScaleStartX = f;
00043				ParticleArray[i].ScaleStartY = f;
00044				ParticleArray[i].XScale = f;
00045				ParticleArray[i].YScale = f;
00046				ParticleArray[i].Velocity *= 2;
00047				ParticleArray[i].LifeSpan *= 0.5;
00048				break;
00049			}
00050		}
00051	
00052		IsLoaded=true;
00053	}
00054	
00055	simulated function Tick(float DeltaTime)
00056	{
00057		local int i;
00058	
00059		for (i=0; i<ParticleCount; i++)
00060		{
00061			ParticleArray[i].Alpha.Y -= DeltaTime;
00062			ParticleArray[i].Alpha.Z -= DeltaTime;
00063		}
00064	}
00065	
00066	defaultproperties
00067	{
00068	     bSystemOneShot=True
00069	     bRelativeToSystem=True
00070	     ParticleCount=8
00071	     ParticleTexture(0)=Texture'RuneFX.WaterBlood'
00072	     ShapeVector=(X=8.000000,Y=8.000000,Z=2.000000)
00073	     VelocityMin=(X=0.300000,Y=0.300000,Z=50.000000)
00074	     VelocityMax=(X=2.500000,Y=2.500000,Z=120.000000)
00075	     ScaleMin=0.700000
00076	     ScaleMax=1.100000
00077	     ScaleDeltaX=1.500000
00078	     ScaleDeltaY=1.500000
00079	     LifeSpanMin=0.500000
00080	     LifeSpanMax=1.500000
00081	     AlphaStart=10
00082	     AlphaEnd=20
00083	     bOneShot=True
00084	     bEventSystemInit=True
00085	     bNetTemporary=True
00086	     Physics=PHYS_Projectile
00087	     RemoteRole=ROLE_SimulatedProxy
00088	     Style=STY_Translucent
00089	     ScaleGlow=3.000000
00090	}

End Source Code