/// <summary> /// Change labelCost content when new item was selected /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void comboBoxBuildings_SelectedValueChanged(object sender, EventArgs e) { // Getting selected item from comboBox string chosedOption = comboBoxBuildings.SelectedItem.ToString(); switch (chosedOption) // Depending on selected item, propper cost will be displayed { case "Tartak": labelCost.Text = "Koszt: " + Sawmill.GetCost(); break; case "Kamieniołom": labelCost.Text = "Koszt: " + Quarry.GetCost(); break; case "Kopalnia": labelCost.Text = "Koszt: " + Mine.GetCost(); break; case "Farma": labelCost.Text = "Koszt: " + Farm.GetCost(); break; case "Rozbudowa zamku": labelCost.Text = "Koszt: " + Castle.GetCost(); break; } // Showing build/destroy many menu labelQuantity.Visible = true; textBoxQuantity.Visible = true; buttonBuildMany.Visible = true; buttonDestroyMany.Visible = true; }
/// <summary> /// Function that updates text in buildings labels /// </summary> private void UpdateBuildingsCountLabels() { labelSawmillCount.Text = Sawmill.GetSawmillsCount().ToString(); labelQuarriesCount.Text = Quarry.GetQuarriesCount().ToString(); labelMinesCount.Text = Mine.GetMinesCount().ToString(); labelFarmsCount.Text = Farm.GetFarmsCount().ToString(); labelCastleLevel.Text = Castle.GetLevel().ToString(); }
/// <summary> /// Every tick a number is drawn. There is 5% chance for evil event to happen /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timerEvilEvents_Tick(object sender, EventArgs e) { timerResources.Stop(); timerEvilEvents.Stop(); // Stopping timer to avoid multiple bad events showing at once if (random.Next(1, 100) < 6) { switch (random.Next(0, numberOfEvilEvents + 1)) // Selecting what event will happen { case 0: MessageBox.Show("Twoją krainę spowiła ciemność. Przybył Dżanusz Biernut i uwalił całe Twoje królestwo." + "\r\n\r\nDeficyt królestwa zwiększa się."); ++deficiency; break; case 1: MessageBox.Show("Uczelnia nie otworzyła wystarczającej liczby miejsc na kurs." + "Pomimo wielu prób, Twoim poddanym nie udało się zapisać na zajęcia.\r\n\r\n" + "Deficyt królestwa zwiększa się."); ++deficiency; break; case 2: MessageBox.Show("Prowadzący zmienił zasady zaliczenia dzień przed egzaminem." + "Twoi poddani nie zdążyli zareagować.\r\n\r\n" + "Deficyt królestwa zwiększa się."); ++deficiency; break; case 3: if (Castle.GetLevel() < 3) { MessageBox.Show("Na pobliskiej wyspie odbyła się celebracja nazwy dnia tygodnia." + "Wydałeś pieniądze na zabawę.\r\n\r\n" + "Ilość pieniędzy królestwa zmniejsza się. (-1000)"); money -= 1000; } break; case 4: if (Castle.GetLevel() < 2 && Farm.GetFarmsCount() > 0 && Sawmill.GetSawmillsCount() > 0) { MessageBox.Show("O nie! W domu studenckim Twoich poddanych wybuchł pożar!" + "To nie jest fałszywy alarm.\r\n\r\n" + "Utracono Farmę oraz Tartak."); Farm.Destroy(); Sawmill.Destroy(); } break; } } timerEvilEvents.Start(); timerResources.Start(); UpdateBuildingsCountLabels(); UpdateResourceLabels(); }
/// <summary> /// Function that updates incomes of the player /// </summary> private void UpdateIncomes() { // Calculating incomes woodIncome = Sawmill.GetBaseProduction() * Sawmill.GetSawmillsCount(); stoneIncome = Quarry.GetBaseProduction() * Quarry.GetQuarriesCount(); gemsIncome = Mine.GetBaseProduction() * Mine.GetMinesCount(); // Food income depends on how many other buildings player has foodIncome = Farm.GetBaseProduction() * Farm.GetFarmsCount() - (Quarry.GetFoodIncomeCost() + Mine.GetFoodIncomeCost() + Castle.GetFoodIncomeCost()); moneyIncome = 10 + Castle.GetBaseProduction(); }
/// <summary> /// Function that takes care of destroying propper building /// </summary> private void Destroy() { // Getting selected item from comboBox string chosedOption = comboBoxBuildings.SelectedItem.ToString(); switch (chosedOption) // Depending on selected item, propper destroying procedure will began { case "Tartak": if (Sawmill.GetSawmillsCount() > 0) { Sawmill.Destroy(); MessageBox.Show("Zburzono tartak"); } else { MessageBox.Show("Nie masz tartaków"); } break; case "Kamieniołom": if (Quarry.GetQuarriesCount() > 0) { Quarry.Destroy(); MessageBox.Show("Zburzono kamieniołom"); } else { MessageBox.Show("Nie masz kamieniołomów"); } break; case "Kopalnia": if (Mine.GetMinesCount() > 0) { Mine.Destroy(); MessageBox.Show("Zburzono kopalnię"); } else { MessageBox.Show("Nie masz kopalni"); } break; case "Farma": if (Farm.GetFarmsCount() > 0) { Farm.Destroy(); MessageBox.Show("Zburzono farmę"); } break; case "Rozbudowa zamku": if (Castle.GetLevel() > 1) { Castle.Destroy(); if (Castle.GetLevel() < 5) { Bitmap image = new Bitmap("Resources/img/castle" + Castle.GetLevel().ToString() + ".png"); // Loading new images for specific level of upgrade. There is 4 levels, but you can build more pictureBoxCastle.Image = image; // Assigning image to pictureBox } MessageBox.Show("Wyburzono część zamku"); labelCost.Text = Castle.GetCost(); //updating label } else { MessageBox.Show("Nie możesz zniszczyć zamku"); } break; } UpdateIncomes(); // After demolition, there is need to update propper labels UpdateBuildingsCountLabels(); }
/// <summary> /// Function that takes care of building proper building /// </summary> private void Build() { // Getting selected item from comboBox string chosedOption = comboBoxBuildings.SelectedItem.ToString(); switch (chosedOption) // Depending on chosed item, propper building procedure will begin { case "Tartak": if (Sawmill.ResourceCheck(ref wood, ref money)) { Sawmill.Build(); } else { MessageBox.Show("Nie posiadasz odpowiedniej liczby surowców"); } break; case "Kamieniołom": if (Quarry.ResourceCheck(ref wood, ref money)) { Quarry.Build(); } else { MessageBox.Show("Nie posiadasz odpowiedniej liczby surowców"); } break; case "Kopalnia": if (Mine.ResourcesCheck(ref wood, ref stone, ref money)) { Mine.Build(); } else { MessageBox.Show("Nie posiadasz odpowiedniej liczby surowców"); } break; case "Farma": if (Farm.ResourceCheck(ref wood, ref money)) { Farm.Build(); } else { MessageBox.Show("Nie posiadasz odpowiedniej liczby surowców"); } break; case "Rozbudowa zamku": if (Castle.ResourceCheck(ref wood, ref stone, ref gems, ref money)) { Castle.Build(); if (Castle.GetLevel() < 5) { Bitmap image = new Bitmap("Resources/img/castle" + Castle.GetLevel().ToString() + ".png"); // Loading new images for specific level of upgrade. There is 4 levels, but you can build more pictureBoxCastle.Image = image; // Assigning image to pictureBox } labelCost.Text = Castle.GetCost(); // Updating label } else { MessageBox.Show("Nie posiadasz odpowiedniej liczby surowców"); } break; } UpdateIncomes(); // After building is done, there is need to update propper labels UpdateBuildingsCountLabels(); }