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; } } }
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); }
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; }
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); }