public void efetivarTrocaDeProducao(int tipoDeProducao)
    {
        switch (tipoDeProducao)
        {
        case (int)ProducaoTipo.Metais: linhaSelecionada.tipoDeProducao = ProducaoTipo.Metais; GameController.instancia.iniciarProducaoDeRecursos(linhaSelecionada); break;

        case (int)ProducaoTipo.Combustivel: linhaSelecionada.tipoDeProducao = ProducaoTipo.Combustivel; GameController.instancia.iniciarProducaoDeRecursos(linhaSelecionada); break;

        case (int)ProducaoTipo.Municao: linhaSelecionada.tipoDeProducao = ProducaoTipo.Municao; GameController.instancia.iniciarProducaoDeRecursos(linhaSelecionada); break;

        case (int)ProducaoTipo.BensDeConsumo: linhaSelecionada.tipoDeProducao = ProducaoTipo.BensDeConsumo; GameController.instancia.iniciarProducaoDeRecursos(linhaSelecionada); break;

        case (int)ProducaoTipo.Recrutamento: linhaSelecionada.tipoDeProducao = ProducaoTipo.Recrutamento; linhaSelecionada.emEspera = true; break;

        case (int)ProducaoTipo.Desenvolvimento: linhaSelecionada.tipoDeProducao = ProducaoTipo.Desenvolvimento; linhaSelecionada.emEspera = true;  break;

        case (int)ProducaoTipo.Construcao: linhaSelecionada.tipoDeProducao = ProducaoTipo.Construcao; linhaSelecionada.emEspera = true; break;

        case -1: linhaSelecionada.tipoDeProducao = ProducaoTipo.Inativa; linhaSelecionada.ativa = false; break;
        }
        atualizarInterfaceDoFeedback();
        mascaraDeOpcoes.SetActive(false);
        LinhaDeProducaoCarta carta = linhasAtivas.First(x => x.linhaAssociada == linhaSelecionada);

        popularCarta(carta);
    }
    public void atualizarVisual(LinhaDeProducao linhaAAtualizar)
    {
        LinhaDeProducaoCarta linhaAModificar = linhasAtivas.First(x => x.linhaAssociada.Equals(linhaAAtualizar));

        popularCarta(linhaAModificar);
        atualizarInterfaceDoFeedback();
    }
 void Start()
 {
     foreach (LinhaDeProducao linha in GameController.instancia.linhasDeProducao)
     {
         LinhaDeProducaoCarta novaCarta = Instantiate(linhaDeProducaoCartaPrefab).GetComponent <LinhaDeProducaoCarta>();
         linha.slot = GameController.instancia.linhasDeProducao.IndexOf(linha);
         adicionarEventTriggerDeSFX(novaCarta.trocarProducao.gameObject);
         novaCarta.linhaAssociada = linha;
         novaCarta.transform.SetParent(linhasHolder.transform, false);
         popularCarta(novaCarta);
         linhasAtivas.Add(novaCarta);
     }
     atualizarInterfaceDoFeedback();
 }
    public void popularCarta(LinhaDeProducaoCarta cartaDaLinha)
    {
        if (cartaDaLinha.linhaAssociada.terminada)
        {
            cartaDaLinha.imagemBaseBotao.sprite     = coletarSprite;
            cartaDaLinha.trocarProducao.spriteState = coletarState;
            cartaDaLinha.engrenagens[0].SetBool("emAtividade", false);
            cartaDaLinha.engrenagens[1].SetBool("emAtividade", false);
            cartaDaLinha.ocupadotexto.text = "Terminada";
            switch (cartaDaLinha.linhaAssociada.tipoDeProducao)
            {
            case ProducaoTipo.Recrutamento:
                cartaDaLinha.proguessoNumero.text   = "100%";
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/Recrutamento");
                cartaDaLinha.descricaoProducao.text = "Recrutamento";
                break;

            case ProducaoTipo.Desenvolvimento:
                cartaDaLinha.proguessoNumero.text   = "100%";
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/Development");
                cartaDaLinha.descricaoProducao.text = "Desenvolvimento";
                break;

            case ProducaoTipo.Construcao:
                cartaDaLinha.proguessoNumero.text   = "100%";
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/EquipmentProduction");
                cartaDaLinha.descricaoProducao.text = "Construção";
                break;
            }
        }
        else if (cartaDaLinha.linhaAssociada.ativa)
        {
            cartaDaLinha.imagemBaseBotao.sprite     = trocarSprite;
            cartaDaLinha.trocarProducao.spriteState = trocarState;
            cartaDaLinha.engrenagens[0].SetBool("emAtividade", true);
            cartaDaLinha.engrenagens[1].SetBool("emAtividade", true);
            cartaDaLinha.ocupadotexto.text = "Ocupada";
            switch (cartaDaLinha.linhaAssociada.tipoDeProducao)
            {
            case ProducaoTipo.Metais:
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.proguessoNumero.text   = "∞";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/MetalWorks");
                cartaDaLinha.descricaoProducao.text = "Metais";
                break;

            case ProducaoTipo.Combustivel:
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.proguessoNumero.text   = "∞";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/OilField");
                cartaDaLinha.descricaoProducao.text = "Combustivel";
                break;

            case ProducaoTipo.Municao:
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.proguessoNumero.text   = "∞";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/AmmoProduction");
                cartaDaLinha.descricaoProducao.text = "Munição";
                break;

            case ProducaoTipo.BensDeConsumo:
                cartaDaLinha.barraDeProguesso.value = 100;
                cartaDaLinha.proguessoNumero.text   = "∞";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/ConsumerGoods");
                cartaDaLinha.descricaoProducao.text = "Bens de Consumo";
                break;

            case ProducaoTipo.Recrutamento:
                cartaDaLinha.barraDeProguesso.value = (int)cartaDaLinha.linhaAssociada.proguesso;
                cartaDaLinha.proguessoNumero.text   = (int)cartaDaLinha.linhaAssociada.proguesso + "%";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/Recrutamento");
                cartaDaLinha.descricaoProducao.text = "Recrutamento";
                break;

            case ProducaoTipo.Desenvolvimento:
                cartaDaLinha.barraDeProguesso.value = (int)cartaDaLinha.linhaAssociada.proguesso;
                cartaDaLinha.proguessoNumero.text   = (int)cartaDaLinha.linhaAssociada.proguesso + "%";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/Development");
                cartaDaLinha.descricaoProducao.text = "Desenvolvimento";
                break;

            case ProducaoTipo.Construcao:
                cartaDaLinha.barraDeProguesso.value = (int)cartaDaLinha.linhaAssociada.proguesso;
                cartaDaLinha.proguessoNumero.text   = (int)cartaDaLinha.linhaAssociada.proguesso + "%";
                cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/EquipmentProduction");
                cartaDaLinha.descricaoProducao.text = "Construção";
                break;
            }
        }
        else
        {
            cartaDaLinha.imagemBaseBotao.sprite     = produzirSprite;
            cartaDaLinha.trocarProducao.spriteState = produzirState;
            cartaDaLinha.engrenagens[0].SetBool("emAtividade", false);
            cartaDaLinha.engrenagens[1].SetBool("emAtividade", false);
            cartaDaLinha.ocupadotexto.text      = "Livre";
            cartaDaLinha.proguessoNumero.text   = "∞";
            cartaDaLinha.imagemProducao.sprite  = Resources.Load <Sprite>("Graficos/Texturas/Imagens/HQ/LinhasDeProducao/IdleFactory");
            cartaDaLinha.descricaoProducao.text = "Inativa";
            cartaDaLinha.barraDeProguesso.value = 0;
        }
        cartaDaLinha.trocarProducao.GetComponent <Button>().onClick.RemoveAllListeners();
        cartaDaLinha.trocarProducao.GetComponent <Button>().onClick.AddListener(() => trocarProducao(cartaDaLinha.linhaAssociada.slot));
        cartaDaLinha.trocarProducao.GetComponent <Button>().onClick.AddListener(() => recuperarProducaoTerminada(cartaDaLinha.linhaAssociada.terminada));
    }