Botpack
Class FadeViewTrigger

source: e:\games\UnrealTournament\Botpack\Classes\FadeViewTrigger.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Triggers
         |
         +--Botpack.FadeViewTrigger
Direct Known Subclasses:None

class FadeViewTrigger
extends Engine.Triggers


Variables
 float FadeSeconds
 vector OldViewFlash
 vector TargetFlash
 bool bTriggerOnceOnly
 bool bTriggered


Source Code


00001	class FadeViewTrigger extends Triggers;
00002	
00003	var(ZoneLight) vector ViewFlash, ViewFog;
00004	
00005	
00006	var() vector TargetFlash;
00007	var() bool bTriggerOnceOnly; 
00008	var() float FadeSeconds;
00009	
00010	
00011	var vector OldViewFlash;
00012	var bool bTriggered;
00013	
00014	event BeginPlay()
00015	{
00016		Super.BeginPlay();
00017		bTriggered = False;
00018		
00019		Disable('Tick');
00020	}
00021	
00022	event Trigger( Actor Other, Pawn EventInstigator )
00023	{
00024		if(bTriggered && !bTriggerOnceOnly)
00025		{
00026			bTriggered = False;
00027			Region.Zone.ViewFlash = OldViewFlash;
00028		}
00029		else
00030		{
00031			bTriggered = True;
00032			OldViewFlash = Region.Zone.ViewFlash;
00033			Enable('Tick');
00034		}
00035	}
00036	
00037	event Tick(float DeltaTime)
00038	{
00039		local float X, Y, Z;
00040		local bool bXDone, bYDone, bZDone;
00041	
00042		if(bTriggered)
00043		{
00044			bXDone = False;
00045			bYDone = False;
00046			bZDone = False;
00047	
00048			X = Region.Zone.ViewFlash.X;
00049			Y = Region.Zone.ViewFlash.Y;
00050			Z = Region.Zone.ViewFlash.Z;
00051	
00052			X = X - (OldViewFlash.X - TargetFlash.X)*(DeltaTime / FadeSeconds);
00053			Y = Y - (OldViewFlash.Y - TargetFlash.Y)*(DeltaTime / FadeSeconds);
00054			Z = Z - (OldViewFlash.Z - TargetFlash.Z)*(DeltaTime / FadeSeconds);
00055	
00056			if( X < TargetFlash.X ) { X = TargetFlash.X; bXDone = True; }
00057			if( Y < TargetFlash.Y ) { Y = TargetFlash.Y; bYDone = True; }
00058			if( Z < TargetFlash.Z ) { Z = TargetFlash.Z; bZDone = True; }
00059	
00060			Region.Zone.ViewFlash.X = X;
00061			Region.Zone.ViewFlash.Y = Y;
00062			Region.Zone.ViewFlash.Z = Z;
00063	
00064			if(bXDone && bYDone && bZDone)
00065				Disable('Tick');
00066		}
00067	}
00068	
00069	defaultproperties
00070	{
00071	     TargetFlash=(X=-2.000000,Y=-2.000000,Z=-2.000000)
00072	     FadeSeconds=5.000000
00073	}

End Source Code