UnrealShare
Class BotInfo

source: e:\games\UnrealTournament\UnrealShare\Classes\BotInfo.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--UnrealShare.BotInfo
Direct Known Subclasses:None

class BotInfo
extends Engine.Info

//============================================================================= // BotInfo. //=============================================================================
Variables
 float Alertness[32]
 float BotAccuracy[32]
 string BotClasses[32]
 string BotNames[32]
 float BotSkills[32]
 string BotSkins[32]
 int BotTeams[32]
 float Camping[32]
 float CombatStyle[32]
 byte Difficulty
 class FavoriteWeapon[32]
 AvailableDescriptions[32], NextBotClass
 int NumClasses
 bool bAdjustSkill
 bool bRandomOrder


Function Summary
 int ChooseBotInfo()
 String GetAvailableClasses(int n)
 String GetBotClassName(int n)
 int GetBotIndex(string BotName)
 String GetBotName(int n)
 string GetBotSkin(int num)
 int GetBotTeam(int num)
 void Individualize(Bots NewBot, int n, int NumBots)
 void PostBeginPlay()
 void PreBeginPlay()
 void SetBotClass(String ClassName, int n)
 void SetBotName(string NewName, int n)
 void SetBotSkin(string NewSkin, int n)
 void SetBotTeam(int NewTeam, int n)



Source Code


00001	//=============================================================================
00002	// BotInfo.
00003	//=============================================================================
00004	class BotInfo extends Info;
00005	
00006	var() config bool	bAdjustSkill;
00007	var() config bool	bRandomOrder;
00008	var   config byte	Difficulty;
00009	
00010	var() config string BotNames[32];
00011	var() config int BotTeams[32];
00012	var() config float BotSkills[32];
00013	var() config float BotAccuracy[32];
00014	var() config float CombatStyle[32]; 
00015	var() config float Alertness[32];
00016	var() config float Camping[32];
00017	var() config class<Weapon> FavoriteWeapon[32];
00018	var	  byte ConfigUsed[32];
00019	var() config string BotClasses[32];
00020	var() config string BotSkins[32];
00021	var string AvailableClasses[32], AvailableDescriptions[32], NextBotClass;
00022	var int NumClasses;
00023	
00024	function PreBeginPlay()
00025	{
00026		//DON'T Call parent prebeginplay
00027	}
00028	
00029	function PostBeginPlay()
00030	{
00031		local string NextBotClass, NextBotDesc;
00032		local int i;
00033	
00034		Super.PostBeginPlay();
00035	
00036		GetNextIntDesc("Bots", 0, NextBotClass, NextBotDesc); 
00037		while ( (NextBotClass != "") && (NumClasses < 32) )
00038		{
00039			AvailableClasses[NumClasses] = NextBotClass;
00040			AvailableDescriptions[NumClasses] = NextBotDesc;
00041			NumClasses++;
00042			GetNextIntDesc("Bots", NumClasses, NextBotClass, NextBotDesc); 
00043		}
00044	}
00045	
00046	function String GetAvailableClasses(int n)
00047	{
00048		return AvailableClasses[n];
00049	}
00050	
00051	function int ChooseBotInfo()
00052	{
00053		local int n, start;
00054	
00055		if ( bRandomOrder )
00056			n = Rand(16);
00057		else 
00058			n = 0;
00059	
00060		start = n;
00061		while ( (n < 32) && (ConfigUsed[n] == 1) )
00062			n++;
00063	
00064		if ( (n == 32) && bRandomOrder )
00065		{
00066			n = 0;
00067			while ( (n < start) && (ConfigUsed[n] == 1) )
00068				n++;
00069		}
00070	
00071		if ( n > 31 )
00072			n = 31;
00073	
00074		return n;
00075	}
00076	
00077	function class<bots> GetBotClass(int n)
00078	{
00079		return class<bots>( DynamicLoadObject(GetBotClassName(n), class'Class') );
00080	}
00081	
00082	function Individualize(bots NewBot, int n, int NumBots)
00083	{
00084		local texture NewSkin;
00085	
00086		// Set bot's skin
00087		if ( (n >= 0) && (n < 32) && (BotSkins[n] != "") && (BotSkins[n] != "None") )
00088		{
00089			NewSkin = texture(DynamicLoadObject(BotSkins[n], class'Texture'));
00090			if ( NewSkin != None )
00091				NewBot.Skin = NewSkin;
00092		}
00093	
00094		// Set bot's name.
00095		if ( (BotNames[n] == "") || (ConfigUsed[n] == 1) )
00096			BotNames[n] = "Bot";
00097	
00098		Level.Game.ChangeName( NewBot, BotNames[n], false );
00099		if ( BotNames[n] != NewBot.PlayerReplicationInfo.PlayerName )
00100			Level.Game.ChangeName( NewBot, ("Bot"$NumBots), false);
00101	
00102		ConfigUsed[n] = 1;
00103	
00104		// adjust bot skill
00105		NewBot.Skill = FClamp(NewBot.Skill + BotSkills[n], 0, 3);
00106		NewBot.ReSetSkill();
00107	}
00108	
00109	function SetBotClass(String ClassName, int n)
00110	{
00111		BotClasses[n] = ClassName;
00112	}
00113	
00114	function SetBotName( coerce string NewName, int n )
00115	{
00116		BotNames[n] = NewName;
00117	}
00118	
00119	function String GetBotName(int n)
00120	{
00121		return BotNames[n];
00122	}
00123	
00124	function int GetBotTeam(int num)
00125	{
00126		return BotTeams[Num];
00127	}
00128	
00129	function SetBotTeam(int NewTeam, int n)
00130	{
00131		BotTeams[n] = NewTeam;
00132	}
00133	
00134	function int GetBotIndex( coerce string BotName )
00135	{
00136		local int i;
00137		local bool found;
00138	
00139		found = false;
00140		for (i=0; i<ArrayCount(BotNames)-1; i++)
00141			if (BotNames[i] == BotName)
00142			{
00143				found = true;
00144				break;
00145			}
00146	
00147		if (!found)
00148			i = -1;
00149	
00150		return i;
00151	}
00152	
00153	function string GetBotSkin( int num )
00154	{
00155		return BotSkins[Num];
00156	}
00157	
00158	function SetBotSkin( coerce string NewSkin, int n )
00159	{
00160		BotSkins[n] = NewSkin;
00161	}
00162	
00163	function String GetBotClassName(int n)
00164	{
00165		if ( (n < 0) || (n > 31) )
00166			return AvailableClasses[Rand(NumClasses)];
00167	
00168		if ( BotClasses[n] == "" )
00169			BotClasses[n] = AvailableClasses[Rand(NumClasses)];
00170	
00171		return BotClasses[n];
00172	}
00173	
00174	defaultproperties
00175	{
00176	     Difficulty=1
00177	     BotNames(0)="Dante"
00178	     BotNames(1)="Ash"
00179	     BotNames(2)="Rhiannon"
00180	     BotNames(3)="Kurgan"
00181	     BotNames(4)="Sonja"
00182	     BotNames(5)="Avatar"
00183	     BotNames(6)="Dominator"
00184	     BotNames(7)="Cholerae"
00185	     BotNames(8)="Apocalypse"
00186	     BotNames(9)="Bane"
00187	     BotNames(10)="Hippolyta"
00188	     BotNames(11)="Eradicator"
00189	     BotNames(12)="Nikita"
00190	     BotNames(13)="Arcturus"
00191	     BotNames(14)="Shiva"
00192	     BotNames(15)="Vindicator"
00193	     BotTeams(0)=1
00194	     BotTeams(2)=1
00195	     BotTeams(4)=1
00196	     BotTeams(6)=1
00197	     BotTeams(8)=1
00198	     BotTeams(10)=1
00199	     BotTeams(12)=1
00200	     BotTeams(14)=1
00201	     BotClasses(0)="UnrealShare.MaleThreeBot"
00202	     BotClasses(1)="Unreali.MaleTwoBot"
00203	     BotClasses(2)="UnrealShare.FemaleOneBot"
00204	     BotClasses(3)="Unreali.MaleOneBot"
00205	     BotClasses(4)="Unreali.FemaleTwoBot"
00206	     BotClasses(5)="UnrealShare.MaleThreeBot"
00207	     BotClasses(6)="Unreali.SkaarjPlayerBot"
00208	     BotClasses(7)="UnrealShare.FemaleOneBot"
00209	     BotClasses(8)="UnrealShare.MaleThreeBot"
00210	     BotClasses(9)="Unreali.MaleTwoBot"
00211	     BotClasses(10)="Unreali.FemaleTwoBot"
00212	     BotClasses(11)="Unreali.SkaarjPlayerBot"
00213	     BotClasses(12)="UnrealShare.FemaleOneBot"
00214	     BotClasses(13)="Unreali.MaleOneBot"
00215	     BotClasses(14)="Unreali.MaleTwoBot"
00216	     BotClasses(15)="Unreali.SkaarjPlayerBot"
00217	}

End Source Code