コード例 #1
0
    public void Run()
    {
        ArrayManager();
        UI();
        RunAuto();

        void UI()
        {
            if (!game.autoGroup.gameObject.activeSelf)
            {
                return;
            }
            for (var i = 0; i < costText.Length; i++)
            {
                costText[i].text = $"{costDesc[i]}\nCost: {Methods.NotationMethod(costs[i], "F2")} Plasma\nInterval: {(levels[i] >= levelsCap[i] ? "Instant" : intervals[i].ToString("F1"))}";
                game.SmoothNumber(ref game.plasmaTemp, game.data.plasma);
                Methods.BigDoubleFill(game.data.plasma, costs[i], ref costBars[i]);
                Methods.BigDoubleFill(game.plasmaTemp, costs[i], ref costBarsSmooth[i]);
            }
        }

        void RunAuto()
        {
            // lvl, upgrade
            CAuto(0, 0);
            CAuto(1, 1);
            CAuto(2, 2);
            CAuto(2, 2);
            CAuto(3, 3);
            CAuto(4, 4);
            CAuto(5, 5);
            CAuto(6, 6);
            CAuto(7, 7);
            CAuto(8, 8);
            CAuto(9, 9);

            PAuto(0, 0);
            PAuto(1, 1);
            PAuto(2, 2);
            PAuto(3, 3);
            PAuto(4, 4);
            PAuto(5, 5);
            PAuto(6, 6);
            PAuto(7, 7);
            PAuto(8, 8);
            PAuto(9, 9);


            void CAuto(int id, int index)
            {
                if (levels[id] <= 0)
                {
                    return;
                }
                if (levels[id] != levelsCap[id])
                {
                    Buy(id);
                }
                else
                {
                    if (upgrades.BuyClickUpgradeMaxCount(index) != 0)
                    {
                        upgrades.BuyClickUpgradeMax(index);
                    }
                }
            }

            void PAuto(int id, int index)
            {
                if (levels[id] <= 0)
                {
                    return;
                }
                if (levels[id] != levelsCap[id])
                {
                    Buy(id);
                }
                else
                {
                    if (upgrades.BuyProductionUpgradeMaxCount(index) != 0)
                    {
                        upgrades.BuyProductionUpgradeMax(index);
                    }
                }
            }

            void Buy(int id)
            {
                timer[id] += Time.deltaTime;
                if (timer[id] >= intervals[id])
                {
                    BuyUpgrade(id);
                    timer[id] = 0;
                }
            }
        }
    }