Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Ocalc
- {
- public partial class Main : Form
- {
- public Main()
- {
- InitializeComponent();
- }
- private object lastBtnClicked;
- private object lastPanelActive;
- public object btnClicked;
- public static float univSpeed = 1.0f;
- public class gravCalc
- {
- public static UInt64 energyNeeded = 300000;
- public static UInt32 solarEnergy = 0;
- public static UInt32 fusionEnergy = 0;
- public static UInt16 satelliteEnergy = 26;
- public static UInt64 satelliteNumber;
- public static float engineer = 1.0f;
- public static UInt16 constructTime;
- public static UInt64 timeNeeded;
- public static UInt64 crystal;
- public static UInt64 deuter;
- public static void EnergyNeeded(UInt16 level)
- {
- UInt64 energy = 300000;
- UInt64 temp = 0;
- for (UInt16 i = 1; i < level; i++)
- {
- for (UInt16 j = 1; j <= 3; j++)
- {
- temp += energy;
- }
- energy = temp;
- temp = 0;
- }
- energyNeeded = energy;
- }
- public static void SolarEnergy(UInt16 level)
- {
- solarEnergy = (UInt32)(20 * level * Math.Pow(1.1, level) * engineer);
- }
- public static void FusionEnergy(UInt16 level, UInt16 techLevel)
- {
- fusionEnergy = (UInt32)(30 * level * Math.Pow(1.05 + (techLevel * 0.01), level) * engineer);
- }
- public static void SatteliteEnergy(Int16 minTemp, Int16 maxTemp)
- {
- Int16 avTemp = (Int16)((minTemp + maxTemp) / 2);
- satelliteEnergy = (UInt16)(((avTemp + 160) / 6) * engineer);
- }
- public static void Calculate(UInt16 shipyardLevel, UInt16 nanoLevel)
- {
- if (solarEnergy + fusionEnergy > energyNeeded)
- {
- MessageBox.Show("LOL", "", MessageBoxButtons.OK);
- deuter = 0;
- crystal = 0;
- timeNeeded = 0;
- }
- else
- {
- UInt64 missingEnergy = energyNeeded - (UInt64)(solarEnergy + fusionEnergy);
- satelliteNumber = missingEnergy / satelliteEnergy;
- if (missingEnergy % satelliteEnergy > 0) satelliteNumber++;
- deuter = satelliteNumber * 500;
- crystal = satelliteNumber * 2000;
- if ((0.8 / (shipyardLevel + 1) / Math.Pow(2, nanoLevel) * 3600 / univSpeed) < 1.0f)
- {
- constructTime = 1;
- }
- else
- {
- constructTime = (UInt16)(0.8 / (shipyardLevel + 1) / Math.Pow(2, nanoLevel) * 3600 / univSpeed);
- }
- timeNeeded = satelliteNumber * constructTime;
- }
- }
- public static string FormattedNumber(UInt64 number)
- {
- StringBuilder output = new StringBuilder();
- output.Append(number);
- for (int i = output.Length - 3; i > 0; i = i - 3)
- {
- output.Insert(i, " ");
- }
- return output.ToString();
- }
- public static string FormattedTime(UInt64 time)
- {
- StringBuilder output = new StringBuilder();
- if (time == 0)
- {
- output.Append(time);
- output.Append(" sekund");
- return output.ToString();
- }
- else
- {
- if (time > 31557600)
- {
- output.Append(time / 31557600);
- output.Append(" lat ");
- time %= 31557600;
- }
- if (time > 86400)
- {
- output.Append(time / 86400);
- output.Append(" dni ");
- time %= 86400;
- }
- if (time > 3600)
- {
- output.Append(time / 3600);
- output.Append(" godzin ");
- time %= 3600;
- }
- if (time > 60)
- {
- output.Append(time / 60);
- output.Append(" minut ");
- time %= 60;
- }
- if (time > 0)
- {
- output.Append(time);
- output.Append(" sekund");
- }
- return output.ToString();
- }
- }
- };
- public Int16 spyCalc(Int16 spyOwnResearchLevel, Int16 spyEnemyResearchLevel, Int16 scanLevel)
- {
- if (scanLevel == 1) return 1;
- Int16 factor = 0;
- if (spyOwnResearchLevel > spyEnemyResearchLevel) factor = -1;
- if (spyOwnResearchLevel < spyEnemyResearchLevel) factor = 1;
- Int16 probesNumber;
- probesNumber = (Int16)(scanLevel + (factor * (spyOwnResearchLevel - spyEnemyResearchLevel) * (spyOwnResearchLevel - spyEnemyResearchLevel)));
- if (probesNumber < 1) return 1;
- return probesNumber;
- }
- public void buttonDefault(object sender)
- {
- (sender as Control).BackColor = System.Drawing.SystemColors.Control;
- (sender as Control).ForeColor = System.Drawing.SystemColors.ControlText;
- }
- public void buttonClicked(object sender)
- {
- (sender as Control).BackColor = System.Drawing.SystemColors.HotTrack;
- (sender as Control).ForeColor = System.Drawing.SystemColors.HighlightText;
- }
- public void buttonOver(object sender)
- {
- (sender as Control).BackColor = System.Drawing.SystemColors.Highlight;
- (sender as Control).ForeColor = System.Drawing.SystemColors.HighlightText;
- }
- private void buttonEnter(object sender)
- {
- if (sender != lastBtnClicked)
- {
- buttonOver(sender);
- }
- }
- private void buttonDown(object sender)
- {
- if (lastBtnClicked != sender)
- {
- if (lastBtnClicked != null)
- {
- buttonDefault(lastBtnClicked);
- }
- buttonClicked(sender);
- lastBtnClicked = sender;
- }
- else
- {
- buttonDefault(lastBtnClicked);
- lastBtnClicked = null;
- }
- }
- private void buttonLeave(object sender)
- {
- if (sender != lastBtnClicked)
- {
- buttonDefault(sender);
- }
- }
- private void panelActivate(object sender)
- {
- if (lastPanelActive != sender)
- {
- if (lastPanelActive != null)
- {
- (lastPanelActive as Control).Visible = false;
- }
- (sender as Control).Visible = true;
- lastPanelActive = sender;
- }
- else
- {
- (lastPanelActive as Control).Visible = false;
- lastPanelActive = null;
- }
- }
- private void costsButton_MouseDown(object sender, MouseEventArgs e)
- {
- buttonDown(sender);
- panelActivate(costsPanel);
- }
- private void costsButton_MouseEnter(object sender, EventArgs e)
- {
- buttonEnter(sender);
- }
- private void costsButton_MouseLeave(object sender, EventArgs e)
- {
- buttonLeave(sender);
- }
- private void gravButton_MouseDown(object sender, MouseEventArgs e)
- {
- buttonDown(sender);
- panelActivate(gravPanel);
- }
- private void gravButton_MouseEnter(object sender, EventArgs e)
- {
- buttonEnter(sender);
- }
- private void gravButton_MouseLeave(object sender, EventArgs e)
- {
- buttonLeave(sender);
- }
- private void flightTimeButton_MouseDown(object sender, MouseEventArgs e)
- {
- buttonDown(sender);
- panelActivate(flightTimePanel);
- }
- private void flightTimeButton_MouseEnter(object sender, EventArgs e)
- {
- buttonEnter(sender);
- }
- private void flightTimeButton_MouseLeave(object sender, EventArgs e)
- {
- buttonLeave(sender);
- }
- private void colonyButton_MouseDown(object sender, MouseEventArgs e)
- {
- buttonDown(sender);
- panelActivate(colonyPanel);
- }
- private void colonyButton_MouseEnter(object sender, EventArgs e)
- {
- buttonEnter(sender);
- }
- private void colonyButton_MouseLeave(object sender, EventArgs e)
- {
- buttonLeave(sender);
- }
- private void spyButton_MouseDown(object sender, MouseEventArgs e)
- {
- buttonDown(sender);
- panelActivate(spyPanel);
- }
- private void spyButton_MouseEnter(object sender, EventArgs e)
- {
- buttonEnter(sender);
- }
- private void spyButton_MouseLeave(object sender, EventArgs e)
- {
- buttonLeave(sender);
- }
- private void splitContainer1_Panel1_MouseDown(object sender, MouseEventArgs e)
- {
- if (lastBtnClicked != null)
- {
- buttonDefault(lastBtnClicked);
- lastBtnClicked = null;
- }
- if (lastPanelActive != null)
- {
- (lastPanelActive as Control).Visible = false;
- lastPanelActive = null;
- }
- }
- private void spyCountButton_MouseDown(object sender, EventArgs e)
- {
- buttonClicked(sender);
- Int16 scanLevel = 1;
- switch (spyScanLevelBar.Value)
- {
- case 0: scanLevel = 1; break;
- case 1: scanLevel = 2; break;
- case 2: scanLevel = 3; break;
- case 3: scanLevel = 5; break;
- case 4: scanLevel = 7; break;
- }
- spyProbesNeeded.Text = spyCalc(Convert.ToInt16(spyOwnResearch.Value), Convert.ToInt16(spyEnemyResearch.Value), scanLevel).ToString();
- }
- private void spyCountButton_MouseEnter(object sender, EventArgs e)
- {
- buttonOver(sender);
- }
- private void spyCountButton_MouseLeave(object sender, EventArgs e)
- {
- buttonDefault(sender);
- }
- private void gravCountButton_MouseDown(object sender, EventArgs e)
- {
- buttonClicked(sender);
- univSpeed = (float)univSpeedValue.Value;
- gravCalc.SolarEnergy((UInt16)gravSolar.Value);
- gravCalc.FusionEnergy((UInt16)gravFusion.Value, (UInt16)gravEnergyResearch.Value);
- gravCalc.SatteliteEnergy((Int16)gravMinTemp.Value, (Int16)gravMaxTemp.Value);
- gravSolarEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.solarEnergy);
- gravFusionEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.fusionEnergy);
- gravSatelliteEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.satelliteEnergy);
- gravCalc.Calculate((UInt16)gravShipyard.Value, (UInt16)gravNanite.Value);
- gravBuildTimeLabel.Text = "Czas budowy: " + gravCalc.FormattedTime(gravCalc.timeNeeded);
- gravSatellitesNeededLabel.Text = "Potrzebujesz: " + gravCalc.FormattedNumber(gravCalc.satelliteNumber) + " satelit";
- gravResourcesNeededLabel.Text = gravCalc.FormattedNumber(gravCalc.crystal) + " kryształu " + gravCalc.FormattedNumber(gravCalc.deuter) + " deuteru";
- }
- private void univSpeedValue_ValueChanged(object sender, EventArgs e)
- {
- univSpeed = (float)univSpeedValue.Value;
- }
- private void gravMechanicCheckbox_CheckedChanged(object sender, EventArgs e)
- {
- if (gravEngineerCheckbox.Checked)
- {
- gravCalc.engineer = 1.1f;
- gravEngineerLabel.Visible = true;
- gravEngineerLine.Visible = true;
- }
- else
- {
- gravCalc.engineer = 1.0f;
- gravEngineerLabel.Visible = false;
- gravEngineerLine.Visible = false;
- }
- gravCalc.SolarEnergy((UInt16)gravSolar.Value);
- gravCalc.FusionEnergy((UInt16)gravFusion.Value, (UInt16)gravEnergyResearch.Value);
- gravCalc.SatteliteEnergy((Int16)gravMinTemp.Value, (Int16)gravMaxTemp.Value);
- gravSolarEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.solarEnergy);
- gravFusionEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.fusionEnergy);
- gravSatelliteEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.satelliteEnergy);
- }
- private void gravTemp_ValueChanged(object sender, EventArgs e)
- {
- if (gravMinTemp.Value > gravMaxTemp.Value) gravMinTemp.Value = gravMaxTemp.Value;
- gravCalc.SatteliteEnergy((Int16)gravMinTemp.Value, (Int16)gravMaxTemp.Value);
- gravSatelliteEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.satelliteEnergy);
- }
- private void gravLevel_ValueChanged(object sender, EventArgs e)
- {
- gravCalc.EnergyNeeded((UInt16)gravLevel.Value);
- gravNeededEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.energyNeeded);
- }
- private void gravSolar_ValueChanged(object sender, EventArgs e)
- {
- gravCalc.SolarEnergy((UInt16)gravSolar.Value);
- gravSolarEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.solarEnergy);
- }
- private void gravFusion_ValueChanged(object sender, EventArgs e)
- {
- gravCalc.FusionEnergy((UInt16)gravFusion.Value, (UInt16)gravEnergyResearch.Value);
- gravFusionEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.fusionEnergy);
- }
- private void gravEnergyResearch_ValueChanged(object sender, EventArgs e)
- {
- gravCalc.FusionEnergy((UInt16)gravFusion.Value, (UInt16)gravEnergyResearch.Value);
- gravFusionEnergyLabel.Text = gravCalc.FormattedNumber(gravCalc.fusionEnergy);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement