Botpack
Class ShockProj

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

class ShockProj
extends Engine.Projectile

//============================================================================= // ShockProj. //=============================================================================
Variables
 Sound ExploSound

States
Flying

Function Summary
 
simulated
PostBeginPlay()
 void SuperExplosion()


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



Source Code


00001	//=============================================================================
00002	// ShockProj.
00003	//=============================================================================
00004	class ShockProj extends Projectile;
00005	
00006	#exec OBJ LOAD FILE=textures\ASMDAlt.utx PACKAGE=Botpack.ASMDAlt
00007	
00008	var() Sound ExploSound;
00009	
00010	simulated function PostBeginPlay()
00011	{
00012		Super.PostBeginPlay();
00013		if ( Level.bDropDetail )
00014			LightType = LT_None;
00015	}
00016	
00017	function SuperExplosion()
00018	{
00019		HurtRadius(Damage*3, 250, MyDamageType, MomentumTransfer*2, Location );
00020		
00021		Spawn(Class'ut_ComboRing',,'',Location, Instigator.ViewRotation);
00022		PlaySound(ExploSound,,20.0,,2000,0.6);	
00023		
00024		Destroy(); 
00025	}
00026	
00027	auto state Flying
00028	{
00029		function ProcessTouch (Actor Other, vector HitLocation)
00030		{
00031			If ( (Other!=Instigator) && (!Other.IsA('Projectile') || (Other.CollisionRadius > 0)) )
00032				Explode(HitLocation,Normal(HitLocation-Other.Location));
00033		}
00034	
00035		function BeginState()
00036		{
00037			Velocity = vector(Rotation) * speed;	
00038		}
00039	}
00040	
00041	
00042	function Explode(vector HitLocation,vector HitNormal)
00043	{
00044		PlaySound(ImpactSound, SLOT_Misc, 0.5,,, 0.5+FRand());
00045		HurtRadius(Damage, 70, MyDamageType, MomentumTransfer, Location );
00046		if (Damage > 60)
00047			Spawn(class'ut_RingExplosion3',,, HitLocation+HitNormal*8,rotator(HitNormal));
00048		else
00049			Spawn(class'ut_RingExplosion',,, HitLocation+HitNormal*8,rotator(Velocity));		
00050	
00051		Destroy();
00052	}
00053	
00054	defaultproperties
00055	{
00056	     ExploSound=Sound'UnrealShare.General.SpecialExpl'
00057	     speed=1000.000000
00058	     Damage=55.000000
00059	     MomentumTransfer=70000
00060	     MyDamageType=jolted
00061	     ImpactSound=Sound'UnrealShare.General.Expla02'
00062	     ExplosionDecal=Class'Botpack.EnergyImpact'
00063	     bNetTemporary=False
00064	     RemoteRole=ROLE_SimulatedProxy
00065	     LifeSpan=10.000000
00066	     DrawType=DT_Sprite
00067	     Style=STY_Translucent
00068	     Texture=Texture'Botpack.ASMDAlt.ASMDAlt_a00'
00069	     DrawScale=0.400000
00070	     bUnlit=True
00071	     CollisionRadius=12.000000
00072	     CollisionHeight=12.000000
00073	     bProjTarget=True
00074	     LightType=LT_Steady
00075	     LightEffect=LE_NonIncidence
00076	     LightBrightness=255
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