Core.Object | +--Engine.Actor | +--Engine.Inventory | +--Engine.Pickup | +--UnrealShare.Health | +--UnrealShare.NaliFruit
bool
bGrowWhenSeen
void
PostBeginPlay()
Touch(Actor Other)
Timer()
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 }