Exemplo n.º 1
0
 void AddHoneyMaker()
 {
     if (JobManager.instance.HoneyCellManager.HasFreeCell() &&
         ResourceManager.instance.RemoveWorker())
     {
         JobManager.instance.HoneyCellManager.ActivateCell();
         HoneyMaker honeyMaker = new HoneyMaker();
         honeyMakers.Add(honeyMaker);
         MakeHoney(honeyMaker);
     }
 }
Exemplo n.º 2
0
    void RemoveHoneyMaker()
    {
        if (honeyMakers.Count == 0)
        {
            return;
        }
        List <HoneyMaker> sortedList = honeyMakers.OrderByDescending(n => n.CalcPriority()).ToList();
        HoneyMaker        maker      = sortedList[0];

        ResourceManager.instance.AddWorker();
        JobManager.instance.HoneyCellManager.DeactivateCell();
        ScheduleManager.instance.RemoveScheduleItem(maker.taskId);
        honeyMakers.Remove(maker);
    }
Exemplo n.º 3
0
    void MakeHoney(HoneyMaker maker)
    {
        if (!maker.waiting)
        {
            //Assume just finished making honey
            ResourceManager.instance.AddHoney(maker.honeyType, ControlManager.instance.Quantities.HoneyPerMake);
            maker.waiting = true;
        }

        //Prioritize rarest nectars first
        FlowerType[] types = (FlowerType[])Enum.GetValues(typeof(FlowerType));

        for (int n = types.Length - 1; n >= 0; n--)
        {
            if (autoOrderToggle.isOn || orders[types[n]] > 0)
            {
                if (ResourceManager.instance.RemoveNectar(types[n], ControlManager.instance.Quantities.NectarPerHoney))
                {
                    if (!autoOrderToggle.isOn)
                    {
                        orders[types[n]] = Math.Max(0, orders[types[n]] - 1);
                        UpdateOrdersDisplay();
                    }
                    maker.waiting           = false;
                    maker.honeyType         = types[n];
                    maker.estTaskCompletion = ControlManager.instance.Times.HoneyMakingTime + StepController.StepNumber;
                    string startingMessage = $"HoneyMaker {maker} beginning on {types[n]} honey. Est. completion: {maker.estTaskCompletion}";
                    string endingMessage   = $"HoneyMaker {maker} completed making {types[n]} honey.";
                    Action callback        = () => MakeHoney(maker);

                    maker.taskId = ScheduleManager.instance.AddScheduleItem(ControlManager.instance.Times.HoneyMakingTime, callback, startingMessage, endingMessage);
                    return;
                }
            }
        }

        //If waiting on Nectar, check every step until it's available
        if (maker.waiting)
        {
            maker.taskId = ScheduleManager.instance.AddScheduleItem(1, () => MakeHoney(maker));
        }
    }