Exemplo n.º 1
0
    IEnumerator qte(int dif)
    {
        float t = 0;

        Quicktime.EnableQuicktime(dif, 1);
        yield return(new WaitForSecondsRealtime(0.2f));

        while ((t += Time.deltaTime) < Quicktime.instance.maxTime && !qteFailed)
        {
            if (Quicktime.GetQuicktimeSucces(t))
            {
                Quicktime.DisableQuicktime();
                break;
            }
            yield return(new WaitForEndOfFrame());
        }
        if (!Quicktime.GetQuicktimeSucces(t))
        {
            qteFailed = true;
        }
        Quicktime.DisableQuicktime();
    }
Exemplo n.º 2
0
    IEnumerator attack(Vector3 startPos, Enemy e, int dif)
    {
        if (stuckOn != null)
        {
            stuckOn.GetComponent <AiEntity>().enabled = true;
            AiManager.SetNewRandomPath(stuckOn.GetComponent <AiEntity>());
            curRidgidBody.bodyType   = RigidbodyType2D.Kinematic;
            curRidgidBody            = null;
            stuckOn.gameObject.layer = LayerMask.NameToLayer("Default");
            sprRenderer.enabled      = true;
            transform.parent         = null;
        }

        for (int i = 0; i < AiManager.instance._aiEntitys.Count; i++)
        {
            print(AiManager.instance._aiEntitys[i].GetType());
            ((AiEntity)AiManager.instance._aiEntitys[i]).isWaiting = true;
        }

        attacking = true;
        float t = 0;

        while ((t += Time.deltaTime) < 0.8f)
        {
            transform.position           = Vector3.Lerp(startPos, e.transform.position, t);
            Camera.main.orthographicSize = Mathf.Lerp(minZoom, maxZoom, (minZoom - maxZoom) * t);
            // Shake camera
            Camera.main.transform.position = new Vector3(Camera.main.transform.position.x + Random.value * Time.deltaTime * shakePower, Camera.main.transform.position.y + Random.value * Time.deltaTime * shakePower, Camera.main.transform.position.z);
            yield return(new WaitForEndOfFrame());
        }
        transform.position = Vector3.Lerp(startPos, e.transform.position, 0.8f);

        for (int i = 0; i < dif; i++)
        {
            yield return(qte(dif));

            transform.position = Vector3.Lerp(startPos, e.transform.position, 0.8f + (0.2f / dif) * i);
            // Shake camera
            Camera.main.transform.position = new Vector3(Camera.main.transform.position.x + Random.value * Time.deltaTime * shakePower, Camera.main.transform.position.y + Random.value * Time.deltaTime * shakePower, Camera.main.transform.position.z);
            if (qteFailed)
            {
                SceneManager.LoadScene(2);
            }
        }
        stuckOn = e;

        if (!stuckOn.visited)
        {
            stuckOn.visited = true;
            PlayerLevelManager.instance.addExp(25 * stuckOn.ai.getEntityInfo().Tier *stuckOn.ai.getEntityInfo().Tier);
        }

        foreach (TileObject tObj in AiManager.instance._aiSystem.GetTilesByTierHigher(e.ai.getEntityInfo().Tier))
        {
            BoxCollider2D bc2D = tObj.GetComponent <BoxCollider2D>();
            if (bc2D != null)
            {
                bc2D.enabled = true;
            }
        }
        foreach (TileObject tObj in AiManager.instance._aiSystem.GetTilesByTier(e.ai.getEntityInfo().Tier))
        {
            BoxCollider2D bc2D = tObj.GetComponent <BoxCollider2D>();
            if (bc2D != null)
            {
                bc2D.enabled = false;
            }
        }

        curRidgidBody          = e.GetComponent <Rigidbody2D>();
        curRidgidBody.bodyType = RigidbodyType2D.Dynamic;
        stuckOn.GetComponent <AiEntity>().enabled = false;
        transform.parent         = stuckOn.transform;
        sprRenderer.enabled      = false;
        transform.localPosition  = Vector3.zero;
        stuckOn.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
        attacking = false;
        Quicktime.DisableQuicktime();
        foreach (AiEntity aiE in AiManager.instance._aiEntitys)
        {
            aiE.isWaiting = false;
        }
    }