예제 #1
0
    IEnumerator CloseDoor(float time)
    {
        ///播放关门动画,出现对话框
        //直接关上,窗口没有动画
        deactiveButtons = true;
        AudioManager.PlayAudio(AudioType.Machine_CloseDoor);


        machineOccupied.SetActive(true);
        KararaTalk(EmojiOpenDoor);
        ClothUiAnimator.SetTrigger("StartClosing");
        // ClothUI.SetActive(false);
        float t = ClothUiAnimator.GetCurrentAnimatorClipInfo(0).Length;

        yield return(new WaitForSeconds(t));

        MachineDoor.sprite = closeDoor;

        yield return(new WaitForSeconds(time));

        if (pickedClothNum != 3)
        {
            Hint2D.SetActive(false);

            HintUI.SetActive(true);
        }
        deactiveButtons = false;
    }
예제 #2
0
    IEnumerator JumpToFish()
    {
        deactiveButtons = true;
        inLoop          = true;

        yield return(new WaitForSeconds(0.3f));

        Show(scream);
        // CloseMachine();

        HintUI.SetActive(false);
        yield return(new WaitForSeconds(0.3f));

        TutorialCameraController.ChangeCameraSpeed(5f);
        TutorialCameraController.GotoPage(1);
        Hide(scream);

        forwardLater = false;
        FishTalk("CloseDoor", true);

        deactiveButtons = false;

        TutorialCameraController.allowScroll = true;
        TutorialCameraController.targetPage  = 2;
    }
예제 #3
0
    IEnumerator OpenDoor(float time)
    {
        ///播放开门动画,出现对话框
        machineOccupied.SetActive(false);
        MachineDoor.sprite = openDoor;

        HintUI.SetActive(false);
        // if (deactiveButtons)
        // {
        //     Hint2D.SetActive(false);
        // }

        if (pickedClothNum != 3)
        {
            Hint2D.SetActive(false);
        }
        yield return(new WaitForSeconds(time));

        // ClothUI.SetActive(true);
        ClothUiAnimator.SetTrigger("StartShowing");

        yield return(new WaitForSeconds(1f));//等动画播完

        Hint2D.SetActive(true);
        deactiveButtons = false;//打开过程有一定时间,到时间前不可再次点击
    }
예제 #4
0
        private void PopulateControls()
        {
            GamePackageViewModelBinder.ManuelElements.Clear();
            if (_gameBoard == null)
            {
                throw new BasicBlankException("Never had board to populate controls.  Rethink");
            }
            var list = _gameBoard.GuessList;

            _grid.Children.Clear();
            _grid.RowDefinitions.Clear();
            if (list.Count == 0)
            {
                throw new BasicBlankException("The guess list must be populated to begin with");
            }
            if (list.Count == 0)
            {
                return;
            }
            int x = 0;

            AddAutoRows(_grid, list.Count);
            list.ForEach(firstGuess =>
            {
                GuessUI thisUI = new GuessUI();
                AddControlToGrid(_grid, thisUI, x, 0);
                thisUI.Init(firstGuess);
                HintUI thisHint = new HintUI();
                thisHint.Margin = new Thickness(5, 0, 0, 0);
                AddControlToGrid(_grid, thisHint, x, 1);
                thisHint.Init(firstGuess);
                x++;
            });
        }
예제 #5
0
 private void Awake()
 {
     if (instance != null)
     {
         return;
     }
     instance = this;
 }
예제 #6
0
    public void ReturnYes()
    {
        //ui消失
        Notice.SetActive(false);
        HintUI.SetActive(false);

        StartCoroutine(PreReturn());
    }
예제 #7
0
    IEnumerator ReturnNoAfter()
    {
        yield return(new WaitForSeconds(0.3f));

        //关门
        HintUI.SetActive(true);
        MachineDoor.sprite = closeDoor;
        AudioManager.PlayAudio(AudioType.Machine_CloseDoor);
    }
예제 #8
0
    IEnumerator ReturnPrep()
    {
        yield return(new WaitForSeconds(2f));//鱼说完话后等两秒

        TutorialCameraController.GotoPage(2);
        yield return(new WaitForSeconds(1f));

        HintUI.SetActive(true);
        HintUI.transform.localPosition = HintPosBag;
        returning = true;
    }
예제 #9
0
 private void Awake()
 {
     if (singleton != null)
     {
         Destroy(gameObject);
     }
     else
     {
         singleton = this;
     }
 }
예제 #10
0
    void AfterWash()
    {
        //myMachineState = MachineState.Finish;
        machineFull.SetActive(false);
        machineEmpty.SetActive(true);
        machineOccupied.SetActive(true);

        EmojiBubble.SetActive(true);
        KararaTalk(EmojiOpenDoor);

        HintUI.SetActive(true);
        HintUI.transform.localPosition = MachinePos;
    }
예제 #11
0
    public void ClickMachine()
    {
        if (deactiveButtons || stepCounter < 5) //确保在没进行到洗衣机的时候洗衣机不能点
        {
            //播放“du”声音
            AudioManager.PlayAudio(AudioType.No);
            return;
        }

        switch (myMachineState)
        {
        case MachineState.Empty:
            AudioManager.PlayAudio(AudioType.Machine_OnOff);
            AudioManager.PlayAudio(AudioType.Machine_Washing);
            Debug.Log("start washing");

            machineFull.SetActive(true);
            machineEmpty.SetActive(false);
            HintUI.SetActive(false);
            timer          = 0;
            myMachineState = MachineState.Washing;

            StartCoroutine(StopTimerAndForward());
            //进入找到手机的部分
            // forwardOneStep = true;

            break;

        case MachineState.Finish:
            if (deactiveButtons)
            {
                return;
            }
            if (!machineOpen)
            {
                OpenMachine();
            }
            else
            {
                CloseMachine();
            }

            //如果第二次打开了洗衣机门,鱼要阻止
            if (stepCounter == 8)
            {
                Show(scream);
                FishTalk("Open2ndTime", true);
            }
            break;
        }
    }
예제 #12
0
    public void ClickBag()
    {
        if (deactiveButtons)
        {
            return;
        }

        bagClick++;
        Debug.Log("Bag click " + bagClick.ToString());

        if (bagClick == 1)
        {
            // AudioManager.AdjustPitch(AudioType.Bag_Phase1, 0.5f);
            AudioManager.PlayAudio(AudioType.Bag_Phase1);
            StartCoroutine(BeforeWash());
        }

        else if (bagClick == 2)
        {
            // AudioManager.AdjustPitch(AudioType.Bag_Phase1, 0.6f);
            AudioManager.PlayAudio(AudioType.Bag_Phase1);
            HintUI.SetActive(false);//点完包后提示消失一会儿,等洗衣机开门动画播完之后再出现在洗衣机上

            ThrowClothToMachine();
        }
        else
        {
            if (inLoop)
            {
                //du地一声
                AudioManager.PlayAudio(AudioType.No);
                bagClick = 2;
                StartCoroutine(ChangeFace());
            }

            else if (returning)
            {
                //todo:还包的声音
                AudioManager.PlayAudio(AudioType.Bag_Phase1);
                HintUI.SetActive(false);
                StartCoroutine(ShowReturnNotice());
            }
            else
            {
                bagClick = 2;
            }
        }
    }
예제 #13
0
    public void ClickClothUI(int slotNum)
    {
        if (deactiveButtons)
        {
            return;
        }

        //已经穿上工作服了之后,针对放回洗衣机的那件衣服,不可以再拿了
        if (stepCounter > 10)
        {
            return;
        }
        //todo: 有个震动或者其他提示

        pickedClothNum++;
        //点的衣服
        clothSlotTable[slotNum].SetActive(false);
        clothUIAvailable[slotNum] = false;

        for (int i = 0; i < clothUIAvailable.Length; i++)
        {
            if (clothUIAvailable[i])
            {
                ChangeHintPos(ClothUIPos[i], 0);
                break;
            }
        }

        if (pickedClothNum == 3)
        {
            // ChangeHintPos(ClothUIPos1, 0);

            machineOccupied.SetActive(false);
            machineFront.sprite = emptyImg;

            Hint2D.SetActive(false);
            HintUI.SetActive(false);

            inLoop = false;

            StartCoroutine(PickedAllCloth(0.2f));
        }
    }
예제 #14
0
    IEnumerator PreWash()
    {
        //洗衣机开门,衣服进去,又关门
        yield return(new WaitForSeconds(0.2f));

        MachineDoor.sprite = openDoor;

        yield return(new WaitForSeconds(0.2f));

        machineFront.sprite = fullImg;

        yield return(new WaitForSeconds(0.2f));

        MachineDoor.sprite = closeDoor;
        AudioManager.PlayAudio(AudioType.Machine_CloseDoor);

        yield return(new WaitForSeconds(0.2f));//等一会儿再出现提示ui

        HintUI.transform.localPosition = MachinePos;
        HintUI.SetActive(true);

        forwardOneStep = true;
    }
예제 #15
0
 private void BagOccur()
 {
     HintUI.SetActive(true);
     clothBag.SetActive(true);
 }
예제 #16
0
    // Update is called once per frame
    void Update()
    {
        if (TutorialTransition.TransitionStage == 3)
        {
            //set inactive
            if (TutorialTransition.TrainStart)
            {
                TutorialTransition.TrainStart.SetActive(false);
            }
            TutorialTransition.ResetStage1();
            clothBag.SetActive(true);



            print("TutorialTransition =" + 3);
            Hide(TutorialTransition.TransparentButton);
            MainCamera.GetComponent <Camera>().orthographicSize = 5;
            MainCamera.GetComponent <RectTransform>().position  = new Vector3(17.5f, 0, -10f);
            TutorialTransition.trainWithWindow.SetActive(false);

            TutorialTransition.TransitionStage = 4;
            //正式开始,进入车厢
            StartCoroutine(ShowExclamation());
        }

        if (!timerStop)
        {
            if (myMachineState == MachineState.Washing)
            {
                CalculateTime();
            }

            timer += Time.deltaTime;
        }

        //在inventory里穿衣服
        //穿上工作服>>穿上鞋>>>鱼开始让人还衣服
        if (isWearingClothNum == 3 && !longTap)
        {
            longTap = true;
            StartCoroutine(LongTap());
        }

        //还掉鞋之后出现返回地铁按钮
        if (putClothBack && stepCounter == 10)
        {
            forwardOneStep = true;
        }


        if (flashing)
        {
            Flashlight.alpha = Flashlight.alpha - Time.deltaTime;
            if (Flashlight.alpha < 0)
            {
                Flashlight.alpha = 0;
                flashing         = false;
            }
        }

        //在screen1永远不显示fish scream
        if (TutorialCameraController.currentPage == 1)
        {
            Hide(scream);
        }


        if (inLoop && TutorialCameraController.currentPage == 4)
        {
            TutorialCameraController.JumpToPage(3);
            Debug.Log("what's going on????");
        }



        if (TutorialCameraController.reachTarget)
        {
            Debug.Log("reach! manager");
            Hide(scream);
            ScrollHint.SetActive(false);
            TutorialCameraController.reachTarget = false;


            if (scrollTeaching)
            {
                TutorialCameraController.allowScroll = false;

                forwardOneStep = true;
            }

            else if (inLoop && TutorialCameraController.targetPage == 2)
            {   // 前提
                Debug.Log("前提");

                if (!machineOpen)
                {
                    Debug.Log("前提");
                    EmojiBubble.SetActive(true);
                    KararaTalk(EmojiOpenDoor);
                    HintUI.SetActive(true);
                }

                TutorialCameraController.targetPage = 1;
            }
            else if (inLoop && TutorialCameraController.targetPage == 1)
            {
                TutorialCameraController.targetPage = 2;

                forwardLater = false;
                if (machineOpen)
                {
                    FishTalk("CloseDoor", true);
                }
                else
                {
                    FishTalk("Right", true);
                }
            }
            else if (inLoop && TutorialCameraController.currentPage == 3)
            {
                TutorialCameraController.JumpToPage(2);
            }
            else if (TutorialCameraController.targetPage == 1)
            {
                //FishTalk("Return this bag!",true);
                // after ins ->return prep
            }

            TutorialCameraController.targetPage = -1;
        }

        //if(currentFT.isPlaying)
        //{
        //    FishTalkNextSentence();
        //}

        //go to next step
        if (forwardOneStep)
        {
            forwardOneStep = false;
            stepCounter++;
            switch (stepCounter)
            {
            case 1:
                ShowCameraBG();
                break;

            case 2:
                StartCoroutine(BackToSubway());
                StartCoroutine(ScrollTeaching(1));
                KararaB.SetActive(true);
                break;

            case 3:
                scrollTeaching = false;

                forwardLater = true;
                FishTalk("Late", true);

                break;

            case 4:
                //鱼讲完话前进
                BagOccur();
                //包出现在screen1
                //forward的时机:衣服进了洗衣机
                break;

            case 5:
                //衣服进了洗衣机
                // PhoneOccur();
                break;

            case 6:
                BackToWashing();    //时间开始前进
                break;

            case 7:
                AfterWash();
                //从洗完到小循环前提
                break;

            case 8:
                StartCoroutine(JumpToFish());
                //小循环-小循环跳出
                break;

            case 9:
                AfterPickUpCloth();
                break;

            case 10:
                ShowInventory();
                break;

            case 11:
                //还了鞋之后就可以显示返回地铁的按钮
                StartCoroutine(ShowBackButton());
                //一定是还了一件衣服才能返回的,所以洗衣机里又有衣服了
                machineFront.sprite = fullImg;

                break;

            case 12:
                ReadyForPhoto();
                break;

            case 13:
                //照相界面下面有个黑条,改变姿势的透明图层需要变小一点
                RectTransform rt = changePostureButton.GetComponent <RectTransform>();
                rt.anchoredPosition = new Vector2(rt.anchoredPosition.x, 20);
                rt.sizeDelta        = new Vector2(700, 500);

                ShowCameraBG();
                break;

            case 14:
                GoToIns();
                break;

            case 15:
                //从ins直接回到screen2
                StartCoroutine(AfterIns());
                break;

            case 16:
                //鱼说完还包之后从screen1跳转到screen2
                StartCoroutine(ReturnPrep());
                //ReturnPrep();
                break;

            case 17:
                FishTalkLast();
                break;

            case 18:
                // StartCoroutine(ShowComic());
                // StartCoroutine(AddFans());
                Handheld.Vibrate();
                Show(mobile);
                break;
            }
        }
    }