コード例 #1
0
ファイル: FormMain.cs プロジェクト: Gizer/KredekCourse
        /// <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;
        }
コード例 #2
0
ファイル: FormMain.cs プロジェクト: Gizer/KredekCourse
 /// <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();
 }
コード例 #3
0
ファイル: FormMain.cs プロジェクト: Gizer/KredekCourse
        /// <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();
        }
コード例 #4
0
ファイル: FormMain.cs プロジェクト: Gizer/KredekCourse
 /// <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();
 }
コード例 #5
0
ファイル: FormMain.cs プロジェクト: Gizer/KredekCourse
        /// <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();
        }
コード例 #6
0
ファイル: FormMain.cs プロジェクト: Gizer/KredekCourse
        /// <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();
        }