Áƒ*žEI@(Ą#Ź—pZúTFËM´Ć֘ß[Nb(INoneParticleSystemPhysicsParticlePropertiesVectorParticleSystem_42 DrawTypeSystemEngineCoreTriggerTimerParticleScaleGlowparticleLifeSpanTerminalVelocityInitialVelocityRandomizerAnimatedSpriteInitialVelocityparticleDrawScaleHitWallLanded SpawnTime Numparticles EffectAreaTexture ParticleTypebUnlitStylePhysics Particle_42bHidden PreBeginPlayZ LifeSpanEffectsY DrawScaleX ScaleGlowActor LocationbInitiallyActiveOther HitNormalEventInstigator VelocitybActivePawn SpawnpointClass SmokeGraysp1_A00Package TextBufferObject FunctionStruct UnrealShareStructPropertyClassPropertyObjectPropertyFloatProperty BoolProperty IntProperty BytePropertyParticleTexturesParticleDrawVarienceInitialAcceleration NumSpawned Particle InitialAccelSpawnTimeRandomizer bModulatedParticleLifeSpanVarience!"˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙!”lÜGÉ‚Óƒƒƒƒ ƒƒƒ   Žƒ ˝ #E ParticleType;//For possibility of particles that hurt when touched etc. var(ParticleProperties) float ParticleScaleGlow; //Initial scale glow (brightness) of the particles var Particle_42 Particle; var vector SpawnPoint; var int NumSpawned; var bool bActive; //Is particle system active? function Trigger( Actor Other, Pawn EventInstigator ) { if ( bActive ) { SetTimer( 0.0, False ); bActive = False; } else { SetTimer( SpawnTime, True ); bActive = True; } } function PreBeginPlay() { enable('Trigger'); if ( bInitiallyActive ) { SetTimer( SpawnTime, True ); bActive = True; } else { bActive = False; } } function Timer() { for (NumSpawned = 0; NumSpawned < numParticles; NumSpawned++) { SpawnPoint.Z = Location.Z + (1 - FRand() * 2) * EffectArea.Z; SpawnPoint.X = Location.X + (1 - FRand() * 2) * EffectArea.X; SpawnPoint.Y = Location.Y + (1 - FRand() * 2) * EffectArea.Y; Particle = spawn(ParticleType,,,SpawnPoint); //Actually spawn the particle //set velocity and accel for this particle Particle.Velocity.Z = InitialVelocity.Z - 1 + FRand() * 2 * InitialVelocityRandomizer.Z; Particle.Velocity.X = InitialVelocity.X - 1 + FRand() * 2 * InitialVelocityRandomizer.X; Particle.Velocity.Y = InitialVelocity.Y - 1 + FRand() * 2 * InitialVelocityRandomizer.Y; if ( InitialAcceleration != vect(0,0,0) ) { Particle.InitialAccel.Z = InitialAcceleration.Z; Particle.InitialAccel.X = InitialAcceleration.X; Particle.InitialAccel.Y = InitialAcceleration.Y; Particle.TerminalVelocity = TerminalVelocity; Particle.SetTimer(0.1,true); //The particle's timer for accelerating etc. } //set lifespan, texture etc. Particle.Texture = ParticleTextures[rand(6)]; Particle.LifeSpan = ParticleLifeSpan + (1 - FRand() * 2) * ParticleLifeSpanVarience; Particle.ScaleGlow = ParticleScaleGlow; Particle.DrawScale = ParticleDrawScale + (1 - FRand() * 2) * ParticleDrawVarience; if ( bModulated ) particle.Style=STY_Modulated; } if ( SpawnTimeRandomizer != 0 ) SetTimer( SpawnTime + (1 - FRand() * 2) * SpawnTimeRandomizer, False ); } “ 7F ˝%’–6ˆŽ6ˆ’ŤŻ?&ŤĂ?,6ˆ 6†Ž6†’ŤŻ?&ŤĂ?,6† 6‡Ž6‡’ŤŻ?&ŤĂ?,6‡ a 6ˆ ‰ŽŻ6ˆ ?&ŤŤĂ?,6ˆ 6† ‰ŽŻ6† ?&ŤŤĂ?,6† 6‡ ‰ŽŻ6‡ ?&ŤŤĂ?,6‡ ńÚ#6ˆ 6ˆ6† 6†6‡ 6‡  aÍĚĚ='•§,œŽŤŻ?&ŤĂ?,ŸžŽŤŻ?&ŤĂ?,ˆ-š$Ľťľ ?%aŽ ŤŻ?&ŤĂ?, ( ›  ü0-a(-(.a '-' ˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙x¸ÚÓ!”l‚Łáb//============================================================================= // AnimatedSprite. //============================================================================= class AnimatedSprite expands Particle_42; —+Ł.u! $-a '-',-(  €…€–0\ //============================================================================= // Particle_42. //============================================================================= class Particle_42 expands Effects; var vector InitialAccel; var vector TerminalVelocity; simulated function Timer() { //Accelerate particle if it hasn't reached it's terminal velocity if ((Velocity.Z < TerminalVelocity.Z)&&(Velocity.Z > -TerminalVelocity.Z)) velocity.Z += InitialAccel.Z; if ((Velocity.X < TerminalVelocity.X)&&(Velocity.X > -TerminalVelocity.X)) velocity.X += InitialAccel.X; if ((Velocity.Y < TerminalVelocity.Y)&&(Velocity.Y > -TerminalVelocity.Y)) velocity.Y += InitialAccel.Y; } simulated function HitWall(vector HitNormal, actor HitWall) { Destroy(); } simulated function Landed(vector HitNormal) { Destroy(); } ˜#$La ™%& a €ƒ“ wćL‚°6ˆ‰6ˆą6ˆ‰Š6ˆ¸6ˆ‰6ˆ˜‚°6†‰6†ą6†‰Š6†¸6†‰6†䂰6‡‰6‡ą6‡‰Š6‡¸6‡‰6‡ '€ƒ€…˙˙˙˙˙˙˙˙@˙˙˙˙˙˙˙˙˙˙(ůOÚŁÜGÉ!”l!”l!”l!”l!”l!”l!”l!”l!”l!”l!”l!”l!”l‚:đA"$ÍĚĚ= :@E@E@E $?: A A: @ @$€> $?Ó30˙˙˙˙57ţ˙˙˙30ü˙˙˙&<ý˙˙˙$<ý˙˙˙"<ý˙˙˙9ű˙˙˙,0˙˙˙˙90˙˙˙˙<0˙˙˙˙60˙˙˙˙;0˙˙˙˙00ü˙˙˙!0˙˙˙˙40˙˙˙˙=9ű˙˙˙'6ű˙˙˙ 0˙˙˙˙>;ű˙˙˙0ü˙˙˙.6ű˙˙˙6ű˙˙˙6ű˙˙˙?ű˙˙˙6ű˙˙˙ <ű˙˙˙ 0˙˙˙˙:<ű˙˙˙#<ű˙˙˙%0ü˙˙˙383ß˙˙˙1Ţ˙˙˙2$af(D GŠ  TŠE a‘(- nŠ(B zŠ(/ G”(C TŠ( `Š( mŠ( z‹( G‹(F S‹(  _‹( k”( w(@ C(P‘(G ^‘(( jŠ(  v‹(A C‹(  O‹(H [4P