// TODO: Como hacer que este sea quien envie los mensajes con enter o el boton
    //          y ademas cargue los mensajes de los otros jugadores

    /// <summary>
    /// Metodo para actualizar los mensajes del chat
    /// </summary>
    void Update()
    {
        if (chatBox.text != "")
        {
            if (Input.GetKeyDown(KeyCode.Return))
            {
                ControlTurnos control = GameObject.Find("ControlTurnos").GetComponent <ControlTurnos>();
                string        message = chatBox.text;
                Debug.Log("Mensaje: " + message);
                string color = control.Color;

                string  id          = Lobby.instance.IdLobby;
                Mensaje mensaje     = new Mensaje(id, color, message);
                string  messageData = JsonConvert.SerializeObject(mensaje);

                SendChatMessage(chatBox.text);
                ConnectionManager.instance.socket.Emit("mensaje", messageData);
            }
        }
        else
        {
            if (!chatBox.isFocused && Input.GetKeyDown(KeyCode.Return))
            {
                chatBox.ActivateInputField();
            }
        }
    }
    /// <summary>
    /// Corutina para cargar las fichas y nombres correspondientes a los colores elegidos
    /// </summary>
    IEnumerator ActualizarGameBoard()
    {
        yield return(new WaitForSeconds(1));

        ControlTurnos control = GameObject.Find("ControlTurnos").GetComponent <ControlTurnos>();
        int           count   = 1;
        var           list    = Lobby.instance.Players.Keys.ToList();

        list.Sort();
        GameObject[] objetos = Resources.FindObjectsOfTypeAll <GameObject>();
        foreach (string player in list)
        {
            foreach (GameObject go in objetos)
            {
                if (go.name == Lobby.instance.Players[player] + "Triangle")
                {
                    go.SetActive(true);
                }
                if (go.name == Lobby.instance.Players[player] + "PlayerName")
                {
                    go.SetActive(true);
                    go.GetComponent <Text>().text = player;
                }
            }
            if (player == Jugador.instance.Username)
            {
                control.MyTurn = count;
                control.Color  = Lobby.instance.Players[player];
            }
            count++;
        }

        control.ActualTurn = 1;
        control.IniciarControl();
    }
Exemple #3
0
    void Start()
    {
        sCasilla         = casilla.GetComponent <Casilla>();
        sCasilla.Ocupada = true;
        Vector3 posicion = casilla.transform.position;

        this.gameObject.transform.position = new Vector3(posicion.x, posicion.y, posicion.z - 10);
        control = GameObject.Find("ControlTurnos").GetComponent <ControlTurnos>();
    }
    /// <summary>
    /// Metodo llamado por servidor para terminar el turno de un jugador en determinado lobby
    /// </summary>
    private void OnTerminarTurno(Socket socket, Packet packet, params object[] args)
    {
        Debug.Log("Terminando Turno");
        ControlTurnos control = GameObject.Find("ControlTurnos").GetComponent <ControlTurnos>();

        if (control.ActualTurn + 1 > Lobby.instance.Players.Count)
        {
            control.ActualTurn = 1;
        }
        else
        {
            control.ActualTurn++;
        }
    }
    /// <summary>
    /// Metodo llamado por servidor para mover una pieza a todo el lobby
    /// </summary>
    private void OnMoverPieza(Socket socket, Packet packet, params object[] args)
    {
        var    datos        = JSON.Parse(packet.ToString());
        string movementInfo = datos[1].ToString();

        movementInfo = movementInfo.Substring(1, movementInfo.Length - 2);
        movementInfo = movementInfo.Replace(@"\", "");
        DatosMovimiento movimiento = JsonConvert.DeserializeObject <DatosMovimiento>(movementInfo);
        ControlTurnos   control    = GameObject.Find("ControlTurnos").GetComponent <ControlTurnos>();

        control.FichaSeleccionada = GameObject.Find(movimiento.Ficha);
        Debug.Log("Ficha a mover " + control.FichaSeleccionada);
        Casilla casilla = GameObject.Find(movimiento.Casilla).GetComponent <Casilla>();

        casilla.Mover();
        Debug.Log("Casilla destino " + casilla.name);
    }
 private void Start()
 {
     // obtener la referencia del objeto de control de turnos
     control = GameObject.Find("ControlTurnos").GetComponent <ControlTurnos>();
 }