Пример #1
0
 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);
     }
 }
Пример #2
0
 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);
     }
 }
Пример #5
0
    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);
        }
    }
Пример #8
0
    public bool MaterialIsAvailable(float materialID)
    {
        WoodshopMaterialCount w = AvailableMaterials.Find(x => x.MaterialID == materialID);

        return(w != null);
    }