Exemple #1
0
    // public void ResetRecord(){
    //     record = 0.0f;
    //     SetRecord();
    // }

    public void ResetBoat()
    {
        waveLine.CalSpeed(0.0f);

        isFinish = false;

        boatPowerStatus = BoatPowerStatus.NoPower;

        waterPower = 0.001f;

        record = 0.0f;

        maxRecord = 0.0f;

        limitedPowerTime = 1.0f;

        powerLevel = 0;

        bestSpeed = 0.0f;

        avgSpeed = 0.0f;

        totalTime = 0.0f;

        SetRecord();
    }
Exemple #2
0
    void Update()
    {
        //after coroutine 3s, count time



        float speed = 0.0f;

        for (int j = 0; j < chairMovementsList.Count; j++)
        {
            speed += chairMovementsList[j].speed;
            chairMovementsList[j].speed = 0.0f;
        }


        //when finished
        if (record <= 0.0f)
        {
            FinishRowing();
            isFinish = true;
        }



        //cal speed and record time
        if (!isFinish)
        {
            totalTime += Time.deltaTime;


            for (int i = 0; i < chairMovementsList.Count; i++)
            {
                if (chairMovementsList[i].chairStatus == ChairMovement.ChairStatus.Rowing)
                {
                    boatPowerStatus = BoatPowerStatus.Power;
                    //Do Power
                    totalSpeed += speed * 0.01f;
                    if (speed > 0.1f)
                    {
                        totalSpeed *= (1.0f + powerLevel * 0.01f);
                    }
                    break;
                }
                else
                {
                    boatPowerStatus = BoatPowerStatus.NoPower;
                }
            }
        }



        totalSpeed -= waterPower;

        if (totalSpeed < 0.0f)
        {
            totalSpeed = -waterPower;
        }
        else if (totalSpeed > 1.0f)
        {
            //if total speed is begger than 1.0f, it too much.......
            Debug.Log("Over Pace" + totalSpeed);
            totalSpeed = 1.0f;
        }


        powerSpeed.text = string.Format("{0:F0} watt", totalSpeed * 1000);
        waveLine.CalSpeed(totalSpeed);

        record -= totalSpeed;
        SetRecord();

        //best speed
        if (bestSpeed < totalSpeed * 1000)
        {
            bestSpeed = totalSpeed * 1000;
        }

        //avg speed
        if (avgSpeed < 0.01f)
        {
            avgSpeed = totalSpeed * 1000;
        }
        else if (!isFinish)
        {
            avgSpeed += totalSpeed * 1000;
            avgSpeed /= 2;
        }


        //power coeffactor
        if (isCatch)
        {
            powerCoeffcient.fillAmount -= 1.0f / (powerCoeffcientTime) * Time.deltaTime;

            if (powerCoeffcient.fillAmount <= 0.01f)
            {
                isCatch = false;
                SetPowerLevel();
            }
        }
        else
        {
            //count time 값이 들어가야한다.
            powerCoeffcient.fillAmount = 1.0f;
        }
    }