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);
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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();
        }
Exemple #7
0
 public Coordinate[] GetShipParts()
 {
     return(ShipParts.ToArray());
 }