public RelJugadorEdificio subirNivel(int id) { RelJugadorRecursoHandlerEF jrHandler = new RelJugadorRecursoHandlerEF(ctx); try { var r = ctx.RelJugadorEdificio .Where(w => w.id == id) .SingleOrDefault(); if (r != null) { Boolean compro; var edi = r.getShared(); List <Entities.Costo> costos = r.edificio.calCostoXNivel(r.nivelE, 1); compro = jrHandler.restarCompra(r.colonia.id, costos); if (compro == false) { return(null); } DateTime ahora = DateTime.Now; TimeSpan tConstruccion = TimeSpan.FromSeconds(edi.edificio.tiempoInicial); r.finalizaConstruccion = ahora.Add(tConstruccion); ctx.SaveChangesAsync().Wait(); } return(r.getShared()); } catch (Exception ex) { throw ex; } }
public void subirCantidadDestacamento(int id, int sube) { RelJugadorRecursoHandlerEF jrHandler = new RelJugadorRecursoHandlerEF(ctx); var relJMHandler = new RelJugadorMapaHandlerEF(ctx); try { var r = ctx.RelJugadorDestacamento .Where(w => w.id == id) .SingleOrDefault(); if (r != null) { var dest = r.getShared(); DateTime ahora = DateTime.Now; TimeSpan tConstruccion = TimeSpan.FromMinutes(dest.destacamento.tiempoInicial * sube); r.finalizaConstruccion = ahora.Add(tConstruccion); List <Entities.Costo> costos = r.destacamento.calCostoXNivel(0, sube); jrHandler.restarCompra(r.colonia.id, costos); r.cantidad += sube; ctx.SaveChangesAsync().Wait(); relJMHandler.actualizarProduccionCapacidad(r.colonia.id); } } catch (Exception ex) { throw ex; } }
public Boolean updateRelJugadorDestacamento(RelJugadorDestacamento rje) { RelJugadorRecursoHandlerEF jrHandler = new RelJugadorRecursoHandlerEF(ctx); var relJMHandler = new RelJugadorMapaHandlerEF(ctx); try { var r = ctx.RelJugadorDestacamento .Where(w => w.id == rje.id) .SingleOrDefault(); if (r != null) { var dest = r.getShared(); var cant = rje.cantidad - r.cantidad; if (!rje.getForceUpdate()) { List <Entities.Costo> costos = r.destacamento.calCostoXNivel(0, cant); Boolean compro = jrHandler.restarCompra(r.colonia.id, costos); if (compro == false) { return(false); } DateTime ahora = DateTime.Now; TimeSpan tConstruccion = TimeSpan.FromSeconds(dest.destacamento.tiempoInicial * cant); r.finalizaConstruccion = ahora.Add(tConstruccion); } else { r.cantidad = rje.cantidad; } ctx.SaveChangesAsync().Wait(); } return(true); } catch (Exception ex) { throw ex; } }
public void actualizarProduccionCapacidad(int idColonia) { var recHandler = new RecursosHandlerEF(ctx); var relJRHandler = new RelJugadorRecursoHandlerEF(ctx); var relJEHandler = new RelJugadorEdificioHandlerEF(ctx); var relJDHandler = new RelJugadorDestacamentoHandlerEF(ctx); var relJIHandler = new RelJugadorInvestigacionHandlerEF(ctx); relJRHandler.calcularRecursosByIdCol(idColonia); var recursosColonia = relJRHandler.getRecursosByColonia(idColonia); var recursos = recHandler.getAllRecursos(); var edificios = relJEHandler.getEdificiosByColonia(idColonia); var destacamentos = relJDHandler.getDestacamentosByColonia(idColonia); var investigaciones = relJIHandler.getInvestigacionesByColonia(idColonia); foreach (var rc in recursosColonia) { var r = recursos.First(w => w.id == rc.recurso.id); rc.produccionXTiempo = r.produccionXTiempo; rc.capacidad = r.capacidadInicial; foreach (var ed in edificios) { if (ed.nivelE > 0) { var produce = ed.edificio.produce.FirstOrDefault(w => w.recurso.id == rc.recurso.id); if (produce != null) { rc.produccionXTiempo += produce.valor; } var capacidad = ed.edificio.capacidad.FirstOrDefault(w => w.recurso.id == rc.recurso.id); if (capacidad != null) { rc.capacidad += capacidad.valor; } } } foreach (var relJD in destacamentos) { if (relJD.cantidad > 0) { var produce = relJD.destacamento.produce.FirstOrDefault(w => w.recurso.id == rc.recurso.id); if (produce != null) { rc.produccionXTiempo += (produce.valor * relJD.cantidad); } var almacena = relJD.destacamento.capacidad.FirstOrDefault(w => w.recurso.id == rc.recurso.id); if (almacena != null) { rc.capacidad += (almacena.valor * relJD.cantidad); } } } foreach (var relJI in investigaciones) { if (relJI.nivel > 0) { var produce = relJI.investigacion.produce.FirstOrDefault(w => w.recurso.id == rc.recurso.id); if (produce != null) { rc.produccionXTiempo = Convert.ToInt32(rc.produccionXTiempo * (produce.incrementoNivel / 100 + 1)); } var capacidad = relJI.investigacion.capacidad.FirstOrDefault(w => w.recurso.id == rc.recurso.id); if (capacidad != null) { rc.capacidad = Convert.ToInt32(rc.capacidad * (capacidad.incrementoNivel / 100 + 1)); } } } relJRHandler.updateRelJugadorRecurso(rc); } }