예제 #1
0
    // Update is called once per frame
    void Update()
    {
        if (!UIManager.instance.GetIsPaused())//일시정지 상태가 아닐때
        {
            if (UIManager.instance.isReadParchment && Input.GetKeyDown(KeyCode.E) && !ParchmentControll.instance.GetIsPlayingDocumentAnim())
            {
                if (GameManager.instance.GetPlayState() == GameManager.PlayState.Act)
                {
                    UIManager.instance.isFading = true;
                    DocumentControll.instance.ResetDocumentOfAndren();

                    if (CheckEventCodeFromPlayedEventList("224") && ParchmentControll.instance.GetIsActivated_Help_Of_Andren() &&
                        ((NumOfAct.Equals("53") && TimeSlot.Equals("74")) || (NumOfAct.Equals("54") && TimeSlot.Equals("79"))))
                    {
                        DocumentControll.instance.GetAndrenClue(NumOfAct);  // 안드렌이 모은 단서 획득
                        UIManager.instance.SetIsReadParchment_In_74_79(false);
                    }

                    //Debug.Log("단서 정리 시스템 종료");
                    UIManager.instance.ArrangeClue();

                    if (NumOfAct.Equals("54") && TimeSlot.Equals("79"))
                    {
                        UIManager.instance.isReadParchment = false;
                        StartCoroutine(UIManager.instance.FadeEffectForChoiceEnding());
                        return;
                    }

                    //단서 정리 시스템을 종료 한 후, 화면이 Fade in 되고 "~시간대가 지났다" 라는 텍스트 출력 후, 같이 Fade out되고 시간대 변경
                    StartCoroutine(UIManager.instance.FadeEffectForChangeTimeSlot());
                }
                else if (GameManager.instance.GetPlayState() == GameManager.PlayState.Tutorial)
                {
                    TutorialManager.instance.isParchmentTutorial = false;

                    UIManager.instance.ArrangeClue();
                }

                UIManager.instance.isReadParchment = false;
            }

            //if (Input.GetMouseButtonDown(0))
            //{
            //    Debug.Log(UIManager.instance.GetIsOpenedParchment() + ", " + UIManager.instance.isFading + ", " + UIManager.instance.GetIsOpenNote() + ", " + UIManager.instance.isPortaling + ", " + MiniMapManager.instance.IsMiniMapOpen() + ", " + isNearObject);
            //}

            if (Input.GetKeyDown(KeyCode.Escape) && !UIManager.instance.GetIsReadParchment_In_74_79())
            {
                // 양피지 비활성화
                UIManager.instance.SetActiveFalseToParchment();
                DocumentControll.instance.ResetDocumentOfAndren();
            }

            /* 오브젝트와의 상호작용을 위한 if */
            if (Input.GetMouseButtonDown(0) && CheckCondition_InteractionObject() && !UIManager.instance.GetStateDiary())
            {
                pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                ray = new Ray2D(pos, Vector2.zero);
                hit = Physics2D.Raycast(ray.origin, ray.direction);

                if (hit.collider == null)
                {
                    //Debug.Log("아무것도 안맞죠?");
                }
                else if ((hit.collider.tag == "MerteDesk" || hit.collider.tag == "InteractionObject"))// && GameManager.instance.GetPlayState() != GameManager.PlayState.Ending)
                {
                    if (hit.collider.name.Equals("책상_메르테 사무실"))
                    {
                        if (!UIManager.instance.isReadParchment && !TutorialManager.instance.isPlayingEndTutorial)
                        {
                            // 메르테 책상 강조 종료 및 다음 대화 출력 트리거
                            if (GameManager.instance.GetPlayState() == GameManager.PlayState.Tutorial && !TutorialManager.instance.isCompletedTutorial[21])
                            {
                                TutorialManager.instance.isCompletedTutorial[21] = true;
                                TutorialManager.instance.isParchmentTutorial     = false;
                            }

                            //Debug.Log("단서 정리 시스템 활성화");
                            UIManager.instance.SetDocumentControll(true);
                            // 양피지 갱신
                            ParchmentControll.instance.UpdateParchmentPosition(playerClueLists_In_Certain_Timeslot.Count);

                            if (ParchmentControll.instance.GetParchmentPosition().y != ParchmentControll.instance.min_Scroll_Position_Parchment)
                            {
                                ParchmentControll.instance.SetParchmentPosition(new Vector2(0, ParchmentControll.instance.min_Scroll_Position_Parchment));
                            }

                            //if (ParchmentControll.instance.GetAggregationClueListScrollListPosition().y != -720)
                            //    ParchmentControll.instance.SetAggregationClueListScrollListPosition(new Vector2(0, -720));

                            if (ParchmentControll.instance.GetHelperContentPosition().y != 0)
                            {
                                ParchmentControll.instance.SetHelperContentPosition(new Vector2(0, 0));
                            }

                            UIManager.instance.ArrangeClue();
                        }
                        else
                        {
                            //Debug.Log("단서 정리 시스템 활성화 실패");
                        }
                    }
                    else
                    {
                        if (GameManager.instance.GetPlayState() == GameManager.PlayState.Act)
                        {
                            if (DialogManager.instance.CheckInteraction(hit.collider.name))
                            {
                                //Debug.Log("hit.collider.name : " + npcParser.GetNpcCodeFromName(hit.collider.name));
                                //try
                                //{
                                //    Debug.Log("사건" + NumOfAct + "의 " + TimeSlot + "시간대에서 " + hit.collider.name + "과 대화시도");
                                //    DialogManager.instance.InteractionWithObject(npcParser.GetNpcCodeFromName(hit.collider.name));
                                //}
                                //catch
                                //{
                                //    Debug.Log("사건" + NumOfAct + "의 " + TimeSlot + "시간대에서 " + hit.collider.name + "과 대화 중 오류 발생");
                                //}

                                Debug.Log("사건" + NumOfAct + "의 " + TimeSlot + "시간대에서 " + hit.collider.name + "( + " + npcParser.GetNpcCodeFromName(hit.collider.name) + ")과 대화시도");
                                DialogManager.instance.InteractionWithObject(npcParser.GetNpcCodeFromName(hit.collider.name));
                            }
                        }
                        else if (GameManager.instance.GetPlayState() == GameManager.PlayState.Tutorial)
                        {
                            if (hit.collider.name.Equals("시체_튜토리얼") && !TutorialManager.instance.isCompletedTutorial[4])
                            {
                                TutorialManager.instance.isCompletedTutorial[3] = true;
                                TutorialManager.instance.isCompletedTutorial[4] = true;
                                //DialogManager.instance.InteractionWithObject("905");

                                TutorialManager.instance.InvokeTutorial();
                                //TutorialManager.instance.IncreaseTutorial_Index();

                                TutorialManager.instance.TagChange(0, "Untagged");
                            }

                            if (hit.collider.name.Equals("식탁_레이나 집") && !TutorialManager.instance.isCompletedTutorial[6])
                            {
                                TutorialManager.instance.isCompletedTutorial[5] = true;
                                TutorialManager.instance.isCompletedTutorial[6] = true;
                                //DialogManager.instance.InteractionWithObject("907");

                                TutorialManager.instance.InvokeTutorial();
                                //TutorialManager.instance.IncreaseTutorial_Index();

                                TutorialManager.instance.TagChange(1, "Untagged");
                            }

                            if (hit.collider.name.Equals("싱크대_레이나 집") && !TutorialManager.instance.isCompletedTutorial[8])
                            {
                                TutorialManager.instance.isCompletedTutorial[7] = true;
                                TutorialManager.instance.isCompletedTutorial[8] = true;
                                //DialogManager.instance.InteractionWithObject("909");

                                TutorialManager.instance.InvokeTutorial();
                                //TutorialManager.instance.IncreaseTutorial_Index();

                                TutorialManager.instance.TagChange(2, "Untagged");
                            }

                            if (hit.collider.name.Equals("바륀") && !TutorialManager.instance.isCompletedTutorial[11])
                            {
                                TutorialManager.instance.isCompletedTutorial[9]  = true;
                                TutorialManager.instance.isCompletedTutorial[11] = true;
                                //TutorialManager.instance.IncreaseTutorial_Index();
                                //TutorialManager.instance.isCompletedTutorial[11] = true;
                                //DialogManager.instance.InteractionWithObject("912");

                                TutorialManager.instance.InvokeTutorial();
                                //TutorialManager.instance.IncreaseTutorial_Index();

                                TutorialManager.instance.TagChange(3, "Untagged");
                            }
                        }// if-else PlayState
                        else if (GameManager.instance.GetPlayState() == GameManager.PlayState.Ending)
                        {
                            if (DialogManager.instance.CheckInteraction(hit.collider.name) && !UIManager.instance.isConversationing)
                            {
                                Debug.Log("사건" + NumOfAct + "의 " + TimeSlot + "시간대에서 " + hit.collider.name + "( + " + npcParser.GetNpcCodeFromName(hit.collider.name) + ")과 대화시도");

                                if (hit.collider.name.Equals("금고_주인공사무실"))
                                {
                                    // 일기장을 얻었다는 대화가 끝난 후, 일기장 활성화 시키기
                                    DialogManager.instance.InteractionWithObject("getDiary");
                                }
                                else
                                {
                                    // 금고가 아닌 다른 오브젝트와 상호작용 시
                                    DialogManager.instance.InteractionWithObject("findUsingKey");
                                }
                            }
                        }
                    } // if-else hit 책상
                }     // if-else hit null
            }         // if-else GetMouseButtonDown
        }             // if GetIsPaused
    }
예제 #2
0
    void Start()
    {
        if (GameManager.instance.GetPlayState() == GameManager.PlayState.Ending)
        {
            if (GameManager.instance.GetEndingState() == GameManager.EndingState.True)
            {
                // 제렐을 플레이어로 만들고, 메르테 비활성화
                Vector3 mertePosition = GetPlayerPosition();
                merte.SetActive(false);
                andren.SetActive(true);
                SetPlayer(andren);
                SetPlayerPosition(mertePosition); // 제렐을 메르테의 원래 자리로 변경
            }
        }

        if (GameManager.instance.GetGameState().Equals(GameManager.GameState.NewGame_Loaded))
        {
            NumOfAct = "53";   //사건3 시작
            TimeSlot = "71";   //첫째주 시작

            if (GameManager.instance.GetPlayState() == GameManager.PlayState.Tutorial)
            {
                UIManager.instance.act3Button.SetActive(false);
            }
            UIManager.instance.act4Button.SetActive(false);
            UIManager.instance.act5Button.SetActive(false);

            checkNumOfAct = NumOfAct;
            checkTimeSlot = TimeSlot;

            //DialogManager.instance.SetLists();
            ItemDatabase.instance.SetLists();
        }
        else if (GameManager.instance.GetGameState().Equals(GameManager.GameState.PastGame_Loaded))
        {
            NumOfAct = "";
            TimeSlot = "";

            //DialogManager.instance.SetLists();
            ItemDatabase.instance.SetLists();
            GameManager.instance.LoadPlayerData();
            eventVariable = GameManager.instance.GetEventVariable();
            //GameManager.instance.SetEventVariable(ref GetEventVariableClass());

            if (NumOfAct.Equals("53"))
            {
                UIManager.instance.act4Button.SetActive(false);
                UIManager.instance.act5Button.SetActive(false);
            }
            else if (NumOfAct.Equals("54"))
            {
                UIManager.instance.SetNameOfCase("사건4 연쇄살인 4번째 피해자_륑 에고이스모");
                UIManager.instance.act4Button.SetActive(true);
                UIManager.instance.act5Button.SetActive(false);
            }
            else if (NumOfAct.Equals("55"))
            {
                UIManager.instance.SetNameOfCase("사건4 연쇄살인 4번째 피해자_륑 에고이스모");
                UIManager.instance.act4Button.SetActive(true);
                UIManager.instance.act5Button.SetActive(true);
            }

            checkNumOfAct = NumOfAct;
            checkTimeSlot = TimeSlot;

            ResetClueList_In_Certain_Timeslot(); // for PlaySaveGame

            EventManager.instance.PlayEvent();
        }
    }