Example #1
0
        private void PopulateDrop(TypeDrop actualDrop)
        {
            switch (actualDrop)
            {
            case TypeDrop.Gold:
            {
                StatsManager.Instance.AddGold(CostDrop());
                break;
            }

            case TypeDrop.Weapon:
            {
                InfoWeapon iw = new InfoWeapon();
                iw.SetValues("Weapon", (float)RarityStats(), false, WeaponType.SimpleSword, WeaponEffect(), actualRarityDrop, 1f, CostDrop(), "/Weapons/" + IconNameWeapon());
                if (InventoryManager.Instance.AvailableWeaponSpace > 0)
                {
                    InventoryManager.Instance.AddToInventory(iw);
                }
                else
                {
                    StatsManager.Instance.AddGold(iw.SellValue);
                }

                break;
            }

            case TypeDrop.Armor:
            {
                InfoArmor      ia    = new InfoArmor();
                EquippedInSlot slot  = SlotArmor();
                Stats          stats = ArmorStats();
                ia.SetValues("Armadura", false, slot, CostDrop(), "Some description randomly to be implemented", stats, "/Armors/" + slot.ToString() + "/" + IconNameArmor(slot));
                if (InventoryManager.Instance.AvailableArmorSpace > 0)
                {
                    InventoryManager.Instance.AddToInventory(ia);
                }
                else
                {
                    StatsManager.Instance.AddGold(ia.SellValue);
                }
                break;
            }

            case TypeDrop.Item:
            {
                InfoItem ii = new InfoItem();
                ii.SetValues("Item", TypeItem.Other, "Some description randomly generated", ConsumeEffect.None, CostDrop(), 1, "/Items/" + IconNameItem());
                if (InventoryManager.Instance.AvailableItemSpace > 0)
                {
                    InventoryManager.Instance.AddToInventory(ii);
                }
                else
                {
                    StatsManager.Instance.AddGold(ii.SellValue);
                }
                break;
            }
            }
        }
Example #2
0
        public InfoArmorDatabase GetAllArmorsInInventory()
        {
            InfoArmor[] armors = new InfoArmor[_armorsInInventory.Count];
            _armorsInInventory.Values.CopyTo(armors, 0);
            InfoArmorDatabase iad = new InfoArmorDatabase();

            foreach (InfoArmor ia in armors)
            {
                iad.Database.Add(ia);
            }
            return(iad);
        }
Example #3
0
        private void ReplaceEquippedArmor(InfoArmor ia, int index)
        {
            Stats actualStats   = this.StatsEquipped;
            int   indexPrevious = -1;

            for (int i = 0; i < _armorsInInventory.Count; i++)
            {
                if (_armorsInInventory[i].IsEquipped && _armorsInInventory[i].EquippedInSlot == ia.EquippedInSlot)
                {
                    indexPrevious = i;
                    break;
                }
            }
            _armorEquipped[(int)ia.EquippedInSlot] = ia;
            _armorsInInventory[index].SwapEquipped();
            _armorsInInventory[indexPrevious].SwapEquipped();
            actualStats.DecreaseStats(_armorsInInventory[indexPrevious].Stats);
            actualStats.IncreaseStats(ia.Stats);
            this.StatsEquipped = actualStats;
        }
Example #4
0
        public bool AddToInventory(InfoArmor a)
        {
            if (_armorsInInventory.Count >= _maxArmorsInPossesion)
            {
                return(false);
            }
            int index = 0;

            if (_freeIntArmors.Count > 0)
            {
                index = _freeIntArmors[0];
                _freeIntArmors.RemoveAt(0);
            }
            else
            {
                index = _armorsInInventory.Count;
            }
            _inventoryPanel.AddToInventory(InventorySlotType.Armor, a.ModelName, index);
            _armorsInInventory.Add(index, a);
            return(true);
        }