UnrealShare
Class TazerProj

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

class TazerProj
extends Engine.Projectile

//============================================================================= // TazerProj. //=============================================================================
States
Flying

Function Summary
 void SuperExplosion()


State Flying Function Summary
 void Explode(vector HitLocation, vector HitNormal)
 void BeginState()
 void ProcessTouch(Actor Other, vector HitLocation)



Source Code


00001	//=============================================================================
00002	// TazerProj.
00003	//=============================================================================
00004	class TazerProj extends Projectile;
00005	
00006	#exec MESH IMPORT MESH=TazerProja ANIVFILE=MODELS\Cross_a.3D DATAFILE=MODELS\Cross_d.3D X=0 Y=0 Z=0
00007	#exec MESH ORIGIN MESH=TazerProja X=0 Y=0 Z=0 YAW=64
00008	#exec MESH SEQUENCE MESH=TazerProja SEQ=All    STARTFRAME=0   NUMFRAMES=1
00009	#exec MESH SEQUENCE MESH=TazerProja SEQ=Still  STARTFRAME=0   NUMFRAMES=1
00010	#exec MESHMAP SCALE MESHMAP=TazerProja X=0.04 Y=0.04 Z=0.08
00011	#exec OBJ LOAD FILE=Textures\FireEffect2.utx PACKAGE=UnrealShare.Effect2
00012	#exec MESHMAP SETTEXTURE MESHMAP=TazerProja NUM=1 TEXTURE=UnrealShare.Effect2.FireEffect2
00013	
00014	#exec AUDIO IMPORT FILE="Sounds\General\Expla02.wav" NAME="Expla02" GROUP="General"
00015	
00016	function SuperExplosion()
00017	{
00018		local RingExplosion2 r;
00019	
00020		HurtRadius(Damage*3.9, 240, 'jolted', MomentumTransfer*2, Location );
00021		
00022		r = Spawn(Class'RingExplosion2',,'',Location, Instigator.ViewRotation);
00023		r.PlaySound(r.ExploSound,,20.0,,1000,0.6);
00024		Destroy(); 
00025	}
00026	
00027	auto state Flying
00028	{
00029		function ProcessTouch (Actor Other, vector HitLocation)
00030		{
00031	
00032			If (Other!=Instigator  && TazerProj(Other)==None)
00033			{
00034				Explode(HitLocation,Normal(HitLocation-Other.Location));
00035			}
00036		}
00037	
00038		function BeginState()
00039		{
00040			Velocity = vector(Rotation) * speed;	
00041		}
00042	}
00043	
00044	
00045	function Explode(vector HitLocation,vector HitNormal)
00046	{
00047		local RingExplosion r;
00048	
00049		PlaySound(ImpactSound, SLOT_Misc, 0.5,,, 0.5+FRand());
00050		HurtRadius(Damage, 70, 'jolted', MomentumTransfer, Location );
00051		if (Damage > 60)
00052			r = Spawn(class'RingExplosion3',,, HitLocation+HitNormal*8,rotator(HitNormal));
00053		else
00054			r = Spawn(class'RingExplosion',,, HitLocation+HitNormal*8,rotator(HitNormal));
00055	
00056		r.PlaySound(r.ExploSound,,6);
00057		Destroy();
00058	}
00059	
00060	defaultproperties
00061	{
00062	     speed=1000.000000
00063	     Damage=55.000000
00064	     MomentumTransfer=70000
00065	     ImpactSound=Sound'UnrealShare.General.Expla02'
00066	     bNetTemporary=False
00067	     RemoteRole=ROLE_SimulatedProxy
00068	     LifeSpan=10.000000
00069	     Mesh=LodMesh'UnrealShare.TazerProja'
00070	     bUnlit=True
00071	     CollisionRadius=12.000000
00072	     CollisionHeight=12.000000
00073	     bProjTarget=True
00074	     LightType=LT_Steady
00075	     LightEffect=LE_NonIncidence
00076	     LightBrightness=101
00077	     LightHue=165
00078	     LightSaturation=72
00079	     LightRadius=6
00080	     bFixedRotationDir=True
00081	     RotationRate=(Pitch=45345,Yaw=33453,Roll=63466)
00082	     DesiredRotation=(Pitch=23442,Yaw=34234,Roll=34234)
00083	}

End Source Code