Core.Object | +--Engine.Actor | +--Engine.Inventory | +--Engine.Pickup | +--UnrealShare.Amplifier
float
AmpMultiplier
sound
AmpSound
Inventory
SpawnCopy(Pawn Other)
UseCharge(float Amount)
void
UsedUp()
EndState()
Timer()
00001 //============================================================================= 00002 // Amplifier. 00003 //============================================================================= 00004 class Amplifier extends Pickup; 00005 00006 #exec AUDIO IMPORT FILE="Sounds\Pickups\HEALTH1.WAV" NAME="HEALTH1" GROUP="Pickups" 00007 #exec AUDIO IMPORT FILE="Sounds\Pickups\ampl1.WAV" NAME="AmpAct" GROUP="Pickups" 00008 00009 #exec TEXTURE IMPORT NAME=I_Amp FILE=TEXTURES\HUD\i_amp.PCX GROUP="Icons" MIPS=OFF 00010 00011 #exec MESH IMPORT MESH=AmplifierM ANIVFILE=MODELS\amp_a.3D DATAFILE=MODELS\amp_d.3D X=0 Y=0 Z=0 00012 #exec MESH ORIGIN MESH=AmplifierM X=0 Y=0 Z=50 YAW=0 00013 #exec MESH SEQUENCE MESH=AmplifierM SEQ=All STARTFRAME=0 NUMFRAMES=1 00014 #exec TEXTURE IMPORT NAME=JAmplifier1 FILE=MODELS\Amp.PCX GROUP="Skins" 00015 #exec MESHMAP SCALE MESHMAP=AmplifierM X=0.08 Y=0.08 Z=0.16 00016 #exec MESHMAP SETTEXTURE MESHMAP=AmplifierM NUM=1 TEXTURE=JAmplifier1 00017 00018 var() float AmpMultiplier; 00019 var() sound AmpSound; 00020 00021 event TravelPreAccept() 00022 { 00023 local inventory w; 00024 00025 Super.TravelPreAccept(); 00026 w = Pawn(Owner).FindInventoryType(class'DispersionPistol'); 00027 if ( w != None ) 00028 DispersionPistol(w).Amp = self; 00029 w = Pawn(Owner).FindInventoryType(class'ASMD'); 00030 if ( w != None ) 00031 ASMD(w).Amp = self; 00032 } 00033 00034 function inventory SpawnCopy( pawn Other ) 00035 { 00036 local inventory Copy; 00037 local Inventory I; 00038 00039 Copy = Super.SpawnCopy(Other); 00040 I = Other.FindInventoryType(class'DispersionPistol'); 00041 if ( DispersionPistol(I) != None ) 00042 DispersionPistol(I).amp = Amplifier(Copy); 00043 00044 I = Other.FindInventoryType(class'ASMD'); 00045 if ( ASMD(I) != None ) 00046 ASMD(I).amp = Amplifier(Copy); 00047 00048 return Copy; 00049 } 00050 00051 function float UseCharge(float Amount) 00052 { 00053 Return 1.0; 00054 } 00055 00056 function UsedUp() 00057 { 00058 local Inventory I; 00059 00060 I = Pawn(Owner).FindInventoryType(class'DispersionPistol'); 00061 if ( DispersionPistol(I) != None ) 00062 DispersionPistol(I).amp = None; 00063 00064 I = Pawn(Owner).FindInventoryType(class'ASMD'); 00065 if ( ASMD(I) != None ) 00066 ASMD(I).amp = None; 00067 00068 Super.UsedUp(); 00069 } 00070 00071 state Activated 00072 { 00073 00074 function float UseCharge(float Amount) 00075 { 00076 local float TempCharge; 00077 if (AmpMultiplier<1.0) AmpMultiplier=1.0; 00078 00079 if (Charge < Amount) { 00080 TempCharge = Charge; 00081 Charge=0; 00082 Return (AmpMultiplier-1.0)*TempCharge/Amount+1.0; 00083 } 00084 Charge = Charge - Amount; 00085 return AmpMultiplier; 00086 } 00087 00088 00089 function Timer() 00090 { 00091 Charge -= 2; 00092 if (Charge<=0) 00093 { 00094 UsedUp(); 00095 } 00096 } 00097 00098 function EndState() 00099 { 00100 if ( Owner.IsA('PlayerPawn') ) 00101 PlayerPawn(Owner).ClientAdjustGlow(0.1,vect(-100,-20,0)); 00102 Owner.AmbientSound=None; 00103 Owner.LightType=LT_None; 00104 Owner.AmbientGlow=0; 00105 bActive = false; 00106 } 00107 Begin: 00108 SetTimer(1.0,True); 00109 PlaySound(ActivateSound); 00110 Owner.AmbientSound=AmpSound; 00111 if ( Owner.IsA('PlayerPawn') ) 00112 PlayerPawn(Owner).ClientAdjustGlow(-0.1,vect(100,20,0)); 00113 Owner.LightType=LT_Steady; 00114 Owner.LightRadius=6; 00115 Owner.LightEffect=LE_NonIncidence; 00116 Owner.LightSaturation=40; 00117 Owner.LightHue=225; 00118 Owner.LightBrightness=255; 00119 Owner.AmbientGlow=255; 00120 } 00121 00122 state DeActivated 00123 { 00124 Begin: 00125 00126 } 00127 00128 defaultproperties 00129 { 00130 AmpMultiplier=4.000000 00131 AmpSound=Sound'UnrealShare.Pickups.AmpAct' 00132 bCanActivate=True 00133 ExpireMessage="Amplifier is out of power." 00134 bAutoActivate=True 00135 bActivatable=True 00136 bDisplayableInv=True 00137 PickupMessage="You got the Energy Amplifier" 00138 RespawnTime=90.000000 00139 PickupViewMesh=LodMesh'UnrealShare.AmplifierM' 00140 Charge=1000 00141 MaxDesireability=1.200000 00142 PickupSound=Sound'UnrealShare.Pickups.GenPickSnd' 00143 ActivateSound=Sound'UnrealShare.Pickups.HEALTH1' 00144 Icon=Texture'UnrealShare.Icons.I_Amp' 00145 Mesh=LodMesh'UnrealShare.AmplifierM' 00146 CollisionRadius=20.000000 00147 CollisionHeight=13.500000 00148 }