Core.Object | +--Engine.Actor | +--Engine.Decoration | +--XIDCine.HelicoTopRotor
float
Angle,RotationSpeed
bTurning,
bChanging
00001 //----------------------------------------------------------- 00002 // 00003 //----------------------------------------------------------- 00004 class HelicoTopRotor extends Decoration; //VehiclePart; 00005 00006 //var ShadowProjector Shadow; 00007 VAR bool bTurning, bChanging; 00008 VAR float Angle,RotationSpeed; 00009 00010 EVENT PostBeginPlay() 00011 { 00012 if( (Owner!=none) && (Owner.bActorShadows) && (Shadow==None) ) 00013 { 00014 Shadow = Spawn(class'ShadowProjector',Self,'',Location/*+vect(0,0,150)*/); 00015 Shadow.ShadowScale = 4.4; 00016 Shadow.MaxTraceDistance=2500; 00017 Shadow.ShadowIntensity=64; 00018 } 00019 00020 if ( HelicoDeco(Owner)!=none && HelicoDeco(Owner).bInitiallyOn ) 00021 { 00022 bTurning=true; 00023 RotationSpeed=250000; 00024 } 00025 } 00026 00027 EVENT Trigger(actor Other, Pawn EventInstigator) 00028 { 00029 bTurning=!bTurning; 00030 bChanging=true; 00031 00032 } 00033 00034 EVENT Tick(float dT) 00035 { 00036 LOCAL ROTATOR R; 00037 00038 if (bChanging) 00039 { 00040 if (bTurning) 00041 { 00042 RotationSpeed+=0.25*250000*dt; 00043 if (RotationSpeed>=250000) 00044 { 00045 RotationSpeed=250000; 00046 bChanging=false; 00047 } 00048 } 00049 else 00050 { 00051 RotationSpeed-=0.25*250000*dt; 00052 if (RotationSpeed<=0) 00053 { 00054 RotationSpeed=0; 00055 bChanging=false; 00056 } 00057 } 00058 } 00059 R=RelativeRotation; 00060 Angle += RotationSpeed*dT; 00061 R.Yaw = Angle; 00062 R.Roll = 0; 00063 R.Pitch = 0; 00064 SetRelativeRotation( R ); 00065 } 00066 00067 EVENT Bump( actor Other) 00068 { 00069 if ( Other.IsA( 'XIIIPlayerPawn' ) && RotationSpeed>50000 ) 00070 Other.TakeDamage( 2000, none, Other.Location, vect(0,0,0), class'DTSuicided' ); 00071 } 00072 00073 00074 00075 defaultproperties 00076 { 00077 bStatic=False 00078 bBlockZeroExtentTraces=False 00079 bBlockNonZeroExtentTraces=False 00080 bActorShadows=True 00081 DrawType=DT_StaticMesh 00082 StaticMesh=StaticMesh'Meshes_Vehicules.HelicomangousteTop' 00083 }