Core.Object | +--Engine.Actor | +--Engine.Triggers | +--XIDCine.BeachFinalFall
Vector
Loc
XIIIPlayerController
PC
Rotator
Rotat
bool
bTheEnd
clBlack,
clGrey
00001 //----------------------------------------------------------- 00002 // BeachFinalFall 00003 // Created by iKi 00004 // Last Modification by iKi 00005 //----------------------------------------------------------- 00006 class BeachFinalFall extends Triggers; 00007 // ShowCategories( Collision, 00008 // placeable; 00009 00010 #exec Texture Import File=Textures\Rock_ico.pcx Name=Rock_ico Mips=Off 00011 00012 VAR Color clBlack, clGrey; 00013 VAR bool bTheEnd; 00014 VAR TRANSIENT Vector Loc; 00015 VAR TRANSIENT Rotator Rotat; 00016 VAR TRANSIENT XIIIPlayerController PC; 00017 00018 AUTO STATE Init 00019 { 00020 EVENT BeginState() 00021 { 00022 SetTimer(0.1,true); 00023 } 00024 00025 EVENT Timer() 00026 { 00027 if (XIIIGameInfo(Level.Game).MapInfo!=none && XIIIGameInfo(Level.Game).MapInfo.XIIIController!=none) 00028 { 00029 PC=XIIIGameInfo(Level.Game).MapInfo.XIIIController; 00030 SetTimer( 0, false ); 00031 GotoState( 'Waiting' ); 00032 } 00033 00034 } 00035 } 00036 00037 STATE Waiting 00038 { 00039 EVENT Trigger( actor Other, Pawn EventInstigator ) 00040 { 00041 GotoState( 'LetsSwing_01' ); 00042 } 00043 } 00044 00045 STATE LetsSwing_01 00046 { 00047 EVENT BeginState() 00048 { 00049 PC.GotoState( 'NoControl' ); 00050 Level.bCineFrame=false; 00051 Loc= PC.Pawn.Location-vect(0,0,60);//-PC.Pawn.CollisionHeight; 00052 Rotat.Yaw = PC.Rotation.Yaw; 00053 Rotat.Pitch= 3000; 00054 Rotat.Roll= 12000; 00055 PC.FilterColorWanted=clBlack; 00056 } 00057 00058 EVENT Tick( float dt ) 00059 { 00060 LOCAL Rotator r; 00061 LOCAL Vector v; 00062 // LOCAL float f; 00063 if ( PC.Pawn.Physics!=PHYS_None ) 00064 { 00065 PC.Pawn.SetPhysics( PHYS_None ); 00066 PC.Pawn.bCollideWorld=false; 00067 } 00068 if ( !PC.IsInState( 'NoControl' ) ) 00069 GotoState( 'NoControl' ); 00070 00071 // TimeStamp+=dt; 00072 r=Rotat; 00073 r-=PC.Rotation; 00074 r.Yaw= ((r.Yaw+32768)&65535)-32768; 00075 r.Roll= ((r.Roll+32768)&65535)-32768; 00076 r.Pitch= ((r.Pitch+32768)&65535)-32768; 00077 00078 PC.SetRotation(r*0.005+PC.Rotation); 00079 00080 v = Loc-PC.Pawn.Location; 00081 PC.Pawn.SetLocation( PC.Pawn.Location+ 0.005*v ); 00082 00083 if ( bTheEnd ) 00084 { 00085 GotoState( 'LetsSwing_02' ); 00086 } 00087 00088 } 00089 Begin: 00090 PC.FilterColorSpeed=4; 00091 PC.FilterColorWanted=clBlack; 00092 Sleep( 0.25 ); 00093 PC.FilterColorSpeed=5; 00094 PC.FilterColorWanted=clGrey; 00095 Sleep( 0.2+0.5 ); 00096 PC.FilterColorSpeed=4; 00097 PC.FilterColorWanted=clBlack; 00098 Sleep( 0.25 ); 00099 PC.FilterColorSpeed=5; 00100 PC.FilterColorWanted=clGrey; 00101 Sleep( 0.2+0.5 ); 00102 PC.FilterColorSpeed=0.25; 00103 PC.FilterColorWanted=clBlack; 00104 Sleep( 4 ); 00105 bTheEnd=true; 00106 } 00107 00108 STATE LetsSwing_02 00109 { 00110 Begin: 00111 Sleep(2.0); 00112 TriggerEvent( event, Self, PC.Pawn ); 00113 00114 } 00115 00116 00117 00118 defaultproperties 00119 { 00120 clGrey=(B=128,G=128,R=128) 00121 InitialState="Init" 00122 Texture=Texture'XIDCine.Rock_ico' 00123 bDirectional=True 00124 }