protected void BuyStock(FloatRangePerPowerLevel perPowerLevelItemBudgetRange)
 {
     for (int i = 0; i < powerLevelEnum.Length; i++)
     {
         EnumValue powerLevel = EnumValue.Create(powerLevelEnum, i);
         BuyStockAtPowerLevel(powerLevel, stockAvailability[powerLevel], perPowerLevelItemBudgetRange[powerLevel]);
     }
 }
    public float GetMaxPossibleValue(FloatRangePerPowerLevel perPowerLevelBudgetRange)
    {
        float total = 0f;

        total += stockAvailability["Minor"].max * perPowerLevelBudgetRange["Minor"].max;
        total += stockAvailability["Medium"].max * perPowerLevelBudgetRange["Medium"].max;
        total += stockAvailability["Major"].max * perPowerLevelBudgetRange["Major"].max;
        return(total);
    }
    public void AddRandom(string powerLevel, FloatRangePerPowerLevel perPowerLevelItemBudgetRange)
    {
        TSpecificItem[] newSpecificItems = new TSpecificItem[specificItems.Length + 1];
        for (int i = 0; i < specificItems.Length; i++)
        {
            newSpecificItems[i] = specificItems[i];
        }
        EnumValue itemPowerLevel = EnumValue.Create(powerLevelEnum, powerLevelEnum[powerLevel]);

        newSpecificItems[specificItems.Length] = CreateRandomSpecificItem(itemPowerLevel, perPowerLevelItemBudgetRange[powerLevel]);
        specificItems = newSpecificItems;
    }
    public void Restock(RestockSettings restockSettings, FloatRangePerPowerLevel perPowerLevelItemBudgetRange)
    {
        SellStock(restockSettings);

        BuyStock(perPowerLevelItemBudgetRange);
    }
    public void ReplaceWithRandom(int index, string powerLevel, FloatRangePerPowerLevel perPowerLevelItemBudgetRange)
    {
        EnumValue itemPowerLevel = EnumValue.Create(powerLevelEnum, powerLevelEnum[powerLevel]);

        specificItems[index] = CreateRandomSpecificItem(itemPowerLevel, perPowerLevelItemBudgetRange[itemPowerLevel]);
    }