/// <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); } }
/// <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); }
/// <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)); }
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)); }
/// <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); }
/// <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); }
/// <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); }
public void MoveComponents(DradisNodeName source, DradisNodeName dest, IEnumerable <BaseComponent> ships) { CurrentGameState.Dradis.MoveComponents(source, dest, ships); }
/// <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>(); }
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)); }
/// <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; }
public void MoveComponents(DradisNodeName source, DradisNodeName dest, IEnumerable<BaseComponent> ships) { CurrentGameState.Dradis.MoveComponents(source, dest, ships); }
/// <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>(); }
/// <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)); }
/// <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; }
/// <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); }