コード例 #1
0
    public void OnClickStart()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        if (playerData.isNew)
        {
            StartCoroutine(StartPrologue());
        }
        else
        {
            StartCoroutine(StartGame());
        }
    }
コード例 #2
0
ファイル: Bucket.cs プロジェクト: wonAdam/Before-dawn
    public void OnClickSellAll()
    {
        SFXMgr.Instance.Coin();

        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();
        int sum = 0;

        // 가격 리스트 만들기
        if (costList.Count == 0)
        {
            for (int i = 0; i < fishContainer.level0.Length; i++)
            {
                costList.Add(fishContainer.level0[i].cost);
            }
            for (int i = 0; i < fishContainer.level1.Length; i++)
            {
                costList.Add(fishContainer.level1[i].cost);
            }
            for (int i = 0; i < fishContainer.level2.Length; i++)
            {
                costList.Add(fishContainer.level2[i].cost);
            }
            for (int i = 0; i < fishContainer.level3.Length; i++)
            {
                costList.Add(fishContainer.level3[i].cost);
            }
            for (int i = 0; i < fishContainer.level4.Length; i++)
            {
                costList.Add(fishContainer.level4[i].cost);
            }
        }

        // 합계 계산
        for (int i = 0; i < playerData.inven_code.Count; i++)
        {
            sum += playerData.inven_num[i] * costList[i];
            playerData.inven_num[i] = 0;
        }
        for (int i = 0; i < playerData.inven_num.Count; i++)
        {
            playerData.inven_num[i] = 0;
        }
        playerData.gold      += sum;
        playerData.todayGold += sum;
        gold.text             = playerData.gold.ToString();
        SaveMgr.SavePlayerData(playerData);
        SetEnableFish();

        invenIdx.Clear();
        fishInfo.SetActive(false);
    }
コード例 #3
0
ファイル: Bucket.cs プロジェクト: wonAdam/Before-dawn
    public void SetCurrFishInfo(int index)
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();
        int lv_idx    = index / 3;
        int in_lv_idx = index % 3;

        gradeImage.sprite = gradeSprites[lv_idx];
        fishNum.text      = "수량 : " + playerData.inven_num[index];
        fishImage.sprite  = fishSprites[index];
        if (lv_idx == 0)
        {
            fishName.text        = fishContainer.level0[in_lv_idx].name;
            fishNameEng.text     = fishContainer.level0[in_lv_idx].eng;
            fishCost.text        = "가격 : " + fishContainer.level0[in_lv_idx].cost + "G";
            fishDescription.text = fishContainer.level0[in_lv_idx].description;
            currFishCost         = fishContainer.level0[in_lv_idx].cost;
        }
        if (lv_idx == 1)
        {
            fishName.text        = fishContainer.level1[in_lv_idx].name;
            fishNameEng.text     = fishContainer.level1[in_lv_idx].eng;
            fishCost.text        = "가격 : " + fishContainer.level1[in_lv_idx].cost + "G";
            fishDescription.text = fishContainer.level1[in_lv_idx].description;
            currFishCost         = fishContainer.level1[in_lv_idx].cost;
        }
        if (lv_idx == 2)
        {
            fishName.text        = fishContainer.level2[in_lv_idx].name;
            fishNameEng.text     = fishContainer.level2[in_lv_idx].eng;
            fishCost.text        = "가격 : " + fishContainer.level2[in_lv_idx].cost + "G";
            fishDescription.text = fishContainer.level2[in_lv_idx].description;
            currFishCost         = fishContainer.level2[in_lv_idx].cost;
        }
        if (lv_idx == 3)
        {
            fishName.text        = fishContainer.level3[in_lv_idx].name;
            fishNameEng.text     = fishContainer.level3[in_lv_idx].eng;
            fishCost.text        = "가격 : " + fishContainer.level3[in_lv_idx].cost + "G";
            fishDescription.text = fishContainer.level3[in_lv_idx].description;
            currFishCost         = fishContainer.level3[in_lv_idx].cost;
        }
        if (lv_idx == 4)
        {
            fishName.text        = fishContainer.level4[in_lv_idx].name;
            fishNameEng.text     = fishContainer.level4[in_lv_idx].eng;
            fishCost.text        = "가격 : " + fishContainer.level4[in_lv_idx].cost + "G";
            fishDescription.text = fishContainer.level4[in_lv_idx].description;
            currFishCost         = fishContainer.level4[in_lv_idx].cost;
        }
    }
コード例 #4
0
    void Start()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        isDiscovered = playerData.dogam[index];
        if (isDiscovered == false)
        {
            gameObject.SetActive(false);
        }
        else
        {
            dogamControl = FindObjectOfType <DogamControl>();
        }
    }
コード例 #5
0
    public static void SaveData(TruckData truckData, FirePointData firePointData, PlayerSessionData playerSessionData)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/player.data";

        FileStream stream = new FileStream(path, FileMode.Create);

        SerializablePlayerData data = new SerializablePlayerData();

        data.firePointType = (int)truckData.firePointType;
        data.truckType     = (int)truckData.truckType;

        data.gunTypes       = new int[12];
        data.locationPaths  = new int[12];
        data.trackingGroups = new int[12];
        data.gunDataTypes   = new int[12];

        for (int i = 0; i < firePointData.gunsConfigurations.Length; i++)
        {
            var config = firePointData.gunsConfigurations[i];
            data.gunTypes[i]       = (int)config.gunType;
            data.locationPaths[i]  = (int)config.locationPath;
            data.trackingGroups[i] = (int)config.trackingGroup;
            data.gunDataTypes[i]   = (int)config.gunDataType;
        }

        if (playerSessionData.traveledDistance > PlayerStaticRunTimeData.maxTraveledDistancePerSession)
        {
            data.maxTraveledDistancePerSession = playerSessionData.traveledDistance;
        }
        else
        {
            data.maxTraveledDistancePerSession = PlayerStaticRunTimeData.maxTraveledDistancePerSession;
        }
        data.traveledDistance = PlayerStaticRunTimeData.traveledDistance + playerSessionData.traveledDistance;
        if (playerSessionData.defeatedEnemies > PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession)
        {
            data.maxDefeatedEnemiesPerSession = playerSessionData.defeatedEnemies;
        }
        else
        {
            data.maxDefeatedEnemiesPerSession = PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession;
        }
        data.defeatedEnemies = PlayerStaticRunTimeData.defeatedEnemies + playerSessionData.defeatedEnemies;
        data.experience      = PlayerStaticRunTimeData.experience + playerSessionData.defeatedEnemies * 100 + playerSessionData.traveledDistance / 10;
        data.coins           = PlayerStaticRunTimeData.coins + playerSessionData.defeatedEnemies * 10 + +playerSessionData.traveledDistance / 10;

        formatter.Serialize(stream, data);
        stream.Close();
    }
コード例 #6
0
ファイル: Time.cs プロジェクト: wonAdam/Before-dawn
    void CheckTime()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        gold.text   = playerData.gold.ToString();
        intHour     = playerData.intHour;
        timeElapesd = playerData.timeElapsed;
        minute.text = (timeElapesd / 10).ToString("0") + 0;
        hour.text   = intHour.ToString();
        if (intHour >= 20 && intHour < 22)       // 20~22, evening
        {
            cg_e.alpha = 1f;
            evening.SetActive(true);
            fisher.transform.GetChild(0).gameObject.SetActive(true);
            cg_n.alpha = 0f;
            night.SetActive(false);
            fisher.transform.GetChild(1).gameObject.SetActive(false);
            cg_d.alpha = 0f;
            dawn.SetActive(false);
            fisher.transform.GetChild(2).gameObject.SetActive(false);
            lights.SetInteger("BackState", 0);
        }
        else if (intHour >= 2 && intHour <= 4)   // 2~4, dawn
        {
            cg_e.alpha = 0f;
            evening.SetActive(false);
            fisher.transform.GetChild(0).gameObject.SetActive(false);
            cg_n.alpha = 0f;
            night.SetActive(false);
            fisher.transform.GetChild(1).gameObject.SetActive(false);
            cg_d.alpha = 1f;
            dawn.SetActive(true);
            fisher.transform.GetChild(2).gameObject.SetActive(true);
            lights.SetInteger("BackState", 2);
        }
        else                                    // else, night
        {
            cg_e.alpha = 0f;
            evening.SetActive(false);
            fisher.transform.GetChild(0).gameObject.SetActive(false);
            cg_n.alpha = 1f;
            night.SetActive(true);
            fisher.transform.GetChild(1).gameObject.SetActive(true);
            cg_d.alpha = 0f;
            dawn.SetActive(false);
            fisher.transform.GetChild(2).gameObject.SetActive(false);
            lights.SetInteger("BackState", 1);
        }
    }
コード例 #7
0
ファイル: Bait.cs プロジェクト: wonAdam/Before-dawn
    public void UpdateEquipBaitToPlayerData(bool isSelected)
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        if (isSelected)
        {
            playerData.currBaitIndex = currBaitIndex;
        }
        else
        {
            playerData.currBaitIndex = 0;
        }

        SaveMgr.SavePlayerData(playerData);
    }
コード例 #8
0
ファイル: SaveMgr.cs プロジェクト: wonAdam/Before-dawn
    public static void SavePlayerData(SerializablePlayerData playerData)
    {
        string JsonData = JsonUtility.ToJson(playerData);

        string path = GetSavingPath();

        using (FileStream stream = File.Open(path, FileMode.Create))
        {
            byte[] byteData = Encoding.UTF8.GetBytes(JsonData);
            stream.Write(byteData, 0, byteData.Length);
            stream.Close();

            Debug.Log("SAVED (" + path + ")");
        }
    }
コード例 #9
0
ファイル: Inventory.cs プロジェクト: wonAdam/Before-dawn
    public void OnClickFood1()
    {
        SFXMgr.Instance.EatFood();

        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        if (playerData.foodNum[1] > 0)
        {
            playerData.foodNum[1]--;
            food1txt.text = playerData.foodNum[1].ToString();
            piroGaugeBar.AddFatigueness(-200);
        }

        SaveMgr.SavePlayerData(playerData);
    }
コード例 #10
0
ファイル: Inventory.cs プロジェクト: wonAdam/Before-dawn
    public void OnClickFood3()
    {
        SFXMgr.Instance.EatFood();

        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        if (playerData.foodNum[3] > 0)
        {
            playerData.foodBenefit = 25;
            playerData.foodNum[3]--;
            food3txt.text = playerData.foodNum[3].ToString();
            piroGaugeBar.SetFatigueBarZero();
        }
        SaveMgr.SavePlayerData(playerData);
    }
コード例 #11
0
    void Start()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        if (playerData.isNew)
        {
            for (int i = 2; i < 5; i++)
            {
                descriptions.Add(gameObject.transform.GetChild(i).gameObject);
            }
            StartCoroutine(StartTutorial());
        }
        else
        {
            gameObject.SetActive(false);
        }
    }
コード例 #12
0
    IEnumerator StartTutorial()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        for (int i = 0; i < 3; i++)
        {
            descriptions[i].SetActive(true);
            if (i == 2)
            {
                isDone = true;
            }
            yield return(new WaitUntil(() => clicked));

            clicked = false;
            descriptions[i].SetActive(false);
        }
    }
コード例 #13
0
ファイル: Bucket.cs プロジェクト: wonAdam/Before-dawn
    private void initializeFishInfo()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        invenIdx.Clear();
        for (int i = 0; i < playerData.inven_code.Count; i++)
        {
            if (playerData.inven_num[i] > 0)
            {
                invenIdx.Add(i);
            }
        }
        if (invenIdx.Count > 0)
        {
            SetCurrFishInfo(invenIdx[0]);
        }
    }
コード例 #14
0
    // Fisher의 Animation event
    public void FishingSucceed()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        int codeIndex = playerData.inven_code.IndexOf(GameMgr.Instance.caughtFishCode);;

        playerData.inven_num[codeIndex]++;
        playerData.dogam[codeIndex - 3] = true;
        SaveMgr.SavePlayerData(playerData);

        GameObject tmp = Instantiate(caughtFish, fishPos.position, Quaternion.identity);

        tmp.transform.SetParent(fishPos);
        result.text = GameMgr.Instance.caughtFishName + "(을)를 낚았습니다.";

        fishingResult.SetActive(true);
    }
コード例 #15
0
ファイル: DayResult.cs プロジェクト: wonAdam/Before-dawn
    private void Start()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        BGMMgr.Instance.StopBGM(0);
        BGMMgr.Instance.StopBGM(1);
        // set date
        playerData.day++;
        // get today fatigue
        fatigue = playerData.fatigue;
        // calculate reduced salary
        if (fatigue - playerData.foodBenefit > 100)
        {
            salary = 30;
        }
        else
        {
            salary = 100;
        }
        // claculate carrying gold
        myGold = playerData.gold;
        playerData.foodBenefit = 0;
        // set medical bill & message
        if (fatigue >= 125f)
        {
            medicalBill     = (int)(playerData.gold * 0.1);
            myGold         -= medicalBill;
            messageTxt.text = "*피곤한 하루였습니다.";
        }
        else
        {
            messageTxt.text = "*오늘 하루도 무사히 마쳤습니다.";
        }
        myGold         += salary;
        playerData.gold = myGold;
        // set randomized tmi context
        tmiTxt.text = TMILoader.LoadRandomTMI();
        // set result
        SetResult();
        // reset fatigue, time, today total
        playerData.fatigue     = 0;
        playerData.intHour     = 20;
        playerData.timeElapsed = -5f;
        playerData.todayGold   = 0;
        SaveMgr.SavePlayerData(playerData);
    }
コード例 #16
0
ファイル: Inventory.cs プロジェクト: wonAdam/Before-dawn
    public void OnClickFood2()
    {
        SFXMgr.Instance.EatFood();

        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        if (playerData.foodNum[2] > 0)
        {
            if (playerData.foodBenefit < 10)
            {
                playerData.foodBenefit = 10;
            }
            Debug.Log(playerData.foodBenefit);
            playerData.foodNum[2]--;
            food2txt.text = playerData.foodNum[2].ToString();
            piroGaugeBar.AddFatigueness(-400);
        }
        SaveMgr.SavePlayerData(playerData);
    }
コード例 #17
0
ファイル: Bait.cs プロジェクト: wonAdam/Before-dawn
    private void SetCurrViewingBait(int index)
    {
        currBaitIndex = index;
        if (currBaitIndex <= 1)
        {
            currBaitIndex = 1;
            leftArrow.gameObject.SetActive(false);
            rightArrow.gameObject.SetActive(true);
        }
        else if (currBaitIndex >= baitsDescriptionCacheList.Count - 1)
        {
            currBaitIndex = baitsDescriptionCacheList.Count - 1;
            leftArrow.gameObject.SetActive(true);
            rightArrow.gameObject.SetActive(false);
        }
        else
        {
            leftArrow.gameObject.SetActive(true);
            rightArrow.gameObject.SetActive(true);
        }

        currBaitCost = baitsCostCacheList[currBaitIndex];

        // 비쥬얼 업데이트
        baitDescriptionTxt.text = baitsDescriptionCacheList[currBaitIndex];
        baitNameTxt.text        = baitsNameCacheList[currBaitIndex];
        currBaitImage.sprite    = baitSprites[currBaitIndex - 1];

        // 현재 고른 갯수 및 금액 0으로 초기화
        SetCurrSelNum(0);

        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        // 장착 버튼
        if (playerData.currBaitIndex == currBaitIndex) // 장착중이라면
        {
            equipToggle.SetEquipToggle(true);
        }
        else // 미장착이라면
        {
            equipToggle.SetEquipToggle(false);
        }
    }
コード例 #18
0
    public static SerializablePlayerData LoadData()
    {
        string path = Application.persistentDataPath + "/player.data";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            SerializablePlayerData data = formatter.Deserialize(stream) as SerializablePlayerData;
            stream.Close();
            return(data);
        }
        else
        {
            Debug.Log("saved data not found in" + path);
            return(null);
        }
    }
コード例 #19
0
    private void Start()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        baitInf.Clear();
        // load baits informations
        TextAsset         baitJson      = Resources.Load <TextAsset>("bait");
        BaitContainerList baitContainer = JsonUtility.FromJson <BaitContainerList>(baitJson.ToString());

        baitInf.Add("min", baitContainer.baits[playerData.currBaitIndex].min);
        baitInf.Add("max", baitContainer.baits[playerData.currBaitIndex].max);

        fRodInf.Clear();
        // load fishing rods informations
        TextAsset         fRodJson      = Resources.Load <TextAsset>("fishingRod");
        FRodContainerList fRodContainer = JsonUtility.FromJson <FRodContainerList>(fRodJson.ToString());

        fRodInf.Add("min", fRodContainer.fRods[playerData.fRodLevel].min);
        fRodInf.Add("max", fRodContainer.fRods[playerData.fRodLevel].max);
    }
コード例 #20
0
ファイル: FishBite.cs プロジェクト: wonAdam/Before-dawn
    public void FishBiting()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        timeElapesd = 0;
        if (playerData.baitNum[playerData.currBaitIndex] > 0)
        {
            if (playerData.currBaitIndex > 0)
            {
                playerData.baitNum[playerData.currBaitIndex]--;
            }
        }
        else
        {
            playerData.currBaitIndex = 0;
        }
        StartCoroutine("WaitForBite");

        SaveMgr.SavePlayerData(playerData);
    }
コード例 #21
0
ファイル: Bucket.cs プロジェクト: wonAdam/Before-dawn
    public void OnClickSell()
    {
        SFXMgr.Instance.Coin();

        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        playerData.inven_num[invenIdx[invenListIdx]]--;
        playerData.gold      += currFishCost;
        playerData.todayGold += currFishCost;
        gold.text             = playerData.gold.ToString();
        fishNum.text          = "수량 : " + playerData.inven_num[invenIdx[invenListIdx]];
        SaveMgr.SavePlayerData(playerData);
        SetEnableFish();

        // 해당 종의 물고기를 다 팔았을 때
        if (playerData.inven_num[invenIdx[invenListIdx]] == 0)
        {
            // 인벤토리에 해당 종 밖에 없을 때
            if (invenIdx.Count == 1)
            {
                invenIdx.Clear();
                fishInfo.SetActive(false);
            }
            // 인벤토리에 다른 물고기도 있을 때
            else
            {
                if (invenListIdx == 0)
                {
                    SetCurrFishInfo(invenIdx[invenListIdx + 1]);
                    invenIdx.RemoveAt(invenListIdx);
                }
                else
                {
                    SetCurrFishInfo(invenIdx[invenListIdx - 1]);
                    invenIdx.RemoveAt(invenListIdx);
                    invenListIdx--;
                }
            }
        }
    }
コード例 #22
0
ファイル: fishing.cs プロジェクト: wonAdam/Before-dawn
    void Awake()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();
        TextAsset         hookJson        = Resources.Load <TextAsset>("hook");
        HookContainerList hookContainer   = JsonUtility.FromJson <HookContainerList>(hookJson.ToString());

        isNew     = playerData.isNew;
        hookLevel = playerData.hookLevel;
        if (isNew)
        {
            speed  = 0;
            chance = 2;
        }
        else
        {
            speed  = 1;
            chance = hookContainer.hooks[hookLevel].chance;
        }

        spawnerOne.SetActive(true);
        spawnerTwo.SetActive(true);
    }
コード例 #23
0
ファイル: Food.cs プロジェクト: wonAdam/Before-dawn
    public void OnClick_BuyBtn()
    {
        SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

        //  돈이 부족할땐 돈이없습니다 텍스트 띄우기
        if (currSelCost > playerData.gold)
        {
            SFXMgr.Instance.Button();
            noMoneyText.gameObject.SetActive(true);
            return;
        }
        // 돈이 충분할땐
        else
        {
            SFXMgr.Instance.Coin();
            playerData.gold -= currSelCost;
            shopControl.UpdateGoldNum(playerData.gold);
            playerData.foodNum[currFoodIndex] += currSelNum;
            SetCurrSelNum(0);
        }
        SaveMgr.SavePlayerData(playerData);
    }
コード例 #24
0
    // Fisher의 Animation event
    public void CaughtTrash()
    {
        if (GameMgr.Instance.isFail)
        {
            result.text = "아무것도 낚지 못했습니다.";
            fishingResult.SetActive(true);
            return;
        }
        else
        {
            // 쓰레기를 낚음
            SerializablePlayerData playerData = SaveMgr.LoadPlayerData();

            int codeIndex;

            result.text = GameMgr.Instance.caughtFishName + "(을)를 낚았습니다.";
            codeIndex   = playerData.inven_code.IndexOf(GameMgr.Instance.caughtFishCode);
            playerData.inven_num[codeIndex]++;

            fishingResult.SetActive(true);
            SaveMgr.SavePlayerData(playerData);
        }
    }