Exemple #1
0
        /// <summary>
        /// Moves numerous components.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="destination">The destination.</param>
        /// <param name="componentsToMove">The components to move.</param>
        public void MoveComponents(DradisNodeName source, DradisNodeName destination, IEnumerable <Guid> componentsToMove)
        {
            if (componentsToMove == null)
            {
                return;
            }
            if (Nodes == null)
            {
                PrepDradis();
            }
            var sectorSource = Nodes.FirstOrDefault(x => x.NodeName == source);

            if (sectorSource == default(DradisNode))
            {
                PrepDradis();
                sectorSource = Nodes.First(x => x.NodeName == source);
            }

            var sectorDestination = Nodes.FirstOrDefault(x => x.NodeName == destination);

            if (sectorDestination == default(DradisNode))
            {
                PrepDradis();
                sectorDestination = Nodes.First(x => x.NodeName == source);
            }

            var movedComponents = sectorSource.Components.Where(x => componentsToMove.Contains(x.PermanentDesignation)).ToList();

            sectorDestination.Components.AddRange(movedComponents);
            foreach (var component in movedComponents)
            {
                sectorSource.Components.Remove(component);
            }
        }
Exemple #2
0
        /// <summary>
        /// Attempts to place a ship of type in DRADIS location
        /// </summary>
        /// <param name="location"></param>
        /// <param name="type"></param>
        /// <returns>The component that has been placed</returns>
        public BaseComponent PlaceComponent(DradisNodeName location, ComponentType type)
        {
            AddToTurnLog("A " + type + " arrives in " + location + "!");
            BaseComponent ship = null;

            switch (type)
            {
            case ComponentType.Basestar:
                ship = new Basestar();
                break;

            case ComponentType.Civilian:
                ship = DrawCiv();
                break;

            case ComponentType.HeavyRaider:
                ship = new HeavyRaider();
                break;

            case ComponentType.Raider:
                ship = new Raider();
                break;

            case ComponentType.Viper:
                ship = DrawViper();
                break;
            }
            CurrentGameState.Dradis.AddComponentToNode(ship, location);
            return(ship);
        }
Exemple #3
0
 /// <summary>
 /// Moves numerous components.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="destination">The destination.</param>
 /// <param name="componentsToMove">The components to move.</param>
 public void MoveComponents(DradisNodeName source, DradisNodeName destination, IEnumerable <BaseComponent> componentsToMove)
 {
     if (componentsToMove == null)
     {
         return;
     }
     MoveComponents(source, destination, componentsToMove.Select(x => x.PermanentDesignation));
 }
Exemple #4
0
        private void UpdateTurnLogWithMovement(DradisNodeName source, DradisNodeName destination, IEnumerable <BaseComponent> selectedItems)
        {
            var selectedList = selectedItems.ToList();

            if (!selectedList.Any())
            {
                return;
            }
            var raiders = 0;
            var heavies = 0;
            var vipers  = 0;
            var civs    = 0;

            foreach (var component in selectedList)
            {
                if (component.ComponentType == ComponentType.Raider)
                {
                    raiders++;
                }
                if (component.ComponentType == ComponentType.HeavyRaider)
                {
                    heavies++;
                }
                if (component.ComponentType == ComponentType.Viper)
                {
                    vipers++;
                }
                if (component.ComponentType == ComponentType.Civilian)
                {
                    civs++;
                }
            }

            var movementUpdateString = string.Empty;

            if (raiders > 0)
            {
                movementUpdateString += string.Format("{0} {1}, ", raiders, (raiders == 1) ? ComponentType.Raider.ToString() : ComponentType.Raider.GetStringValue());
            }
            if (heavies > 0)
            {
                movementUpdateString += string.Format("{0} {1}, ", heavies, (heavies == 1) ? ComponentType.HeavyRaider.ToString() : ComponentType.HeavyRaider.GetStringValue());
            }
            if (vipers > 0)
            {
                movementUpdateString += string.Format("{0} {1}, ", vipers, (vipers == 1) ? ComponentType.Viper.ToString() :  ComponentType.Viper.GetStringValue());
            }
            if (civs > 0)
            {
                movementUpdateString += string.Format("{0} {1}, ", civs, (civs == 1) ? ComponentType.Civilian.ToString() : ComponentType.Civilian.GetStringValue());
            }

            movementUpdateString = movementUpdateString.Trim(',', ' ');

            Program.GManager.AddToTurnLog(string.Format(Resources.ComponentMovement, movementUpdateString, source, destination));
        }
Exemple #5
0
        /// <summary>
        /// Gets the components.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <returns></returns>
        public IEnumerable <BaseComponent> GetComponents(DradisNodeName source)
        {
            if (Nodes == null)
            {
                PrepDradis();
            }
            var sector = Nodes.FirstOrDefault(x => x.NodeName == source);

            return(sector == null ? null : sector.Components);
        }
Exemple #6
0
 /// <summary>
 /// Adds the component to node.
 /// </summary>
 /// <param name="component">The component.</param>
 /// <param name="name">The name.</param>
 public void AddComponentToNode(BaseComponent component, DradisNodeName name)
 {
     if (component == null)
         return;
     if (Nodes == null)
         PrepDradis();
     var sector = Nodes.FirstOrDefault(x => x.NodeName == name);
     if (sector == default(DradisNode))
     { 
         PrepDradis();
         sector = Nodes.First(x => x.NodeName == name);
     }
     sector.Components.Add(component);
 }
Exemple #7
0
        /// <summary>
        /// Adds the component to node.
        /// </summary>
        /// <param name="component">The component.</param>
        /// <param name="name">The name.</param>
        public void AddComponentToNode(BaseComponent component, DradisNodeName name)
        {
            if (component == null)
            {
                return;
            }
            if (Nodes == null)
            {
                PrepDradis();
            }
            var sector = Nodes.FirstOrDefault(x => x.NodeName == name);

            if (sector == default(DradisNode))
            {
                PrepDradis();
                sector = Nodes.First(x => x.NodeName == name);
            }
            sector.Components.Add(component);
        }
Exemple #8
0
 public void MoveComponents(DradisNodeName source, DradisNodeName dest, IEnumerable <BaseComponent> ships)
 {
     CurrentGameState.Dradis.MoveComponents(source, dest, ships);
 }
Exemple #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DradisNode"/> class.
 /// </summary>
 /// <param name="name">The name.</param>
 public DradisNode(DradisNodeName name)
 {
     NodeName   = name;
     Components = new List <BaseComponent>();
 }
Exemple #10
0
        private void UpdateTurnLogWithMovement(DradisNodeName source, DradisNodeName destination, IEnumerable<BaseComponent> selectedItems)
        {
            var selectedList = selectedItems.ToList();
            if (!selectedList.Any())
                return;
            var raiders = 0;
            var heavies = 0;
            var vipers = 0;
            var civs = 0;

            foreach (var component in selectedList)
            {
                if (component.ComponentType == ComponentType.Raider)
                    raiders++;
                if (component.ComponentType == ComponentType.HeavyRaider)
                    heavies++;
                if (component.ComponentType == ComponentType.Viper)
                    vipers++;
                if (component.ComponentType == ComponentType.Civilian)
                    civs++;
            }

            var movementUpdateString = string.Empty;
            if (raiders > 0)
                movementUpdateString += string.Format("{0} {1}, ", raiders, (raiders == 1) ? ComponentType.Raider.ToString() : ComponentType.Raider.GetStringValue());
            if (heavies > 0)
                movementUpdateString += string.Format("{0} {1}, ", heavies, (heavies == 1) ? ComponentType.HeavyRaider.ToString() : ComponentType.HeavyRaider.GetStringValue());
            if (vipers > 0)
                movementUpdateString += string.Format("{0} {1}, ", vipers, (vipers == 1) ? ComponentType.Viper.ToString() :  ComponentType.Viper.GetStringValue());
            if (civs > 0)
                movementUpdateString += string.Format("{0} {1}, ", civs, (civs == 1) ? ComponentType.Civilian.ToString() : ComponentType.Civilian.GetStringValue());

            movementUpdateString = movementUpdateString.Trim(',', ' ');
            
            Program.GManager.AddToTurnLog(string.Format(Resources.ComponentMovement, movementUpdateString, source, destination));
        }
Exemple #11
0
 /// <summary>
 /// Attempts to place a ship of type in DRADIS location
 /// </summary>
 /// <param name="location"></param>
 /// <param name="type"></param>
 /// <returns>The component that has been placed</returns>
 public BaseComponent PlaceComponent( DradisNodeName location, ComponentType type)
 {
     AddToTurnLog("A " + type + " arrives in " + location + "!");
     BaseComponent ship = null;
     switch (type)
     { 
         case ComponentType.Basestar:
             ship = new Basestar();
             break;
         case ComponentType.Civilian:
             ship = DrawCiv();
             break;
         case ComponentType.HeavyRaider:
             ship = new HeavyRaider();
             break;
         case ComponentType.Raider:
             ship = new Raider();
             break;
         case ComponentType.Viper:
             ship = DrawViper();
             break;
     }
     CurrentGameState.Dradis.AddComponentToNode(ship, location);
     return ship;
 }
Exemple #12
0
        public void MoveComponents(DradisNodeName source, DradisNodeName dest, IEnumerable<BaseComponent> ships)
        { 

            CurrentGameState.Dradis.MoveComponents(source, dest, ships);
        }
Exemple #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DradisNode"/> class.
 /// </summary>
 /// <param name="name">The name.</param>
 public DradisNode(DradisNodeName name)
 {
     NodeName = name;
     Components = new List<BaseComponent>();
 }
Exemple #14
0
 /// <summary>
 /// Moves numerous components.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="destination">The destination.</param>
 /// <param name="componentsToMove">The components to move.</param>
 public void MoveComponents(DradisNodeName source, DradisNodeName destination, IEnumerable<BaseComponent> componentsToMove)
 {
     if (componentsToMove == null)
         return;
     MoveComponents(source, destination, componentsToMove.Select(x => x.PermanentDesignation));
 }
Exemple #15
0
 /// <summary>
 /// Gets the components.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <returns></returns>
 public IEnumerable<BaseComponent> GetComponents(DradisNodeName source)
 {
     if (Nodes == null)
         PrepDradis();
     var sector = Nodes.FirstOrDefault(x => x.NodeName == source);
     return sector == null ? null : sector.Components;
 }
Exemple #16
0
        /// <summary>
        /// Moves numerous components.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="destination">The destination.</param>
        /// <param name="componentsToMove">The components to move.</param>
        public void MoveComponents(DradisNodeName source, DradisNodeName destination, IEnumerable<Guid> componentsToMove)
        {
            if (componentsToMove == null)
                return;
            if (Nodes == null)
                PrepDradis();
            var sectorSource = Nodes.FirstOrDefault(x => x.NodeName == source);
            if (sectorSource == default(DradisNode))
            {
                PrepDradis();
                sectorSource = Nodes.First(x => x.NodeName == source);
            }

            var sectorDestination = Nodes.FirstOrDefault(x => x.NodeName == destination);
            if (sectorDestination == default(DradisNode))
            {
                PrepDradis();
                sectorDestination = Nodes.First(x => x.NodeName == source);
            }

            var movedComponents = sectorSource.Components.Where(x => componentsToMove.Contains(x.PermanentDesignation)).ToList();
            sectorDestination.Components.AddRange(movedComponents);
            foreach (var component in movedComponents)
                sectorSource.Components.Remove(component);
        }