Exemplo n.º 1
0
 protected void AddUpgradeSlot(Upgrade.UpgradeSlot slot)
 {
     if (!BuiltInSlots.ContainsKey(slot))
     {
         BuiltInSlots.Add(slot, 1);
     }
     else
     {
         BuiltInSlots[slot]++;
     }
 }
Exemplo n.º 2
0
        public void InstallUpgrade(string upgradeName)
        {
            Upgrade.GenericUpgrade newUpgrade = (Upgrade.GenericUpgrade)System.Activator.CreateInstance(System.Type.GetType(upgradeName));

            Upgrade.UpgradeSlot slot = newUpgrade.Type;
            if (HasFreeUpgradeSlot(slot))
            {
                newUpgrade.AttachToShip(this);
                InstalledUpgrades.Add(new KeyValuePair <Upgrade.UpgradeSlot, Upgrade.GenericUpgrade>(newUpgrade.Type, newUpgrade));
                Roster.UpdateUpgradesPanel(this, this.InfoPanel);
                Roster.OrganizeRosters();
            }
        }
Exemplo n.º 3
0
        private bool HasFreeUpgradeSlot(Upgrade.UpgradeSlot slot)
        {
            bool result = false;

            if (BuiltInSlots.ContainsKey(slot))
            {
                int slotsAvailabe = BuiltInSlots[slot];
                foreach (var upgrade in InstalledUpgrades)
                {
                    if (upgrade.Key == slot)
                    {
                        slotsAvailabe--;
                    }
                }

                if (slotsAvailabe > 0)
                {
                    result = true;
                }
            }
            return(result);
        }