private void Adozas(Orszag orszag) { var tanya = orszag.OrszagEpuletek.SingleOrDefault(o => o.Epulet.Name == "Tanya"); var alkimia = orszag.OrszagFejlesztesek.SingleOrDefault(o => o.Fejlesztes.Name == "Alkímia"); if (alkimia != null) { //1 tanya: 50 ember, 1 ember: 25 arany /kör, alkimia 30%-al több arany orszag.Arany += Convert.ToInt32((tanya == null ? 0 : tanya.Darab) * 50 * 25 * 1.3); } else { orszag.Arany += Convert.ToInt32((tanya == null ? 0 : tanya.Darab) * 50 * 25); } }
private void Zsold(Orszag orszag) { var zsold = 0; foreach (var item in orszag.OrszagEgysegek) { zsold += item.Darab * item.Egyseg.Zsold; } orszag.Arany -= zsold; }
private void Pontszam(Orszag orszag) { var tanya = orszag.OrszagEpuletek.SingleOrDefault(oe => oe.Epulet.Name == "Tanya"); var tanyaszam = tanya == null ? 0 : tanya.Darab; var barakk = orszag.OrszagEpuletek.SingleOrDefault(oe => oe.Epulet.Name == "Barakk"); var barakkszam = barakk == null ? 0 : barakk.Darab; var lovasijasz = orszag.OrszagEgysegek.Where(oe => oe.Egyseg.Name == "Lovas" || oe.Egyseg.Name == "Íjász").Sum(o => o.Darab); var elit = orszag.OrszagEgysegek.Where(oe => oe.Egyseg.Name == "Elit").Sum(o => o.Darab); var tudomany = orszag.OrszagFejlesztesek.Count(); orszag.Pontszam = tanyaszam * 50 // emberek száma*1 + (tanyaszam + barakkszam) * 50 //épületek száma*50 + lovasijasz * 5 //lovas, ijasz darab* 5 + tudomany * 100 //fejlesztes * 100 ; }
private void Krumpli(Orszag orszag) { var tanya = orszag.OrszagEpuletek.SingleOrDefault(o => o.Epulet.Name == "Tanya"); var traktor = orszag.OrszagFejlesztesek.SingleOrDefault(o => o.Fejlesztes.Name == "Traktor"); var kombajn = orszag.OrszagFejlesztesek.SingleOrDefault(o => o.Fejlesztes.Name == "Kombájn"); //1 tanya: 200 krumpli/kör, traktor 10%-al több krumpli, kombájn 15%-al több var szorzo = 1.0; if (traktor != null) { szorzo = szorzo * 1.1; } if (kombajn != null) { szorzo = szorzo * 1.15; } orszag.Krumpli += Convert.ToInt32((tanya == null ? 0 : tanya.Darab) * 200 * szorzo); }
private void Ellatmany(Orszag orszag) { var ellatmany = 0; foreach (var item in orszag.OrszagEgysegek) { ellatmany += item.Darab * item.Egyseg.Ellatmany; } orszag.Krumpli -= ellatmany; }
private bool Csata(Hadsereg hadsereg, Orszag celorszag, Orszag sajatorszag, List<Egyseg> lehetsegesEgysegek) { var tamadoszorzo = 1.0; var vedoszorzo = 1.0; //fejlesztések //sajatorzsag if (sajatorszag.OrszagFejlesztesek.Any(of => of.Fejlesztes.Id == 4)) //operaton rebirth { tamadoszorzo *= 1.2; } if (sajatorszag.OrszagFejlesztesek.Any(of => of.Fejlesztes.Id == 5)) //taktika { tamadoszorzo *= 1.1; } //celorszag if (celorszag.OrszagFejlesztesek.Any(of => of.Fejlesztes.Id == 3)) //operaton rebirth { vedoszorzo *= 1.2; } if (celorszag.OrszagFejlesztesek.Any(of => of.Fejlesztes.Id == 5)) //taktika { vedoszorzo *= 1.1; } //a hadseregek tamadoertekenek szamitasa var tamadoertek = hadsereg.HadseregEgysegek.Aggregate(0, (a, b) => a + b.Darab * b.Egyseg.Tamadas); tamadoertek = Convert.ToInt32(tamadoertek * tamadoszorzo); //celorszag vedoerteke var vedoegysegek = lehetsegesEgysegek.Select(e => new { Vedekezes = e.Vedekezes, JelenlegVan = celorszag.OrszagEgysegek.Where(oe => oe.Egyseg.Id == e.Id).Sum(oe => oe.Darab) //összesegység - celorszag.SajatHadseregek.Sum(h => h.HadseregEgysegek.SingleOrDefault(he => he.Egyseg.Id == e.Id).Darab) //jelenleg hadseregben, tehát nem véd }); var vedoertek = vedoegysegek.Aggregate(0, (a, b) => a + b.JelenlegVan * b.Vedekezes); vedoertek = Convert.ToInt32(vedoertek * vedoszorzo); var gyozelem = new bool(); ////harc //győzelem if (tamadoertek > vedoertek) { gyozelem = true; } else //vereség { gyozelem = false; } return gyozelem; }