public async Task <List <SeregInfoDTO> > GetOtthoniEgysegsFromOneUserAsync(Orszag currentOrszag) { try { var otthoniEgysegek = currentOrszag.OtthoniCsapats?.SingleOrDefault(T => T.Celpont == null)?.Egysegs.GroupBy(e => e.Discriminator); var seregInfoList = new List <SeregInfoDTO>(); if (otthoniEgysegek != null) { foreach (var egysegek in otthoniEgysegek) { var egysegekDTO = _mapper.Map <List <EgysegDTO> >(egysegek.ToList()); seregInfoList.Add(new SeregInfoDTO() { Ar = egysegekDTO.Sum(e => e.Ar), Mennyiseg = egysegekDTO.Count, Tamadas = egysegekDTO.Sum(e => e.Tamadas), Vedekezes = egysegek.Sum(e => e.Vedekezes), Tipus = Enum.Parse <EgysegTipus>(egysegek.Key) }); } } return(seregInfoList); } catch (Exception e) { throw e; } }
public async Task <List <EpuletInfoDTO> > GetFelepultEpuletsFromOneUserAsync(Orszag currentOrszag) { List <Epulet> felepultEpulets = currentOrszag.Epulets.Where(x => x.Felepult == true).ToList(); long aramlasIranyitoMennyiseg = 0; long zatonyvarMennyiseg = 0; felepultEpulets.ForEach(x => { if (x.GetType() == typeof(AramlasIranyito)) { aramlasIranyitoMennyiseg++; } if (x.GetType() == typeof(ZatonyVar)) { zatonyvarMennyiseg++; } }); List <EpuletInfoDTO> felepultDtoList = new List <EpuletInfoDTO>(); felepultDtoList.Add(new EpuletInfoDTO(EpuletTipus.AramlasIranyito, 1000, aramlasIranyitoMennyiseg)); felepultDtoList.Add(new EpuletInfoDTO(EpuletTipus.ZatonyVar, 1000, zatonyvarMennyiseg)); return(felepultDtoList); }
private async Task <long> GetVedekezesBonusz(Orszag orszag) { return(await _context.VedekezesNovelos .Include(x => x.Fejlesztes).ThenInclude(x => x.Orszag) .Where(x => x.Fejlesztes.Orszag.Id == orszag.Id) .Where(x => x.Fejlesztes.Kifejlesztve == true) .SumAsync(x => x.Ertek)); }
public async Task <Epulet> GetEpuletByIdAsync(Guid id, Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); List <Epulet> currentEpulets = currentOrszag.Epulets.ToList(); return(currentEpulets.Find(x => x.Id == id)); }
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); }
private async Task <IList <string> > GetEllensegesOrszags(Orszag orszag) { var list = new List <string>(); await _context.Orszags.Where(x => x.Id != orszag.Id).ForEachAsync(x => { list.Add(x.Nev); }); return(list); }
private void Ellatmany(Orszag orszag) { var ellatmany = 0; foreach (var item in orszag.OrszagEgysegek) { ellatmany += item.Darab * item.Egyseg.Ellatmany; } orszag.Krumpli -= ellatmany; }
private void Zsold(Orszag orszag) { var zsold = 0; foreach (var item in orszag.OrszagEgysegek) { zsold += item.Darab * item.Egyseg.Zsold; } orszag.Arany -= zsold; }
public override List <string> getData() { List <string> data = base.getData(); data.Add(Orszag.ToString()); data.Add(Iranyitoszam.ToString()); data.Add(Varos.ToString()); data.Add(Utca.ToString()); data.Add(Hazszam.ToString()); data.Add(Emelet.ToString()); return(data); }
private async Task <long> GetGyongyTermeles(Orszag orszag) { return(Convert.ToInt64(Convert.ToDouble(await _context.NepessegTermelos .Include(x => x.Epulet).ThenInclude(x => x.Orszag) .Where(x => x.Epulet.Orszag.Id == orszag.Id) .Where(x => x.Epulet.Felepult == true) .SumAsync(x => x.Ertek) * 1) * (Convert.ToDouble(await _context.AdoNovelos .Include(x => x.Fejlesztes).ThenInclude(x => x.Orszag) .Where(x => x.Fejlesztes.Orszag.Id == orszag.Id) .Where(x => x.Fejlesztes.Kifejlesztve == true) .SumAsync(x => x.Ertek) / 100.0) + 1))); }
public async Task AddFejlesztesAsync(FejlesztesInfoDTO fejlesztes, Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); string fejlesztesTipus = Enum.GetName(typeof(FejlesztesTipus), fejlesztes.Tipus);; if (currentOrszag?.Fejleszteses.Where(x => x.Kifejlesztve == false)?.Count() != 0) { throw new InvalidOperationException("Another PowerUp is under development"); } if (currentOrszag?.Fejleszteses.Where(x => x.GetType().Name == fejlesztesTipus)?.Count() != 0) { throw new InvalidOperationException("You already have the chosen PowerUp"); } switch (fejlesztes.Tipus) { case FejlesztesTipus.Alkimia: currentOrszag.Fejleszteses.Add(new Alkimia()); break; case FejlesztesTipus.IszapKombajn: currentOrszag.Fejleszteses.Add(new IszapKombajn()); break; case FejlesztesTipus.IszapTraktor: currentOrszag.Fejleszteses.Add(new IszapTraktor()); break; case FejlesztesTipus.KorallFal: currentOrszag.Fejleszteses.Add(new KorallFal()); break; case FejlesztesTipus.SzonarAgyu: currentOrszag.Fejleszteses.Add(new SzonarAgyu()); break; case FejlesztesTipus.VizalattiHarmuveszet: currentOrszag.Fejleszteses.Add(new VizalattiHarcmuveszet()); break; default: throw new ArgumentException("Invalid fejlesztes type"); } _context.SaveChanges(); }
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); } }
public async Task <List <FejlesztesInfoDTO> > GetFinishedFejlesztesesAsync(Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); List <Fejlesztes> keszFejleszteses = currentOrszag.Fejleszteses.Where(x => x.Kifejlesztve == true).ToList(); List <FejlesztesInfoDTO> keszDTOList = new List <FejlesztesInfoDTO>(); keszFejleszteses.ForEach(x => { keszDTOList.Add(new FejlesztesInfoDTO((FejlesztesTipus)Enum.Parse(typeof(FejlesztesTipus), x.GetType().Name), false, x.AktualisKor)); }); return(keszDTOList); }
public async Task <List <FejlesztesInfoDTO> > GetFejlesztesInfoDTOs(Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); List <Fejlesztes> userFejleszteses = currentOrszag.Fejleszteses.ToList(); List <FejlesztesInfoDTO> returnDtoList = new List <FejlesztesInfoDTO>(); userFejleszteses.ForEach(x => { returnDtoList.Add(new FejlesztesInfoDTO((FejlesztesTipus)Enum.Parse(typeof(FejlesztesTipus), x.GetType().Name), x.Kifejlesztve, x.AktualisKor)); }); return(returnDtoList); }
public async Task <List <EgysegInfoDTO> > GetEgysegInfoDTOs(Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); var egysegInfoDtos = new List <EgysegInfoDTO>(); await _context.EgysegInfos.ForEachAsync(x => { egysegInfoDtos.Add(_mapper.Map <EgysegInfoDTO>(x)); }); currentOrszag?.OtthoniCsapats .FirstOrDefault(x => x.Celpont == null) ?.Egysegs.ToList() .ForEach(x => egysegInfoDtos .FirstOrDefault(y => y.Tipus == Enum.Parse <EgysegTipus>(x.GetType().Name)) .Mennyiseg++); return(egysegInfoDtos); }
public async Task <List <EgysegDTO> > GetAllEgysegsFromOneUserAsync(Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); List <Csapat> otthoniCsapats = new List <Csapat>(currentOrszag.OtthoniCsapats); List <Egyseg> egysegList = new List <Egyseg>(); otthoniCsapats.ForEach(x => { foreach (var egyseg in x.Egysegs) { egysegList.Add(egyseg); } }); var egysegDtoList = _mapper.Map <List <Egyseg>, List <EgysegDTO> >(egysegList); return(egysegDtoList); }
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); }
public async Task <OrszagDTO> Map(Orszag orszag) { var orszagdto = new OrszagDTO { Id = orszag.Id, Gyongy = orszag.Gyongy, Nev = orszag.Nev, Korall = orszag.Korall, Helyezes = await GetHelyezes(orszag), GyongyTermeles = await GetGyongyTermeles(orszag), KorallTermeles = await GetKorallTermeles(orszag), EpuloAramlasIranyito = await _epuletService.GetEpuloAramlasiranyitoCout(orszag), EpuloZatonyVar = await _epuletService.GetEpuloZatonyvarCount(orszag), SeregInfoDTOs = await GetSeregInfoDTOs(orszag), EpuletInfoDTOs = await GetEpuletInfoDTOs(orszag), TamadoBonusz = await GetTamadasBonusz(orszag), VedekezoBonusz = await GetVedekezesBonusz(orszag) }; return(orszagdto); }
public async Task <Orszag> InitOrszag(string orszagNev) { var orszag = new Orszag { Nev = orszagNev, Korall = 0, Gyongy = 1000 }; orszag.Epulets.Add(new AramlasIranyito() { Felepult = true }); orszag.OtthoniCsapats.Add(new Csapat() { Kimenetel = HarcEredmenyTipus.Otthon }); if (_context.Orszags.FirstOrDefault(x => x.Nev.ToUpper() == orszagNev.ToUpper()) == null) { await _context.Orszags.AddAsync(orszag); return(orszag); } throw new ArgumentException("Country already exists"); }
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 ; }
public async Task <List <EpuletInfoDTO> > GetAllEpuletsFromOneUserAsync(Guid userId) { Orszag currentOrszag = await _commonService.GetCurrentOrszag(userId); return(_mapper.Map <List <EpuletInfoDTO> > (currentOrszag.Epulets.ToList())); }
public async Task <long> GetEpuloZatonyvarCount(Orszag currentOrszag) { return(currentOrszag.Epulets.ToList().FindAll(x => x.Felepult == false && x is ZatonyVar).Count()); }
public async Task <long> GetEpuloAramlasiranyitoCout(Orszag currentOrszag) { return(currentOrszag.Epulets.ToList().FindAll(x => x.Felepult == false && x is AramlasIranyito).Count()); }
public async Task <ActionResult <long> > GetActiveFejlesztesNumber() { Orszag currentOrszag = await _commonService.GetCurrentOrszag(UserId); return(await _fejlesztesService.GetActiveFejlesztesCount(currentOrszag)); }
private async Task <IList <EpuletInfoDTO> > GetEpuletInfoDTOs(Orszag orszag) { return(await _epuletService.GetFelepultEpuletsFromOneUserAsync(orszag)); }
private async Task <IList <SeregInfoDTO> > GetSeregInfoDTOs(Orszag orszag) { return(await _egysegService.GetOtthoniEgysegsFromOneUserAsync(orszag)); }
public async Task <ActionResult <List <EpuletInfoViewModel> > > GetUserEpulets() { Orszag currentOrszag = await _commonService.GetCurrentOrszag(UserId); return(_mapper.Map <List <EpuletInfoViewModel> > (await _epuletService.GetFelepultEpuletsFromOneUserAsync(currentOrszag))); }
public async Task <IActionResult> GetUserEgysegs() { Orszag userOrszag = await _commonService.GetCurrentOrszag(UserId); return(Ok(_egysegService.GetOtthoniEgysegsFromOneUserAsync(userOrszag))); }
public async Task <ActionResult <List <SeregInfoDTO> > > GetOtthonMaradtCsapatFromOneUser() { Orszag currentOrszag = await _commonService.GetCurrentOrszag(UserId); return(await _egysegService.GetOtthoniEgysegsFromOneUserAsync(currentOrszag)); }
private async Task <long> GetHelyezes(Orszag orszag) { var sorted = await _globalService.GetRanglista(); return((sorted.IndexOf(sorted.FirstOrDefault(x => x.Orszag == orszag.Nev))) + 1); }