public virtual void CheckCapture(PlayerMobile attacker) { if (attacker != null && !attacker.Deleted && attacker.InRange3D(this, 1, -5, 5) && Team != null && !Team.Deleted && Team.Flag != null && !Team.Flag.Deleted && Team.Flag.Carrier == null && Team.IsMember(attacker)) { Team.Battle.Teams.OfType<CTFTeam>() .Where( t => t != Team && !t.Deleted && t.Flag != null && !t.Flag.Deleted && t.Flag.Carrier != null && t.Flag.Carrier == attacker) .ForEach( t => { t.Flag.Capture(attacker); ExplodeFX.Random.CreateInstance(this, Map, 3, 0, null, e => e.Hue = t.Color).Send(); }); } }