Botpack
Class Arena

source: e:\games\UnrealTournament\Botpack\Classes\Arena.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.Mutator
            |
            +--Botpack.Arena
Direct Known Subclasses:FlakArena, ImpactArena, InstaGibDM, MinigunArena, PulseArena, RocketArena, ShockArena, SniperArena

class Arena
extends Engine.Mutator

//============================================================================= // Arena. // replaces all weapons and ammo with Pulseguns and pulsegun ammo //=============================================================================
Variables
 WeaponName, AmmoName
 WeaponString, AmmoString


Function Summary
 void AddMutator(Mutator M)
 bool AlwaysKeep(Actor Other)
 bool CheckReplacement(Actor Other, out byte)



Source Code


00001	//=============================================================================
00002	// Arena.
00003	// replaces all weapons and ammo with Pulseguns and pulsegun ammo
00004	//=============================================================================
00005	
00006	class Arena expands Mutator
00007		abstract;
00008	
00009	var name WeaponName, AmmoName;
00010	var string WeaponString, AmmoString;
00011	
00012	
00013	function AddMutator(Mutator M)
00014	{
00015		if ( M.IsA('Arena') )
00016		{
00017			log(M$" not allowed (already have an Arena mutator)");
00018			return; //only allow one arena mutator
00019		}
00020		Super.AddMutator(M);
00021	}
00022	
00023	function bool AlwaysKeep(Actor Other)
00024	{
00025		local bool bTemp;
00026	
00027		if ( Other.IsA(WeaponName) )
00028		{
00029			Weapon(Other).PickupAmmoCount = Weapon(Other).AmmoName.Default.MaxAmmo;
00030			return true;
00031		}
00032		if ( Other.IsA(AmmoName) )
00033		{
00034			Ammo(Other).AmmoAmount = Ammo(Other).MaxAmmo;
00035			return true;
00036		}
00037	
00038		if ( NextMutator != None )
00039			return ( NextMutator.AlwaysKeep(Other) );
00040		return false;
00041	}
00042	
00043	function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
00044	{
00045		if ( Other.IsA('Weapon') )
00046		{
00047			if (WeaponString == "")
00048				return false;
00049			else if ((WeaponString != "") && !Other.IsA(WeaponName))
00050			{
00051				Level.Game.bCoopWeaponMode = false;
00052				ReplaceWith(Other, WeaponString);
00053				return false;
00054			}
00055		}
00056	
00057		if ( Other.IsA('Ammo') )
00058		{
00059			if (AmmoString == "")
00060				return false;
00061			else if ((AmmoString != "") && !Other.IsA(AmmoName))
00062			{
00063				ReplaceWith(Other, AmmoString);
00064				return false;
00065			}
00066		}
00067	
00068		bSuperRelevant = 0;
00069		return true;
00070	}
00071	
00072	defaultproperties
00073	{
00074	}

End Source Code