rott/kf_sources/GamePlay/Classes/TeamTrigger.uc
2026-07-14 20:27:09 +07:00

42 lines
1.3 KiB
Ucode

//=============================================================================
// TeamTrigger: triggers for all except pawns with matching team
//=============================================================================
class TeamTrigger extends Trigger;
var() byte Team;
var() bool bTimed;
function PostBeginPlay()
{
Super.PostBeginPlay();
if ( bTimed )
SetTimer(2.5, true);
}
function Timer()
{
local Controller P;
for ( P=Level.ControllerList; P!=None; P=P.NextController )
if ( (P.Pawn != None) && (abs(Location.Z - P.Pawn.Location.Z) < CollisionHeight + P.CollisionHeight)
&& (VSize(Location - P.Pawn.Location) < CollisionRadius) )
Touch(P.Pawn);
SetTimer(2.5, true);
}
function bool IsRelevant( actor Other )
{
if( !bInitiallyActive || !Level.Game.bTeamGame || (Other.Instigator == None)
|| Level.Game.IsOnTeam(Other.Instigator.Controller, Team) )
return false;
return Super.IsRelevant(Other);
}
function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation,
Vector momentum, class<DamageType> damageType , optional int HitIndex)
{
if ( (InstigatedBy != None) && Level.Game.bTeamGame
&& !Level.Game.IsOnTeam(InstigatedBy.Controller, Team) )
Super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
}