public void VerificarMovimiento(SessionInstance Session) { if (!Iniciado) { return; } List <SessionInstance> ParaDescalificar = new List <SessionInstance>(); if (!Senderos.Contains(new Point(Session.User.Posicion.x, Session.User.Posicion.y))) { new Thread(() => this.Liana(Session)).Start(); return; } if (Session.User.Posicion.x == 15 && Session.User.Posicion.y == 13) { Iniciado = false; if (Participantes.ContainsKey(Session.User.IDEspacial)) { if (Participantes.Remove(Session.User.IDEspacial)) { Session.User.Jugando = false; Session.User.SenderoOculto = null; CancelarInscripcion(Session); switch (sala.Escenario.id) { case 6: //Golden ServerMessage server = new ServerMessage(); server.AddHead(160); server.AddHead(129); server.AppendParameter(0); server.AppendParameter(0); server.AppendParameter(Session.User.nombre); server.AppendParameter("Ha ganado: 1 Liana y suma una victoria!"); sala.SendData(server); Session.User.senderos_ganados++; sala.ActualizarEstadisticas(Session.User); EntregarLiana(Session, 1230); RankingsManager.agregar_user_ranking(Session.User.id, 3, 2, 1); break; case 7: //Silver ServerMessage server1 = new ServerMessage(); server1.AddHead(160); server1.AddHead(129); server1.AppendParameter(0); server1.AppendParameter(0); server1.AppendParameter(Session.User.nombre); server1.AppendParameter("Ha ganado: 5 monedas de plata!"); sala.SendData(server1); UserManager.Creditos(Session.User, false, true, Recompensa_Silver); NotificacionesManager.Recompensa_Plata(Session, 5); sala.ActualizarEstadisticas(Session.User); break; } DescalificarUsuarios(); FinalizarSendero(); } } } }
public static void CargarSabio(SessionInstance Session) { Session.User.Game = GameType.Ring; ServerMessage server = new ServerMessage(); server.AddHead(160); server.AddHead(120); server.AppendParameter(MiniGamesManager.EstadoDeInscripcion(Session, GameType.Ring)); server.AppendParameter(0); server.AppendParameter(3); server.AppendParameter(Descripcion_Silver); //Descripcion Silver server.AppendParameter(0); server.AppendParameter(Precio_Silver); //Precio Silver server.AppendParameter(2); server.AppendParameter(Descripcion_Golden); //Descripción Golden server.AppendParameter(Precio_Golden); //Precio Golden server.AppendParameter(0); Session.SendData(server); if (Session.User.ver_ranking == 1) { RankingsManager.cartel_ranking(Session, 1, 2, ServerThreads.Fecha_Ranking_Semanal);//2 Golden } if (Session.User.ver_ranking == 2) { RankingsManager.cartel_ranking(Session, 1, 1, ServerThreads.Fecha_Ranking_Semanal);//1 Silver } }
public ActionResult Delete(int id) { //Delete WarPicks, WarRankings, then ClanWar ClanWarPicksManager.Delete(id); RankingsManager.Delete(id); ClanWarManager.Delete(id); //TODO //vv check if any of the Deletes fail.. then handle. return(RedirectToAction("Index")); }
public ActionResult AddAttack(int id, int warId) { ClanMemberStatsViewModel addSingle = new ClanMemberStatsViewModel() { ClanWarId = warId }; List <ClanUser> clanUsers = ClanUserManager.SelectAllByClanId(id); ViewBag.AvailableAttacks = RankingsManager.SelectAttacksAvailableForWar(warId).ToDictionary(key => key.clanUserId, value => clanUsers.Where(p => p.id == value.clanUserId).Select(p => p.name).Single()); return(PartialView("_ClanMemberStatsViewModel", addSingle)); }
public ActionResult Edit(int id, IEnumerable <ClanMemberStatsViewModel> memberRankingsFromForm) { ActionResult result = View(); RankingsUpsertViewModel rankingsModelView = new RankingsUpsertViewModel(memberRankingsFromForm.ToList()); RankingsManager.Upsert(rankingsModelView.WarRankings); rankingsModelView = new RankingsUpsertViewModel(id, memberRankingsFromForm.Select(p => p.ClanId).First()); ViewBag.WarId = id; result = View(rankingsModelView); return(result); }
public static void CargarSabio(SessionInstance Session) { Session.User.Game = GameType.CocosLocos; ServerMessage server = new ServerMessage(); server.AddHead(160); server.AddHead(120); server.AppendParameter(MiniGamesManager.EstadoDeInscripcion(Session, GameType.CocosLocos)); server.AppendParameter(0); server.AppendParameter(9); server.AppendParameter(Descripcion_Silver); //Descripcion Silver server.AppendParameter(0); server.AppendParameter(Precio_Silver); //Precio Silver server.AppendParameter(8); server.AppendParameter(Descripcion_Golden); //Descripción Golden server.AppendParameter(Precio_Golden); //Precio Golden server.AppendParameter(0); Session.SendData(server); RankingsManager.cartel_ranking(Session, 2, 2, ServerThreads.Fecha_Ranking_Semanal); }
static void Rankings_Manager() { foreach (var Sala in SalasManager.Salas_Publicas.Values) { if (Sala.Escenario.nombre != "Beluga Beach") { return; } if (Time.GetDifference(Sala.Escenario.proximo_evento) <= 0 && Time.GetDifference(Sala.Escenario.tiempo_evento) <= 0)//Empezar nuevo evento semanal { RankingsManager.start_new_event(Sala); } if (Time.GetDifference(Sala.Escenario.tiempo_evento) <= 0 && Sala.Escenario.tipo_evento != 0)//Acabar evento semanal { RankingsManager.end_event(Sala); } if (Time.GetDifference(Sala.Escenario.ranking_semanal) <= 0)//Entrega Trofeos Rankign Minijuegos Semanal { RankingsManager.rankings_time_remove(Sala); } } }
void IniciarCocos() { Iniciado = true; int TotalRondas = 7; List <Point> Puntos = new List <Point>(); while (TotalRondas > 0) { Puntos.Clear(); for (int i = 1; i <= TotalRondas; i++) { Point PosGeneratedByMap = sala.GetRandomPlace(); while (Puntos.Contains(PosGeneratedByMap) || !sala.Caminable(new Posicion(PosGeneratedByMap.X, PosGeneratedByMap.Y))) { PosGeneratedByMap = sala.GetRandomPlace(); } Puntos.Add(PosGeneratedByMap); } TotalRondas--; Thread.Sleep(new TimeSpan(0, 0, 5)); foreach (Point PointToShow in Puntos) { ServerMessage server_1 = new ServerMessage(); server_1.AddHead(124); server_1.AddHead(120); server_1.AppendParameter(PointToShow.X); server_1.AppendParameter(PointToShow.Y); server_1.AppendParameter(1); sala.SendData(server_1); } Thread.Sleep(new TimeSpan(0, 0, 5)); foreach (Point PointToHidden in Puntos) { ServerMessage server_2 = new ServerMessage(); server_2.AddHead(124); server_2.AddHead(121); server_2.AppendParameter(PointToHidden.X); server_2.AppendParameter(PointToHidden.Y); server_2.AppendParameter(1); sala.SendData(server_2); } ServerMessage server_3 = new ServerMessage(); server_3.AddHead(160); server_3.AddHead(125); server_3.AppendParameter(30); sala.SendData(server_3); sala.PathFinder = true; Thread.Sleep(new TimeSpan(0, 0, 30)); sala.PathFinder = false; List <SessionInstance> ParaDescalificar = new List <SessionInstance>(); foreach (SessionInstance Session in Participantes.Values) { if (!Puntos.Contains(new Point(Session.User.Posicion.x, Session.User.Posicion.y))) { ParaDescalificar.Add(Session); } } foreach (SessionInstance Session in ParaDescalificar) { Descalificar(Session); LanzarCoco(Session); UserManager.Sumar_Cocos(Session.User, 1); RankingsManager.agregar_user_ranking(Session.User.id, 2, 2, 1); //using (mysql client = new mysql()) //{ // string Nombre = Session.User.nombre; // if (Nombre == "") { Session.User.nombre = Session.User.nombre_halloween; } // DataRow comprobar_usuario = client.ExecuteQueryRow("SELECT * FROM coco_semanal WHERE usuario = '" + Nombre + "'"); // if (comprobar_usuario != null) // { // int goldens = (int)comprobar_usuario["goldens"]; // int actualizar_goldens = goldens + 1; // client.ExecuteNonQuery("UPDATE coco_semanal SET goldens = '" + actualizar_goldens + "' WHERE usuario = '" + Nombre + "'"); // } // else // { // client.SetParameter("usuario", Nombre); // client.SetParameter("goldens", 1); // client.ExecuteNonQuery("INSERT INTO coco_semanal (`usuario`, `goldens`) VALUES (@usuario, @goldens)"); // } //} } Thread.Sleep(new TimeSpan(0, 0, 10)); if (Participantes.Count == 0 || Participantes.Count == 1) { break; } } if (Participantes.Count == 0) { ServerMessage server_4 = new ServerMessage(); server_4.AddHead(160); server_4.AddHead(124); server_4.AppendParameter("Ups!, al parecer no hay ganadores en esta ronda..."); sala.SendData(server_4); } else { SessionInstance SessionWin = null; foreach (SessionInstance Session in Participantes.Values) { SessionWin = Session; } if (SessionWin != null) { Participantes.Remove(SessionWin.User.id); switch (sala.Escenario.id) { case 8: ServerMessage server_5 = new ServerMessage(); server_5.AddHead(160); server_5.AddHead(129); server_5.AppendParameter(1); server_5.AppendParameter(SessionWin.User.id); server_5.AppendParameter(SessionWin.User.nombre); server_5.AppendParameter("Ha ganado: " + Recompensa_Golden + " créditos! y Suma " + 3 + " puntos y está más cerca de conseguir un nuevo coco!"); sala.SendData(server_5); RankingsManager.agregar_user_ranking(SessionWin.User.id, 2, 2, 3); UserManager.Creditos(SessionWin.User, true, true, Recompensa_Golden); UserManager.Sumar_Cocos(SessionWin.User, 3); SessionWin.User.torneos_coco++; if (SessionWin.User.torneos_coco == 300) { using (mysql client = new mysql()) { client.SetParameter("usuario_id", SessionWin.User.id); client.SetParameter("objeto_id", 3069); client.ExecuteNonQuery("INSERT INTO objetos_comprados (`usuario_id`, `objeto_id`) VALUES (@usuario_id, @objeto_id)"); } } UserManager.ActualizarEstadisticas(SessionWin.User); break; case 9: ServerMessage server_6 = new ServerMessage(); server_6.AddHead(160); server_6.AddHead(129); server_6.AppendParameter(1); server_6.AppendParameter(SessionWin.User.id); server_6.AppendParameter(SessionWin.User.nombre); server_6.AppendParameter("Ha ganado: " + Recompensa_Silver + " monedas de plata! y Suma " + 1 + " puntos y está más cerca de conseguir un nuevo coco!"); sala.SendData(server_6); UserManager.Creditos(SessionWin.User, false, true, Recompensa_Silver); UserManager.Sumar_Cocos(SessionWin.User, 1); break; } SessionWin.User.Jugando = false; } } FinalizarCocos(); }
public void Descalificar(SessionInstance Session) { if (Participantes.ContainsKey(Session.User.IDEspacial)) { Session.User.Jugando = false; if (sala.Escenario.id == 2 && NSP == false) { UserManager.Creditos(Session.User, true, false, Precio_Golden); Session.User.sala_especial = false; } if (sala.Escenario.id == 3 && NSP == false) { UserManager.Creditos(Session.User, false, false, Precio_Silver); Session.User.sala_especial = false; } Participantes.Remove(Session.User.IDEspacial); if (MiniGamesManager.Inscripciones_Ring.ContainsKey(Session.User.id)) { MiniGamesManager.Inscripciones_Ring.Remove(Session.User.id); } if (Iniciado == true) { if (Participantes.Count == 2) { ServerMessage server = new ServerMessage(); server.AddHead(160); server.AddHead(123); sala.SendData(server); } } if (Participantes.Count == 1 && Iniciado == true) { Ganador = true; Tiempo_Atas = 0; SessionInstance SessionWin = null; foreach (var win in Participantes.Values) { SessionWin = win; } CancelarInscripcion(Session); CancelarInscripcion(SessionWin); if (sala.Escenario.id == 2)///Golden Ring { SessionWin.User.sala_especial = false; SessionWin.User.rings_ganados++; SessionWin.User.toneos_ring++; if (InterfazHandler.Cada_X_Goldens.Contains(SessionWin.User.rings_ganados)) { RegalosManager.Sistema_Regalos(SessionWin); } SessionWin.User.Sala.ActualizarEstadisticas(SessionWin.User); UserManager.Creditos(SessionWin.User, true, true, Recompensa_Golden); ServerMessage server = new ServerMessage(); server.AddHead(160); server.AddHead(129); server.AppendParameter(0); server.AppendParameter(0); server.AppendParameter(SessionWin.User.nombre); server.AppendParameter("Ha ganado: " + Recompensa_Golden + " créditos! Suma una victoria!"); sala.SendData(server); RankingsManager.agregar_user_ranking(SessionWin.User.id, 1, 2, 1); } if (sala.Escenario.id == 3)//Silver Ring { SessionWin.User.sala_especial = false; SessionWin.User.rings_ganados++; SessionWin.User.Sala.ActualizarEstadisticas(SessionWin.User); UserManager.Creditos(SessionWin.User, false, true, Recompensa_Silver); if (InterfazHandler.Cada_X_Goldens.Contains(SessionWin.User.rings_ganados)) { RegalosManager.Sistema_Regalos(SessionWin); } ServerMessage server = new ServerMessage(); server.AddHead(160); server.AddHead(129); server.AppendParameter(0); server.AppendParameter(0); server.AppendParameter(SessionWin.User.nombre); server.AppendParameter("Ha ganado: " + Recompensa_Silver + " monedas de plata! Suma una victoria!"); sala.SendData(server); RankingsManager.agregar_user_ranking(SessionWin.User.id, 1, 1, 1); } Participantes.Remove(SessionWin.User.IDEspacial); SessionWin.User.Jugando = false; } } }
public RankingsUpsertViewModel(int warId, int clanId, bool isOverall) { _clanMemberStats = new List <ClanMemberStatsViewModel>(); List <WarRanking> warRankings = new List <WarRanking>(); if (isOverall) { warRankings = RankingsManager.SelectRankingsByClanId(clanId); if (warRankings.Any() && warRankings.Count > 0) { var rankingTotals = warRankings.GroupBy(g => g.clanUserId).Select(p => new ClanMemberStatsViewModel { ClanUserId = p.Key, ClanId = clanId, TotalAttacks = (short)p.Count(), AttacksWon = (short)p.Count(r => r.attackWin), TotalHeroicDefense = (short)p.Sum(r => Convert.ToInt16(r.heroicDefense)), TotalHeroicAttack = (short)p.Sum(r => Convert.ToInt16(r.heroicAttack)), AttacksDefended = (short)p.Sum(r => r.attacksDefended), AttacksOn = (short)p.Sum(r => r.attacksOn), Stars = (short)p.Sum(r => r.stars), Xp = (short)p.Sum(r => r.xp) }); _clanMemberStats = rankingTotals.ToList(); foreach (ClanMemberStatsViewModel memberStats in _clanMemberStats) { short wars = 0; wars = (short)warRankings.Where(p => p.clanUserId == memberStats.ClanUserId).Select(p => p.clanWarId).Distinct().Count(); memberStats.WarsCount = wars; } int attacksCount = warRankings.Count(); _clanWarStats = _clanMemberStats.GroupBy(g => g.ClanId).Select(p => new ClanMemberStatsViewModel { ClanId = p.Key, ClanWarId = 0, WarsCount = (short)p.Count(), TotalAttacks = (short)attacksCount, AttacksWon = (short)p.Sum(r => r.AttacksWon), TotalHeroicDefense = (short)p.Sum(r => Convert.ToInt16(r.TotalHeroicDefense)), TotalHeroicAttack = (short)p.Sum(r => Convert.ToInt16(r.TotalHeroicAttack)), AttacksDefended = (short)p.Sum(r => r.AttacksDefended), AttacksOn = (short)p.Sum(r => r.AttacksOn), Stars = (short)p.Sum(r => r.Stars), Xp = (short)p.Sum(r => r.Xp) }).Single(); } } else { warRankings = RankingsManager.SelectRankingsByClanWarId(warId); foreach (WarRanking ranking in warRankings) { _clanMemberStats.Add(ClanMemberStatsViewModel.ConvertToClanMemberStats(ranking)); } if (warRankings.Any() && warRankings.Count > 0) { _clanWarStats = _clanMemberStats.GroupBy(g => g.ClanWarId).Select(p => new ClanMemberStatsViewModel { ClanId = clanId, ClanWarId = p.Key, WarsCount = 1, AttacksWon = (short)p.Sum(r => r.AttacksWon), TotalAttacks = (short)p.Count(), TotalHeroicDefense = (short)p.Sum(r => Convert.ToInt16(r.TotalHeroicDefense)), TotalHeroicAttack = (short)p.Sum(r => Convert.ToInt16(r.TotalHeroicAttack)), AttacksDefended = (short)p.Sum(r => r.AttacksDefended), AttacksOn = (short)p.Sum(r => r.AttacksOn), Stars = (short)p.Sum(r => r.Stars), Xp = (short)p.Sum(r => r.Xp) }).Single(); } List <ClanUser> clanUsers = ClanUserManager.SelectAllByClanId(clanId); List <Models.ClanWarPick> availableAttacks = RankingsManager.SelectAttacksAvailableForWar(warId); _availableAttacks = availableAttacks.ToDictionary(key => key.clanUserId, value => clanUsers.Where(p => p.id == value.clanUserId).Select(p => p.name).Single()); } }