Ejemplo n.º 1
0
 public override void SetData(Data data)
 {
     base.SetData(data);
     if (data is DataStage)
     {
         DataStage dataStage = data as DataStage;
         index             = dataStage.indexStage;
         amountOfUnitStage = dataStage.amountUnitStage;
     }
 }
Ejemplo n.º 2
0
    public override void OnCloseReadyPopup()
    {
        base.OnCloseReadyPopup();
        DataStage data = StagePopup.GetChapterData();

        if (data == null)
        {
            return;
        }

        Btns[(uint)BUTTON_TYPE.PREV].gameObject.SetActive(false);
        Btns[(uint)BUTTON_TYPE.NEXT].gameObject.SetActive(false);
        StagePopup.SetStagePopup(data, false);
    }
Ejemplo n.º 3
0
    /// <summary> 스테이지 클릭 했을 경우 이벤트 처리. </summary>
    void OnClickStage(DataStage data)
    {
        if (data == null)
        {
            return;
        }

        if (data.State == -1)
        {
            //uiMgr.AddPopup((int)sw.ErrorCode.ER_StageStartS_RequireStageId_Error, null, null, null);
            uiMgr.AddErrorPopup((int)Sw.ErrorCode.ER_StageStartS_RequireStageId_Error);
            return;
        }

        Btns[(uint)BUTTON_TYPE.PREV].gameObject.SetActive(false);
        Btns[(uint)BUTTON_TYPE.NEXT].gameObject.SetActive(false);
        StagePopup.SetStagePopup(data, true);
    }
Ejemplo n.º 4
0
 public DataLevel()
 {
     count++;
     name = "map_" + Random.Range(0, 10000);
     collections = new List<DataStage>();
     for (int i = 0; i < count; i++)
     {
         var l = new DataStage();
         int countMapsRandom = Random.Range(2,5);
         for(int j =0; j < countMapsRandom;j++){
             l.data.Add(MapGenerator.getBoard_RandomContent(3 + Random.Range(0,2),3+ Random.Range(0,2))) ;
         }
         l.update();
         collections.Add(l);
     }
     countMaps =( from l in collections select l.data.Count).ToArray<int>().Sum();
     countCompleted = (from l in collections select l.countCompleted).ToArray<int>().Sum();
 }
Ejemplo n.º 5
0
    public void OnStageStart()
    {
        SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.SINGLE, () =>
        {
            //이상태에서의 데이터를 저장
            NetData.instance.MakePlayerSyncData(true);

            //마지막으로 선택한 스테이지 아이디 저장
            DataStage data = StagePopup.GetChapterData();
            SingleGameState.lastSelectStageId = data.TableID;
            SingleGameState.StageQuestList    = data.QuestList;
            SingleGameState.CurStageName      = data.StageName;
            SingleGameState.verifyToken       = 0;

            SceneManager.instance.ActionEvent(_ACTION.PLAY_SINGLE);
            base.GotoInGame();
        });

        uiMgr.CloseReadyPopup();
        base.Close();
    }
Ejemplo n.º 6
0
    private void FetchStageData()
    {
        ///Check if StageData not yet init
        if (!DataUtils.StageHasInit())
        {
            #region Stage Data not yet init
            List <DataStage> lstStages = new List <DataStage>();
            for (int i = 0; i < gStages.Length; i++)
            {
                DataStage dataStage = new DataStage();
                dataStage.stageName = gStages[i].name;
                if (i == 0)
                {
                    dataStage.stageHasUnlock = true;
                }
                else
                {
                    dataStage.stageHasUnlock = false;
                }
                for (int j = 0; j < gStages[i].transform.childCount; j++)
                {
                    MapLevelControll levelControll = gStages[i].transform.GetChild(j).GetComponent <MapLevelControll>();
                    MapLevel         mapLevel      = new MapLevel();
                    mapLevel.levelID = levelControll.stageIndex + "_" + levelControll.mapIndex;
                    if (i == 0 && j == 0)
                    {
                        levelControll.canPlay = true;
                    }

                    #region Add Mission to MapLevel
                    Mission mission_ = DataController.instance.allMission[i].missionData[j];
                    AddMissionToMap(mapLevel, mission_.mission1name);
                    AddMissionToMap(mapLevel, mission_.mission2name);
                    AddMissionToMap(mapLevel, mission_.mission3name);
                    #endregion

                    #region Add Rewards to MapLevel
                    if (mapLevel.rewards == null)
                    {
                        mapLevel.rewards = new List <LVReward>();
                    }
                    AddRewardsToMap(i + 1, j + 1, mapLevel.rewards);
                    #endregion

                    #region Add Map Level to Stage
                    if (dataStage.levels == null)
                    {
                        dataStage.levels = new List <MapLevel>();
                    }

                    if (!dataStage.levels.Contains(mapLevel))
                    {
                        dataStage.levels.Add(mapLevel);
                    }
                    #endregion


                    levelControll.SwitchColor();
                    levelControll.CheckMapStars();

                    levelControll.gameObject.SetActive(true);
                }

                if (!lstStages.Contains(dataStage))
                {
                    lstStages.Add(dataStage);
                }
            }
            string jSave = JsonMapper.ToJson(lstStages);
            DataUtils.SaveStage(jSave);
            DataUtils.FillAllStage();
            #endregion
        }
        else///Check if StageData has init
        {
            for (int j = 0; j < gStages[MainMenuController.Instance.stageSelected - 1].transform.childCount; j++)
            {
                MapLevelControll levelControll = gStages[MainMenuController.Instance.stageSelected - 1].transform.GetChild(j).GetComponent <MapLevelControll>();
                MapLevel         mapLevel      = DataUtils.GetMapByIndex(levelControll.stageIndex, levelControll.mapIndex);
                if (mapLevel.hasComplete)
                {
                    if (j < gStages[MainMenuController.Instance.stageSelected - 1].transform.childCount - 1)
                    {
                        gStages[MainMenuController.Instance.stageSelected - 1].transform.GetChild(j + 1).GetComponent <MapLevelControll>().canPlay = true;
                        levelControll.canPlay = true;
                    }

                    if (levelControll.mapIndex == 7 && !DataUtils.StageHardHasInit())
                    {
                        // DataUtils.UnlockHardMode();
                        DataUtils.UnlockHardMode(levelControll.stageIndex);
                    }
                }
                else
                {
                    gStages[MainMenuController.Instance.stageSelected - 1].transform.GetChild(0).GetComponent <MapLevelControll>().canPlay = true;
                }
                levelControll.gameObject.SetActive(true);
            }

            //if (StageHardHasInit())
            //DataUtils.FillAllStageHard();
        }
    }
Ejemplo n.º 7
0
    /// <summary> 테이블 데이터 셋팅 </summary>
    void SetDataTable(List <DataChapter> dataList, uint addStageId)
    {
        Dictionary <uint, NetData.ClearSingleStageData> clearStageDic = NetData.instance.GetUserInfo().ClearSingleStageDic;

        bool curStage = false;

        int chapCount  = addStageId >= 10000 ? 6 : (int)SystemDefine.MaxChapter;
        int stageCount = addStageId >= 10000 ? 3 : (int)SystemDefine.MaxChapter;

        //일반 스테이지
        for (int i = 0; i < /*SystemDefine.MaxChapter*/ chapCount; i++)
        {
            int chapterNumber   = i + 1;
            int totalClearGrade = 0;

            List <DataStage> stageList = new List <DataStage>();

            for (int j = 0; j < /*SystemDefine.MaxStage*/ stageCount; j++)
            {
                DataStage data = new DataStage();

                byte[] clearGrade = new byte[3];
                short  state      = 0;//1;//클리어한 지역.

                uint stageId    = addStageId + (uint)((chapterNumber * 100) + (j + 1));
                int  clearCount = 0;
                NetData.ClearSingleStageData clearStageData = null;
                if (!clearStageDic.TryGetValue(stageId, out clearStageData))
                {
                    //추후에 살려놔야함 지금은 모든걸 오픈
                    if (!curStage)
                    {
                        curStage = true;
                        state    = 0;
                    }
                    else//활성화 되지 않은 지역.
                    {
                        state = -1;
                    }
                }
                else
                {
                    state = 1;

                    clearGrade[0] = clearStageData.Clear_0;
                    clearGrade[1] = clearStageData.Clear_1;
                    clearGrade[2] = clearStageData.Clear_2;

                    totalClearGrade += clearStageData.Clear_0 + clearStageData.Clear_1 + clearStageData.Clear_2;
                    clearCount       = clearStageData.DailyClearCount;
                }

                if (data.InitStageData(stageId, clearGrade, state, clearCount))
                {
                    stageList.Add(data);
                }
                else//어려움일 경우 이럴수 있다 아니라면 문제가있는것.
                {
                    break;
                }
            }

            if (stageList.Count <= 0)
            {
                break;
            }

            NetData.StageStarRewardData rewardData = new NetData.StageStarRewardData();
            DataChapter dataChap = new DataChapter(chapterNumber, stageList[0]._StageLowData.type == 2, rewardData, stageList);//totalClearGrade,
            dataList.Add(dataChap);
        }
    }
Ejemplo n.º 8
0
    public override void OnInspectorGUI()
    {
        // Get this Stage-Data
        DataStage dataStage = target as DataStage;

        // Find "Stage" Object in Hierarchy-Window
        var stageObject = GameObject.Find("Stage");

        // Get Objects with Stage-Components("Item", Enemy", etc) in "Stage" Object
        var floorAs    = stageObject.GetComponentsInChildren <FloorA>();
        var floorBs    = stageObject.GetComponentsInChildren <FloorB>();
        var characters = stageObject.GetComponentsInChildren <StageCharacter>();

        if (GUILayout.Button("Save"))
        {
            // Overwrite Item-Data (Scriptable Object)
            dataStage.floorA = new DataFloorA[floorAs.Length];
            for (int i = 0; i < floorAs.Length; i++)
            {
                dataStage.floorA[i]               = new DataFloorA();
                dataStage.floorA[i].name          = floorAs[i].gameObject.name;
                dataStage.floorA[i].localPosition = floorAs[i].transform.localPosition;
                dataStage.floorA[i].localRotation = floorAs[i].transform.localRotation;
                dataStage.floorA[i].localScale    = floorAs[i].transform.localScale;
                // and more Item-Component unique params
            }

            // Overwrite Item-Data (Scriptable Object)
            dataStage.floorB = new DataFloorB[floorBs.Length];
            for (int i = 0; i < floorBs.Length; i++)
            {
                dataStage.floorB[i]               = new DataFloorB();
                dataStage.floorB[i].name          = floorBs[i].gameObject.name;
                dataStage.floorB[i].localPosition = floorBs[i].transform.localPosition;
                dataStage.floorB[i].localRotation = floorBs[i].transform.localRotation;
                dataStage.floorB[i].localScale    = floorBs[i].transform.localScale;
                // and more Item-Component unique params
            }

            // Overwrite Enemy-Data (Scriptable Object)
            dataStage.characters = new DataCharacter[characters.Length];
            for (int i = 0; i < characters.Length; i++)
            {
                dataStage.characters[i]               = new DataCharacter();
                dataStage.characters[i].name          = characters[i].gameObject.name;
                dataStage.characters[i].localPosition = characters[i].transform.localPosition;
                dataStage.characters[i].localRotation = characters[i].transform.localRotation;
                dataStage.characters[i].localScale    = characters[i].transform.localScale;
                // and more Enemy-Component unique params
            }
        }

        if (GUILayout.Button("Load"))
        {
            // Clear Stage-Objects in Hierarchy
            for (int i = floorAs.Length - 1; i >= 0; i--)
            {
                DestroyImmediate(floorAs[i].gameObject);
            }
            for (int i = floorBs.Length - 1; i >= 0; i--)
            {
                DestroyImmediate(floorBs[i].gameObject);
            }
            for (int i = characters.Length - 1; i >= 0; i--)
            {
                DestroyImmediate(characters[i].gameObject);
            }

            // Instantiate Stage-Enemies
            for (int i = 0; i < dataStage.characters.Length; i++)
            {
                var obj = Instantiate(Resources.Load("StageObject/Character")) as GameObject;
                obj.name = dataStage.characters[i].name;
                obj.transform.SetParent(stageObject.transform);
                obj.transform.localPosition = dataStage.characters[i].localPosition;
                obj.transform.localRotation = dataStage.characters[i].localRotation;
                obj.transform.localScale    = dataStage.characters[i].localScale;
            }

            // Instantiate Stage-Items
            for (int i = 0; i < dataStage.floorA.Length; i++)
            {
                var obj = Instantiate(Resources.Load("StageObject/FloorA")) as GameObject;
                obj.name = dataStage.floorA[i].name;
                obj.transform.SetParent(stageObject.transform);
                obj.transform.localPosition = dataStage.floorA[i].localPosition;
                obj.transform.localRotation = dataStage.floorA[i].localRotation;
                obj.transform.localScale    = dataStage.floorA[i].localScale;
            }

            // Instantiate Stage-Items
            for (int i = 0; i < dataStage.floorB.Length; i++)
            {
                var obj = Instantiate(Resources.Load("StageObject/FloorB")) as GameObject;
                obj.name = dataStage.floorB[i].name;
                obj.transform.SetParent(stageObject.transform);
                obj.transform.localPosition = dataStage.floorB[i].localPosition;
                obj.transform.localRotation = dataStage.floorB[i].localRotation;
                obj.transform.localScale    = dataStage.floorB[i].localScale;
            }
        }

        DrawDefaultInspector();
    }