Пример #1
0
        private JDictionary <Planet, int> Destinations(JGraph <string> map, JDictionary <string, Planet> planets, bool includeHostile, bool onlyHostile)
        {
            JDictionary <Planet, int> planetDestinations =
                new JDictionary <Planet, int>();
            Planet start;

            if (Orbiting != null)
            {
                start = Orbiting;
            }
            else if (NextStop != null)
            {
                start = NextStop;
            }
            else
            {
                return(planetDestinations);
            }
            JDictionary <string, int> destinations;

            if (map.TryReachableVertices(start.ID, out destinations, p => Military.Faction.Relationships[planets[p].Faction.ID] != Relationship.Enemy, includeHostile))
            {
                destinations.Remove(start.ID);
                foreach (string s in destinations.Keys)
                {
                    Relationship relationship =
                        Military.Faction.Relationships[planets[s].Faction.ID];
                    if (!onlyHostile || (onlyHostile && relationship == Relationship.Enemy))
                    {
                        planetDestinations.Add(planets[s], destinations[s] / (int)(hourlyDistance / Speed));
                    }
                }
            }
            return(planetDestinations);
        }
Пример #2
0
        public bool SetDestination(Planet destination, JGraph <string> map, JDictionary <string, Planet> planets)
        {
            List <string> path;

            if (Orbiting != null && map.TryPathTo(Orbiting.ID, destination.ID, out path, p => { return(Military.Faction.Relationships[planets[p].Faction.ID] != Relationship.Enemy); }, true))
            {
                Destination = destination;
                NextStop    = planets[path[1]];
                return(true);
            }
            return(false);
        }
Пример #3
0
 // Testing Coverage: 9/11
 public Database()
 {
     Bodies      = new JDictionary <string, Body>();
     Characters  = new JDictionary <string, Character>();
     Fleets      = new JDictionary <string, Fleet>();
     Militaries  = new JDictionary <string, Military>();
     Governments = new JDictionary <string, Government>();
     Planets     = new JDictionary <string, Planet>();
     Map         = new JGraph <string>();
     Player      = new Player();
     Date        = new Date();
 }
Пример #4
0
 public bool Move(JGraph <string> map, JDictionary <string, Planet> planets)
 {
     if (isStationary)
     {
         return(false);
     }
     Position = Position.MoveTowards(NextStop.Position, 20);
     if (Position == NextStop.Position)
     {
         Orbiting = NextStop;
         if (NextStop == Destination)
         {
             NextStop = Destination = null;
             return(true);
         }
         SetDestination(Destination, map, planets);
         return(false);
     }
     else
     {
         Orbiting = null;
         return(false);
     }
 }
Пример #5
0
 public JDictionary <Planet, int> HostileDestinations(JGraph <string> map, JDictionary <string, Planet> planets)
 {
     return(Destinations(map, planets, true, true));
 }
Пример #6
0
 public JDictionary <Planet, int> SafeDestinations(JGraph <string> map, JDictionary <string, Planet> planets)
 {
     return(Destinations(map, planets, false, false));
 }