Example #1
0
    // 문서정보 저장
    private void SaveDocumentInfo()
    {
        // 이전 값 제거
        tempData.infosCheck.Clear();

        // 현재 상태를 저장
        DocumentInformationManager information = FindObjectOfType <DocumentManager>().information;

        for (int i = 0; i < information.slots.Length; i++)
        {
            tempData.infosCheck.Add(information.IsSlotKnown(i));
        }
    }
    public void LoadData()
    {
        // 이전의 위치로 플레이어를 이동
        FindObjectOfType <NewPlayer>().transform.position = new Vector3((float)saveData.tempData.posX, (float)saveData.tempData.posY, (float)saveData.tempData.posZ);

        // 이전의 미션으로 현재 미션을 갱신
        FindObjectOfType <MissionScript>().SetMission(saveData.tempData.mission);

        // 이전 stage로 현재 위치를 갱신
        stage = saveData.tempData.stage;
        // 최초 맵 Active
        stageObject.Find(stage.ToString()).gameObject.SetActive(true);

        // 이전의 상태로 진행상태를 갱신
        AllConditions allConditions = Resources.Load <AllConditions>("AllConditions");

        for (int i = 0; i < allConditions.conditions.Length; i++)
        {
            allConditions.conditions[i].satisfied = saveData.tempData.conditionsCheck[i];
        }

        // 이전의 상태로 인벤토리 정보를 갱신
        ContentScript inventory = FindObjectOfType <ContentScript>();

        for (int i = 0; i < saveData.tempData.itemsCheck.Count; i++)
        {
            for (int j = 0; j < saveData.tempData.itemsCheck[i].count; j++)
            {
                inventory.GetItem(saveData.tempData.itemsCheck[i].id);
            }
        }

        // 이전의 상태로 문서단서 정보를 갱신
        DocumentInformationManager information = FindObjectOfType <DocumentManager>().information;

        for (int i = 0; i < saveData.tempData.infosCheck.Count; i++)
        {
            if (saveData.tempData.infosCheck[i])
            {
                information.KnowNewInfoByIndex(i);
            }
        }

        // 이전의 상태로 인물단서 정보를 갱신
        DocumentCharacterManager character = FindObjectOfType <DocumentManager>().character;

        for (int i = 0; i < saveData.tempData.charsCheck.Count; i++)
        {
            CharacterSlot slot = character.GetSlot(saveData.tempData.charsCheck[i].name);
            slot.CharacterKnow(false);
            slot.characterExp = saveData.tempData.charsCheck[i].exp;
        }

        // 이전의 상태로 사운드 상태를 변경
        StaticInfoForSound.con_BGM_Audio = GameObject.Find(saveData.tempData.conBgmSourceName).GetComponent <AudioSource>();
        if (saveData.tempData.conBgmClipName != "")
        {
            StaticInfoForSound.con_BGM_Audio.clip = Resources.Load <AudioClip>("AudioResource/BGM/" + saveData.tempData.conBgmClipName);
            StartCoroutine(SoundStart());
        }



        // etc
        isCanSave = saveData.tempData.isCanSave;

        isDay20 = saveData.tempData.isDay20;
        if (isDay20)
        {
            if (slot != null)
            {
                slot.informationName  = infoName;
                slot.informationExp   = infoExp;
                slot.informationImage = infoImage;
            }

            if (clue != null)
            {
                clue.informationName  = infoName;
                clue.informationExp   = infoExp;
                clue.informationImage = infoImage;

                clue.transform.Find("Known").GetComponent <Image>().sprite = infoImage;
            }
        }

        isOnBackGarden = saveData.tempData.isOnBackgarden;
        if (isOnBackGarden)
        {
            footSource.clip = footClip;
            footSource.Play();
        }

        isFindBirthClue = saveData.tempData.isFindBirthClue;
        if (isFindBirthClue == false)
        {
            foreach (GameObject hideObject in hideObjects)
            {
                hideObject.SetActive(false);
            }
        }


        isGetEar = saveData.tempData.isGetEar;
        if (isGetEar)
        {
            ear.SetActive(false);
        }


        isGetHair = saveData.tempData.isGetHair;
        if (isGetHair)
        {
            hair.SetActive(false);
        }


        isGetSpoon = saveData.tempData.isGetSpoon;
        if (isGetSpoon)
        {
            spoon.SetActive(false);
        }


        isOnCriminalLine = saveData.tempData.isOnCriminalLine;
        if (isOnCriminalLine)
        {
            criminalLine.SetActive(true);
        }


        isOnLibraryLine = saveData.tempData.isOnLibraryLine;
        if (isOnLibraryLine)
        {
            libraryLine.SetActive(true);
        }

        isLibraryNpcOut = saveData.tempData.isLibraryNpcOut;
        if (isLibraryNpcOut)
        {
            libraryNpc.position = new Vector3(libraryNpcNewPos.position.x, libraryNpcNewPos.position.y, libraryNpcNewPos.position.y);
        }


        isCustomerNotDrunken = saveData.tempData.isCustomerNotDrunken;
        if (isCustomerNotDrunken)
        {
            customerNpc.position = new Vector3(npcNewPos.position.x, npcNewPos.position.y, npcNewPos.position.y);
            customerNpc.Find("Sprite").GetComponent <SpriteRenderer>().sprite = npcNewSprite;
            npcDrunkenReaction.SetActive(false);
        }


        isPoliceWallRemove = saveData.tempData.isPoliceWallRemove;
        if (isPoliceWallRemove)
        {
            policeWall.SetActive(false);
        }

        isLibraryTempRemove = saveData.tempData.isLibraryTempRemove;
        if (isLibraryTempRemove)
        {
            libraryTemp.SetActive(false);
        }
    }
Example #3
0
    // ============================================================== Public Function =============================================================

    public void Init(DocumentInformationManager parent)
    {
        documentInformationManager = parent;
    }