Botpack
Class flakslug

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

class flakslug
extends Engine.Projectile

//============================================================================= // flakslug. //=============================================================================
Variables
 vector initialDir


Function Summary
 void Explode(vector HitLocation, vector HitNormal)
 
simulated
HitWall(vector HitNormal, Actor Wall)
 
simulated
Landed(vector HitNormal)
 
simulated
PostBeginPlay()
 void ProcessTouch(Actor Other, vector HitLocation)
 
simulated
Timer()



Source Code


00001	//=============================================================================
00002	// flakslug.
00003	//=============================================================================
00004	class flakslug extends Projectile;
00005	
00006	#exec MESH IMPORT MESH=flakslugm ANIVFILE=MODELS\flakslug_a.3D DATAFILE=MODELS\flakslug_d.3D
00007	#exec MESH LODPARAMS MESH=flakslugm STRENGTH=0.3
00008	#exec MESH ORIGIN MESH=flakslugm X=0 Y=0 Z=0 YAW=128 PITCH=64
00009	#exec MESH SEQUENCE MESH=flakslugm SEQ=All    STARTFRAME=0   NUMFRAMES=1
00010	#exec MESH SEQUENCE MESH=flakslugm SEQ=Still  STARTFRAME=0   NUMFRAMES=1
00011	#exec TEXTURE IMPORT NAME=Jflakslugel1 FILE=MODELS\flakslug.PCX
00012	#exec MESHMAP SCALE MESHMAP=flakslugm X=0.019 Y=0.019 Z=0.038
00013	#exec MESHMAP SETTEXTURE MESHMAP=flakslugm NUM=1 TEXTURE=Jflakslugel1 TLOD=50
00014	
00015	var	chunktrail trail;
00016	var vector initialDir;
00017	
00018	simulated function PostBeginPlay()
00019	{
00020		if ( !Region.Zone.bWaterZone && (Level.NetMode != NM_DedicatedServer) )
00021			Trail = Spawn(class'ChunkTrail',self);
00022	
00023		Super.PostBeginPlay();
00024		Velocity = Vector(Rotation) * Speed;     
00025		initialDir = Velocity;
00026		Velocity.z += 200; 
00027		initialDir = Velocity;
00028		if ( Level.bHighDetailMode  && !Level.bDropDetail ) 
00029			SetTimer(0.04,True);
00030		else 
00031			SetTimer(0.25,True);
00032	}
00033	
00034	function ProcessTouch (Actor Other, vector HitLocation)
00035	{
00036		if ( Other != instigator ) 
00037			Explode(HitLocation,Normal(HitLocation-Other.Location));
00038	}
00039	
00040	simulated function Landed( vector HitNormal )
00041	{
00042		local DirectionalBlast D;
00043	
00044		if ( Level.NetMode != NM_DedicatedServer )
00045		{
00046			D = Spawn(class'Botpack.DirectionalBlast',self);
00047			if ( D != None )
00048				D.DirectionalAttach(initialDir, HitNormal);
00049		}
00050		Explode(Location,HitNormal);
00051	}
00052	
00053	simulated function HitWall (vector HitNormal, actor Wall)
00054	{
00055		local DirectionalBlast D;
00056	
00057		if ( Level.NetMode != NM_DedicatedServer )
00058		{
00059			D = Spawn(class'Botpack.DirectionalBlast',self);
00060			if ( D != None )
00061				D.DirectionalAttach(initialDir, HitNormal);
00062		}
00063		Super.HitWall(HitNormal, Wall);
00064	}
00065	
00066	simulated function Timer()
00067	{
00068		local ut_SpriteSmokePuff s;
00069	
00070		initialDir = Velocity;
00071		if (Level.NetMode!=NM_DedicatedServer) 
00072		{
00073			s = Spawn(class'ut_SpriteSmokePuff');
00074			s.RemoteRole = ROLE_None;
00075		}	
00076		if ( Level.bDropDetail )
00077			SetTimer(0.25,True);
00078		else if ( Level.bHighDetailMode )
00079			SetTimer(0.04,True);
00080	}
00081	
00082	function Explode(vector HitLocation, vector HitNormal)
00083	{
00084		local vector start;
00085	
00086		HurtRadius(damage, 150, 'FlakDeath', MomentumTransfer, HitLocation);	
00087		start = Location + 10 * HitNormal;
00088	 	Spawn( class'ut_FlameExplosion',,,Start);
00089		Spawn( class 'UTChunk2',, '', Start);
00090		Spawn( class 'UTChunk3',, '', Start);
00091		Spawn( class 'UTChunk4',, '', Start);
00092		Spawn( class 'UTChunk1',, '', Start);
00093		Spawn( class 'UTChunk2',, '', Start);
00094	 	Destroy();
00095	}
00096	
00097	defaultproperties
00098	{
00099	     speed=1200.000000
00100	     Damage=70.000000
00101	     MomentumTransfer=75000
00102	     bNetTemporary=False
00103	     Physics=PHYS_Falling
00104	     RemoteRole=ROLE_SimulatedProxy
00105	     LifeSpan=6.000000
00106	     Mesh=LodMesh'Botpack.flakslugm'
00107	     AmbientGlow=67
00108	     bUnlit=True
00109	}

End Source Code