Core.Object | +--Engine.Actor | +--Engine.Inventory | +--Engine.Pickup | +--Botpack.TournamentPickup | +--Botpack.UT_ShieldBelt
UT_ShieldBeltEffect
MyEffect
string
TeamFireTextureStrings[4]
FireTexture
TeamFireTextures[4]
int
TeamNum
TeamTextureStrings[4]
Texture
TeamTextures[4]
void
ArmorImpactEffect(vector HitLocation)
Destroyed()
bool
HandlePickupQuery(Inventory Item)
PickupFunction(Pawn Other)
SetEffectTexture()
Timer()
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 }