/// <summary> /// Remove a member from the team. /// </summary> /// <param name="member">Member to remove.</param> /// <returns> /// True if the team member has been removed, false /// if it didn't exist in the team. /// </returns> public bool RemoveMember(Character member) { bool removed = false; if (member == null) { return(false); } if (member is Hero && TeamLeader != null && TeamLeader.Equals((Hero)member)) { // This is the team leader. removed = true; TeamLeader = null; } else { // It's (probably) a normal member. removed = _teamMembers.Remove(member); } if (removed) { member.Team = null; if (!member.IsDead()) { // This member does not count towards the alive members in // this team anymore. If he is dead, MembersAlive was decremented // already. MembersAlive--; } } return(removed); }