private void Edytuj_Click(object sender, EventArgs e) //przycisk edycji postaci - aktualizuje dane { if (listaPos.Count == 0 || ListaPostaci.SelectedItem == null) //sprawdzenie czy wybrano postac z listy { MessageBox.Show("Brak postaci do edycji!"); return; } bool czydobre = Sprawdz(); //sprawdzenie czy pola są uzupełnione odpowiednimi wartosciami if (!czydobre) { return; } Postać edytowana = listaPos[ListaPostaci.SelectedIndex]; //aktualizacja danych edytowana.Imię = ImięPos.Text; edytowana.Level = Int32.Parse(LevelPos.Text); edytowana.Opis = OpisPos.Text; edytowana.klasaPostaci = WybórKlasaPostaci.SelectedItem.ToString(); edytowana.Moc = listaKlas[WybórKlasaPostaci.SelectedIndex].moc; edytowana.Obrona = listaKlas[WybórKlasaPostaci.SelectedIndex].obrona; edytowana.Udźwig = listaKlas[WybórKlasaPostaci.SelectedIndex].udźwig; edytowana.ZwiekszWartosc(edytowana.Level); ListaPostaci.Items[ListaPostaci.SelectedIndex] = edytowana.Imię; //jesli zmienione imie - jego aktualizacja w comboboxie (+ jesli zmieniony lvl, to pola mocy obrony udzwigu tez sie zaktualizuja) if (wybrany != null && wybrany.ID == edytowana.ID) //jesli edytowana postac byla wczesniej wybrana i wyswietlona w oknie glownym to wyswietl komunikat o zmianie (info w oknie głownym sie nie zmieni dopoki jeszcze raz nie wybierze sie przycisku wyboru postaci) { MessageBox.Show("Uwaga: zmieniono dane wybranej wcześniej postaci." + Environment.NewLine + "Jeśli chcesz zaktualizować te dane w oknie głównym, kliknij ponownie \"Wybierz postać\" (bieżące ustawienia w oknie głównym zostaną usunięte)."); } }
public bool SprawdzPlik(string[] dane) { if (dane[0] == "" || dane[1] == "" || dane[2] == "" || dane[3] == "" || dane[4] == "" || dane[5] == "" || dane[6] == "") { MessageBox.Show("Brak wartości pola postaci!"); return(false); } if (dane[0].Length < 4 || dane[0].Length > 15) { MessageBox.Show("Nieprawidłowa długość imienia!"); return(false); } int result; if (!Int32.TryParse(dane[1], out result)) { MessageBox.Show("Level musi być liczbą!"); return(false); } if (Int32.Parse(dane[1]) < 0 || Int32.Parse(dane[1]) > 99) { MessageBox.Show("Niepoprawny level! (0-99)"); return(false); } if (dane[2].Length < 3 || dane[2].Length > 100) { MessageBox.Show("Długość opisu spoza zakresu (3-100 znaków)!"); return(false); } if (dane[3] != "Tropiciel" && dane[3] != "Mag" && dane[3] != "Wojownik") { MessageBox.Show("Niepoprawna klasa postaci!"); return(false); } double result2; if (!double.TryParse(dane[4], out result2) || !double.TryParse(dane[5], out result2) || !double.TryParse(dane[6], out result2)) { MessageBox.Show("Nieprawidłowa wartość mocy/obrony/udźwigu!"); return(false); } int id = 0; if (dane[3] == "Tropiciel") { id = 1; } if (dane[3] == "Wojownik") { id = 2; } //w zaleznosci od wybranej klasy, bierzemy jej wartosci bazowe mocy/obrony/udzwigu do stworzenia nowej postaci Postać nowy = new Postać(0, dane[0], Int32.Parse(dane[1]), dane[2], dane[3], listaKlas[id].moc, listaKlas[id].obrona, listaKlas[id].udźwig); //tworzymy nową postac na podstawie wartosci z tablicy i porownujemy moc/obrone/udzwig jakie powinny być na postawie levelu postaci a wartosciami z pliku, czy sa takie same nowy.ZwiekszWartosc(Int32.Parse(dane[1])); if ((nowy.Moc.ToString() != dane[4]) || (nowy.Obrona.ToString() != dane[5]) || (nowy.Udźwig.ToString() != dane[6])) { MessageBox.Show("Niepoprawne wartości mocy/obrony/udźwigu w zależności od levelu postaci!"); return(false); } return(true); }
private void StwórzPostać_Click(object sender, EventArgs e) //przycisk tworzenia postaci { //Postać(pola: ID, Imię, lvl, Moc, Obrona, Opis, Udźwig, klasaPostaci) bool czydobre = Sprawdz(); if (!czydobre) { return; } //sprawdzenie czy podane wartosci sa prawidlowe, jesli nie-zakoncz działanie string imię = ImięPos.Text; int lvl = Int32.Parse(LevelPos.Text); string opis = OpisPos.Text; string klasa = WybórKlasaPostaci.SelectedItem.ToString(); //do zmiennych lokalnych przypisujemy wartosci wprowadzone/wybrane przez użytkownika double moc = listaKlas[WybórKlasaPostaci.SelectedIndex].moc; double obrona = listaKlas[WybórKlasaPostaci.SelectedIndex].obrona; double udźwig = listaKlas[WybórKlasaPostaci.SelectedIndex].udźwig; //bazowe wartosci pochodzace z klas postaci // MessageBox.Show(moc.ToString(), obrona.ToString()); Postać nowaPostać = new Postać(Id, imię, lvl, opis, klasa, moc, obrona, udźwig); nowaPostać.ZwiekszWartosc(lvl); //wywołanie metody zwiekszajacej bazowe wartosci na podstawie lvl listaPos.Add(nowaPostać); ListaPostaci.Items.Add(imię); Id++; }