Botpack
Class TeamTrigger

source: e:\games\UnrealTournament\Botpack\Classes\TeamTrigger.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Triggers
         |
         +--Engine.Trigger
            |
            +--Botpack.TeamTrigger
Direct Known Subclasses:None

class TeamTrigger
extends Engine.Trigger

//============================================================================= // TeamTrigger: triggers for all except pawns with matching team //=============================================================================
Variables
 byte Team
 bool bTimed


Function Summary
 bool IsRelevant(Actor Other)
 void PostBeginPlay()
 void TakeDamage(int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType)
 void Timer()



Source Code


00001	//=============================================================================
00002	// TeamTrigger: triggers for all except pawns with matching team
00003	//=============================================================================
00004	class TeamTrigger extends Trigger;
00005	
00006	var() byte Team;
00007	var() bool bTimed;
00008	
00009	function PostBeginPlay()
00010	{
00011		Super.PostBeginPlay();
00012		if ( bTimed )
00013			SetTimer(2.5, true);
00014	}
00015	
00016	function Timer()
00017	{
00018		local Pawn P;
00019	
00020		for ( P=Level.PawnList; P!=None; P=P.NextPawn )
00021			if ( (abs(Location.Z - P.Location.Z) < CollisionHeight + P.CollisionHeight)
00022				&& (VSize(Location - P.Location) < CollisionRadius) )
00023				Touch(P);
00024		SetTimer(2.5, true);
00025	}
00026	
00027	function bool IsRelevant( actor Other )
00028	{
00029		if( !bInitiallyActive || !Level.Game.IsA('TeamGamePlus') || (Other.Instigator == None) 
00030			|| TeamGamePlus(Level.Game).IsOnTeam(Other.Instigator, Team) )
00031			return false;
00032		return Super.IsRelevant(Other);
00033	}
00034	
00035	function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation, 
00036							Vector momentum, name damageType)
00037	{
00038		if ( (InstigatedBy != None) && Level.Game.IsA('TeamGamePlus')
00039			&& !TeamGamePlus(Level.Game).IsOnTeam(InstigatedBy, Team) )
00040			Super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
00041	}
00042	
00043	defaultproperties
00044	{
00045	}

End Source Code