UnrealShare
Class Amplifier

source: e:\games\UnrealTournament\UnrealShare\Classes\Amplifier.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Inventory
         |
         +--Engine.Pickup
            |
            +--UnrealShare.Amplifier
Direct Known Subclasses:None

class Amplifier
extends Engine.Pickup

//============================================================================= // Amplifier. //=============================================================================
Variables
 float AmpMultiplier
 sound AmpSound

States
DeActivated, Activated

Function Summary
 Inventory SpawnCopy(Pawn Other)
 float UseCharge(float Amount)
 void UsedUp()


State DeActivated Function Summary


State Activated Function Summary
 void EndState()
 void Timer()
 float UseCharge(float Amount)



Source Code


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	}

End Source Code