/// <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; }
/// <summary> /// Se activa el tiempo de comer en el jugador actual y en el corredor /// </summary> private void ActivarTiempoDeComer() { JugadorActual.ActivaTiempoDeMatar(); JugadorEnLinea ScriptDelCorredor = RecuperarScriptDePersonaje(EnumTipoDeJugador.Corredor); if (ScriptDelCorredor != null) { ScriptDelCorredor.ActivaTiempoDeMatar(); } }
/// <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); }
/// <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); } }