Пример #1
0
        public StageClearDataST(string primaryParsedData)
        {
            string[] a = primaryParsedData.Split('-');
            for (int i = 0; i < a.Length; i++)
            {
                switch (i)
                {
                case 0:
                    this.stage = (E_STAGE)(int.Parse(a[i]));
                    break;

                case 1:
                    int isClear = int.Parse(a[i]);
                    if (isClear == 0)
                    {
                        this.clear = false;
                    }
                    else
                    {
                        this.clear = true;
                    }
                    break;

                case 2:
                    int coins = int.Parse(a[i]);
                    this.coins = coins;
                    break;
                }
            }
        }
Пример #2
0
        public static string GetForSavingParsingString(E_STAGE stageNum, bool isCleared, int coins)
        {
            string parse     = "-";
            string saveParse = "";
            string stageStr  = ((int)stageNum).ToString();
            string clearStr  = (isCleared == true) ? "1" : "0";
            string coinStr   = coins.ToString();

            saveParse = stageStr + parse + clearStr + parse + coinStr;
            return(saveParse);
        }
Пример #3
0
        public bool IsThisStageFirstPlay(E_STAGE stage)
        {
            if (!Directory.Exists(Constants.isThisStageClearDataPath))
            {
                return(true);
            }
            if (!File.Exists(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName))
            {
                return(true);
            }

            return(IsRecordExists(ReadStageClearFile(), stage));
        }
Пример #4
0
        /*** 스테이지 클리어 여부 코인(임시로)
         * 파싱은 1-Clear,2-notClear 이런식으로
         *
         * /
         */
        public void SaveClearData(E_STAGE stage, bool isCleared, int coins)
        {
            bool   firstTime       = false;
            string stageSaveString = StageClearDataST.GetForSavingParsingString(stage, isCleared, coins);

            if (!Directory.Exists(Constants.isThisStageClearDataPath))
            {
                Directory.CreateDirectory(Constants.isThisStageClearDataPath);
                firstTime = true;
            }
            if (!File.Exists(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName))
            {
                File.Create(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName).Dispose();//dispose해줘야함.
                firstTime = true;
            }
            if (firstTime)
            {
                StreamWriter sw1 = new StreamWriter(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName);
                sw1.Write(stageSaveString + ",");
                sw1.Close();
                return;
            }


            List <StageClearDataST> sclist = MakeListFromClearDataFile();

            string lastSaving = "";

            for (int i = 0; i < sclist.Count; i++)
            {
                if (sclist[i].stage == stage)
                {
                    sclist.RemoveAt(i);
                }
            }

            for (int i = 0; i < sclist.Count; i++)
            {
                lastSaving += StageClearDataST.GetForSavingParsingString(sclist[i]) + ",";
            }

            lastSaving += stageSaveString + ",";
            FileStream   fs = new FileStream(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);

            sw.Write(lastSaving);
            sw.Close();
            fs.Close();
            return;
        }
Пример #5
0
        public bool IsRecordExists(string fileContext, E_STAGE stage)
        {
            List <StageClearDataST> sclist = MakeListFromClearDataFile();

            for (int i = 0; i < sclist.Count; i++)
            {
                if (sclist[i].stage == stage)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #6
0
 public static StageTurnPointSet TurningGen(E_STAGE whatStage, float nowPos, float chunkMarginDiv, ref StageTurnPointSet turnSet)
 {
     if (StageST.turningPointQueue.Count == 0)
     {
         if (whatStage == E_STAGE.INFINITY)
         {
             InfinityFactory.GetInstance().MakeTurnSetQueNode(nowPos, chunkMarginDiv);
         }
         else
         {
             Debug.Log("맵 턴 큐 비었음.");
             turnSet.DisableThisSet();
             return(turnSet);
         }
     }
     return(StageST.turningPointQueue.Dequeue());
 }
Пример #7
0
        public List <GameObject> objs = new List <GameObject>(); //스폰포인트 넘버 상관 없이 오브젝트만 다 관리
                                                                 //코인 라인도 프리팹 했으니 리스트 말고 배열을 쓰는것도 고려해볼것.

        public void ObjSpawn(E_STAGE stage)
        {
            if (chunk == null)
            {
                ErrorManager.SpurtError("청크도 없는데 오브젝트생성하려고 함");
                return;
            }
            if (objs.Count > 0)
            {
                objs.Clear();
            }

            Transform spg = chunk.transform.GetChild(3);

            //3은 스폰포인트 그룹의 자식 넘버 순서에 상당히 의존한 값이므로 필히 조심!

            ObjGenerator.ObjGen(stage, spg, ref objs);
        }
Пример #8
0
        private void Start()
        {
            whatStage = StageManager.stageNum;

            MapAndObjPool.GetInstance().ChunkPoolInit(10);

            MapAndObjPool.GetInstance().obsBallPoolInit(10);
            MapAndObjPool.GetInstance().obsHuddlePoolInit(10);
            MapAndObjPool.GetInstance().obsUpperHuddle_1_PoolInit(10);
            MapAndObjPool.GetInstance().obsUpperHuddle_2_PoolInit(10);
            MapAndObjPool.GetInstance().obsUpperHuddle_3_PoolInit(10);
            MapAndObjPool.GetInstance().obsFirePoolInit(10);

            MapAndObjPool.GetInstance().itemHPPlusPoolInit(10);
            MapAndObjPool.GetInstance().itemInvinciblePoolInit(10);
            MapAndObjPool.GetInstance().itemShieldPoolInit(10);
            MapAndObjPool.GetInstance().itemCoinPoolInit(10);
            MapAndObjPool.GetInstance().itemMagnetPoolInit(10);
            MapAndObjPool.GetInstance().itemCoin_Parabola_PoolInit(10);
            MapAndObjPool.GetInstance().itemCoin_StraightLine_PoolInit(10);

            StartCoroutine(checkPos()); //부하를 줄이기 위해 0.2초 단위로 체크
        }
Пример #9
0
        public StageClearDataST GetClearDataOfThisStage(E_STAGE stage)
        {
            if (!Directory.Exists(Constants.isThisStageClearDataPath))
            {
                return(null);
            }
            if (!File.Exists(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName))
            {
                return(null);
            }


            List <StageClearDataST> sclist = MakeListFromClearDataFile();

            for (int i = 0; i < sclist.Count; i++)
            {
                if (sclist[i].stage == stage)
                {
                    return(sclist[i]);
                }
            }

            return(null);
        }
Пример #10
0
        public static void ObjGen(E_STAGE whatStage, Transform spawnPointGroup, ref List <GameObject> objs)
        {
            if (objs == null || spawnPointGroup == null)
            {
                return;
            }

            if (StageST.objQueue.Count == 0)
            {
                if (whatStage == E_STAGE.INFINITY)
                {
                    InfinityFactory.GetInstance().MakeObjQueNode();
                }

                else
                {
                    return;
                }
            }

            StageObjArr soa = StageST.objQueue.Dequeue();

            FixedObjGenerator.FixedObjGen(spawnPointGroup, soa.spawnObjType, ref objs);
        }