private int Upgrade(StructureController controller, int amount) { int used = amount; if (controller.ProgressTotal <= (amount + controller.Progress)) { controller.Level++; controller.ProgressTotal = controller.GetProgressTotal(controller.Level + 1); controller.TicksToDowngrade = controller.GetTicksToDowngrade(controller.Level + 1); controller.Progress = 0; } else { controller.Progress += amount; controller.TicksToDowngrade = controller.GetTicksToDowngrade(controller.Level + 1); } return(used); }