Ejemplo n.º 1
0
    float RetornarPorcentagemDeVariacao(VariacaoAnimo var)
    {
        switch (var)
        {
        case VariacaoAnimo.NENHUM:
            return(-0.5f);

        case VariacaoAnimo.POUCO:
            return(0.05f);

        case VariacaoAnimo.MEDIO:
            return(0.15f);

        case VariacaoAnimo.BASTANTE:
            return(0.25f);

        case VariacaoAnimo.ALEATORIO:
            return(0.33f);

        default:
            return(0f);
        }
    }
Ejemplo n.º 2
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);
    }
Ejemplo n.º 3
0
/*  CONCENTRADA,
 *  POUCO_CONCENTRADA,
 *  NORMAL,
 *  DISTRAIDA,
 *  ENTEDIADA,
 *  BAGUNCANDO,
 *  SAINDO  //Animo saindo é especial, não entra nessa contagem
 *  porcentagem para o animo escolhido = 50%
 *  porcentagem para os outros animos = 10%
 */
/// <summary>
/// Função utilizada para retornar o animo da plateia utilizando presets. Facilita a utilização rapida do app
/// </summary>
/// <param name="an">Animo base a ser entrado</param>
/// <param name="var">Quantidade de variação entre o animo da plateia</param>
/// <returns></returns>
    float[] RetornarPorcentagemDeAnimo(Animo an, VariacaoAnimo var)
    {
        float[] pa       = new float[6]; //porcentagemDosAnimos
        float   variacao = RetornarPorcentagemDeVariacao(var);

        switch (an)
        {
        case Animo.CONCENTRADA:
            pa[0] = 0.5f - variacao;
            pa[1] = 0.1f + variacao / 5;
            pa[2] = 0.1f + variacao / 5;
            pa[3] = 0.1f + variacao / 5;
            pa[4] = 0.1f + variacao / 5;
            pa[5] = 0.1f + variacao / 5;
            break;

        case Animo.POUCO_CONCENTRADA:
            pa[0] = 0.1f + variacao / 5;
            pa[1] = 0.5f - variacao;
            pa[2] = 0.1f + variacao / 5;
            pa[3] = 0.1f + variacao / 5;
            pa[4] = 0.1f + variacao / 5;
            pa[5] = 0.1f + variacao / 5;
            break;

        case Animo.NORMAL:
            pa[0] = 0.1f + variacao / 5;
            pa[1] = 0.1f + variacao / 5;
            pa[2] = 0.5f - variacao;
            pa[3] = 0.1f + variacao / 5;
            pa[4] = 0.1f + variacao / 5;
            pa[5] = 0.1f + variacao / 5;
            break;

        case Animo.DISTRAIDA:
            pa[0] = 0.1f + variacao / 5;
            pa[1] = 0.1f + variacao / 5;
            pa[2] = 0.1f + variacao / 5;
            pa[3] = 0.5f - variacao;
            pa[4] = 0.1f + variacao / 5;
            pa[5] = 0.1f + variacao / 5;
            break;

        case Animo.ENTEDIADA:
            pa[0] = 0.1f + variacao / 5;
            pa[1] = 0.1f + variacao / 5;
            pa[2] = 0.1f + variacao / 5;
            pa[3] = 0.1f + variacao / 5;
            pa[4] = 0.5f - variacao;
            pa[5] = 0.1f + variacao / 5;
            break;

        case Animo.BAGUNCANDO:
            pa[0] = 0.1f + variacao / 5;
            pa[1] = 0.1f + variacao / 5;
            pa[2] = 0.1f + variacao / 5;
            pa[3] = 0.1f + variacao / 5;
            pa[4] = 0.1f + variacao / 5;
            pa[5] = 0.5f - variacao;
            break;
        }
        return(pa);
    }