Exemplo n.º 1
0
        /// <summary>
        /// funkcja przeprowadzająca działania związane z tyknięciem zegara
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timerCounter_Tick(object sender, EventArgs e)
        {
            // warunek kończący rozgrywkę
            if (empire1.IsConquered() == true && empire2.IsConquered() == true && empire3.IsConquered() == true)
            {
                // zatrzymanie zegara
                timerCounter.Stop();
                // wyświetlenie gratulacji na ekranie
                MessageBox.Show("Congratulations you won ! World belongs to you !");
                // zamknięcie aplikacji
                Close();
            }

            // zwiększenie godziny o 1
            hour++;
            // aktualizacja godziny wyświetlanej na ekranie
            labelHour.Text = hour.ToString();

            // aktualizacja zasobów wiosek w czasie

            myEmpire.UpdateResources();
            empire1.UpdateResources();
            empire2.UpdateResources();
            empire3.UpdateResources();

            // aktualizacja zasobów wiosek na ekranie
            LabelResourcesUpdate();

            // aktualizacja stanu wojsk przeciwników co 24h:
            if (hour == 1)
            {
                if (empire1.IsConquered() == false)
                {
                    empire1.RecruitAll(1, 1, 0);
                }
                if (empire2.IsConquered() == false)
                {
                    empire2.RecruitAll(3, 0, 1);
                }
                if (empire3.IsConquered() == false)
                {
                    empire3.RecruitAll(5, 10, 5);
                }
                // wyświetlenie na ekranie
                LabelsEmpiresUpdate();
            }


            // aktualizacja liczby dni gdy miną 24 godziny
            if (hour == 24)
            {
                // wyzerowanie liczby godzin
                hour = 0;
                // zwiększenie dni o 1
                day++;
                // aktualizacja wyświetlanych na ekranie danych dotyczących czasu
                labelHour.Text = hour.ToString();
                labelDay.Text  = day.ToString();
                // Wydarzenia w trakcie rozgrywki

                // ataki :

                // ostrzeżenie przed atakiem
                if (day == 4 && empire1.IsConquered() == false)
                {
                    labelHint.Text = empire1.GetName() + " is going to attack your village tomorrow !";
                }
                // atak empire1 na gracza jeśli prędzej nie zostało podbite
                if (day == 5 && empire1.IsConquered() == false)
                {
                    // walka
                    if (Empire.FIGHT(empire1, myEmpire))
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire1.GetName() + " attacked your village, killed your warriors and stole your resources");
                    }
                    else
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire1.GetName() + " attacked your village but your warriors repulsed their attack");
                    }
                    // aktualizacja stanu wojsk i zasobów
                    LabelResourcesUpdate();
                    SetLabelsWarriorsStatus();
                    LabelArmyPowerUpdate();
                    LabelsEmpiresUpdate();
                    labelHint.Text = "Develop your empire to conquer other settlements and protect your own";
                }
                // ostrzeżenie przed atakiem
                if (day == 9 && empire2.IsConquered() == false)
                {
                    labelHint.Text = empire2.GetName() + " is going to attack your village tomorrow!";
                }
                // atak empire2 na gracza jeśli prędzej nie zostało podbite
                if (day == 10 && empire2.IsConquered() == false)
                {
                    // walka
                    if (Empire.FIGHT(empire2, myEmpire))
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire2.GetName() + " attacked your village, killed your warriors and stole your resources");
                    }
                    else
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire2.GetName() + " attacked your village but your warriors repulsed their attack");
                    }
                    // aktualizacja stanu wojsk i zasobów
                    LabelResourcesUpdate();
                    SetLabelsWarriorsStatus();
                    LabelArmyPowerUpdate();
                    LabelsEmpiresUpdate();
                    labelHint.Text = "Develop your empire to conquer other settlements and protect your own";
                }
                // ostrzeżenie przed atakiem
                if (day == 13 && empire3.IsConquered() == false)
                {
                    labelHint.Text = empire3.GetName() + " is going to attack your village at day 15 !";
                }
                // atak empire3 na gracza jeśli prędzej nie zostało podbite
                if (day == 15 && empire3.IsConquered() == false)
                {
                    // walka
                    if (Empire.FIGHT(empire3, myEmpire))
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire3.GetName() + " attacked your village, killed your warriors and stole your resources");
                    }
                    else
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire3.GetName() + " attacked your village but your warriors repulsed their attack");
                    }
                    // aktualizacja stanu wojsk i zasobów
                    LabelResourcesUpdate();
                    SetLabelsWarriorsStatus();
                    LabelArmyPowerUpdate();
                    LabelsEmpiresUpdate();
                    labelHint.Text = "Develop your empire to conquer other settlements and protect your own";
                }
                // ostrzeżenie przed atakiem
                if (day == 18 && empire3.IsConquered() == false)
                {
                    labelHint.Text = empire3.GetName() + " is going to attack your village at day 20 !";
                }
                // informacja o zmianie zamiarów
                if (day == 19 && empire3.IsConquered() == true)
                {
                    labelHint.Text = empire3.GetName() + " abandoned an idea to attack your village";
                }
                // ponowny atak empire3 na gracza jeśli prędzej nie zostało podbite
                if (day == 20 && empire3.IsConquered() == false)
                {
                    // walka
                    if (Empire.FIGHT(empire3, myEmpire))
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire3.GetName() + " attacked your village, killed your warriors and stole your resources");
                    }
                    else
                    {
                        // informacja o rezultacie walki
                        MessageBox.Show(empire3.GetName() + " attacked your village but your warriors repulsed their attack");
                    }
                    // aktualizacja stanu wojsk i zasobów
                    LabelResourcesUpdate();
                    SetLabelsWarriorsStatus();
                    LabelArmyPowerUpdate();
                    LabelsEmpiresUpdate();
                    labelHint.Text = "Develop your empire to conquer other settlements and protect your own";
                }
            }
            if (day == 20)
            {
                labelHint.Text = "Develop your empire to conquer other settlements and protect your own";
            }
            myEmpire.UpdateResources();
            // aktualizacja progressBar na ekranie
            ProgressBarsUpdate();
        }
Exemplo n.º 2
0
        /// <summary>
        /// walka pomiędzy wioskami (Boolean aby wyświetlić MessageBox z wynikiem walk)
        /// </summary>
        /// <param name="attacker"></param>
        /// <param name="defender"></param>
        /// <returns></returns>
        public static Boolean FIGHT(Empire attacker, Empire defender)
        {
            // zwycięstwo atakujących
            if (attacker.GetOffensive() > defender.GetDefensive())
            {
                // przejęcie zasobów
                attacker.SetGold(attacker.GetGold() + defender.GetGold());
                attacker.SetIron(attacker.GetIron() + defender.GetIron());
                attacker.SetWood(attacker.GetWood() + defender.GetWood());
                attacker.SetRock(attacker.GetRock() + defender.GetRock());
                attacker.SetClay(attacker.GetClay() + defender.GetClay());
                // wyzerowanie zasobów
                defender.SetGold(0);
                defender.SetIron(0);
                defender.SetWood(0);
                defender.SetRock(0);
                defender.SetClay(0);
                // aktualizacja stanu wojsk wygranych
                attacker.SetKnights(attacker.GetKnights() - defender.GetKnights());
                if (attacker.GetKnights() < 0)
                {
                    attacker.SetKnights(0);
                }
                attacker.SetArchers(attacker.GetArchers() - defender.GetArchers());
                if (attacker.GetArchers() < 0)
                {
                    attacker.SetArchers(0);
                }
                attacker.SetCavalrymen(attacker.GetCavalrymen() - defender.GetCavalrymen());
                if (attacker.GetCavalrymen() < 0)
                {
                    attacker.SetCavalrymen(0);
                }
                // wyzerowanie wojsk przegranych
                defender.SetKnights(0);
                defender.SetArchers(0);
                defender.SetCavalrymen(0);

                return(true);
            }
            // zwycięstwo broniących
            else
            {
                // aktualizacja stanu wojsk wygranych
                defender.SetKnights(defender.GetKnights() - attacker.GetKnights());
                if (defender.GetKnights() < 0)
                {
                    defender.SetKnights(0);
                }
                defender.SetArchers(defender.GetArchers() - attacker.GetArchers());
                if (defender.GetArchers() < 0)
                {
                    defender.SetArchers(0);
                }
                defender.SetCavalrymen(defender.GetCavalrymen() - attacker.GetCavalrymen());
                if (defender.GetCavalrymen() < 0)
                {
                    defender.SetCavalrymen(0);
                }
                // wyzerowanie wojsk przegranych
                attacker.SetKnights(0);
                attacker.SetArchers(0);
                attacker.SetCavalrymen(0);

                return(false);
            }
        }