Esempio n. 1
0
    // Start is called before the first frame update
    void Start()
    {
        //control player movement
        PlayerMovementScript = Player.GetComponent <PlayerMovement>();
        PlayerTriggerScript  = Player.GetComponent <PlayerTriggerDetect>();

        //control Vita dialogue , movement
        VitaDialogueScript = Vita.GetComponent <NPC_Dialogue>();
        VitaMovementScript = Vita.GetComponent <Vita_Movement>();

        //controlChangeScene
        levelLoaderScript = levelLoader.GetComponent <LevelLoader>();

        //control Vita Soul
        VitaSoulScript = VitaSoul.GetComponent <VitaSoul_particle>();


        //Defluat setting
        BookCase.transform.position = new Vector2(-8.2f, BookCase.transform.position.y);

        Player.transform.position = new Vector2(-3.58f, -1.89f);

        Vita.SetActive(false);
        VitaSoul.SetActive(true);

        VitaSoulScript.MoveToward(new Vector2(VitaSoul.transform.position.x, -0.54f));
        VitaSoulScript.MoveSpeed = 7.0f;

        //control Clue
        ClueScript = Clue.GetComponent <Clue>();


        VitaSoulScript.VitaSpriteFadeIn();
    }
Esempio n. 2
0
    // Update is called once per frame
    void Update()
    {
        //wait for scene transition
        if (AnimatorCount == 0)
        {
            StartCoroutine(AfterSceneTransistion());
            PlayerMovementScript.canMove = false;
        }

        //player move in scene
        if (AnimatorCount == 1)
        {
            VitaMovementScript.FollowObj();
            PlayerTrans.position = PlayerTrans.position + new Vector3(5.0f * Time.deltaTime, 0.0f, 0.0f);
            PlayerAni.SetFloat("Speed", 1.0f);
            StartCoroutine(PlayerMoveInScene());
        }

        //player can move and wait to trigger
        else if (AnimatorCount == 2)
        {
            VitaMovementScript.FollowObj();
            if (PlayerTriggerScript.bTrigger) //if trigger StoryTrigger
            {
                AnimatorCount++;
            }
        }

        //set player's and vita's position
        else if (AnimatorCount == 3)
        {
            PlayerMovementScript.canMove = false;
            PlayerTrans.position         = PlayerTrans.position + new Vector3(TransSpeed * Time.deltaTime, 0.0f, 0.0f);
            if (VitaTrans.position.x <= -2.35f)
            {
                VitaTrans.position = VitaTrans.position + new Vector3(TransSpeed * Time.deltaTime, 0.0f, 0.0f);
            }

            if (PlayerTrans.position.x >= 1.29f)
            {
                PlayerMovementScript.TurnFace();
                PlayerAni.SetFloat("Speed", 0.0f); //stop runing animator
                AnimatorCount++;
            }
        }

        //start dialogue
        else if (AnimatorCount == 4)
        {
            Dialogue.name         = "薇妲";
            Dialogue.sentences    = new string[2];
            Dialogue.sentences[0] = "欸?";
            Dialogue.sentences[1] = "這裡是哪裡呀?太酷了吧";
            CGMoveScript.SetRecTransformX(62.98596f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);
            AnimatorCount++;
        }

        else if (AnimatorCount == 5 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name         = "莉妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "是爺爺的密室嗎?";
            CGMoveScript.SetRecTransformX(145.7859f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);
            AnimatorCount++;
        }

        else if (AnimatorCount == 6 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name      = "薇妲";
            Dialogue.sentences = new string[1];
            CGMoveScript.SetRecTransformX(62.98596f);
            Dialogue.sentences[0] = "哇啊!我們快來探險!莉妲你看!那是什麼?";
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);
            AnimatorCount++;
        }

        else if (AnimatorCount == 7 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name         = "莉妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "不要亂碰!要是弄壞就糟了";
            CGMoveScript.SetRecTransformX(145.7859f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);
            AnimatorCount++;
        }


        else if (AnimatorCount == 8 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name         = "薇妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "欸?來不及了";
            CGMoveScript.SetRecTransformX(62.98596f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);
            AnimatorCount++;
        }

        else if (AnimatorCount == 9 && DialogueManager.bFinishDialogue)
        {
            StartCoroutine(WaitToNextAnimate(1.0f));
        }

        //open box + MagicWoundAnimate
        else if (AnimatorCount == 10)
        {
            BoxRenderer.sprite = Box_close;
            MagicWoundScript.MagicWoundAnimate();
            AnimatorCount++;
        }

        //wait next animation
        else if (AnimatorCount == 11 && MagicWoundScript.bfinishShine)
        {
            StartCoroutine(WaitToNextAnimate(1.0f));
        }


        //set vita disappear
        else if (AnimatorCount == 12 && MagicWoundScript.bfinishShine)
        {
            Vita.SetActive(false);

            Dialogue.name         = "薇妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "阿!!!!";
            CGMoveScript.SetRecTransformX(62.98596f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);

            AnimatorCount++;
        }

        //set Dialogue
        else if (AnimatorCount == 13 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name         = "莉妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "薇妲!!!";
            CGMoveScript.SetRecTransformX(145.7859f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);

            AnimatorCount++;
        }

        else if (AnimatorCount == 14 && DialogueManager.bFinishDialogue)
        {
            MagicWoundScript.MagicWoundFadeOutShine();
            AnimatorCount++;
        }

        //wait next animation
        else if (AnimatorCount == 15 && MagicWoundScript.bfinishFadeOut)
        {
            StartCoroutine(WaitToNextAnimate(0.5f));
        }

        //magicWound fallDown set
        else if (AnimatorCount == 16)
        {
            MagicWound.GetComponent <Rigidbody2D>().gravityScale = 1.0f;
            MagicWound.AddComponent <BoxCollider2D>();
            MagicWoundTrans.eulerAngles = new Vector3(0.0f, 0.0f, 53.165f);
            MagicWoundScript.ChangeShortingLayer("Player"); //stand in front of box
            AnimatorCount++;
        }

        //wait next animation
        else if (AnimatorCount == 17 && MagicWoundScript.bfinishFadeOut)
        {
            StartCoroutine(WaitToNextAnimate(2.0f));
        }

        //set Dialogue
        else if (AnimatorCount == 18)
        {
            //close magicWound collider
            MagicWound.GetComponent <BoxCollider2D>().isTrigger  = true;
            MagicWound.GetComponent <Rigidbody2D>().gravityScale = 0.0f;

            Dialogue.name         = "莉妲";
            Dialogue.sentences    = new string[2];
            Dialogue.sentences[0] = "薇妲?你去哪了?";
            Dialogue.sentences[1] = "別跟我鬧喔!你快點出來!薇妲!";
            CGMoveScript.SetRecTransformX(145.7859f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);

            AnimatorCount++;
        }

        else if (AnimatorCount == 19 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name         = "薇妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "莉妲!";
            CGMoveScript.SetRecTransformX(62.98596f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);

            AnimatorCount++;
        }

        else if (AnimatorCount == 20 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name         = "莉妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "薇妲?你在哪裡?";
            CGMoveScript.SetRecTransformX(145.7859f);
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);

            AnimatorCount++;
        }

        else if (AnimatorCount == 21 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name      = "薇妲";
            Dialogue.sentences = new string[1];
            CGMoveScript.SetRecTransformX(62.98596f);
            Dialogue.sentences[0] = "這裡!我在這裡";
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);

            AnimatorCount++;
        }

        else if (AnimatorCount == 22 && DialogueManager.bFinishDialogue)
        {
            StartCoroutine(WaitToNextAnimate(1.0f));
            VitaSoul.SetActive(true);
        }

        //Vita movement
        else if (AnimatorCount == 23 && !VitaSoulScript.bMoveFinish)
        {
            VitaSoulScript.MoveToward(new Vector2(-1.75f, -0.54f));
            //if finish move toward
            if (VitaSoulScript.bMoveFinish)
            {
                VitaSoulScript.VitaSpriteFadeIn();
                AnimatorCount++;
                VitaSoulScript.bMoveFinish = false;
            }
        }
        else if (AnimatorCount == 24)
        {
            StartCoroutine(WaitToNextAnimate(1.0f));
        }

        //set Dialogue
        else if (AnimatorCount == 25 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name      = "莉妲";
            Dialogue.sentences = new string[1];
            CGMoveScript.SetRecTransformX(145.7859f);
            Dialogue.sentences[0] = "啊!薇妲?你怎麼變成這樣?";
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);

            AnimatorCount++;
        }

        else if (AnimatorCount == 26 && DialogueManager.bFinishDialogue)
        {
            Dialogue.name      = "薇妲";
            Dialogue.sentences = new string[1];
            CGMoveScript.SetRecTransformX(62.98596f);
            Dialogue.sentences[0] = "一回過神就變成這樣啦!哈哈哈!好好玩喔";
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, VitaCV);

            VitaSoulScript.MoveSpeed = 15.0f; //set vita soul new move speed

            AnimatorCount++;
        }

        //Vita movement
        else if (AnimatorCount == 27 && DialogueManager.bFinishDialogue && !VitaSoulScript.bMoveFinish)
        {
            VitaSoulScript.MoveToward(new Vector2(-5.13f, 0.9f));
            //if finish move toward
            if (VitaSoulScript.bMoveFinish)
            {
                VitaSoulScript.bMoveFinish = false;
                AnimatorCount++;
            }
        }

        else if (AnimatorCount == 28 && !VitaSoulScript.bMoveFinish)
        {
            VitaSoulScript.MoveToward(new Vector2(4.15f, 0.96f));
            //if finish move toward
            if (VitaSoulScript.bMoveFinish)
            {
                VitaSoulScript.bMoveFinish = false;
                AnimatorCount++;
            }
        }

        else if (AnimatorCount == 29 && !VitaSoulScript.bMoveFinish)
        {
            VitaSoulScript.MoveToward(new Vector2(-6.91f, 2.89f));
            //if finish move toward
            if (VitaSoulScript.bMoveFinish)
            {
                VitaSoulScript.bMoveFinish = false;
                AnimatorCount++;
            }
        }
        else if (AnimatorCount == 30 && !VitaSoulScript.bMoveFinish)
        {
            VitaSoulScript.MoveToward(new Vector2(-1.75f, -0.54f));
            //if finish move toward
            if (VitaSoulScript.bMoveFinish)
            {
                VitaSoulScript.bMoveFinish = false;
                AnimatorCount++;
            }
        }

        //set Dialogue
        else if (AnimatorCount == 31)
        {
            Dialogue.name         = "莉妲";
            Dialogue.sentences    = new string[1];
            Dialogue.sentences[0] = "別鬧了!快下來,我們去找爺爺,他一定知道發生什麼事";
            FindObjectOfType <DialogueManager>().StartDialogue(Dialogue, PlayerCV);

            VitaSoulScript.MoveSpeed = 10.0f; //set vita soul new move speed

            //set trigger name Wall_left
            PlayerTriggerScript.TriggerName = "Wall_left"; //player wait for trigger's name


            AnimatorCount++;
        }

        else if (AnimatorCount >= 32 && DialogueManager.bFinishDialogue)
        {
            PlayerMovementScript.canMove = true;
            VitaSoulScript.FollowObj();
            if (PlayerTriggerScript.bTrigger)
            {
                levelLoaderScript.LoadNextLevel("StudyRoom");
            }
        }
    }