public bool AddMaterials(float materialID, int amountToAdd) { if (amountToAdd <= 0) { Debug.LogError("Amount of materials to add cannot be 0 or less."); return(false); } else { if (MaterialIsAvailable(materialID)) { WoodshopMaterialCount w = AvailableMaterials.Find(x => x.MaterialID == materialID); int index = AvailableMaterials.IndexOf(w); w.Amount += amountToAdd; AvailableMaterials.Insert(index, w); } else { WoodshopMaterialCount newCount = new WoodshopMaterialCount { MaterialID = materialID, Amount = amountToAdd }; AvailableMaterials.Add(newCount); } return(true); } }
public bool RemoveMaterial(float materialID, int amountToRemove) { if (amountToRemove <= 0) { Debug.LogError("Amount of materials to remove cannot be 0 or less."); return(false); } else { if (MaterialIsAvailable(materialID)) { if (GetMaterialCount(materialID) - amountToRemove < 0) { throw new Exception("You don't have enough of this item (ID: " + materialID + ")"); } else { WoodshopMaterialCount w = AvailableMaterials.Find(x => x.MaterialID == materialID); w.Amount -= amountToRemove; if (w.Amount == 0) { AvailableMaterials.Remove(w); } return(true); } } else { throw new Exception("You don't have enough of this item (ID: " + materialID + ")"); } } }
public bool RequiresWorkshopMaterial(float workshopMaterialID) { WoodshopMaterialCount wsm = RequiredMaterials.Find(x => x.MaterialID == workshopMaterialID); bool found = (wsm != null); return(found); }
public void RemoveMaterialRequirement(float workshopMaterialID) { if (RequiresWorkshopMaterial(workshopMaterialID)) { WoodshopMaterialCount m = RequiredMaterials.Find(x => x.MaterialID == workshopMaterialID); RequiredMaterials.Remove(m); } }
public int GetMaterialCount(float materialID) { int count = 0; if (MaterialIsAvailable(materialID)) { WoodshopMaterialCount w = AvailableMaterials.Find(x => x.MaterialID == materialID); count = w.Amount; } return(count); }
public bool PlayerHasAllRequiredMaterials(Inventory playerInventory) { bool hasAllMaterials = true; for (int i = 0; i < RequiredMaterials.Count && hasAllMaterials; i++) { WoodshopMaterialCount wc = RequiredMaterials[i]; int count = playerInventory.GetMaterialCount(wc.MaterialID); if (count == 0 || count < wc.Amount) { hasAllMaterials = false; } } return(hasAllMaterials); }
public void AddMaterialRequirement(float workshopMaterialID, int amountRequired) { WoodshopMaterialCount newCount = new WoodshopMaterialCount { MaterialID = workshopMaterialID, Amount = amountRequired }; if (RequiresWorkshopMaterial(workshopMaterialID)) { WoodshopMaterialCount currentCount = RequiredMaterials.Find(x => x.MaterialID == workshopMaterialID); int index = RequiredMaterials.IndexOf(currentCount); RequiredMaterials.Insert(index, newCount); } else { RequiredMaterials.Add(newCount); } }
public bool MaterialIsAvailable(float materialID) { WoodshopMaterialCount w = AvailableMaterials.Find(x => x.MaterialID == materialID); return(w != null); }