예제 #1
0
    /// <summary>
    /// Verifica se existe um pedido na lista de pedidos com esses parâmetros e o apaga da lista de pedidos.
    /// </summary>
    private void VerificarEntregaSucesso()
    {
        //Pega a lista de pedidos, fazendo referência à classe PedidoController que está na Camera.
        var p = Camera.main.GetComponent <PedidoController>().pedidosAndamento;

        //Verifica se na lista de pedidos há um pedido solicitando o objeto que está na mão do jogador.
        if (p.Where(x => x.VerificarPedidoCompleto(Personagem.ObjetoNaMao)).Count() > 0)
        {
            //Caso exista, adiciona o objeto na lista de ObjetosEntregues e limpa a mão do jogador.
            objetosEntregues.Add(Personagem.ObjetoNaMao);
            Personagem.ObjetoNaMao.LimparMaoJogador(Personagem.name);

            //Pega o primeiro pedido que solicite o objeto que está na mão do jogador.
            var pedido = p.Where(x => x.VerificarPedidoCompleto(Personagem.ObjetoNaMao)).First();

            //Remove este pedido da lista de pedidos.
            p.Remove(pedido);

            //Destroi o "Panfleto" dele do painel de Pedidos.
            //Procura todos os filhos do PainelPedido e trás uma coleção de Pedidos que tenham no texto o nome do Objeto Necessário.
            //Filtra e usa apenas o primeiro pedido da coleção.
            MyCanvas.ApagarFilhoPainelPedido(pedido.objetoNecessario.nome);

            //Apaga o objeto que estiver na mão do jogador.
            Personagem.ObjetoNaMao = null;

            //Atribui a nova lista de pedido (sem o pedido que está completo agora) no campo 'pedidos' do PedidoController.
            Camera.main.GetComponent <PedidoController>().pedidosAndamento = p;

            if (TutorialController.isEsperandoEntregar)
            {
                TutorialController.MostrarEntregouObjeto();
            }

            // Avisa o persoangem que objeto foi entregue com sucesso.
            Debug.Log("Objeto entregue com sucesso!");
        }
        else
        {
            //Caso não tenha pedidos para o objeto que está na mão do jogador, dá um feedback avisando-o.
            Debug.Log("Não existem pedidos para esse objeto.");
        }
    }