Example #1
0
    /// <summary>
    /// Função que será utilizada para criar a plateia
    /// </summary>
    /// <param name="focoEm">Onde se deve ter a maioria das pessoas</param>
    /// <param name="quant">A quantidade média de pessoas que deve estar na plateia</param>
    /// <param name="animacaoDaPlateia">A animação média da plateia</param>
    public void CriarPlateia(Localizacao focoEm, QuantidadePlateia quant, Animo animacaoDaPlateia, VariacaoAnimo variacao)
    {
        List <Posicao> posicoesParaInstanciar;

        inst.EliminarPlateia();
        //Matemagica aqui; Valor base é usado para determinar a quantidade de pessoas que vai ter na posição em foco
        //E também vai ser utilizado para determinar a quantidade de pessoas em outras posições
        float valorBase = 0;

        RetornarPorcentagem(quant, out valorBase);
        if (valorBase == 0)
        {
            return;
        }
        else if (valorBase == 1)
        {
            posicoesParaInstanciar = banqueta.RetornarPosicoes(1, 1, 1, 1, 1);
        }
        else    //Momento da matemagica. Aqui tem que dar um jeito de retornar aleatorizar as posições de sentar dos avatares
        {
            float[] por = RetornarPorcentagemNasPosicoes(focoEm, valorBase);
            posicoesParaInstanciar = banqueta.RetornarPosicoes(por[0], por[1], por[2], por[3], por[4]);
        }
        float[] porAnimo = RetornarPorcentagemDeAnimo(animacaoDaPlateia, variacao);
        Debug.Log("Porcentagem dos animos:\n");
        for (int i = 0; i < 6; i++)
        {
            Debug.Log(porAnimo[i] + "\n");
        }
        inst.InstanciarPlateia(pessoasDaPlateia, posicoesParaInstanciar, porAnimo);
    }
Example #2
0
    void RetornarPorcentagem(QuantidadePlateia quant, out float valorBase)
    {
        valorBase = 0;
        switch (quant)
        {
        case QuantidadePlateia.VAZIO:
            valorBase = 0;
            break;

        case QuantidadePlateia.QUASE_VAZIO:
            valorBase = 0.15f;
            break;

        case QuantidadePlateia.MUITO_POUCO:
            valorBase = 0.25f;
            break;

        case QuantidadePlateia.POUCO:
            valorBase = 0.4f;
            break;

        case QuantidadePlateia.MEDIO:
            valorBase = 0.5f;
            break;

        case QuantidadePlateia.BASTANTE:
            valorBase = 0.7f;
            break;

        case QuantidadePlateia.QUASE_LOTADO:
            valorBase = 0.85f;
            break;

        case QuantidadePlateia.LOTADO:
            valorBase = 1;
            break;
        }
    }