home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / Gameplay / Classes / Counter.uc < prev    next >
Text File  |  2003-12-11  |  2KB  |  87 lines

  1. //=============================================================================
  2. // Counter: waits until it has been triggered 'NumToCount' times, and then
  3. // it sends Trigger/UnTrigger events to actors whose names match 'EventName'.
  4. //=============================================================================
  5. class Counter extends Triggers;
  6.  
  7. #exec Texture Import File=Textures\Counter.pcx Name=S_Counter Mips=Off MASKED=1
  8.  
  9. //-----------------------------------------------------------------------------
  10. // Counter variables.
  11.  
  12. var() byte       NumToCount;                // Number to count down from.
  13. var() bool       bShowMessage;              // Display count message?
  14. var() localized  string CountMessage;       // Human readable count message.
  15. var() localized  string CompleteMessage;    // Completion message.
  16. var   byte       OriginalNum;               // Number to count at startup time.
  17.  
  18. //-----------------------------------------------------------------------------
  19. // Counter functions.
  20.  
  21. //
  22. // Init for play.
  23. //
  24. function BeginPlay()
  25. {
  26.     OriginalNum = NumToCount;
  27. }
  28.  
  29. /* Reset() 
  30. reset actor to initial state - used when restarting level without reloading.
  31. */
  32. function Reset()
  33. {
  34.     NumToCount = OriginalNum;
  35. }
  36.  
  37. //
  38. // Counter was triggered.
  39. //
  40. function Trigger( actor Other, pawn EventInstigator )
  41. {
  42.     local string S;
  43.     local string Num;
  44.     local int i;
  45.  
  46.     if( NumToCount > 0 )
  47.     {
  48.         if( --NumToCount == 0 )
  49.         {
  50.             // Trigger all matching actors.
  51.             if( bShowMessage && CompleteMessage != "" )
  52.                 EventInstigator.ClientMessage( CompleteMessage );
  53.             TriggerEvent(Event,Other,EventInstigator);
  54.         }
  55.         else if( bShowMessage && CountMessage != "" )
  56.         {
  57.             // Still counting down.
  58.             switch( NumToCount )
  59.             {
  60.                 case 1:  Num="one"; break;
  61.                 case 2:  Num="two"; break;
  62.                 case 3:  Num="three"; break;
  63.                 case 4:  Num="four"; break;
  64.                 case 5:  Num="five"; break;
  65.                 case 6:  Num="six"; break;
  66.                 default: Num=string(NumToCount); break;
  67.             }
  68.             S = CountMessage;
  69.             while( InStr(S, "%i") >= 0 )
  70.             {
  71.                 i = InStr(S, "%i");
  72.                 S = Left(S,i) $ Num $ Mid(S,i+2);
  73.             }
  74.             EventInstigator.ClientMessage( S );
  75.         }
  76.     }
  77. }
  78.  
  79. defaultproperties
  80. {
  81.      NumToCount=2
  82.      bShowMessage=False
  83.      CountMessage="Only %i more to go..."
  84.      CompleteMessage="Completed!"
  85.      Texture=S_Counter
  86. }
  87.