public static AtributosBase distribuirPontosMinion(int level, AtributosBase atributosBase, TipoPlayer.ClasseInfo classeInfo)
 {
     pointsPerLevel = 1.5f;
     totalPoints    = Mathf.FloorToInt(pointsPerLevel * level);
     atributosBase  = distribuirPontos(atributosBase, classeInfo);
     return(atributosBase);
 }
        private static AtributosBase distribuirPontos(AtributosBase atributosBase, TipoPlayer.ClasseInfo classeInfo)
        {
            AtributoPref[] atributosPref;
            int            totalAtributos = atributosBase.totalAtributos();
            int            forca          = atributosBase.Forca;
            int            constituicao   = atributosBase.Constituicao;
            int            destreza       = atributosBase.Destreza;
            int            inteligencia   = atributosBase.Inteligencia;

            // Adiciona os AtributosPref na ordem de preferencia.
            if (classeInfo.tipoAtaque.Equals(TipoAtaque.CORPO_A_CORPO))
            {
                atributosPref = new AtributoPref[] { AtributoPref.FORCA, AtributoPref.CONSTITUICAO, AtributoPref.DESTREZA, AtributoPref.INTELIGENCIA };
            }
            else if (classeInfo.tipoAtaque.Equals(TipoAtaque.ATAQUE_A_DISTANCIA))
            {
                atributosPref = new AtributoPref[] { AtributoPref.DESTREZA, AtributoPref.INTELIGENCIA, AtributoPref.CONSTITUICAO };
            }
            else
            {
                atributosPref  = new AtributoPref[] { AtributoPref.INTELIGENCIA, AtributoPref.DESTREZA, AtributoPref.CONSTITUICAO };
                totalAtributos = inteligencia + destreza + constituicao;
            }
            // Distribui os pontos
            while (totalPoints > 0)
            {
                foreach (AtributoPref atributoPref in atributosPref)
                {
                    if (atributoPref.Equals(AtributoPref.FORCA))
                    {
                        forca += pointsTo(totalAtributos, forca);
                    }
                    else if (atributoPref.Equals(AtributoPref.CONSTITUICAO))
                    {
                        constituicao += pointsTo(totalAtributos, constituicao);
                    }
                    else if (atributoPref.Equals(AtributoPref.DESTREZA))
                    {
                        destreza += pointsTo(totalAtributos, destreza);
                    }
                    else if (atributoPref.Equals(AtributoPref.INTELIGENCIA))
                    {
                        inteligencia += pointsTo(totalAtributos, inteligencia);
                    }
                    if (totalPoints == 0)
                    {
                        break;
                    }
                }
            }

            return(new AtributosBase(forca, constituicao, destreza, inteligencia));
        }
Esempio n. 3
0
 private void addAtributos()
 {
     atributosBase = new AtributosBase(Classe);
     if (level > 0)
     {
         if (Classe.isNPC)
         {
             if (Classe.isBoss)
             {
                 atributosBase = DistribuidorAtributos.distribuirPontosBoss(level, atributosBase, Classe);
             }
             else
             {
                 atributosBase = DistribuidorAtributos.distribuirPontosMinion(level, atributosBase, Classe);
             }
         }
         else
         {
             atributosBase = DistribuidorAtributos.distribuirPontosPlayer(level, atributosBase, Classe);
         }
     }
 }