/// <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."); } }