Botpack
Class TrophyGame

source: e:\games\UnrealTournament\Botpack\Classes\TrophyGame.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.GameInfo
            |
            +--Botpack.TournamentGameInfo
               |
               +--Botpack.UTIntro
                  |
                  +--Botpack.TrophyGame
Direct Known Subclasses:None

class TrophyGame
extends Botpack.UTIntro


Variables
 rotator CorrectRotation
 Class NewTrophyClass
 int TrophyTime


Function Summary
 void AcceptInventory(Pawn PlayerPawn)
 void PlayTrophyEffect(Trophy NewTrophy)
 void Timer()



Source Code


00001	class TrophyGame extends UTIntro;
00002	
00003	var Class<Trophy> NewTrophyClass;
00004	var int TrophyTime;
00005	var rotator CorrectRotation;
00006	
00007	event playerpawn Login
00008	(
00009		string Portal,
00010		string Options,
00011		out string Error,
00012		class<playerpawn> SpawnClass
00013	)
00014	{
00015		local PlayerPawn NewPlayer;
00016		local SpectatorCam Cam;
00017		local TrophyDude TD;
00018		local int i;
00019	
00020		NewPlayer = Super.Login(Portal, Options, Error, SpawnClass);
00021		NewPlayer.bHidden = True;
00022	
00023		foreach AllActors(class'SpectatorCam', Cam) 
00024			NewPlayer.ViewTarget = Cam;
00025	
00026		foreach AllActors(class'TrophyDude', TD)
00027		{
00028			TD.Mesh = Mesh(DynamicLoadObject(SpawnClass.Default.SpecialMesh, class'Mesh'));
00029			for (i=0; i<8; i++)
00030				TD.MultiSkins[i] = NewPlayer.MultiSkins[i];
00031		}
00032	
00033		return NewPlayer;
00034	}
00035	
00036	function AcceptInventory(pawn PlayerPawn)
00037	{
00038		local inventory Inv, Next;
00039		local LadderInventory LadderObj;
00040		local DeathMatchTrophy DMT;
00041		local DominationTrophy DOMT;
00042		local CTFTrophy CTFT;
00043		local AssaultTrophy AT;
00044		local Challenge ChalT;
00045	
00046		// DeathMatchPlus accepts LadderInventory
00047		for( Inv=PlayerPawn.Inventory; Inv!=None; Inv=Next )
00048		{
00049			Next = Inv.Inventory;
00050			if (Inv.IsA('LadderInventory'))
00051			{
00052				LadderObj = LadderInventory(Inv);
00053				if (LadderObj != None) 
00054				{
00055					// Hide trophies.
00056					foreach AllActors(class'DeathMatchTrophy', DMT)
00057					{
00058						CorrectRotation = DMT.Rotation;
00059						if (LadderObj.DMRank != 6)
00060						{
00061							DMT.bHidden = True;
00062						} else {
00063							if (LadderObj.LastMatchType == 1)
00064							{
00065								NewTrophyClass = DMT.Class;
00066								TrophyTime = 28;
00067								DMT.bHidden = True;
00068							}
00069						}
00070					}
00071					foreach AllActors(class'DominationTrophy', DOMT)
00072					{
00073						if (LadderObj.DOMRank != 6)
00074						{
00075							DOMT.bHidden = True;
00076						} else {
00077							if (LadderObj.LastMatchType == 3)
00078							{
00079								NewTrophyClass = DOMT.Class;
00080								TrophyTime = 30;
00081								DOMT.bHidden = True;
00082							}
00083						}
00084					}
00085					foreach AllActors(class'CTFTrophy', CTFT)
00086					{
00087						if (LadderObj.CTFRank != 6)
00088						{
00089							CTFT.bHidden = True;
00090						} else {
00091							if (LadderObj.LastMatchType == 2)
00092							{
00093								NewTrophyClass = CTFT.Class;
00094								TrophyTime = 30;
00095								CTFT.bHidden = True;
00096							}
00097						}
00098					}
00099					foreach AllActors(class'AssaultTrophy', AT)
00100					{
00101						if (LadderObj.ASRank != 6)
00102						{
00103							AT.bHidden = True;
00104						} else {
00105							if (LadderObj.LastMatchType == 4)
00106							{
00107								NewTrophyClass = AT.Class;
00108								TrophyTime = 29;
00109								AT.bHidden = True;
00110							}
00111						}
00112					}
00113					foreach AllActors(class'Challenge', ChalT)
00114					{
00115						if (LadderObj.ChalRank != 6)
00116						{
00117							ChalT.bHidden = True;
00118						} else {
00119							if (LadderObj.LastMatchType == 5)
00120							{
00121								NewTrophyClass = ChalT.Class;
00122								TrophyTime = 30;
00123								ChalT.bHidden = True;
00124							}
00125						}
00126					}
00127					// Award this dude the SECRET ROBOT BOSS MESH!!!
00128					if ((LadderObj.DMRank == 6) && (LadderObj.DOMRank == 6) &&
00129						(LadderObj.CTFRank == 6) && (LadderObj.ASRank == 6) &&
00130						(LadderObj.ChalRank == 6))
00131					{
00132						class'Ladder'.Default.HasBeatenGame = True;
00133						class'Ladder'.Static.StaticSaveConfig();
00134					}
00135				}
00136			} else {	
00137				Inv.Destroy();
00138			}
00139		}
00140		PlayerPawn.Weapon = None;
00141		PlayerPawn.SelectedItem = None;
00142	}
00143	
00144	function Timer()
00145	{
00146		local Trophy T;
00147	
00148		Super.Timer();
00149	
00150		Log(Level.TimeSeconds);
00151		if (TrophyTime >= 0)
00152			TrophyTime--;
00153		if (NewTrophyClass != None)
00154		{
00155			if (TrophyTime == 0)
00156			{
00157				foreach AllActors(class'Trophy', T)
00158				{
00159					if (NewTrophyClass == T.Class)
00160					{
00161						PlayTrophyEffect(T);
00162						T.bHidden = False;
00163					}
00164				}
00165			}
00166		}
00167	}
00168	
00169	function PlayTrophyEffect(Trophy NewTrophy)
00170	{
00171		Spawn(class'UTTeleportEffect',,, NewTrophy.Location, CorrectRotation);
00172		NewTrophy.PlaySound(sound'Resp2A',, 10.0);
00173	}
00174	
00175	defaultproperties
00176	{
00177	     HUDType=Class'Botpack.CHEOLHUD'
00178	}

End Source Code