Exemple #1
0
        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();
                    }
                }
            }
        }
Exemple #2
0
        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"));
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
 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);
         }
     }
 }
Exemple #8
0
        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();
        }
Exemple #9
0
        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());
            }
        }