public bool SprawdzPrzedmiot(Przedmiot przedmiot) //metoda na sprawdzenie czy postac moze wybrac dany przedmiot
        {
            if (przedmiot.Wymagania != nowy.klasaPostaci) //jesli klasa postaci nie jest rowna wymaganiom przedmiotu (dla jakiej klasy jest przedmiot)
            {
                MessageBox.Show("Przedmiot dostępny dla klasy " + przedmiot.Wymagania); return(false);
            }
            for (int i = 0; i < listaWybrPrz.Count; i++)
            {
                if (przedmiot.Typ == listaWybrPrz[i].Typ) //przyjmujemy że postac nie moze nosic wiecej niz 1 helm/pancerz/bron/spodnie czy 1 pare rekawic/butow
                {
                    MessageBox.Show("Na liście wybranych znajduje/ą się już " + przedmiot.Typ); return(false);
                }
            }
            double waga = 0;

            for (int i = 0; i < listaWybrPrz.Count; i++) //zliczamy wage wszystkich przedmiotow z listy wybranych
            {
                waga += listaWybrPrz[i].Waga;
            }
            if (nowy.Udźwig < waga + przedmiot.Waga)
            {
                MessageBox.Show("Nie można dodać przedmiotu - przekroczono udźwig postaci. (" + (waga + przedmiot.Waga).ToString() + "/" + nowy.Udźwig.ToString() + ")"); return(false);
            }

            return(true);
        }
Example #2
0
        private void OdczytPrz_Click(object sender, EventArgs e) //wczytywanie pliku
        {
            int          size   = -1;
            DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.

            if (result == DialogResult.OK)                      // Test result.
            {
                string   file = openFileDialog1.FileName;
                Encoding enc  = Encoding.GetEncoding("Windows-1250"); //zmiana kodowania do prawidlowego wczytania polskich znakow
                try
                {
                    if (listaPrz != null)                      //wczytujac plik, dopisujemy do istniejacych danych
                    {
                        ListaPrzedmiotów.DropDownHeight = 106; //zmienia rozmiar comboboxa, nie wyswietla sie dluga lista tylko scroll
                        WyczyśćTextBoxy();
                        ListaPrzedmiotów.Text = "";
                    }
                    List <Przedmiot> tmp       = new List <Przedmiot>(listaPrz); //lista przechowujaca stan sprzed dodawania przedmiotow
                    string[]         filelines = File.ReadAllLines(file, enc);   //kazda linia jest kolejnym elementem tablicy
                    size = filelines.Length;
                    if (size == 0)
                    {
                        MessageBox.Show("Pusty plik!"); return;
                    }
                    for (int i = 0; i < size; i++)               //petla po tablicy z liniami pliku
                    {
                        string[] dane = filelines[i].Split(';'); //tablica przechowujaca kolejne dane przedmiotow, dzieli po ';'
                        if (dane.Length != 7)
                        {
                            MessageBox.Show("Nieprawidłowy format pliku!"); return;
                        }
                        bool czydobre = SprawdzPlik(dane);
                        if (!czydobre)
                        { //jak ktorykolwiek przedmiot zle zapisany w pliku - usun wszystkie dotychczas dodane dane
                            listaPrz = tmp;
                            ListaPrzedmiotów.Items.Clear();
                            for (int j = 0; j < listaPrz.Count; j++)
                            {
                                ListaPrzedmiotów.Items.Add(listaPrz[j].Nazwa);
                            }
                            ListaPrzedmiotów.DropDownHeight = 106;
                            return;
                        }
                        Przedmiot nowy = new Przedmiot(Id, dane[0], dane[1], dane[2], dane[3], double.Parse(dane[4]), dane[5], double.Parse(dane[6]));
                        Id++;
                        ListaPrzedmiotów.Items.Add(dane[0]);
                        listaPrz.Add(nowy);
                    }
                }
                catch (IOException)
                {
                    MessageBox.Show("Błąd odczytu pliku!");
                    return;
                }
            }
        }
Example #3
0
        public void WczytajPrzedmioty(List <Przedmiot> lista) //metoda dodająca przedmioty do listy przedmiotów przy wczytywaniu gotowej postaaci z pliku
        {
            List <Przedmiot> nowa = new List <Przedmiot>(lista);

            for (int i = 0; i < nowa.Count; i++)
            {
                Przedmiot nowyPrzedmiot = new Przedmiot(nowa[i].ID, nowa[i].Nazwa, nowa[i].Typ, nowa[i].Opis, nowa[i].Wymagania, nowa[i].Bonus, nowa[i].Właściwości, nowa[i].Waga);
                ListaPrzedmiotów.Items.Add(nowa[i].Nazwa); //combobox
                listaPrz.Add(nowyPrzedmiot);               //lista przedmiotow
            }
        }
Example #4
0
        private void ListaPrzedmiotów_SelectedIndexChanged(object sender, EventArgs e) //na podstawie wybranego przedmiotu wyświetlenie jego parametrów w textboxach
        {
            Przedmiot wyswietlony = listaPrz[ListaPrzedmiotów.SelectedIndex];

            NazwaPrz.Text       = wyswietlony.Nazwa;
            TypPrz.Text         = wyswietlony.Typ;
            OpisPrz.Text        = wyswietlony.Opis;
            WymaganiaPrz.Text   = wyswietlony.Wymagania;
            BonusPrz.Text       = wyswietlony.Bonus.ToString();
            WłaściwościPrz.Text = wyswietlony.Właściwości;
            WagaPrz.Text        = wyswietlony.Waga.ToString();
            // MessageBox.Show(wyswietlony.ID.ToString() + Environment.NewLine + ListaPrzedmiotów.SelectedIndex.ToString());
        }
        private void Wykres_Click(object sender, EventArgs e) //przycisk do wyswietlania wykresu dla wybranego przedmiotu ze sklepu w nowym oknie
        {                                                     //przyjmujemy ze za wzrost wartosci mocy i obrony jest odpowiedzialna wartosc bonusu (w zaleznosci od typu przedmiotu, dla broni zwiększa tylko moc, dla reszty (czesci pancerza) - obrone)
            if (ListaPrzedmiotówSklep.Items.Count == 0)
            {
                MessageBox.Show("Brak przedmiotów w sklepie!"); return;
            }
            if (ListaPrzedmiotówSklep.SelectedItem == null)
            {
                MessageBox.Show("Wybierz przedmiot z listy wyżej!"); return;
            }
            Przedmiot wybrany = listaPrzedm[ListaPrzedmiotówSklep.SelectedIndex];

            if (wybrany.Wymagania != nowy.klasaPostaci) //jesli przedmiot nie jest dla danej klasy - nie ma po co wyswietlac wykresu
            {
                MessageBox.Show("Wybrany przedmiot nie jest przeznaczony dla klasy postaci " + nowy.klasaPostaci); return;
            }
            double[] tab = new double[4]; //tworzymy tablice dla mocy i obrony
            if (MocIObrona.Text != "")    //jesli juz mamy jakies wybrane przedmioty w ekwipunku, wartosciami bazowymi dla wykresu sa powiekszone moc i obrona (wartosci bazowe postaci + bonusy z przedmiotow)
            {
                string[] tmp = MocIObrona.Text.Split(';');
                tab[0] = double.Parse(tmp[0]);
                tab[1] = double.Parse(tmp[1]);
                if (wybrany.Typ == "broń")
                {
                    tab[2] = wybrany.Bonus + double.Parse(tmp[0]); tab[3] = 1;
                }                                                                                         //jesli bonus zmienia tylko moc, to ostatni element tablicy jest rowny 1
                else
                {
                    tab[2] = wybrany.Bonus + double.Parse(tmp[1]); tab[3] = 2;
                }                                                                    //jesli zmienia obrone, tab[3]=2
            }
            else //w przeciwnym razie bierzemy bazowe wartosci mocy i obrony postaci przeslanej z okna postaci
            {
                tab[0] = nowy.Moc;
                tab[1] = nowy.Obrona;   //bazowe wartosci
                if (wybrany.Typ == "broń")
                {
                    tab[2] = wybrany.Bonus + nowy.Moc; tab[3] = 1;
                }                                                                             //jak wyzej
                else
                {
                    tab[2] = wybrany.Bonus + nowy.Obrona; tab[3] = 2;
                }
            }

            Wykres wykres = new Wykres(tab);

            wykres.Show();
        }
Example #6
0
        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            string name = saveFileDialog1.FileName;
            string text = "";

            string[] tab = new string[listaPrz.Count];

            for (int i = 0; i < listaPrz.Count; i++)
            {
                Przedmiot nowy = listaPrz[i];
                text   = (nowy.Nazwa + ';' + nowy.Typ + ';' + nowy.Opis + ';' + nowy.Wymagania + ';' + nowy.Bonus.ToString() + ';' + nowy.Właściwości + ';' + nowy.Waga.ToString());// + Environment.NewLine);
                tab[i] = text;
            }
            File.WriteAllLines(name, tab, Encoding.UTF8); //zapis do pliku z odpowiednim kodowaniem (by przy otwieraniu pliku były polskie znaki)
        }
        private void UsuńzListy_Click(object sender, EventArgs e) //przycisk przenoszenia przedmiotu z 'plecaka' do sklepu
        {
            if (ListaWybranychPrzedmiotów.Items.Count == 0)       //jesli nie ma nic w plecaku lub user nic nie wybral z listy, wyswietl odpowiednie komunikaty
            {
                MessageBox.Show("Brak dostępnych przedmiotów w ekwipunku!"); return;
            }
            if (ListaWybranychPrzedmiotów.SelectedItem == null)
            {
                MessageBox.Show("Wybierz przedmiot!"); return;
            }
            Przedmiot wybrany = listaWybrPrz[ListaWybranychPrzedmiotów.SelectedIndex]; //przenoszenie jak przy dodawaniu

            listaPrzedm.Add(wybrany);
            ListaPrzedmiotówSklep.Items.Add(wybrany.Nazwa + "[" + wybrany.Wymagania + "]");
            listaWybrPrz.RemoveAt(ListaWybranychPrzedmiotów.SelectedIndex);
            ListaWybranychPrzedmiotów.Items.RemoveAt(ListaWybranychPrzedmiotów.SelectedIndex);
        }
        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            string name = saveFileDialog1.FileName;
            string text = "";

            string[] tab = new string[listaWybrPrz.Count + 4]; //musimy zapisac wszystkie wybrane przedmioty + 4 informacje z okna glownego wyswietlane po lewej stronie
            tab[0] = (nowy.Imię + ';' + nowy.Level.ToString() + ';' + nowy.Opis + ';' + nowy.klasaPostaci + ';' + nowy.Moc.ToString() + ';' + nowy.Obrona.ToString() + ';' + nowy.Udźwig.ToString());
            tab[1] = IlośćPrzedmiotów.Text;
            tab[2] = UdźwigPostaci.Text;
            tab[3] = MocIObrona.Text;
            for (int i = 0; i < listaWybrPrz.Count; i++)
            {
                Przedmiot nowy = listaWybrPrz[i];
                text       = (nowy.Nazwa + ';' + nowy.Typ + ';' + nowy.Opis + ';' + nowy.Wymagania + ';' + nowy.Bonus.ToString() + ';' + nowy.Właściwości + ';' + nowy.Waga.ToString());// + Environment.NewLine);
                tab[i + 4] = text;
            }
            File.WriteAllLines(name, tab, Encoding.UTF8); //zapis do pliku z odpowiednim kodowaniem (by przy otwieraniu pliku były polskie znaki)
        }
        private void DodajDoListy_Click(object sender, EventArgs e) //przycisk przenoszenia przedmiotu ze sklepu do "plecaka" - wybor przedmiotow dla postaci
        {
            if (listaPrzedm.Count == 0)                             //jesli nie ma nic w sklepie lub user nic nie wybral z listy, wyswietl odpowiednie komunikaty
            {
                MessageBox.Show("Brak dostępnych przedmiotów w sklepie!"); return;
            }
            if (ListaPrzedmiotówSklep.SelectedItem == null)
            {
                MessageBox.Show("Wybierz przedmiot!"); return;
            }
            Przedmiot wybrany = listaPrzedm[ListaPrzedmiotówSklep.SelectedIndex];

            if (!SprawdzPrzedmiot(wybrany))  //sprawdz czy zgodny z klasą/udźwigiem/listą wybranych
            {
                return;
            }
            ListaWybranychPrzedmiotów.Items.Add(wybrany.Nazwa);         //dodanie przedmiotu do listy wybranych i usuniecie go ze sklepu
            listaWybrPrz.Add(wybrany);
            listaPrzedm.RemoveAt(ListaPrzedmiotówSklep.SelectedIndex);
            ListaPrzedmiotówSklep.Items.RemoveAt(ListaPrzedmiotówSklep.SelectedIndex);
        }
Example #10
0
        // (pola: ID, Nazwa, Typ, Opis, Wymagania, Bonus, Właściwości, Waga)
        private void DodajPrz_Click(object sender, EventArgs e) //przycisk stworzenia nowego przedmiotu
        {
            bool czydobre = Sprawdz();

            if (!czydobre)
            {
                return;
            }
            string    nazwa         = NazwaPrz.Text;
            string    typ           = TypPrz.Text;
            string    opis          = OpisPrz.Text; //przypisanie do zmiennych określonych textboxow
            string    wymagania     = WymaganiaPrz.Text;
            double    bonus         = double.Parse(BonusPrz.Text);
            string    właściwości   = WłaściwościPrz.Text;
            double    waga          = double.Parse(WagaPrz.Text);
            Przedmiot nowyPrzedmiot = new Przedmiot(Id, nazwa, typ, opis, wymagania, bonus, właściwości, waga); //stworzenie obiektu klasy i dodanie go do listy

            ListaPrzedmiotów.Items.Add(nazwa);                                                                  //combobox
            listaPrz.Add(nowyPrzedmiot);                                                                        //lista przedmiotow
            // MessageBox.Show(Id.ToString() + Environment.NewLine + nazwa + Environment.NewLine + typ + Environment.NewLine + opis + Environment.NewLine + wymagania + Environment.NewLine + bonus.ToString() + Environment.NewLine + właściwości + Environment.NewLine + waga.ToString());
            Id++;
        }
Example #11
0
        private void EdytujPrz_Click(object sender, EventArgs e)              //przycisk edycji przedmiotu - aktualizacja danych
        {
            if (listaPrz.Count == 0 || ListaPrzedmiotów.SelectedItem == null) //sprawdzenie czy wybrano przedmiot z listy
            {
                MessageBox.Show("Brak przedmiotu do edycji!"); return;
            }
            bool czydobre = Sprawdz(); //sprawdzenie czy pola są uzupełnione odpowiednimi wartosciami

            if (!czydobre)
            {
                return;
            }
            Przedmiot edytowany = listaPrz[ListaPrzedmiotów.SelectedIndex];

            edytowany.Nazwa       = NazwaPrz.Text;
            edytowany.Typ         = TypPrz.Text;
            edytowany.Opis        = OpisPrz.Text;       //jak z postaciami
            edytowany.Wymagania   = WymaganiaPrz.Text;
            edytowany.Bonus       = double.Parse(BonusPrz.Text);
            edytowany.Właściwości = WłaściwościPrz.Text;
            edytowany.Waga        = double.Parse(WagaPrz.Text);
            ListaPrzedmiotów.Items[ListaPrzedmiotów.SelectedIndex] = edytowany.Nazwa;
        }
        private void PrzedmiotyPostaci_SelectedIndexChanged(object sender, EventArgs e) //po kliknieciu na przedmiot z listy wyswietli nam sie wiadomosc z informacjami o tym przedmiocie
        {
            Przedmiot wybrany = listaWybrPrz[PrzedmiotyPostaci.SelectedIndex];

            MessageBox.Show("Nazwa: " + wybrany.Nazwa + Environment.NewLine + "Typ: " + wybrany.Typ + Environment.NewLine + "Opis: " + wybrany.Opis + Environment.NewLine + "Wymagania: " + wybrany.Wymagania + Environment.NewLine + "Bonus: " + wybrany.Bonus.ToString() + Environment.NewLine + "Właściwości: " + wybrany.Właściwości + Environment.NewLine + "Waga: " + wybrany.Waga.ToString());
        }
        private void Wczytaj_Click(object sender, EventArgs e) //odczyt gotowej postaci z pliku + "dostawa" czyli wczytanie aktualnego stanu sklepu(listy przedmiotow z okna przedmiotow)
        {
            int          size   = -1;
            DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.

            if (result == DialogResult.OK)                      // Test result.
            {
                string   file = openFileDialog1.FileName;
                Encoding enc  = Encoding.GetEncoding("Windows-1250");//zmiana kodowania do prawidlowego wczytania polskich znakow
                try
                {
                    if (Info.Text != "") //wczytujac plik, usuwamy wszystkie dotychczasowe dane w oknie gł - nadpisanie danych
                    {
                        Info.Text = "";
                        Wyczyść();
                    }
                    string[] filelines = File.ReadAllLines(file, enc); //kazda linia jest kolejnym elementem tablicy
                    size = filelines.Length;
                    if (size == 0 || size < 4)
                    {
                        MessageBox.Show("Zły format pliku!"); return;
                    }
                    string[] dane = filelines[0].Split(';'); //tablica przechowujaca kolejne dane przedmiotow (1 linia pliku), dzieli po ';'
                    if (dane.Length != 7)
                    {
                        MessageBox.Show("Nieprawidłowy format pliku!"); return;
                    }
                    if (!lista_postaci.SprawdzPlik(dane))
                    {
                        return;
                    }                    //sprawdzamy info o postaci z pliku za pomoca metody z okna postaci

                    if (nowy == null)    //jeśli od razu odpalamy wczytywanie, bez wczesniejszego wyboru postaci, musimy stworzyć jakąkolwiek postać żeby nie była z wartością null
                    {
                        nowy = new Postać(0, "Arya", 10, "przykładowy opis", "Tropiciel", 30, 30, 30);
                    }
                    nowy.Imię = dane[0]; nowy.Level = Int32.Parse(dane[1]); nowy.Opis = dane[2];  nowy.klasaPostaci = dane[3]; nowy.Moc = double.Parse(dane[4]); nowy.Obrona = double.Parse(dane[5]); nowy.Udźwig = double.Parse(dane[6]);
                    Info.Text = ("Imię: " + nowy.Imię + Environment.NewLine + "Level: " + nowy.Level.ToString() + Environment.NewLine + "Opis: " + nowy.Opis + Environment.NewLine + "Klasa postaci: " + nowy.klasaPostaci + Environment.NewLine + "Moc: " + nowy.Moc.ToString() + Environment.NewLine + "Obrona: " + nowy.Obrona.ToString() + Environment.NewLine + "Udźwig: " + nowy.Udźwig.ToString());

                    for (int i = 4; i < size; i++)                //petla po tablicy z liniami pliku, licznik 'i' bedzie takze ID kolejnych elementow
                    {
                        string[] danep = filelines[i].Split(';'); //tablica przechowujaca kolejne dane przedmiotow, dzieli po ';'
                        if (danep.Length != 7)
                        {
                            Info.Text = ""; MessageBox.Show("Nieprawidłowy format pliku!"); return;
                        }
                        if (!lista_przedmiotow.SprawdzPlik(danep))
                        {
                            Info.Text = ""; Wyczyść(); return;
                        }                                                                                //jak wyzej - sprawdzenie przedmiotow za pomoca metody z okna przedmiotow, jak ktorys zły to usun wszystkie dodane wczesniej dane
                        Przedmiot nowyPrz = new Przedmiot(i - 4, danep[0], danep[1], danep[2], danep[3], Int32.Parse(danep[4]), danep[5], Int32.Parse(danep[6]));
                        PrzedmiotyPostaci.Items.Add(danep[0]);
                        listaWybrPrz.Add(nowyPrz);
                    }

                    if (!SprawdzDane(nowy, listaWybrPrz, filelines))
                    {
                        Info.Text = ""; Wyczyść(); return;
                    }
                    IlośćPrzedmiotów.Text = filelines[1];
                    UdźwigPostaci.Text    = filelines[2];
                    MocIObrona.Text       = filelines[3];
                    for (int i = 0; i < listaWybrPrz.Count; i++) //jesli wszystkie przedmioty i reszta pliku sa ok, zmieniamy im unikalne id na postawie id z okna przedmiotow
                    {
                        listaWybrPrz[i].ID = lista_przedmiotow.Id;
                        lista_przedmiotow.Id++;
                        ListaWybranychPrzedmiotów.Items.Add(listaWybrPrz[i].Nazwa);
                    }

                    nowy.ID = lista_postaci.Id; //to samo z postacia
                    lista_postaci.Id++;

                    lista_przedmiotow.WyślijListę();                                                                   //wczytanie listy przedmiotow do sklepu
                    for (int i = 0; i < listaPrzedm.Count; i++)                                                        //wczytujemy do sklepu wszystkie dostepne przedmioty z wyjatkiem tych ostatnio wczytanych i dodanych do wybranych
                    {
                        ListaPrzedmiotówSklep.Items.Add(listaPrzedm[i].Nazwa + " [" + listaPrzedm[i].Wymagania + "]"); //dodajemy przedmioty do listboxa w zakładce sklepu (dostepne przedmioty w sklepie)
                    }
                    //dodajemy postac i przedmioty do odpowiednich okienek tylko gdy caly plik jest w porzadku
                    lista_postaci.WczytajPostać(nowy);                 //metoda - dodanie postaci do listy postaci w oknie postaci
                    lista_przedmiotow.WczytajPrzedmioty(listaWybrPrz); //metoda - dodanie wszystkich przedmiotow z listy wybranych przedmiotow do listy z okna przedmiotów
                }
                catch (IOException)
                {
                    MessageBox.Show("Błąd odczytu pliku!");
                    return;
                }
            }
        }