Ejemplo n.º 1
0
    void GetNextSkill()
    {
        if (available_skills.Length == 0 || sum_of_weights == 0)
        {
            return;
        }

        int rng = Random.Range(0, sum_of_weights);

        for (int i = 0; i < available_skills.Length; i++)
        {
            rng -= available_skills[i].weight;
            if (rng < 0)
            {
                next_skill = EnemySkill.GetSkill(available_skills[i].skill);
                break;
            }
        }
        if (next_skill == null)
        {
            next_skill = EnemySkill.GetSkill(available_skills[available_skills.Length - 1].skill);
        }

        if (!next_skill.CanUse(this))
        {
            next_skill = new Tantrum();
        }

        skill_image.sprite = _skill_img.Get(next_skill.type);
        _m.SetHelpText(placement, _skill_img.Desc(next_skill.type));
    }