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()); } }