public Missoes SelecionarUmaMissao()
    {
        Missoes M            = new Missoes();
        bool    foi          = false;
        float   somaDasTaxas = 0;
        int     i;

        for (i = 0; i < listaDeTaxas.Count; i++)
        {
            somaDasTaxas += listaDeTaxas[i].TaxaDeEscolha;
        }

        float sorteado = Random.Range(0, somaDasTaxas);

        somaDasTaxas = 0;

        for (i = 0; i < listaDeTaxas.Count; i++)
        {
            somaDasTaxas += listaDeTaxas[i].TaxaDeEscolha;
            if (sorteado <= somaDasTaxas && !foi)
            {
                foi = true;
                M   = PegueUmaMissao.Missao(listaDeTaxas[i]);
                AtualizaListaDeTaxas(M, 1);
            }
        }
        return(M);
    }
 public void AtualizaListaDeTaxas(Missoes aMissao, int tanto)
 {
     for (int i = 0; i < listaDeTaxas.Count; i++)
     {
         if (listaDeTaxas[i].Tipo == aMissao.Tipo)
         {
             listaDeTaxas[i] = new TaxaDeMissao()
             {
                 Level         = Mathf.Max(listaDeTaxas[i].Level + tanto, 1),
                 Tipo          = aMissao.Tipo,
                 TaxaDeEscolha = Mathf.Max(0.01f,
                                           listaDeTaxas[i].TaxaDeEscolha - (TAXA_DE_VARIACAO * (listaDeTaxas.Count - 1))
                                           )
             };
         }
         else
         {
             listaDeTaxas[i] = new TaxaDeMissao()
             {
                 Level         = listaDeTaxas[i].Level,
                 Tipo          = listaDeTaxas[i].Tipo,
                 TaxaDeEscolha = listaDeTaxas[i].TaxaDeEscolha + TAXA_DE_VARIACAO
             };
         }
     }
 }
Exemple #3
0
    public static Missoes Missao(TaxaDeMissao taxa)
    {
        Missoes M = new Missoes();

        switch (taxa.Tipo)
        {
        case TipoMissao.coleteMoedas:
            M = new ColeteMoedas(taxa.Level);
            break;

        case TipoMissao.moedasEmUnicoJogo:
            M = new MoedasEmUnicoJogo(taxa.Level);
            break;

        case TipoMissao.coleteEstaminas:
            M = new ColeteEstaminas(taxa.Level);
            break;

        case TipoMissao.estaminasEmUnicoJogo:
            M = new EstaminasEmUnicoJogo(taxa.Level);
            break;

        case TipoMissao.coleteEsferas:
            M = new ColeteEsferas(taxa.Level);
            break;

        case TipoMissao.esferasEmUnicoJogo:
            M = new EsferasEmUnicoJogo(taxa.Level);
            break;

        case TipoMissao.coleteCheckCombos:
            M = new ColeteCheckCombos(taxa.Level);
            break;

        case TipoMissao.checkCombosEmUnicoJogo:
            M = new CheckCombosEmUnicoJogo(taxa.Level);
            break;

        case TipoMissao.derroteInimigos:
            M = new DerroteInimigos(taxa.Level);
            break;

        case TipoMissao.inimigosEmUnicoJogo:
            M = new InimigosEmUnicoJogo(taxa.Level);
            break;

        case TipoMissao.somePontuacao:
            M = new SomePontuacao(taxa.Level);
            break;

        case TipoMissao.pontuacaoEmUnicoJogo:
            M = new PontuacaoEmUnicoJogo(taxa.Level);
            break;

        case TipoMissao.passeDeNivel:
            M = new PasseDeNivel(taxa.Level);
            break;

        case TipoMissao.alcanceCombo:
            M = new AlcanceCombo(taxa.Level);
            break;

        case TipoMissao.alcanceNivel:
            M = new AlcanceNivel(taxa.Level);
            break;

        default:
            Debug.Log("tipo de missão não incluido ao case");
            break;
        }

        return(M);
    }