Esempio n. 1
0
    public void AddExperiencia(ATRIBUTO atributo, int experiencia)
    {
        CharAttribute atribute       = attributes[atributo];
        int           thisExperience = GetFixedExperience(level);

        atribute.AddExperiencie(experiencia);

        Debug.Log("Has ganado " + experiencia + " de experiencia en el atributo " + atributo.ToString() + ". Total experiencia: " + atribute.experiencia + "/" + thisExperience);

        if (atribute.experiencia > thisExperience)
        {
            int newExperience = GetFixedExperience(level + 1);

            float porc = GetAumento(level, thisExperience, newExperience);
            atribute.AddLevel(newExperience);

            Debug.Log("Ha subido el atributo " + atributo + "Al nivel " + atribute.level);

            foreach (KeyValuePair <ATRIBUTO, CharAttribute> value in attributes)
            {
                if (value.Value.hasExperience)
                {
                    value.Value.RecalculateExperience(porc);
                }
            }

            level++;
        }

        //Actualizar el gráfico.
        actionUpdate();
    }
Esempio n. 2
0
    public CharAttribute(ATRIBUTO atributo)
    {
        this.atributo = atributo;
        experiencia   = 0;
        level         = 5;
        hasExperience = false;

        isActive = true;
    }
Esempio n. 3
0
    public CharAttribute(ATRIBUTO atributo, int nivel, int experiencia)
    {
        this.atributo    = atributo;
        this.experiencia = experiencia;
        level            = nivel;
        hasExperience    = true;

        isActive = true;
    }
    public bool CanDoAction(ATRIBUTO atributo)
    {
        for (int i = 0; i < barraAtributo.Length; i++)
        {
            if (barraAtributo[i].estado == atributo && barraAtributo[i].toggleActivado != null)
            {
                return(barraAtributo[i].toggleActivado.isOn);
            }
        }

        return(true);
    }
Esempio n. 5
0
    public float GetPorc(ATRIBUTO atributo)
    {
        int nivel            = GetLevel(atributo);
        int actualExperience = GetExperience(atributo);

        int nextLevel = GetFixedExperience(nivel + 1);

        if (nextLevel == 0)
        {
            return(1);
        }

        return(((float)actualExperience) / ((float)nextLevel));
    }
 public void ResetObject()
 {
     atributo             = StartAtributo;
     transform.position   = StartPosition;
     transform.rotation   = StartRotation;
     transform.localScale = StartScale;
     rb.useGravity        = startGravity;
     rb.velocity          = StartVelocity;
     rb.angularVelocity   = Vector3.zero;
     if (GetComponent <BoxCollider>())
     {
         this.GetComponent <BoxCollider>().material = normal;
     }
     if (GetComponent <SphereCollider>())
     {
         this.GetComponent <SphereCollider>().material = normal;
     }
     GetComponentInChildren <MeshRenderer>().material = StartMaterial;
 }
    public void CambiarAtributo(int atr)
    {
        if (atr != 0)
        {
            GameManager.GM.SetObjeto(this.gameObject);
        }
        switch (atr)
        {
        case 1:
        {
            atributo = ATRIBUTO.Iman;
            GetComponentInChildren <MeshRenderer>().material = GameManager.GM.TypesM[0];
            Debug.Log("Soy muy atractivo ;)");
        }
        break;

        case 2:
        {
            achivements.CheckAchivement(0);
            atributo = ATRIBUTO.Girar;
            GetComponentInChildren <MeshRenderer>().material = GameManager.GM.TypesM[1];
            Debug.Log("Estoy girando yay");
            Girar();
        }
        break;

        case 3:
        {
            atributo = ATRIBUTO.Rebotable;
            GetComponentInChildren <MeshRenderer>().material = GameManager.GM.TypesM[2];
            Rebotable();
        }
        break;

        case 4:
        {
            achivements.CheckAchivement(2);
            atributo      = ATRIBUTO.Gravedad;
            rb.useGravity = !rb.useGravity;
            if (!rb.useGravity)
            {
                rb.AddForce(Vector3.up, ForceMode.Impulse);
            }
            GetComponentInChildren <MeshRenderer>().material = GameManager.GM.TypesM[3];
            Debug.Log("Aqui todos Flotan");
        }
        break;

        default:
        {
            atributo = ATRIBUTO.Neutral;
            GetComponentInChildren <MeshRenderer>().material = StartMaterial;
            Debug.Log("Todo vuelve a la normalidad");
        }
        break;
        }

        if (atributo != ATRIBUTO.Gravedad)
        {
            rb.useGravity = startGravity;
        }

        if (atributo != ATRIBUTO.Iman)
        {
            if (magnetico.Length > 0)
            {
                achivements.CheckAchivement(3);
                for (int i = 0; i < magnetico.Length; i++)
                {
                    //magnetico[i].GetComponent<Rigidbody>().useGravity = startGravity;
                }
            }
        }
        if (atributo != ATRIBUTO.Rebotable)
        {
            if (GetComponent <BoxCollider>())
            {
                this.GetComponent <BoxCollider>().material = normal;
            }
            if (GetComponent <SphereCollider>())
            {
                this.GetComponent <SphereCollider>().material = normal;
            }
        }
    }
Esempio n. 8
0
 // Añade la experiencia a la acción.
 public void SetExperience(ATRIBUTO attribute, int quantity)
 {
     atributo   = attribute;
     experience = quantity;
 }
Esempio n. 9
0
 public int GetExperience(ATRIBUTO atributo)
 {
     return(attributes[atributo].experiencia);
 }
Esempio n. 10
0
 public int GetLevel(ATRIBUTO atributo)
 {
     return(attributes[atributo].level);
 }
Esempio n. 11
0
 public int this [ATRIBUTO atributo] {
     get {
         return(GetExperience(atributo));
     }
 }
Esempio n. 12
0
 public bool IsActive(ATRIBUTO atributo)
 {
     return(attributes[atributo].isActive);
 }
Esempio n. 13
0
 public void SetActive(ATRIBUTO atributo, bool actived)
 {
     attributes[atributo].SetActive(actived);
 }