public T this[AlliancePosition pos]
        {
            get
            {
                switch (pos)
                {
                case AlliancePosition.A:
                    return(A);

                case AlliancePosition.B:
                    return(B);

                case AlliancePosition.C:
                    return(C);

                default:
                    return(default(T));
                }
            }
        }
        /// <summary>
        /// Gets the defense rating of a team.
        /// </summary>
        /// <param name="team">Team in question</param>
        /// <returns>Defense rating of team</returns>
        public int GetDefense(Team team)
        {
            AllianceColor color = GetTeamColor(team);

            if (color == AllianceColor.Blue)
            {
                AlliancePosition pos = BlueAlliance.GetPositionOf(team);
                return(BlueDefense[pos]);
            }
            else if (color == AllianceColor.Red)
            {
                AlliancePosition pos = RedAlliance.GetPositionOf(team);
                return(RedDefense[pos]);
            }
            else
            {
                Util.DebugLog(LogLevel.Error, "Invalid alliance color: " +
                              color.ToString());
                return(-1);
            }
        }
        /// <summary>
        /// Gets whether a team was functioning properly in this match.
        /// </summary>
        /// <param name="team">Team in question</param>
        /// <returns>True if working, false if malfunctioning</returns>
        public bool GetWorking(Team team)
        {
            AllianceColor color = GetTeamColor(team);

            if (color == AllianceColor.Blue)
            {
                AlliancePosition pos = BlueAlliance.GetPositionOf(team);
                return(BlueWorking[pos]);
            }
            else if (color == AllianceColor.Red)
            {
                AlliancePosition pos = RedAlliance.GetPositionOf(team);
                return(RedWorking[pos]);
            }
            else
            {
                Util.DebugLog(LogLevel.Critical, "Invalid alliance color: " +
                              color.ToString());
                throw new IndexOutOfRangeException("Invalid alliance color: " +
                                                   color.ToString());
            }
        }