Core.Object | +--Engine.Actor | +--Engine.Mover | +--XIDCine.MissileFakeSSH1
float
Delay
StaticMeshActor
MyMissileSM
bool
bIsUp
void
GoDown(optional float)
00001 00002 // ===================================================== 00003 // 00004 // dMMMMMMMMb dMP .dMMMb .dMMMb dMP dMP dMMMMMP 00005 // dMP"dMP"dMP amr dMP" VP dMP" VP amr dMP dMP 00006 // dMP dMP dMP dMP VMMMb VMMMb dMP dMP dMMMP 00007 // dMP dMP dMP dMP dP .dMP dP .dMP dMP dMP dMP 00008 // dMP dMP dMP dMP VMMMP" VMMMP" dMP dMMMMMP dMMMMMP 00009 // by iKi 00010 //===================================================== 00011 00012 class MissileFakeSSH1 extends Mover 00013 placeable 00014 showcategories(Collision); 00015 00016 VAR(VaporEffect) float VEMaxIntensity; 00017 VAR(VaporEffect) Color VEHue; 00018 VAR(VaporEffect) float VETime; 00019 VAR float Delay; 00020 00021 //VAR TRANSIENT XIIIPlayerController PC; 00022 //VAR TRANSIENT MangousteSSH1Controller MangousteController; 00023 VAR TRANSIENT StaticMeshActor MyMissileSM; 00024 VAR bool bIsUp; 00025 00026 EVENT TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class<DamageType> DamageType) 00027 { 00028 LOCAL vector vTemp, vTemp2; 00029 LOCAL float fTemp; 00030 LOCAL MissileVaporEmitter mve; 00031 00032 vTemp=HitLocation-Location; 00033 vTemp.Z=0; 00034 00035 mve=spawn(class'MissileVaporEmitter',,,HitLocation/*Location + 256*Normal(vTemp)*/,rotator(vTemp)); 00036 mve.SetBase(self); 00037 mve.Instigator=EventInstigator; 00038 00039 // MangousteController.Vapor( HitLocation /*Location + 256*Normal(vTemp)*/, Normal(vTemp) ); 00040 00041 // if ( PC==none ) 00042 // PC = XIIIGameInfo( Level.Game ).MapInfo.XIIIController; 00043 // if ( PC!=none ) 00044 // vTemp2 = PC.Pawn.Location - HitLocation; 00045 // I assume that VaporDIr is normal 00046 00047 /* if ( vSize(vTemp2)<512 && ((Normal(vTemp)) dot Normal(vTemp2))>cos(12/57.3) ) 00048 { 00049 mve.PlayerFeedBack( XIIIGameInfo( Level.Game ).MapInfo.XIIIController, VEMaxIntensity, VEHue, VETime ); 00050 // LOG( "TOUCHED BY VAPOR" ); 00051 }*/ 00052 } 00053 00054 00055 EVENT Trigger( actor Other, pawn EventInstigator ) 00056 { 00057 } 00058 00059 EVENT PostBeginPlay( ) 00060 { 00061 } 00062 00063 EVENT BeginPlay() 00064 { 00065 } 00066 00067 EVENT Timer() 00068 { 00069 } 00070 00071 00072 FUNCTION GoDown( optional float tmpDelay ) 00073 { 00074 tmpDelay = Delay; 00075 00076 if ( !IsInState('STA_GoingDown') ) 00077 GotoState( 'STA_GoingDown' ); 00078 } 00079 00080 STATE STA_GoingDown 00081 { 00082 EVENT BeginState() 00083 { 00084 if ( Delay>0 ) 00085 SetTimer2( Delay, false ); 00086 else 00087 Timer2(); 00088 } 00089 00090 EVENT Timer2() 00091 { 00092 PlaySound(MoveAmbientSound); 00093 bIsUp=false; 00094 Velocity = vect(0,0,-150); 00095 SetPhysics( PHYS_Projectile ); 00096 setTimer( 1.0, true ); 00097 } 00098 00099 EVENT Timer() 00100 { 00101 if (Location.Z<=-3000) 00102 { 00103 SetPhysics( PHYS_None ); 00104 SetTimer( 0.0, false ); 00105 StopSound(MoveAmbientSound); 00106 TriggerEvent( event, self, none ); 00107 } 00108 } 00109 00110 /* EVENT Tick( float dt) 00111 { 00112 SetLocation( Location + dt*vect(0,0,10) ); 00113 // MyMissileSM.SetPhysics( PHYS_Projectile ); 00114 }*/ 00115 } 00116 00117 00118 00119 defaultproperties 00120 { 00121 VEMaxIntensity=0.100000 00122 VEHue=(B=160,G=255,R=255) 00123 VETime=1.500000 00124 bIsUp=True 00125 bBlockNonZeroExtentTraces=False 00126 InitialState="None" 00127 }