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
        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 #3
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;
                }
            }
        }