UnrealShare
Class BigBioGel

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

class BigBioGel
extends UnrealShare.BioGel

//============================================================================= // BigBioGel. //=============================================================================
States
OnSurface, Flying

Function Summary
 void DropDrip()


State OnSurface Function Summary
 void BeginState()


State Flying Function Summary
 void BeginState()



Source Code


00001	//=============================================================================
00002	// BigBioGel.
00003	//=============================================================================
00004	class BigBioGel extends BioGel;
00005	
00006	function DropDrip()
00007	{
00008		local BioGel Gel;
00009	
00010		PlaySound(SpawnSound);		// Dripping Sound
00011		Gel = Spawn(class'BioDrop', Pawn(Owner),,Location-Vect(0,0,1)*10);
00012		Gel.DrawScale = DrawScale * 0.5;	
00013	}
00014	
00015	
00016	auto state Flying
00017	{
00018		simulated function HitWall( vector HitNormal, actor Wall )
00019		{
00020			SetPhysics(PHYS_None);		
00021			MakeNoise(0.6);	
00022			bOnGround = True;
00023			PlaySound(ImpactSound);	
00024			SetWall(HitNormal, Wall);
00025			DrawScale=DrawScale*1.4;
00026			GoToState('OnSurface');
00027		}
00028	
00029		function BeginState()
00030		{	
00031			local Vector viewDir;
00032			
00033			viewDir = vector(Rotation);	
00034			Velocity = (Speed + (viewDir dot Instigator.Velocity)) * viewDir;
00035			Velocity.z += 120;
00036			RandSpin(100000);
00037			LoopAnim('Flying',0.4);
00038			bOnGround=False;
00039			PlaySound(SpawnSound);
00040			if( Region.zone.bWaterZone )
00041				Velocity=Velocity*0.7;
00042		}
00043	}
00044	
00045	state OnSurface
00046	{
00047		function BeginState()
00048		{
00049			wallTime = DrawScale*5+2;
00050			
00051			if ( Mover(Base) != None )
00052			{
00053				BaseOffset = VSize(Location - Base.Location);
00054				SetTimer(0.2, true);
00055			}
00056			else 
00057				SetTimer(wallTime, false);
00058		}
00059	}
00060	
00061	defaultproperties
00062	{
00063	     speed=700.000000
00064	     Damage=75.000000
00065	     MomentumTransfer=30000
00066	     RemoteRole=ROLE_DumbProxy
00067	     LifeSpan=25.000000
00068	     CollisionRadius=3.000000
00069	     CollisionHeight=4.000000
00070	}

End Source Code