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; } } } }