コード例 #1
0
 /// <summary>
 /// Establece la información necesaria del jugador en linea para que pueda estar en la partida
 /// </summary>
 /// <param name="MovimientoDelPersonaje">ChrarcterMovementOnline</param>
 /// <param name="EstaActivo">Boolean</param>
 /// <param name="PosicionInicial">Vector2</param>
 /// <param name="RolDeJugador">EnumTipoDeJugador</param>
 /// <param name="VidasDisponibles">int</param>
 private void InicializarJugadorEnLinea(JugadorEnLinea MovimientoDelPersonaje, Boolean EstaActivo,
                                        Vector2 PosicionInicial, EnumTipoDeJugador RolDeJugador, int VidasDisponibles)
 {
     MovimientoDelPersonaje.EstaActivoElScript = EstaActivo;
     MovimientoDelPersonaje.RolDelJugador      = RolDeJugador;
     MovimientoDelPersonaje.PosicionInicial    = PosicionInicial;
     MovimientoDelPersonaje.VidasDisponibles   = VidasDisponibles;
 }
コード例 #2
0
    /// <summary>
    /// Busca la cuenta que tenga el rol en la lista de cuentas en la sa
    /// </summary>
    /// <param name="RolDelJugador">El rol del jugador matado</param>
    /// <returns>La cuenta que tiene ese rol en la sala</returns>
    private CuentaModel BuscarCuentaPorRol(EnumTipoDeJugador RolDelJugador)
    {
        CuentaModel CuentaDelRol = null;

        foreach (CuentaModel CuentaEnLaSala in ClienteDelJuego.CuentasEnLaSala)
        {
            if (CuentaEnLaSala.Jugador.RolDelJugador == RolDelJugador)
            {
                CuentaDelRol = CuentaEnLaSala;
            }
        }
        return(CuentaDelRol);
    }
コード例 #3
0
    /// <summary>
    /// Notifica al cliente del juego que el jugador mato a un jugador en linea
    /// </summary>
    /// <param name="RolDelJugadorMatado">El Rol del jugador matado</param>
    private void NotificarMateAUnJugador(EnumTipoDeJugador RolDelJugadorMatado, int NumeroVidas)
    {
        CuentaModel CuentaMuerto = BuscarCuentaPorRol(RolDelJugadorMatado);

        if (CuentaMuerto != null)
        {
            ClienteDelJuego.NotificarMuerteJugador(CuentaMuerto.NombreUsuario, NumeroVidas);
        }
        if (CuentaMuerto.Jugador.RolDelJugador == EnumTipoDeJugador.Corredor)
        {
            ColocarPersonajesEnPosicionInicial();
        }
    }
コード例 #4
0
    /// <summary>
    /// Recupera el script de movimiento del personaje que sea del tipo de personaje
    /// </summary>
    /// <param name="tipoDelPersonaje">EnumTipoDeJugador</param>
    /// <returns>El ChracterMovenent que tiene ese rol</returns>
    private JugadorEnLinea RecuperarScriptDePersonaje(EnumTipoDeJugador tipoDelPersonaje)
    {
        JugadorEnLinea ScriptDelPersonaje = null;

        foreach (JugadorEnLinea ScriptDeMovimiento in ScriptsDeMovimiento.Values)
        {
            if (ScriptDeMovimiento != null)
            {
                if (ScriptDeMovimiento.RolDelJugador == tipoDelPersonaje)
                {
                    ScriptDelPersonaje = ScriptDeMovimiento;
                }
            }
        }
        return(ScriptDelPersonaje);
    }
コード例 #5
0
ファイル: Jugador.cs プロジェクト: VillanoR2/Uv-ManClient
 /// <summary>
 /// Detecta las colisiones que tiene el personje con otros objetos
 /// </summary>
 /// <param name="collision">Collision2D</param>
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (EstaActivoElScript && RolDelJugador > 0 && collision.gameObject.CompareTag("Corredor") && !EstaActivoTiempoDeMatar)
     {
         PuntacionTotal += 1000;
         EnumTipoDeJugador RolDelJugadorMatado = EnumTipoDeJugador.Corredor;
         int numeroVidas = collision.gameObject.GetComponent <JugadorEnLinea>().VidasDisponibles;
         collision.gameObject.GetComponent <JugadorEnLinea>().DescontarVida(numeroVidas - 1);
         MateAJugador?.Invoke(RolDelJugadorMatado, numeroVidas - 1);
     }
     else if (EstaActivoElScript && RolDelJugador == 0 && collision.gameObject.CompareTag("Perseguidor") && EstaActivoTiempoDeMatar)
     {
         PuntacionTotal += 100;
         EnumTipoDeJugador RolDelJugadorMatado = collision.gameObject.GetComponent <JugadorEnLinea>().RolDelJugador;
         int numeroVidas = collision.gameObject.GetComponent <JugadorEnLinea>().VidasDisponibles;
         collision.gameObject.GetComponent <JugadorEnLinea>().DescontarVida(numeroVidas - 1);
         MateAJugador?.Invoke(RolDelJugadorMatado, numeroVidas - 1);
     }
 }
コード例 #6
0
 /// <summary>
 /// Establece la información necesaria al Script del Personaje del jugador actual para que pueda estar en la partida
 /// </summary>
 /// <param name="MovimientoDelPersonaje">Character_Movement</param>
 /// <param name="EstaActivo">Boolean</param>
 /// <param name="EsElJugadorActual">Boolean</param>
 /// <param name="PosicionInicial">Vector2</param>
 /// <param name="RolDeJugador">EnumTipoDeJugador</param>
 /// <param name="VidasDisponibles">int</param>
 private void InicializarJugador(Jugador MovimientoDelPersonaje, Boolean EstaActivo,
                                 Boolean EsElJugadorActual, Vector2 PosicionInicial, EnumTipoDeJugador RolDeJugador, int VidasDisponibles)
 {
     MovimientoDelPersonaje.EstaActivoElScript = EstaActivo;
     MovimientoDelPersonaje.RolDelJugador      = RolDeJugador;
     MovimientoDelPersonaje.PosicionInicial    = PosicionInicial;
     MovimientoDelPersonaje.VidasDisponibles   = VidasDisponibles;
     MovimientoDelPersonaje.EsElJuegadorActual = EsElJugadorActual;
     JugadorActual.MeMovi                   += EnviarMiMovimiento;
     JugadorActual.MateAJugador             += NotificarMateAUnJugador;
     JugadorActual.RecolectoTodasLasMonedas += TerminarPartida;
     JugadorActual.PuedoComerPerseguidores  += NotificarCorredorPuedeComer;
 }
コード例 #7
0
    /// <summary>
    /// Instancia un Personaje a partir de las cuentas en sesion asi como los inicializa estableciendo la informacion
    /// de su perssonaje
    /// </summary>
    private void InicializarPersonajesEnElMapa()
    {
        foreach (CuentaModel cuentaEnJuego in ClienteDelJuego.CuentasEnLaSala)
        {
            GameObject        PrefabAInstanciar   = ManejadorDePersonajes.ObtenerPrefabDePersonaje(cuentaEnJuego.Jugador);
            GameObject        InstanciaDelObjecto = null;
            JugadorEnLinea    ScriptDeMovimiento  = null;
            Vector2           PosicionInicial     = new Vector2(0, 0);
            EnumTipoDeJugador TipoDeJugador       = EnumTipoDeJugador.Corredor;
            int    CantidadDeVidas   = CANTIDAD_VIDAS_PERSEGUIDOR;
            bool   EsElJugadorActual = EsElJugadorPrincipal(cuentaEnJuego);
            string tag = "Perseguidor";
            switch (cuentaEnJuego.Jugador.RolDelJugador)
            {
            case EnumTipoDeJugador.Corredor:
                InstanciaDelObjecto = ColocarPersonajeEnElMapa(PrefabAInstanciar, POSICION_CORREDOR, EsElJugadorActual);
                PosicionInicial     = POSICION_CORREDOR;
                TipoDeJugador       = EnumTipoDeJugador.Corredor;
                CantidadDeVidas     = CANTIDAD_VIDAS_CORREDOR;
                tag = "Corredor";
                break;

            case EnumTipoDeJugador.Perseguidor1:
                InstanciaDelObjecto = ColocarPersonajeEnElMapa(PrefabAInstanciar, POSICION_PERSEGUIDOR1, EsElJugadorActual);
                PosicionInicial     = POSICION_PERSEGUIDOR1;
                TipoDeJugador       = EnumTipoDeJugador.Perseguidor1;
                break;

            case EnumTipoDeJugador.Perseguidor2:
                InstanciaDelObjecto = ColocarPersonajeEnElMapa(PrefabAInstanciar, POSICION_PERSEGUIDOR2, EsElJugadorActual);
                PosicionInicial     = POSICION_PERSEGUIDOR2;
                TipoDeJugador       = EnumTipoDeJugador.Perseguidor2;
                break;

            case EnumTipoDeJugador.Perseguidor3:
                InstanciaDelObjecto = ColocarPersonajeEnElMapa(PrefabAInstanciar, POSICION_PERSEGUIDOR3, EsElJugadorActual);
                PosicionInicial     = POSICION_PERSEGUIDOR3;
                TipoDeJugador       = EnumTipoDeJugador.Perseguidor3;
                break;

            case EnumTipoDeJugador.Perseguidor4:
                InstanciaDelObjecto = ColocarPersonajeEnElMapa(PrefabAInstanciar, POSICION_PERSEGUIDOR4, EsElJugadorActual);
                PosicionInicial     = POSICION_PERSEGUIDOR4;
                TipoDeJugador       = EnumTipoDeJugador.Perseguidor4;
                break;
            }
            if (EsElJugadorActual)
            {
                CuentaDelJugadorPrincipal = cuentaEnJuego;
                InstanciaDelObjecto.GetComponent <JugadorEnLinea>().EstaActivoElScript = false;
                JugadorActual         = InstanciaDelObjecto.GetComponent <Jugador>();
                JugadorActual.enabled = true;
                InicializarJugador(JugadorActual, true, EsElJugadorActual, PosicionInicial,
                                   TipoDeJugador, CantidadDeVidas);
                JugadorActual.EstaActivoTiempoDeMatar = true;
            }
            else
            {
                InstanciaDelObjecto.GetComponent <Jugador>().EstaActivoElScript = false;
                InstanciaDelObjecto.GetComponent <Jugador>().enabled            = false;
                ScriptDeMovimiento         = InstanciaDelObjecto.GetComponent <JugadorEnLinea>();
                ScriptDeMovimiento.enabled = true;
                InicializarJugadorEnLinea(ScriptDeMovimiento, true, PosicionInicial,
                                          TipoDeJugador, CantidadDeVidas);
            }
            InstanciaDelObjecto.tag = tag;
            ScriptsDeMovimiento.Add(cuentaEnJuego, ScriptDeMovimiento);
            Jugadores.Add(cuentaEnJuego, InstanciaDelObjecto);
        }
    }