Exemplo n.º 1
0
 void Start()
 {
     _currentState = LightEaterState.peek;
     GetComponentInChildren <Renderer>().sharedMaterial = GetComponentInChildren <Renderer>().material;
     ltMat = GetComponentInChildren <Renderer>().sharedMaterial;
     ltMat.SetFloat("_GlowIntensity", glowIntensity);
 }
Exemplo n.º 2
0
    void HandleEatingState(Transform molPosition)
    {
        _currentState = LightEaterState.eating;
        molPosition.GetComponent <Moluvusha>().EatMoluvusha(eatingTime);

        anim.SetTrigger(eatingHashTrigger);
    }
Exemplo n.º 3
0
    public void SetLightEaterMoluvusha(Transform closestMoluvusha)
    {
        if (currentState != LightEaterState.eating)
        {
            _closestMoluvusha = closestMoluvusha;

            currentState = _closestMoluvusha ?  LightEaterState.chasing : LightEaterState.peek;
        }
    }
Exemplo n.º 4
0
    void HandleEatingState(Transform molPosition)
    {
        _currentState = LightEaterState.eating;
        molPosition.GetComponent <Moluvusha>().EatMoluvusha(eatingTime);

        fixedEatingPosition = molPosition.position;

        eatTimeFlag = Time.fixedTime + eatingTime;
        StartCoroutine(IntensityCoroutine(1.0f, 0.1f));
    }
Exemplo n.º 5
0
 void HandleRetract()
 {
     timeInterpolate = GameUtility.changeTowards(timeInterpolate, 0.0f, accelerationSpeed, Time.fixedDeltaTime);
     if (timeInterpolate < 0.05f)
     {
         outVFX.SetActive(false);
         currentState = LightEaterState.hide;
         if (anim)
         {
             anim.SetTrigger(hideTrigger);
         }
     }
 }
Exemplo n.º 6
0
    void FixedUpdate()
    {
        switch (_currentState)
        {
        case LightEaterState.peek:
            targetHead.localPosition = new Vector3(GameUtility.changeTowards(targetHead.localPosition.x, 0.0f, Mathf.Abs(accelerationSpeed), Time.fixedDeltaTime),
                                                   GameUtility.changeTowards(targetHead.localPosition.y, peekHeightPercentage * startingDistance, Mathf.Abs(accelerationSpeed), Time.fixedDeltaTime),
                                                   GameUtility.changeTowards(targetHead.localPosition.z, 0.0f, Mathf.Abs(accelerationSpeed), Time.fixedDeltaTime));

            break;

        case LightEaterState.chasing:
            Vector3 dirNormal = (targetHead.position - _closestMoluvusha.position).normalized;

            targetHead.position = new Vector3(GameUtility.changeTowards(targetHead.position.x, _closestMoluvusha.position.x, Mathf.Abs(accelerationSpeed * dirNormal.x), Time.fixedDeltaTime),
                                              GameUtility.changeTowards(targetHead.position.y, _closestMoluvusha.position.y, Mathf.Abs(accelerationSpeed * dirNormal.y), Time.fixedDeltaTime),
                                              GameUtility.changeTowards(targetHead.position.z, _closestMoluvusha.position.z, Mathf.Abs(accelerationSpeed * dirNormal.z), Time.fixedDeltaTime));

            if ((_closestMoluvusha.position - targetHead.position).magnitude < 1.0f)
            {
                HandleEatingState(_closestMoluvusha);
            }

            break;

        case LightEaterState.eating:
            Vector3 dirNormal2 = (targetHead.position - fixedEatingPosition).normalized;

            if (Time.fixedTime > eatTimeFlag)
            {
                _currentState = LightEaterState.peek;
            }
            else
            {
                targetHead.position = new Vector3(GameUtility.changeTowards(targetHead.position.x, fixedEatingPosition.x, Mathf.Abs(accelerationSpeed * dirNormal2.x), Time.fixedDeltaTime),
                                                  GameUtility.changeTowards(targetHead.position.y, fixedEatingPosition.y, Mathf.Abs(accelerationSpeed * dirNormal2.y), Time.fixedDeltaTime),
                                                  GameUtility.changeTowards(targetHead.position.z, fixedEatingPosition.z, Mathf.Abs(accelerationSpeed * dirNormal2.z), Time.fixedDeltaTime));
            }
            break;

        default:
            break;
        }

//        ResimulateBonePosition((targetHead.position - skeletonObject.position).magnitude);
        skeletonObject.localScale = new Vector3(skeletonObject.localScale.x, Mathf.Min(1.0f, (skeletonObject.position - targetHead.position).magnitude / startingDistance), skeletonObject.localScale.z);
//        ResimulateBoneScale((targetHead.position - skeletonObject.position).magnitude);

        glowIntensity = GameUtility.changeTowards(glowIntensity, 0.0f, 1.0f / eatingTime, Time.fixedDeltaTime);
        ltMat.SetFloat("_GlowIntensity", glowIntensity);
    }
Exemplo n.º 7
0
 void HandleEating()
 {
     if (Time.time > eatFlag + timeToEat)
     {
         currentState = LightEaterState.retract;
         if (anim)
         {
             anim.SetTrigger(retractTrigger);
         }
     }
     else
     {
         if (targetMoluvusha)
         {
             targetPoint.transform.position = targetMoluvusha.transform.position;
             anim.SetFloat(moluvushaSize, Mathf.Clamp01(targetMoluvusha.transform.lossyScale.x));
         }
     }
 }
Exemplo n.º 8
0
    void HandleHide()
    {
        if (targetMoluvusha && isEnableChasing)
        {
            currentState = LightEaterState.chasing;

            targetPoint.transform.position = targetMoluvusha.transform.position;

            outVFX.SetActive(true);

            if (anim)
            {
                anim.SetTrigger(moveTrigger);
            }
        }
        else
        {
            timeInterpolate = GameUtility.changeTowards(timeInterpolate, 0.0f, accelerationSpeed, Time.fixedDeltaTime);
        }
    }
Exemplo n.º 9
0
    void HandleChasing()
    {
        if (targetMoluvusha)
        {
//            Vector3 reverseTanNorm = -1.0f * bezierScript.GetTangentAt(0.05f).normalized;
//            Vector3 reverseTan = new Vector3(-2.0f * reverseTanNorm.x / reverseTanNorm.y,-2.0f,0.0f);
//            transform.position = startPoint.transform.position + reverseTan;

            targetPoint.transform.position = targetMoluvusha.transform.position;

            timeInterpolate = GameUtility.changeTowards(timeInterpolate, 1.0f, accelerationSpeed, Time.fixedDeltaTime);
            if (timeInterpolate >= 0.95f)
            {
                eatFlag      = Time.time;
                currentState = LightEaterState.eating;

                targetMoluvusha.GetComponent <Moluvusha>().EatMoluvusha(timeToEat);

                if (ltMat)
                {
                    ltMat.SetGlowIntensity(1.0f);
                }
                if (anim)
                {
                    anim.SetTrigger(eatTrigger);
                }
            }
        }
        else
        {
            currentState = LightEaterState.retract;
            if (anim)
            {
                anim.SetTrigger(retractTrigger);
            }
        }
    }