Esempio n. 1
0
 //Kliknutí na tlačítko koupit
 private void dgvObchod_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex == 4)
     {
         var vecID = dgvObchod.Rows[e.RowIndex].Cells[0].Value;
         Věc zbozi = Svet.VecByID(Convert.ToInt32(vecID));
         if (player.Zlato >= zbozi.Cena)
         {
             player.PridatDoInventare(zbozi);
             player.Zlato -= zbozi.Cena;
             AktualizaceInventare();
             dgvInventar.Columns[4].Visible = true;
             player.poloha.Obchodnik.OdebratZInventare(zbozi);
             dgvObchod.Rows.Clear();
             foreach (Inventar inventar in player.poloha.Obchodnik.Inventar)
             {
                 if (inventar.Mnozstvi > 0)
                 {
                     dgvObchod.Rows.Add(new[] { inventar.VecID.ToString(), inventar.Detaily.Jmeno, inventar.Mnozstvi.ToString(), inventar.Detaily.Cena.ToString() });
                 }
             }
         }
         else
         {
             MessageBox.Show("Nemáš dostatek zlata ke koupi " + zbozi.Jmeno);
         }
     }
 }
Esempio n. 2
0
    public override void krok(Svet svet)
    {
        TypEntity[,] mapa = mapaViditelnosti(svet);
        Smer chteny_smer = Smer.Stuj;

        try {
            chteny_smer = chovani.pohyb(mapa, pozice);
        } catch (Exception e) {
            Console.WriteLine($"Hrac {znak} provedl neplatnou operaci: {e.ToString()}");
            Thread.Sleep(1500);
        }
        Pozice nova_pozice = pozice.prictiSmer(chteny_smer);

        // zkontroluj, ze timto smerem muze houbar jit
        if (svet.entitaNaPozici(nova_pozice) == null)
        {
            pozice = nova_pozice;
        }
        // seber houbu
        else if (svet.entitaNaPozici(nova_pozice).typ == TypEntity.Houba)
        {
            Console.WriteLine($"Vyborne, hrac {znak} sebral houbu!");
            Thread.Sleep(1500);
            svet.entity.Remove(svet.entitaNaPozici(nova_pozice));
            pozice = nova_pozice;
            ++pocet_hub;
        }
    }
Esempio n. 3
0
 //Kliknutí na tlačítko prodat
 private void dgvInventar_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex == 4)
     {
         var vecID     = dgvInventar.Rows[e.RowIndex].Cells[0].Value;
         Věc prodatVec = Svet.VecByID(Convert.ToInt32(vecID));
         if (prodatVec.Cena == Svet.NEPRODEJNE_VECI)
         {
             MessageBox.Show("Nemůžeš prodat věc jménem: " + prodatVec.Jmeno);
         }
         else
         {
             player.poloha.Obchodnik.PridatDoInventare(prodatVec);
             player.OdebratZInventare(prodatVec);
             player.Zlato += prodatVec.Cena;
             AktualizaceInventare();
             dgvInventar.Columns[4].Visible = true;
             dgvObchod.Rows.Clear();
             foreach (Inventar inventar in player.poloha.Obchodnik.Inventar)
             {
                 if (inventar.Mnozstvi > 0)
                 {
                     dgvObchod.Rows.Add(new[] { inventar.VecID.ToString(), inventar.Detaily.Jmeno, inventar.Mnozstvi.ToString(), inventar.Detaily.Cena.ToString() });
                 }
             }
         }
     }
 }
Esempio n. 4
0
        private void btnPouzitLektvar_Click(object sender, EventArgs e)
        {
            //Vypití lektvaru
            Lektvary lektvar = (Lektvary)cboLektvary.SelectedItem;

            player.Aktualzdravi = (player.Aktualzdravi + lektvar.Leceni);
            if (player.Aktualzdravi > player.Maxzdravi)
            {
                player.Aktualzdravi = player.Maxzdravi;
            }

            foreach (Inventar i in player.Inventar)
            {
                if (i.Detaily.ID == lektvar.ID)
                {
                    i.Mnozstvi--;
                    break;
                }
            }

            rtbZpravy.Text += "Vypil jsi " + lektvar.Jmeno + Environment.NewLine;
            ScrollDown();
            //Útok příšery
            int ZB = Kostky.CisloMezi(0, bestie.Maxutok);

            rtbZpravy.Text += bestie.Jmeno + " ti způsobila zranění za " + ZB.ToString() + " bodů." + Environment.NewLine;
            ScrollDown();
            player.Aktualzdravi -= ZB;
            //Smrt postavy
            if (player.Aktualzdravi <= 0)
            {
                rtbZpravy.Text += bestie.Jmeno + " tě zabil/a." + Environment.NewLine;
                ScrollDown();
                dgvInventar.Rows.Clear();
                player.Inventar.Clear();
                player.PridatDoInventare(Svet.VecByID(Svet.VEC_ID_PALICE), 1);
                dgvUkoly.Rows.Clear();
                Presun(Svet.MistoByID(Svet.MISTO_ID_CHATRC));
                player.Maxzdravi    = 10;
                player.Aktualzdravi = 10;
                player.Zlato        = 20;
                player.Exp          = 0;
                player.Uroven       = 1;
                lblzivoty.Text      = player.Aktualzdravi.ToString();
                lblzlato.Text       = player.Zlato.ToString();
                lblexp.Text         = player.Exp.ToString();
                lbllev.Text         = player.Uroven.ToString();
                //Aktualizace počtu příšer
                Svet.MistoByID(Svet.MISTO_ID_HOSTINEC).NachaziSeZdePrisera.Pocet = Svet.MistoByID(Svet.MISTO_ID_HOSTINEC).NachaziSeZdePrisera.Vychozi;
                Svet.MistoByID(Svet.MISTO_ID_SKLEPENI).NachaziSeZdePrisera.Pocet = Svet.MistoByID(Svet.MISTO_ID_SKLEPENI).NachaziSeZdePrisera.Vychozi;
            }

            lblzivoty.Text = player.Aktualzdravi.ToString();
            AktualizaceInventare();
            AktualizaceLektvaru();
        }
Esempio n. 5
0
        public Quest()
        {
            InitializeComponent();
            //Vytvoření nového hráče se staty, přidání zbraně do inventáře a přesunutí do počáteční polohy
            player = new Player(10, 10, 20, 0, 1);
            player.PridatDoInventare(Svet.VecByID(Svet.VEC_ID_PALICE));
            Presun(Svet.MistoByID(Svet.MISTO_ID_CHATRC));

            //Popsání počtu životů, zlata, zkušeností a aktuální úroveň
            lblzivoty.Text = player.Aktualzdravi.ToString();
            lblzlato.Text  = player.Zlato.ToString();
            lblexp.Text    = player.Exp.ToString();
            lbllev.Text    = player.Uroven.ToString();
        }
Esempio n. 6
0
 private TypEntity[,] mapaViditelnosti(Svet svet)
 {
     TypEntity[,] mapa = new TypEntity[svet.M, svet.N];
     foreach (Entita e in svet.entity)
     {
         // stromy a plot jsou videt vsude, ostatni jen blizko
         if (e.typ == TypEntity.Strom ||
             e.typ == TypEntity.Plot ||
             (Math.Abs(e.pozice.i - pozice.i) <= viditelnost &&
              Math.Abs(e.pozice.j - pozice.j) <= viditelnost))
         {
             mapa[e.pozice.i, e.pozice.j] = e.typ;
         }
     }
     return(mapa);
 }
Esempio n. 7
0
        private void dgvMojeVeci_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 4)
            {
                var vecID     = dgvMojeVeci.Rows[e.RowIndex].Cells[0].Value;
                Věc prodatVec = Svet.VecByID(Convert.ToInt32(vecID));

                if (prodatVec.Cena == Svet.NEPRODEJNE_VECI)
                {
                    MessageBox.Show("Nemůžeš prodat " + prodatVec.Jmeno);
                }
                else
                {
                    _player.OdebratZInventare(prodatVec);
                    _player.Zlato += prodatVec.Cena;
                    quest.AktualizaceInventare();
                }
            }
        }
Esempio n. 8
0
    static void Main(string[] args)
    {
        // vytvor nahodne hrace
        List <HoubarovoChovani> hraci = new List <HoubarovoChovani>();

        hraci.Add(new NahodnyHrac());
        hraci.Add(new HladovyHrac());

        Svet s = new Svet(32, 32, hraci, 15, 25, 100);

        for (int i = 0; i < epoch; ++i)
        {
            Console.WriteLine($"Epocha {i}");
            s.ukazMapu();
            s.krok();
            Thread.Sleep(100);
            Console.Clear();
        }
    }
Esempio n. 9
0
    public override void krok(Svet svet)
    {
        // vyber nahodnou pristi pozici
        Smer   s           = (Smer)rnd.Next(6);
        Pozice nova_pozice = pozice.prictiSmer(s);

        if (svet.entitaNaPozici(nova_pozice) == null)
        {
            pozice = nova_pozice;
        }
        // sezer cloveka
        else if (svet.entitaNaPozici(nova_pozice).typ == TypEntity.Houbar)
        {
            Entita hrac = svet.entitaNaPozici(nova_pozice);
            Console.WriteLine($"Ale ne! Vlk si dal hrace {hrac.znak} ke svacine!");
            Thread.Sleep(1500);
            svet.entity.Remove(hrac);
            pozice = nova_pozice;
        }
    }
Esempio n. 10
0
        private void dgvObchodnikovyVeci_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 3)
            {
                var vecID = dgvObchodnikovyVeci.Rows[e.RowIndex].Cells[0].Value;

                Věc zbozi = Svet.VecByID(Convert.ToInt32(vecID));

                if (_player.Zlato >= zbozi.Cena)
                {
                    _player.PridatDoInventare(zbozi);

                    _player.Zlato -= zbozi.Cena;
                    quest.AktualizaceInventare();
                }
                else
                {
                    MessageBox.Show("Nemáš dostatek zlata ke koupi " + zbozi.Jmeno);
                }
            }
        }
Esempio n. 11
0
        private void Presun(Místa noveMisto)
        {
            //Kontrola jestli má hráč přístup na dané místo
            if (!player.MaPozadovanyPredmet(noveMisto))
            {
                rtbZpravy.Text += "Pro vstup do " + noveMisto.Jméno + "musíš mít " + noveMisto.JePotrebaPredmet.Jmeno + Environment.NewLine;
                return;

                ScrollDown();
            }


            player.poloha = noveMisto;
            //Zviditelnění příslušných tlačítek pohybu
            btnSever.Visible  = (noveMisto.NaSever != null);
            btnVychod.Visible = (noveMisto.NaVychod != null);
            btnJih.Visible    = (noveMisto.NaJih != null);
            btnZapad.Visible  = (noveMisto.NaZapad != null);

            rtbMisto.Text  = noveMisto.Jméno + Environment.NewLine;
            rtbMisto.Text += noveMisto.Popis + Environment.NewLine;

            btnObchod.Visible = (noveMisto.Obchodnik != null);


            //Kontrola jestli je na aktuální poloze k dispozici nový úkol
            if (noveMisto.UkolJeKDispozici != null)
            {
                bool UkolZadan  = player.MaTentoUkol(noveMisto.UkolJeKDispozici);
                bool UkolSplnen = player.UkolDokoncen(noveMisto.UkolJeKDispozici);

                //Kontrola, jestli byl úkol zadán nebo už i splněn
                foreach (Cechmistr ukol in player.Mise)
                {
                    if (ukol.Detaily.ID == noveMisto.UkolJeKDispozici.ID)
                    {
                        UkolZadan = true;

                        if (ukol.Dokoncen)
                        {
                            UkolSplnen = true;
                        }
                    }
                }

                if (UkolZadan)
                {
                    if (!UkolSplnen)
                    {
                        bool hracMaVseKDispozici = player.MaVsechnyTrofeje(noveMisto.UkolJeKDispozici);

                        //V případě, že má hráč všechny předměty potřebné k dokončení úkolu, tak se úkol dokončí a hráč získá odměny.
                        if (hracMaVseKDispozici)
                        {
                            rtbZpravy.Text += Environment.NewLine;
                            rtbZpravy.Text += "Dokončil jsi úkol: " + noveMisto.UkolJeKDispozici.Jmeno + Environment.NewLine;
                            ScrollDown();

                            player.OdstranitTrofejeZInventare(noveMisto.UkolJeKDispozici);

                            rtbZpravy.Text += "Získáváš: " + Environment.NewLine;
                            rtbZpravy.Text += noveMisto.UkolJeKDispozici.Expy.ToString() + " zkušeností" + Environment.NewLine;
                            rtbZpravy.Text += noveMisto.UkolJeKDispozici.Odmena.ToString() + " zlatých" + Environment.NewLine;
                            rtbZpravy.Text += noveMisto.UkolJeKDispozici.Predmet.Jmeno + Environment.NewLine;
                            rtbZpravy.Text += Environment.NewLine;
                            ScrollDown();

                            player.Exp   += noveMisto.UkolJeKDispozici.Expy;
                            player.Zlato += noveMisto.UkolJeKDispozici.Odmena;

                            player.PridatDoInventare(noveMisto.UkolJeKDispozici.Predmet);

                            player.UkolBylDokoncen(noveMisto.UkolJeKDispozici);

                            noveMisto.UkolJeKDispozici.Dokoncen = true;
                        }
                    }
                }
                //Zadání nového úkolu
                else
                {
                    rtbZpravy.Text += "Byl zadán úkol: " + noveMisto.UkolJeKDispozici.Jmeno + Environment.NewLine;
                    rtbZpravy.Text += noveMisto.UkolJeKDispozici.Popis + Environment.NewLine;
                    rtbZpravy.Text += "K dokončení úkolu je třeba přinést:" + Environment.NewLine;

                    ScrollDown();
                    //Vypsání toho, co hráč potřebuje k dokončení úkolu
                    foreach (Trofej trof in noveMisto.UkolJeKDispozici.Trofej)
                    {
                        if (trof.Mnozstvi == 1)
                        {
                            rtbZpravy.Text += trof.Mnozstvi.ToString() + " " + trof.Detaily.Jmeno + Environment.NewLine;
                            ScrollDown();
                        }
                        else
                        {
                            rtbZpravy.Text += trof.Mnozstvi.ToString() + " " + trof.Detaily.Jmena + Environment.NewLine;
                            ScrollDown();
                        }
                    }
                    //Pomocné předměty ke splnění úkolu
                    foreach (Inventar pomoc in noveMisto.UkolJeKDispozici.Pomoc)
                    {
                        rtbZpravy.Text += "Dostal jsi:" + pomoc.Detaily.Jmeno + Environment.NewLine;
                        player.PridatDoInventare(pomoc.Detaily);
                        rtbZpravy.Text += Environment.NewLine;
                    }
                    //Přidání nového úkolu na seznam
                    player.Mise.Add(new Cechmistr(noveMisto.UkolJeKDispozici));
                }
            }
            //Kontrola příšer
            if (noveMisto.NachaziSeZdePrisera != null)
            {
                //Na místě ještě jsou nějaké příšery
                if (noveMisto.NachaziSeZdePrisera.Pocet > 0)
                {
                    rtbZpravy.Text += "Vidíš " + noveMisto.NachaziSeZdePrisera.Jmeno + Environment.NewLine;

                    Bestiář prisera = Svet.PriseraByID(noveMisto.NachaziSeZdePrisera.ID);
                    bestie = new Bestiář(prisera.ID, prisera.Jmeno, prisera.Maxutok, prisera.Expy, prisera.Odmena, prisera.Aktualzdravi, prisera.Maxzdravi);
                    foreach (Korist korist in prisera.Zisk)
                    {
                        bestie.Zisk.Add(korist);
                    }
                    //Přepnutí do bojového módu
                    cboZbrane.Visible        = true;
                    cboLektvary.Visible      = true;
                    btnPouzitZbran.Visible   = true;
                    btnPouzitLektvar.Visible = true;
                    lblUtok.Visible          = true;
                }
                //Vypnutí bojového módu
                else
                {
                    cboZbrane.Visible        = false;
                    cboLektvary.Visible      = false;
                    btnPouzitZbran.Visible   = false;
                    btnPouzitLektvar.Visible = false;
                    lblUtok.Visible          = false;
                }
            }
            //Nejsou příšery
            else
            {
                bestie = null;

                cboZbrane.Visible        = false;
                cboLektvary.Visible      = false;
                btnPouzitLektvar.Visible = false;
                btnPouzitZbran.Visible   = false;
                lblUtok.Visible          = false;
            }

            AktualizaceInventare();

            AktualizaceUkolu();

            AktualizaceZbrani();

            AktualizaceLektvaru();
        }
Esempio n. 12
0
        private void btnPouzitZbran_Click(object sender, EventArgs e)
        {
            Zbraně aktivniZbran = (Zbraně)cboZbrane.SelectedItem;

            //Útok hráče
            int ZZ = Kostky.CisloMezi(aktivniZbran.Minutok, aktivniZbran.Maxutok);

            bestie.Aktualzdravi -= ZZ;

            rtbZpravy.Text += "Zasáhl jsi " + bestie.Jmeno + " za " + ZZ.ToString() + " bodů." + Environment.NewLine;
            ScrollDown();

            //Smrt příšery a získání odměn
            if (bestie.Aktualzdravi <= 0)
            {
                rtbZpravy.Text += Environment.NewLine;
                rtbZpravy.Text += "Porazil jsi " + bestie.Jmeno + Environment.NewLine;
                ScrollDown();

                player.Exp     += bestie.Expy;
                rtbZpravy.Text += "Získal jsi " + bestie.Expy.ToString() + " bodů zkušenosti." + Environment.NewLine;
                ScrollDown();

                player.Zlato   += bestie.Odmena;
                rtbZpravy.Text += "Získal jsi " + bestie.Odmena.ToString() + " zlata." + Environment.NewLine;
                ScrollDown();


                List <Inventar> korist = new List <Inventar>();
                foreach (Korist kor in bestie.Zisk)
                {
                    if (Kostky.CisloMezi(1, 100) <= kor.Sance)
                    {
                        korist.Add(new Inventar(kor.Detaily, 1));
                    }
                }


                //Přidání odměn do inventáře
                foreach (Inventar invent in korist)
                {
                    player.PridatDoInventare(invent.Detaily);

                    if (invent.Mnozstvi == 1)
                    {
                        rtbZpravy.Text += "Získal jsi " + invent.Mnozstvi.ToString() + " " + invent.Detaily.Jmeno + Environment.NewLine;
                        ScrollDown();
                    }
                    else
                    {
                        rtbZpravy.Text += "Získal jsi " + invent.Mnozstvi.ToString() + " " + invent.Detaily.Jmena + Environment.NewLine;
                        ScrollDown();
                    }
                }

                lblexp.Text = player.Exp.ToString();

                AktualizaceInventare();
                AktualizaceZbrani();
                AktualizaceLektvaru();

                rtbZpravy.Text += Environment.NewLine;
                ScrollDown();
                //Přidání příšery pokud už na místě žádné nejsou, ale hráč ještě nemá požadovaný počet předmětů ke splnění úkolů
                player.poloha.NachaziSeZdePrisera.Pocet--;
                if (player.poloha.NachaziSeZdePrisera.Pocet == 0 && player.poloha.UkolJeKDispozici != null && player.poloha.UkolJeKDispozici.Dokoncen == false)
                {
                    player.poloha.NachaziSeZdePrisera.Pocet++;
                }

                Presun(player.poloha);
            }
            //Útok příšery
            else
            {
                int ZB = Kostky.CisloMezi(0, bestie.Maxutok);
                rtbZpravy.Text += bestie.Jmeno + " ti způsobil/a zranění za " + ZB.ToString() + " bodů." + Environment.NewLine;
                ScrollDown();
                player.Aktualzdravi -= ZB;
                lblzivoty.Text       = player.Aktualzdravi.ToString();
                //Smrt postavy
                if (player.Aktualzdravi <= 0)
                {
                    rtbZpravy.Text += bestie.Jmeno + " tě zabil/a." + Environment.NewLine;
                    ScrollDown();
                    //Vyčištění invetáře a přidání počáteční zbraně
                    dgvInventar.Rows.Clear();
                    player.Inventar.Clear();
                    player.PridatDoInventare(Svet.VecByID(Svet.VEC_ID_PALICE), 1);
                    //Vyčištění misí
                    player.Mise.Clear();
                    dgvUkoly.Rows.Clear();
                    //Počáteční poloha
                    Presun(Svet.MistoByID(Svet.MISTO_ID_CHATRC));
                    //Počáteční staty
                    player.Maxzdravi    = 10;
                    player.Aktualzdravi = 10;
                    player.Zlato        = 20;
                    player.Exp          = 0;
                    player.Uroven       = 1;
                    lblzivoty.Text      = player.Aktualzdravi.ToString();
                    lblzlato.Text       = player.Zlato.ToString();
                    lblexp.Text         = player.Exp.ToString();
                    lbllev.Text         = player.Uroven.ToString();
                    //Aktualizace počtu příšer
                    Svet.MistoByID(Svet.MISTO_ID_HOSTINEC).NachaziSeZdePrisera.Pocet = Svet.MistoByID(Svet.MISTO_ID_HOSTINEC).NachaziSeZdePrisera.Vychozi;
                    Svet.MistoByID(Svet.MISTO_ID_SKLEPENI).NachaziSeZdePrisera.Pocet = Svet.MistoByID(Svet.MISTO_ID_SKLEPENI).NachaziSeZdePrisera.Vychozi;
                }
            }
        }
Esempio n. 13
0
 public override void report(Svet svet)
 {
     Console.WriteLine($"Hrac {znak} ma {pocet_hub} hub.");
 }
Esempio n. 14
0
 public virtual void report(Svet svet)
 {
 }
Esempio n. 15
0
 public virtual void krok(Svet svet)
 {
     // zakladni funkce krok() nic nedela
 }