public void Zdejmij(CzescCiala czescCiala) { switch (czescCiala) { case CzescCiala.Glowa: NakrycieGlowy = null; break; case CzescCiala.LewaReka: LewaReka = null; break; case CzescCiala.PrawaReka: PrawaReka = null; break; case CzescCiala.Tulow: Stroj = null; break; case CzescCiala.Stopy: Buty = null; break; default: break; } }
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { var postac = (ListaPostaci.SelectedItem as Postac); var prezedmiot = postac.Ekwipunek[e.RowIndex]; var kolor = dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor; if (kolor == Color.Green) { //zdejmij i zmien kolor wiersza CzescCiala czescCiala = (CzescCiala)(-1); if (postac.LewaReka != null && postac.LewaReka.Id == prezedmiot.Id) { czescCiala = CzescCiala.LewaReka; } if (postac.PrawaReka != null && postac.PrawaReka.Id == prezedmiot.Id) { czescCiala = CzescCiala.PrawaReka; } if (postac.NakrycieGlowy != null && postac.NakrycieGlowy.Id == prezedmiot.Id) { czescCiala = CzescCiala.Glowa; } if (postac.Stroj != null && postac.Stroj.Id == prezedmiot.Id) { czescCiala = CzescCiala.Tulow; } if (postac.Buty != null && postac.Buty.Id == prezedmiot.Id) { czescCiala = CzescCiala.Stopy; } if (czescCiala != (CzescCiala)(-1)) { postac.Zdejmij(czescCiala); dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White; } } else { var czesc = CzescCiala.Glowa; switch (prezedmiot.Typ) { case TypPrzedmiotu.Bron: if (postac.LewaReka == null) { czesc = CzescCiala.LewaReka; break; } if (postac.PrawaReka == null) { czesc = CzescCiala.PrawaReka; break; } MessageBox.Show("nie mozesz tego zalozyc"); return; case TypPrzedmiotu.Stroj: czesc = CzescCiala.Tulow; break; case TypPrzedmiotu.Buty: czesc = CzescCiala.Stopy; break; case TypPrzedmiotu.NakrycieGlowy: czesc = CzescCiala.Glowa; break; default: break; } // zaloz i zmien kolor try { postac.Zaloz(czesc, prezedmiot); } catch (Exception) { MessageBox.Show("Ograniczenia klasowe, nie mozna zalozyc"); return; } dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green; } Wyswietl(postac); }
public void Zaloz(CzescCiala czescCiala, Przedmiot przedmiot) { if (przedmiot == null) { throw new Exception("Musisz podac przedmiot"); } if (Ekwipunek.Find(x => x.Id == przedmiot.Id) == null)// nie ma tg predmiotu w ekwipunku { throw new Exception("Nie ma tego przedmiotu w ekwipunku"); } if ((int)Klasa.Typ != (int)przedmiot.OgraniczeniaKlasowe && przedmiot.OgraniczeniaKlasowe != KtoMozeNosic.Wszyscy) { throw new Exception("Ta postac nie moze nosic tego przedmiotu"); } NieodpowiednieMiejsceExeption nieOdpowiednieMiejsce = new NieodpowiednieMiejsceExeption("To nie jest odpowiednie miejsce na ten przedmiot"); ZajeteMiejsceExeption zajeteMiejsce = new ZajeteMiejsceExeption("To miejsce jet juz zajete"); switch (czescCiala) { case CzescCiala.Glowa: if (NakrycieGlowy != null) { throw zajeteMiejsce; } if (przedmiot.Typ != TypPrzedmiotu.NakrycieGlowy) { throw nieOdpowiednieMiejsce; } NakrycieGlowy = przedmiot; break; case CzescCiala.LewaReka: if (LewaReka != null) { throw zajeteMiejsce; } if (przedmiot.Typ != TypPrzedmiotu.Bron) { throw nieOdpowiednieMiejsce; } LewaReka = przedmiot; break; case CzescCiala.PrawaReka: if (PrawaReka != null) { throw zajeteMiejsce; } if (przedmiot.Typ != TypPrzedmiotu.Bron) { throw nieOdpowiednieMiejsce; } PrawaReka = przedmiot; break; case CzescCiala.Tulow: if (Stroj != null) { throw zajeteMiejsce; } if (przedmiot.Typ != TypPrzedmiotu.Stroj) { throw nieOdpowiednieMiejsce; } Stroj = przedmiot; break; case CzescCiala.Stopy: if (Buty != null) { throw zajeteMiejsce; } if (przedmiot.Typ != TypPrzedmiotu.Buty) { throw nieOdpowiednieMiejsce; } Buty = przedmiot; break; default: break; } }