Exemplo n.º 1
0
    public void MakeJump(int kPoint, WindGenerator wind)
    {
        float randomizationRange = kPoint * 0.05f;                     //+- of the distance
        float distanceFactor     = 0;                                  //Dependes of the JumpSkill property
        float windImpact         = wind.windFactor() * kPoint * 0.06f; //The Wind impact

        switch (JumpSkill)
        {
        case Skill.veryWeak:
            distanceFactor += 0.975f;
            break;

        case Skill.weak:
            distanceFactor += 0.995f;
            break;

        case Skill.average:
            distanceFactor += 1.015f;
            break;

        case Skill.good:
            distanceFactor += 1.035f;
            break;

        case Skill.veryGood:
            distanceFactor += 1.065f;
            break;

        default:
            Debug.Log("Jump Skill of the " + Name + " is out of range!");
            break;
        }
        float distance = kPoint * distanceFactor + windImpact;

        int randomization = (int)Random.Range(0, 50);

        if (randomization == 13)
        {
            distance = (Random.Range(distance - 3 * randomizationRange, distance + randomizationRange));
        }
        else if (randomization == 12)
        {
            distance = (Random.Range(distance - randomizationRange, distance + 2 * randomizationRange));
        }
        else
        {
            distance = (Random.Range(distance - randomizationRange, distance + randomizationRange));
        }

        distance = Mathf.Round(distance * 2) / 2;
        AddScores(distance, CalculatePoints(distance));
    }