UnrealShare
Class TranslatorEvent

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

class TranslatorEvent
extends Engine.Triggers

//============================================================================= // TranslatorEvent. //=============================================================================
Variables
 string AltMessage
 string Hint
 String M_NewMessage
           minimum time before trigger can be triggered again
 String M_TransMessage
           minimum time before trigger can be triggered again
 string Message
 sound NewMessageSound
 float ReTriggerDelay
           minimum time before trigger can be triggered again
 Translator Trans
           minimum time before trigger can be triggered again
 bHitOnce, bHitDelay
 bool bTriggerAltMessage
 bool bTriggerOnly


Function Summary
 void Timer()
 void Touch(Actor Other)
 void Trigger(Actor Other, Pawn EventInstigator)
 void UnTouch(Actor Other)
 void UnTrigger(Actor Other, Pawn EventInstigator)



Source Code


00001	//=============================================================================
00002	// TranslatorEvent.
00003	//=============================================================================
00004	class TranslatorEvent extends Triggers;
00005	
00006	#exec AUDIO IMPORT FILE="Sounds\Pickups\TransA3.WAV" NAME="TransA3" GROUP="Pickups"
00007	#exec Texture Import File=Textures\Message.pcx Name=S_Message Mips=Off Flags=2
00008	
00009	// Human readable triggering message.
00010	var() localized string Message;
00011	var() localized string AltMessage;
00012	var() localized string Hint;
00013	var() bool bTriggerOnly;
00014	var() sound NewMessageSound;
00015	var() bool bTriggerAltMessage;
00016	var bool bHitOnce, bHitDelay;
00017	var() float ReTriggerDelay; //minimum time before trigger can be triggered again
00018	var	  float TriggerTime;
00019	
00020	var Translator Trans;
00021	
00022	var() localized String M_NewMessage;
00023	var() localized String M_TransMessage;
00024	
00025	function Trigger( actor Other, pawn EventInstigator )
00026	{
00027		local Actor Targets;
00028		local string Temp;
00029	
00030		if (bTriggerAltMessage) 
00031		{
00032			Temp = Message;
00033			Message = AltMessage;
00034			AltMessage = Temp;
00035			bHitOnce = False;
00036			foreach TouchingActors(class'Actor', Targets)
00037				if (Targets == Other) Touch(Other);
00038		}
00039		else Touch(Other);
00040	}
00041	
00042	function UnTrigger( actor Other, pawn EventInstigator )
00043	{
00044		UnTouch(Other);
00045	}
00046	
00047	
00048	function Timer()
00049	{
00050		bHitDelay=False;
00051	}
00052	
00053	function Touch( actor Other )
00054	{
00055		local inventory Inv;
00056		
00057		if (PlayerPawn(Other)==None || bHitDelay) Return;
00058		
00059		if (Hint=="" && Message=="") Return;
00060	
00061		if ( ReTriggerDelay > 0 )
00062		{
00063			if ( Level.TimeSeconds - TriggerTime < ReTriggerDelay )
00064				return;
00065			TriggerTime = Level.TimeSeconds;
00066		}
00067		
00068		for( Inv=Other.Inventory; Inv!=None; Inv=Inv.Inventory ) 	
00069			if (Translator(Inv)!=None) 
00070			{
00071				Translator(Inv).Hint = Hint;
00072				Translator(Inv).bShowHint = False;
00073				if (Message=="") Return;
00074				Trans = Translator(Inv);
00075				if (!bHitOnce) Translator(Inv).bNewMessage = true;
00076				else Translator(Inv).bNotNewMessage = true;
00077				Translator(Inv).NewMessage = Message;
00078				if (!bHitOnce) Pawn(Other).ClientMessage(M_NewMessage);
00079				else Pawn(Other).ClientMessage(M_TransMessage);
00080				bHitOnce = True;
00081				SetTimer(0.3,False);
00082				bHitDelay = True;
00083				PlaySound(NewMessageSound, SLOT_Misc);
00084				Break;
00085			}
00086		
00087	}
00088	
00089	function UnTouch( actor Other )
00090	{
00091		if (Trans!=None)	{
00092			Trans.bNewMessage = False;
00093			Trans.bNotNewMessage = False;
00094			if( Trans.IsInState('Activated')) Trans.GoToState('Deactivated');
00095		}
00096		bHitDelay=False;
00097	}
00098	
00099	defaultproperties
00100	{
00101	     NewMessageSound=Sound'UnrealShare.Pickups.TransA3'
00102	     ReTriggerDelay=0.250000
00103	     M_NewMessage="New Translator Message"
00104	     M_TransMessage="Translator Message"
00105	     Texture=Texture'UnrealShare.S_Message'
00106	}

End Source Code