Core.Object | +--Engine.Actor | +--Engine.Triggers | +--Botpack.FadeViewTrigger
float
FadeSeconds
vector
OldViewFlash
TargetFlash
bool
bTriggerOnceOnly
bTriggered
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 }