Exemple #1
0
        /// <summary>
        /// Check that a CrewMember name is unique within this Team
        /// </summary>
        internal void UniqueNameCheck(CrewMember cm)
        {
            var unqiue           = false;
            var partialFailCount = 0;

            //if the name is already in use by another character, reset their name
            while (!unqiue)
            {
                if (partialFailCount < 5)
                {
                    partialFailCount++;
                    var firstNames = crewMembers.Select(c => c.Value.FirstName).Concat(RetiredCrew.Select(c => c.Value.FirstName)).Concat(Recruits.Select(c => c.Value.FirstName)).ToList();
                    var lastNames  = crewMembers.Select(c => c.Value.LastName).Concat(RetiredCrew.Select(c => c.Value.LastName)).Concat(Recruits.Select(c => c.Value.LastName)).ToList();
                    if (firstNames.Contains(cm.FirstName) || lastNames.Contains(cm.LastName) || cm.Name == ManagerName)
                    {
                        cm.SelectRandomName();
                    }
                    else
                    {
                        unqiue = true;
                    }
                }
                else
                {
                    if (crewMembers.ContainsKey(cm.Name) || RetiredCrew.ContainsKey(cm.Name) || Recruits.ContainsKey(cm.Name) || cm.Name == ManagerName)
                    {
                        cm.SelectRandomName();
                    }
                    else
                    {
                        unqiue = true;
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Retire a CrewMember, meaning they can no longer be assigned to a position (mostly used for historical positions)
        /// </summary>
        internal void RetireCrew(CrewMember crewMember)
        {
            var current = Boat.GetCrewMemberPosition(crewMember);

            if (current != Position.Null)
            {
                Boat.AssignCrewMember(current, null);
            }
            crewMembers.Remove(crewMember.Name);
            RetiredCrew.Add(crewMember.Name, crewMember);
            crewMember.Retire();
            foreach (var cm in crewMembers.Values)
            {
                cm.CrewOpinions.Remove(crewMember.Name);
                cm.RevealedCrewOpinions.Remove(crewMember.Name);
            }
        }