public override void SetData(Data data) { base.SetData(data); if (data is DataStage) { DataStage dataStage = data as DataStage; index = dataStage.indexStage; amountOfUnitStage = dataStage.amountUnitStage; } }
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); }
/// <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); }
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(); }
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(); }
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(); } }
/// <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); } }
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(); }