public static void Main()
p += drones * drone_cost;
float drone_drain = drone_time * 150f * drones;
float drone_dps = 60 * drone_time;
float drone_dps_total = drone_dps * drones;
p += missile_cost * missiles;
float missile_time = 0.7f;
float missile_drain = missile_time * 20f * missiles;
float missile_dps = 30 * missile_time;
float missile_dps_total = missile_dps * missiles;
float flak_drain = 8 * flak_rof * flaks;
float flak_dps = 15 * flak_rof;
float flak_dps_total = flak_dps * flaks;
float shield_drain = 200;
p += shields * shield_cost;
float gen = gens*gen_gen;
float drain = shield_drain + drone_drain + missile_drain + flak_drain;
float defi = gen - drain;
float capacity = (cap * gens);
float dronesPS = drone_time * drones;
float eDronesPS = Math.Clamp(dronesPS * (gen/drain), 0, dronesPS);
float missilesPS = missile_time * missiles;
float eMissilesPS = Math.Clamp(missilesPS * (gen/drain), 0, missilesPS);
float flakPS = flak_rof * flaks;
float eFlakPS = Math.Clamp(flakPS * (gen/drain), 0, flakPS);
Console.WriteLine($"p {p} of {gens * gen_cost}ep of {shields*shield_cost}sp of {drones * drone_cost}dp");
Console.WriteLine("- - -");
Console.WriteLine($"\nDrones/Second: {dronesPS:N1}");
Console.WriteLine($"Effective : {eDronesPS:N1}");
Console.WriteLine($"Drain : {drones*drone_drain:N1}");
Console.WriteLine($"\nMissiles/Second: {missilesPS:N1}");
Console.WriteLine($"Effective : {eMissilesPS:N1}");
Console.WriteLine($"Drain : {missiles*missile_drain:N1}");
Console.WriteLine($"\nFlak/Second: {flakPS:N1}");
Console.WriteLine($"Effective : {flakPS:N1}");
Console.WriteLine($"Drain : {flaks*flak_drain:N1}");
Console.WriteLine($"\nShield Drain : {shields*shield_drain:N1}");
Console.WriteLine("- - -");
Console.WriteLine("\nEnergy\n");
Console.WriteLine("Generation: " + (gen).ToString("N0"));
Console.WriteLine("Upkeep: " + (drain).ToString("N0"));
Console.WriteLine("Deficit: " + (Math.Clamp(defi, -100000, 0)).ToString("N0"));
Console.WriteLine("Percent Increase Required: " + ((defi / gen) * -100).ToString("N0") + "%");
Console.WriteLine("Battery: " + (cap * gens).ToString("N0"));
Console.WriteLine("- - -");
Console.WriteLine("\nTiming\n");
float tte = ( capacity / defi) * -1;
Console.WriteLine("Time to Empty: Forever");
Console.WriteLine("Damage Till Empty: NA");
Console.WriteLine("Time To Volly from empty: NA");
Console.WriteLine("Time to Empty: " + (tte).ToString("N2") + " seconds");
Console.WriteLine("Launches Till Empty: " + ((drone_time * 60) * tte).ToString("N0"));
Console.WriteLine("Time To Recharge from empty: " + (capacity / gen).ToString("N2") + " seconds");