Botpack
Class UT_ShieldBelt

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

class UT_ShieldBelt
extends Botpack.TournamentPickup

//============================================================================= // ut_ShieldBelt. //=============================================================================
Variables
 UT_ShieldBeltEffect MyEffect
 string TeamFireTextureStrings[4]
 FireTexture TeamFireTextures[4]
 int TeamNum
 string TeamTextureStrings[4]
 Texture TeamTextures[4]


Function Summary
 void ArmorImpactEffect(vector HitLocation)
 void Destroyed()
 bool HandlePickupQuery(Inventory Item)
 void PickupFunction(Pawn Other)
 void SetEffectTexture()
 void Timer()



Source Code


00001	//=============================================================================
00002	// ut_ShieldBelt.
00003	//=============================================================================
00004	class UT_ShieldBelt extends TournamentPickup;
00005	
00006	#exec MESH IMPORT MESH=ShieldBeltMeshM ANIVFILE=MODELS\shieldbelt_a.3D DATAFILE=MODELS\shieldbelt_d.3D X=0 Y=0 Z=0
00007	#exec MESH ORIGIN MESH=ShieldBeltMeshM X=0 Y=0 Z=0 YAW=64
00008	#exec MESH SEQUENCE MESH=ShieldBeltMeshM SEQ=All    STARTFRAME=0  NUMFRAMES=1
00009	#exec TEXTURE IMPORT NAME=AUbelt1 FILE=MODELS\shieldbelt.PCX GROUP="Skins"
00010	#exec MESHMAP SCALE MESHMAP=ShieldBeltMeshM X=0.05 Y=0.05 Z=0.1
00011	#exec MESHMAP SETTEXTURE MESHMAP=ShieldBeltMeshM NUM=1 TEXTURE=AUbelt1
00012	
00013	var UT_ShieldBeltEffect MyEffect;
00014	var() string TeamFireTextureStrings[4];
00015	var() string TeamTextureStrings[4];
00016	var firetexture TeamFireTextures[4];
00017	var texture TeamTextures[4];
00018	var int TeamNum;
00019	
00020	event float BotDesireability( pawn Bot )
00021	{
00022		local inventory Inv;
00023	
00024		for ( Inv=Bot.inventory; Inv!=None; Inv=Inv.inventory )
00025			if ( Inv.IsA('RelicDefenseInventory') )
00026				return -1; //can't pickup up shieldbelt if have defense relic
00027	
00028		return Super.BotDesireability(Bot);
00029	}
00030	
00031	function bool HandlePickupQuery( inventory Item )
00032	{
00033		local Inventory I;
00034	
00035		if (item.class == class) 
00036		{
00037			// remove other armors
00038			for ( I=Owner.Inventory; I!=None; I=I.Inventory )
00039				if ( I.bIsAnArmor && (I != self) )
00040					I.Destroy();
00041		}
00042	
00043		return Super.HandlePickupQuery(Item);
00044	}
00045	
00046	function ArmorImpactEffect(vector HitLocation)
00047	{ 
00048		if ( Owner.IsA('PlayerPawn') )
00049		{
00050			PlayerPawn(Owner).ClientFlash(-0.05,vect(400,400,400));
00051			PlayerPawn(Owner).PlaySound(DeActivateSound, SLOT_None, 2.7*PlayerPawn(Owner).SoundDampening);
00052		}
00053		if ( MyEffect != None )
00054		{
00055			//MyEffect.Texture = MyEffect.LowDetailTexture;
00056			MyEffect.ScaleGlow = 4.0;
00057			MyEffect.Fatness = 255;
00058			SetTimer(0.8, false);
00059		}
00060	}
00061	
00062	function Timer()
00063	{
00064		if ( MyEffect != None )
00065		{
00066			MyEffect.Fatness = MyEffect.Default.Fatness;
00067			SetEffectTexture();
00068		}
00069	}
00070	
00071	function Destroyed()
00072	{
00073		if ( Owner != None )
00074		{
00075			Owner.SetDefaultDisplayProperties();
00076			if( Owner.Inventory != None )
00077				Owner.Inventory.SetOwnerDisplay();
00078		}
00079		if ( MyEffect != None )
00080			MyEffect.Destroy();
00081		Super.Destroyed();
00082	}
00083	
00084	function PickupFunction(Pawn Other)
00085	{
00086		local Inventory I;
00087	
00088		MyEffect = Spawn(class'UT_ShieldBeltEffect', Other,,Other.Location, Other.Rotation); 
00089		MyEffect.Mesh = Owner.Mesh;
00090		MyEffect.DrawScale = Owner.Drawscale;
00091	
00092		if ( Level.Game.bTeamGame && (Other.PlayerReplicationInfo != None) )
00093			TeamNum = Other.PlayerReplicationInfo.Team;
00094		else
00095			TeamNum = 3;
00096		SetEffectTexture();
00097	
00098		I = Pawn(Owner).FindInventoryType(class'UT_Invisibility');
00099		if ( I != None )
00100			MyEffect.bHidden = true;
00101		
00102		// remove other armors
00103		for ( I=Owner.Inventory; I!=None; I=I.Inventory )
00104			if ( I.bIsAnArmor && (I != self) )
00105				I.Destroy();
00106	}
00107	
00108	function SetEffectTexture()
00109	{
00110		if ( TeamNum != 3 )
00111			MyEffect.ScaleGlow = 0.5;
00112		else
00113			MyEffect.ScaleGlow = 1.0;
00114		MyEffect.ScaleGlow *= (0.25 + 0.75 * Charge/Default.Charge);
00115		if ( TeamFireTextures[TeamNum] == None )
00116			TeamFireTextures[TeamNum] =FireTexture(DynamicLoadObject(TeamFireTextureStrings[TeamNum], class'Texture'));
00117		MyEffect.Texture = TeamFireTextures[TeamNum];
00118		if ( TeamTextures[TeamNum] == None )
00119			TeamTextures[TeamNum] = Texture(DynamicLoadObject(TeamTextureStrings[TeamNum], class'Texture'));
00120		MyEffect.LowDetailTexture = TeamTextures[TeamNum];
00121	}
00122	
00123	defaultproperties
00124	{
00125	     TeamFireTextureStrings(0)="UnrealShare.Belt_fx.ShieldBelt.RedShield"
00126	     TeamFireTextureStrings(1)="UnrealShare.Belt_fx.ShieldBelt.BlueShield"
00127	     TeamFireTextureStrings(2)="UnrealShare.Belt_fx.ShieldBelt.Greenshield"
00128	     TeamFireTextureStrings(3)="UnrealShare.Belt_fx.ShieldBelt.N_Shield"
00129	     TeamTextureStrings(0)="UnrealShare.Belt_fx.ShieldBelt.newred"
00130	     TeamTextureStrings(1)="UnrealShare.Belt_fx.ShieldBelt.newblue"
00131	     TeamTextureStrings(2)="UnrealShare.Belt_fx.ShieldBelt.newgreen"
00132	     TeamTextureStrings(3)="UnrealShare.Belt_fx.ShieldBelt.newgold"
00133	     TeamFireTextures(0)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.RedShield'
00134	     TeamFireTextures(1)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.BlueShield'
00135	     TeamFireTextures(2)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.Greenshield'
00136	     TeamFireTextures(3)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.N_Shield'
00137	     TeamTextures(0)=Texture'UnrealShare.Belt_fx.ShieldBelt.newred'
00138	     TeamTextures(1)=Texture'UnrealShare.Belt_fx.ShieldBelt.newblue'
00139	     TeamTextures(2)=Texture'UnrealShare.Belt_fx.ShieldBelt.newgreen'
00140	     TeamTextures(3)=Texture'UnrealShare.Belt_fx.ShieldBelt.newgold'
00141	     bDisplayableInv=True
00142	     PickupMessage="You got the Shield Belt."
00143	     ItemName="ShieldBelt"
00144	     RespawnTime=60.000000
00145	     PickupViewMesh=LodMesh'Botpack.ShieldBeltMeshM'
00146	     ProtectionType1=ProtectNone
00147	     ProtectionType2=ProtectNone
00148	     Charge=150
00149	     ArmorAbsorption=100
00150	     bIsAnArmor=True
00151	     AbsorptionPriority=10
00152	     MaxDesireability=3.000000
00153	     PickupSound=Sound'UnrealShare.Pickups.BeltSnd'
00154	     DeActivateSound=Sound'UnrealShare.Pickups.Sbelthe2'
00155	     Icon=Texture'UnrealShare.Icons.I_ShieldBelt'
00156	     bOwnerNoSee=True
00157	     RemoteRole=ROLE_DumbProxy
00158	     Mesh=LodMesh'Botpack.ShieldBeltMeshM'
00159	     CollisionRadius=25.000000
00160	     CollisionHeight=10.000000
00161	}

End Source Code