UnrealShare
Class NaliFruit

source: e:\games\UnrealTournament\UnrealShare\Classes\NaliFruit.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Inventory
         |
         +--Engine.Pickup
            |
            +--UnrealShare.Health
               |
               +--UnrealShare.NaliFruit
Direct Known Subclasses:None

class NaliFruit
extends UnrealShare.Health

//============================================================================= // NaliFruit. //=============================================================================
Variables
 bool bGrowWhenSeen

States
Pickup

Function Summary
 void PostBeginPlay()


State Pickup Function Summary
 void Touch(Actor Other)
 void Timer()



Source Code


00001	//=============================================================================
00002	// NaliFruit.
00003	//=============================================================================
00004	class NaliFruit extends Health;
00005	
00006	#exec MESH IMPORT MESH=NaliFruitMesh ANIVFILE=MODELS\nalipl_a.3D DATAFILE=MODELS\nalipl_d.3D LODSTYLE=2
00007	#exec MESH LODPARAMS MESH=NaliFruitMesh STRENGTH=0.1
00008	
00009	#exec  MESH ORIGIN MESH=NaliFruitMesh X=0 Y=0 Z=70 YAW=0
00010	#exec  MESH SEQUENCE MESH=NaliFruitMesh SEQ=All    STARTFRAME=0  NUMFRAMES=29
00011	#exec  MESH SEQUENCE MESH=NaliFruitMesh SEQ=Still  STARTFRAME=0  NUMFRAMES=1
00012	#exec  MESH SEQUENCE MESH=NaliFruitMesh SEQ=Root   STARTFRAME=1  NUMFRAMES=1
00013	#exec  MESH SEQUENCE MESH=NaliFruitMesh SEQ=Grow  STARTFRAME=1  NUMFRAMES=26
00014	#exec  MESH SEQUENCE MESH=NaliFruitMesh SEQ=Waver STARTFRAME=27  NUMFRAMES=2
00015	#exec  TEXTURE IMPORT NAME=JNaliFruit1 FILE=MODELS\Nalipl.PCX GROUP="Skins" FLAGS=2
00016	#exec  MESHMAP SCALE MESHMAP=NaliFruitMesh X=0.15 Y=0.15 Z=0.3
00017	#exec  MESHMAP SETTEXTURE MESHMAP=NaliFruitMesh NUM=1 TEXTURE=JNaliFruit1
00018	
00019	var() bool bGrowWhenSeen;
00020	
00021	function PostBeginPlay()
00022	{
00023		Super.PostBeginPlay();
00024		bStasis = bGrowWhenSeen;
00025	}
00026	
00027	event float BotDesireability(Pawn Bot)
00028	{
00029		if ( HealingAmount < 3 )
00030			return 0;
00031	
00032		return Super.BotDesireability(Bot);
00033	}
00034	
00035	auto state Pickup
00036	{	
00037		function Timer()
00038		{
00039			HealingAmount += 1;
00040			SetTimer(0.5,True);
00041		}
00042	
00043		function Touch( actor Other )
00044		{
00045			local int HealMax;
00046		
00047			if ( !ValidTouch(Other) || (HealingAmount<2) )
00048				Return;
00049		
00050			if (Level.Game.LocalLog != None)
00051				Level.Game.LocalLog.LogPickup(Self, Pawn(Other));
00052			if (Level.Game.WorldLog != None)
00053				Level.Game.WorldLog.LogPickup(Self, Pawn(Other));
00054	
00055			HealMax = Pawn(Other).default.Health;
00056			if (Pawn(Other).Health < HealMax) 
00057			{
00058				Pawn(Other).Health += HealingAmount;
00059				if (Pawn(Other).Health > HealMax) Pawn(Other).Health = HealMax;
00060				Pawn(Other).ClientMessage(PickupMessage$HealingAmount, 'Pickup');
00061				PlaySound (PickupSound);			
00062				SetRespawn();
00063				if ( Level.Game.Difficulty > 1 )
00064					Other.MakeNoise(0.1 * Level.Game.Difficulty);		
00065			}
00066		}
00067	Begin:
00068		PlayAnim('Root');
00069		FinishAnim();
00070		HealingAmount = 0;
00071		Sleep(FRand()*3);
00072		SetTimer(8.5,False);
00073		PlayAnim('Grow',0.036);
00074		FinishAnim();
00075		SetTimer(0.0,False);
00076		LoopAnim('Waver',0.1);
00077	}
00078	
00079	defaultproperties
00080	{
00081	     HealingAmount=0
00082	     PickupMessage="You picked the Nali Healing Fruit +"
00083	     RespawnTime=5.000000
00084	     PickupViewMesh=LodMesh'UnrealShare.NaliFruitMesh'
00085	     Mesh=LodMesh'UnrealShare.NaliFruitMesh'
00086	     CollisionHeight=21.000000
00087	}

End Source Code