Example #1
0
        public bool UnequipUpgrade(EquippableItem u, bool force = false)
        {
            if (items.Count >= Capacity && !force)
            {
                return(false);
            }

            // sundat vsechny upgrady od konce
            for (int i = activeUpgrades.Count - 1; i >= 0; i--)
            {
                EquippableItem upgr = activeUpgrades[i];
                upgr.Remove();
            }

            // smazat z listu ten ktery chceme unequipnout
            activeUpgrades.Remove(u);
            items.Add(u);

            // znovu aplikovat vsechny upgrady
            for (int i = 0; i < activeUpgrades.Count; i++)
            {
                EquippableItem upgr = activeUpgrades[i];
                upgr.Apply();
            }

            return(true);
        }
Example #2
0
        public bool ForceEquipUpgrade(EquippableItem u)
        {
            foreach (EquippableItem upg in activeUpgrades)
            {
                if (u.GetType().Name.Equals(upg.GetType().Name))
                {
                    Owner.Message("You cannot equip two upgrades of the same type.");
                    return(false);
                }
            }

            if (!CanEquip(u))
            {
                return(false);
            }

            activeUpgrades.Add(u);

            if (HasInInventory(u))
            {
                items.Remove(u);
            }

            u.Apply();
            return(true);
        }