Exemple #1
0
 // Update is called once per frame
 void Update()
 {
     if (isTriggered)
     {
         ChangeMusic();
         //player.GetComponent<Rigidbody2D> ().velocity = Vector2.zero;
         if (!arrived)
         {
             Physics2D.IgnoreCollision(boss.GetComponent <Collider2D> (), player.GetComponent <Collider2D> (), true);
             RunToRight();
             boss.transform.position = Vector3.MoveTowards(boss.transform.position, endBossPosition.position, Time.deltaTime * moveSpeed);
             if (boss.transform.position == endBossPosition.position)
             {
                 arrived = true;
                 bossCtrlr.Flip();
                 bossCtrlr.Run(false);
             }
         }
         else if (arrived && !isBossInitialized)
         {
             Physics2D.IgnoreCollision(boss.GetComponent <Collider2D> (), player.GetComponent <Collider2D> (), false);
             isBossInitialized = true;
         }
         else if (arrived && isBossInitialized)
         {
             //Time.timeScale = 1f;
             Destroy(this.gameObject);
         }
     }
 }
    IEnumerator EndingAnimation()
    {
        // Boss wake up and flip to player
        PlaySound(scaryBossAwake);
        bossAnim.SetTrigger("wakeUp");
        yield return(new WaitForSeconds(2f));

        // Boss start absorbing
        bossAnim.SetTrigger("absorb");
        yield return(new WaitForSeconds(2.5f));

        // Cat "disapear"
        SpriteRenderer[] playerSprites = player.GetComponentsInChildren <SpriteRenderer> ();
        foreach (SpriteRenderer sprite in playerSprites)
        {
            sprite.enabled = false;
        }
        TrailRenderer tr = player.GetComponentInChildren <TrailRenderer>();

        if (tr)
        {
            tr.enabled = false;
        }

        // Boss stop absorbing and flip
        bossCtrlr.StopAbsorb();
        bossCtrlr.StopAudio();
        yield return(new WaitForSeconds(1f));

        bossCtrlr.Flip();

        // Boss run to car
        bossCtrlr.Run();
        while (boss.transform.position != doorPosition.transform.position)
        {
            boss.transform.position   = Vector3.MoveTowards(boss.transform.position, doorPosition.position, Time.deltaTime * 3f);
            player.transform.position = Vector3.MoveTowards(player.transform.position, doorPosition.position, Time.deltaTime * 3.5f);
            yield return(null);
        }
        bossCtrlr.Run(false);

        // Boss open rear door and drop stuff
        vanAnim.SetTrigger("openDoor");
        PlaySound(carDoorSound);
        yield return(new WaitForSeconds(1f));

        boss.transform.Find("Body/Weapon").gameObject.SetActive(false);
        boss.transform.Find("Body/Bag").gameObject.SetActive(false);
        yield return(new WaitForSeconds(1.6f));

        PlaySound(carDoorSound);

        // Boss go to drive seat
        bossCtrlr.Run();
        while (boss.transform.position != drivingPosition.position)
        {
            boss.transform.position = Vector3.MoveTowards(boss.transform.position, drivingPosition.position, Time.deltaTime * 1.5f);
            yield return(null);
        }
        bossCtrlr.Run(false);
        boss.transform.Find("Body/UpLeg").gameObject.SetActive(false);
        boss.transform.Find("Body/UpLeg2").gameObject.SetActive(false);
        PlaySound(carDoorSound);
        boss.transform.parent = van.transform;
        yield return(new WaitForSeconds(1f));

        // Van start
        vanAnim.SetTrigger("startRolling");
        PlaySound(carIdleSound, true);

        // Van go to left
        while (van.transform.position != vanLeftPosition.position)
        {
            van.transform.position = Vector3.MoveTowards(van.transform.position, vanLeftPosition.position, Time.deltaTime * 1.5f);
            yield return(null);
        }

        // Van flip
        Vector3 newScale = new Vector3(van.transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);

        van.transform.localScale = newScale;

        // Van go to right faster
        PlaySound(carIdleSound, true, 1.2f);
        while (van.transform.position != vanRightPosition.position)
        {
            van.transform.position = Vector3.MoveTowards(van.transform.position, vanRightPosition.position, Time.deltaTime * 7f);
            yield return(null);
        }

        // Score panel
        audioSource.Stop();
        guic.EndGame();
    }