private void Awake() { _shipParts = GetComponent <ShipParts>(); _rbPlayer = GetComponent <Rigidbody>(); _playerCollider = GetComponent <CapsuleCollider>(); _currentJumps = _STARTJUMPS; }
public void AddPart(ShipParts partName, ShipPart part) { shipParts.Add(partName, part); foreach (KeyValuePair <ShipStats, int> stat in part.stats) { shipStats.Add(stat.Key, stat.Value); } }
public static void EquipItemFromSublist(ShipParts kind, int equipPos, int invPos) { List <ShipPart> availablePrimaryWeapons; switch (kind) { case ShipParts.Primary1: { availablePrimaryWeapons = ShipInventoryManager.GetAvailablePrimaryWeapons(1); ShipInventoryManager.equippedPrimaryWeapons.RemoveAt(0); ShipInventoryManager.equippedPrimaryWeapons.Insert(0, (PlayerWeapon)availablePrimaryWeapons[invPos]); break; } case ShipParts.Primary2: { availablePrimaryWeapons = ShipInventoryManager.GetAvailablePrimaryWeapons(2); ShipInventoryManager.equippedPrimaryWeapons.RemoveAt(1); ShipInventoryManager.equippedPrimaryWeapons.Insert(1, (PlayerWeapon)availablePrimaryWeapons[invPos]); break; } case ShipParts.Secondary: { ShipInventoryManager.equippedSecondary = (PlayerWeapon)ShipInventoryManager.ownedSecondary[invPos]; break; } case ShipParts.Plating: { equippedPlating = (PlayerPlating)ShipInventoryManager.ownedPlatings[invPos]; ChangePrimarySlots(equippedPlating.PrimarySlots); break; } case ShipParts.EnergyCell: { ShipInventoryManager.equippedEnergyCell = (PlayerEnergyCell)ShipInventoryManager.ownedEnergyCells[invPos]; break; } case ShipParts.Shield: { ShipInventoryManager.equippedShield = (PlayerShield)ShipInventoryManager.ownedShields[invPos]; break; } default: { throw new ArgumentException("You entered an unimplemented shippart!"); } } UpdateLists(emptyItem); }
public bool OnAttack(Location location) { var response = false; var shipPart = ShipParts.FirstOrDefault(s => s.Location.X == location.X && s.Location.Y == location.Y && s.IsAlive); if (shipPart != null) { shipPart.Destroy(); response = true; } return(response); }
public void CreateShip(Coordinate start, Coordinate end) { if (start.X == end.X || start.Y == end.Y) { int xDelta = Math.Abs(end.X - start.X); int yDelta = Math.Abs(end.Y - start.Y); if (yDelta > 0) { yDelta += 1; } if (xDelta > 0) { xDelta += 1; } Coordinate lower = Coordinate.GetLower(start, end); Console.WriteLine(lower.X + " " + lower.Y); int xStart = lower.X; int yStart = lower.Y; if (xDelta == 0 || yDelta == 0) { if (xDelta > 4 || yDelta > 4) { Console.WriteLine("Illegal"); // throw new IllegalShipException; } for (int i = 0; i < xDelta; i++) { ShipParts.Add(new Coordinate(xStart + i, yStart)); } for (int i = 0; i < yDelta; i++) { ShipParts.Add(new Coordinate(xStart, yStart + i)); } } else { Console.WriteLine("Illegal"); // throw new IllegalShipException; } } else { Console.WriteLine("Illegal"); // throw new IllegalShipException; } }
private void Ship_PartRemoved(object sender, PartRemovedEventArgs e) { FlightPartViewModel removedPart = ShipParts.First(p => p.Row == e.Row && p.Column == e.Column); removedPart.Remove(); }
public Coordinate[] GetShipParts() { return(ShipParts.ToArray()); }