Exemplo n.º 1
0
 /// <summary>
 /// Assign a CrewMember to a Position
 /// </summary>
 public void AssignCrewMember(Position position, CrewMember crewMember)
 {
     if (position != Position.Null)
     {
         //if a Position is provided and has a CrewMember already assigned to it, remove them from that position
         if (PositionCrew.ContainsKey(position))
         {
             AssignCrewMember(Position.Null, PositionCrew[position]);
         }
     }
     if (crewMember != null)
     {
         //if a CrewMember is provided and is assigned to a position, remove them from that position
         var current = GetCrewMemberPosition(crewMember);
         if (current != Position.Null)
         {
             PositionCrew.Remove(current);
             PositionScores.Remove(current);
         }
         if (position != Position.Null)
         {
             //add combination of CrewMember and Position to PositionCrew dictionary
             PositionCrew.Add(position, crewMember);
             PositionScores.Add(position, 0);
             crewMember.UpdateSingleBelief(NPCBelief.Position, position);
         }
         else
         {
             crewMember.UpdateSingleBelief(NPCBelief.Position);
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Update the score in each Position in order to get the score for this Boat
 /// </summary>
 internal void UpdateScore(string managerName)
 {
     foreach (var position in Positions)
     {
         if (PositionCrew.ContainsKey(position))
         {
             UpdateCrewMemberScore(position, PositionCrew[position], managerName);
         }
     }
     Score = PositionScores.Values.Sum();
 }
Exemplo n.º 3
0
 /// <summary>
 /// Get the CrewMember (if any) in this Position
 /// </summary>
 public static CrewMember CurrentCrewMember(this Position position)
 {
     return(PositionCrew.ContainsKey(position) ? PositionCrew[position] : null);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Get the current Position (if any) of a CrewMember
 /// </summary>
 public Position GetCrewMemberPosition(CrewMember crewMember)
 {
     return(PositionCrew.SingleOrDefault(pair => pair.Value == crewMember).Key);
 }