static SpawnController getSpawnController() { GameObject obj = GameObject.Find("SpawnController"); if (G_GameInfo.GameMode == GAME_MODE.SINGLE) { //SingleGameInfo stageinfo = (SingleGameInfo)G_GameInfo.GameInfo; DungeonTable.StageInfo stage = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId); if (stage.type == 2) { obj = GameObject.Find("SpawnController_Hard"); } } SpawnController[] spawnCtlrs = obj.GetComponentsInChildren <SpawnController> (); //SpawnController[] spawnCtlrs = GameObject.FindObjectsOfType<SpawnController>(); SpawnController _spawnCtlr; if (null == spawnCtlrs || 0 == spawnCtlrs.Length) { _spawnCtlr = ResourceMgr.InstAndGetComponent <SpawnController>("MapComponent/SpawnController"); } else { _spawnCtlr = spawnCtlrs[0]; } return(_spawnCtlr); }
protected override IEnumerator GameStartReady() { while (true) { #if UNITY_EDITOR if (GameObject.Find("SpawnTestManager")) { SingleGameState.IsMapLoad = true; } #endif if (SingleGameState.IsMapLoad) { break; } yield return(null); } SceneManager.instance.ShowLoadingTipPanel(false); float delay = 1f + Time.time; while (true) { if (delay < Time.time) { break; } yield return(null); } //SearchPathEffect(); //싱글게임 진입 플래그 만족이 아닐경우 Quest.QuestInfo info = QuestManager.instance.CheckSubQuest(QuestSubType.SINGLEGAMEPLAY, StageId); if (info == null) { IsQuestClear = false; GameStart(); } else if (0 < info.QuestTalkSceneID) { IsQuestClear = true; UIMgr.OpenMissionPanel(info.ID); HudPanel.Hide();//꺼놓는다. } DungeonTable.StageInfo stage = _LowDataMgr.instance.GetStageInfo(StageId); if (stage != null) { TimeLimit = stage.LimitTime; } else { Debug.LogError(" stage info is null!"); } }
public void SetStageInfoPopup(uint stageId) { DungeonTable.StageInfo info = _LowDataMgr.instance.GetStageInfo(stageId); IsLevelHard = info.type == 2 ? true : false; int chapterNum = info.ChapId; List <DataChapter> list = null; if (!IsLevelHard) { list = ChapterList; } else { list = HardChapterList; } if (list.Count <= chapterNum - 1) { chapterNum = list.Count; } stageId = (stageId % 100) - 1; if (CurChapterNum != chapterNum) { SetChapter(chapterNum, IsLevelHard); } if (0 <= stageId && !SingleGameState.IsChapterClear) { List <DataStage> stageList = CurChapter.stageList; if (stageList[(int)stageId].State == -1) { return; } Btns[(uint)BUTTON_TYPE.PREV].gameObject.SetActive(false); Btns[(uint)BUTTON_TYPE.NEXT].gameObject.SetActive(false); StagePopup.SetStagePopup(stageList[(int)stageId], true); } }
void Update() { if (Input.GetKeyDown(KeyCode.C)) { float delayTime = 0; List <UITweener> tweenList = UIHelper.FindComponents <UITweener>(ChapterClear); for (int i = 0; i < tweenList.Count; i++) { tweenList[i].ResetToBeginning(); tweenList[i].PlayForward(); if (delayTime < tweenList[i].delay + tweenList[i].duration) { delayTime = tweenList[i].delay + tweenList[i].duration; } } DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(110); string title = string.Format("{0} {1}", _LowDataMgr.instance.GetStringStageData(lowData.ChapName), _LowDataMgr.instance.GetStringStageData(lowData.ChapName + 10)); ChapterClear.FindChild("Set_main_title/Txt_Title").GetComponent <UILabel>().text = title; //두줄로 나눠서 표기 string info = _LowDataMgr.instance.GetStringStageData(lowData.ChapName + 20); string[] result = info.Split(new char[] { ' ' }); ChapterClear.FindChild("Txt_Info_1").GetComponent <UILabel>().text = result[0]; ChapterClear.FindChild("Txt_Info_2").GetComponent <UILabel>().text = result[1]; ChapterClear.gameObject.SetActive(true); ChapterClear.gameObject.SetActive(true); TempCoroutine.instance.FrameDelay(delayTime, () => { ChapterClear.gameObject.SetActive(false); }); } }
public short State;//-1은 가지 못하는 지역, 0은 플레이 가능지역, 1은 클리어 지역 public bool InitStageData(uint tableID, byte[] clearInfo, short state, int dailyClearCount) { ClearInfo = clearInfo; _StageLowData = _LowDataMgr.instance.GetStageInfo(tableID); State = state; DailyClearCount = dailyClearCount; if (_StageLowData == null)//없으면 문제인데.. { return(false); } QuestList.Add(new NetData.StageClearData((ClearQuestType)_StageLowData.ClearType1, _StageLowData.ClearValue1)); QuestList.Add(new NetData.StageClearData((ClearQuestType)_StageLowData.ClearType2, _StageLowData.ClearValue2)); QuestList.Add(new NetData.StageClearData((ClearQuestType)_StageLowData.ClearType3, _StageLowData.ClearValue3)); int monsterCount = _StageLowData.regenMonster.Count; AppearMonster = new string[monsterCount]; for (int i = 0; i < monsterCount; i++) { uint m_id = uint.Parse(_StageLowData.regenMonster[i]); Mob.MobInfo mLowData = _LowDataMgr.instance.GetMonsterInfo(m_id); if (mLowData == null) { Debug.Log("MobTable id error " + m_id); continue; } AppearMonster[i] = mLowData.PortraitId; } //아이템은 나의 클래스에 맞춰서 표시해준다. //int myClass = UIHelper.GetClassType(NetData.instance.GetUserInfo().GetCharIdx() ); int addCount = _StageLowData.type == 2 ? 2 : 1; DropItemId = new uint[_StageLowData.rewardItemId.Count + addCount]; // 최초 GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(_StageLowData.FirstReward); if (firstInfo != null) { DropItemId[0] = firstInfo.ItemId == 0 ? firstInfo.Type : firstInfo.ItemId; } if (_StageLowData.type == 2)//어려움만. { GatchaReward.FixedRewardInfo basicInfo = _LowDataMgr.instance.GetFixedRewardItem(_StageLowData.FixedReward); if (basicInfo != null) { DropItemId[1] = basicInfo.ItemId == 0? basicInfo.Type : basicInfo.ItemId; } } for (int i = addCount; i < DropItemId.Length; i++) { uint i_id = uint.Parse(_StageLowData.rewardItemId[i - addCount]); //ui유아이표시 DropItemId[i] = i_id; } return(true); }
public override void LateInit() { base.LateInit(); UI_OPEN_TYPE openType = SceneManager.instance.UiOpenType; SceneManager.instance.UiOpenType = UI_OPEN_TYPE.NONE; int openStageArr = -1, openChapterArr = 0; uint openStageId = (uint)parameters[1]; if (openStageId <= 0) { openStageId = SceneManager.instance.GetState <TownState>().MyHero.moveTargetStage; } reOpenPanel = (UIBasePanel)parameters[0]; SceneManager.instance.GetState <TownState>().MyHero.ResetMoveTarget(); if (openStageId != uint.MaxValue)//미션 { DungeonTable.StageInfo info = _LowDataMgr.instance.GetStageInfo(openStageId); IsLevelHard = info.type == 2 ? true : false; int chapterNum = info.ChapId; List <DataChapter> list = null; if (!IsLevelHard) { list = ChapterList; } else { list = HardChapterList; } if (list.Count <= chapterNum - 1) { openChapterArr = list.Count; } else { openChapterArr = chapterNum; openStageArr = (int)(openStageId % 100); } } else if (openType == UI_OPEN_TYPE.NEXT_ZONE) // 다음스테이지 버튼일시 { uint stageId = SingleGameState.lastSelectStageId; //405 이렇게 DungeonTable.StageInfo info = _LowDataMgr.instance.GetStageInfo(stageId); IsLevelHard = info.type == 2 ? true : false; int chapterNum = info.ChapId; int nextId = (int)(stageId % 100); // 스테이지 넘버 (챕터x) if (nextId < (IsLevelHard ? 3 : 10)) //다음 스테이지 로가면된다 { openChapterArr = chapterNum; openStageArr = nextId + 1; } else // 마지막 스테이지가 X-10 인경우는 다음챕터로 이동해야함 { openStageArr = 1; openChapterArr = chapterNum + 1; if (IsLevelHard)//마지막 챕터인지 검사 { if (ChapterList[openChapterArr - 1].stageList[9].State != 1) { // 하드모드일경우 일반스테이지 클리어 했는지도 검사필요함 // 하드모드 1-3에서 2-1 을 가기위해서는 일반스테이지 2-10까지 클리어해야함. IsLevelHard = false; } else if (HardChapterList.Count <= openChapterArr) { openChapterArr = HardChapterList.Count; } } else { if (ChapterList.Count <= openChapterArr) { openChapterArr = ChapterList.Count; } } } } else// if(0 < parameters.Length ) //용 석상 or TownPanel에서 아이콘 터치 {//클리어나 패배후 다시 스테이지를 눌렀을시도 고려해서 난이도를 다시 체크해줌 uint stageId = (uint)parameters[1]; if (0 == stageId || stageId.Equals(uint.MaxValue)) { stageId = SingleGameState.lastSelectStageId; } else { openStageArr = (int)(stageId % 100); } DungeonTable.StageInfo info = _LowDataMgr.instance.GetStageInfo(stageId); IsLevelHard = info.type == 2 ? true : false; openChapterArr = info.ChapId; if (SceneManager.instance.CurTutorial == TutorialType.STAGE) { openStageArr = (int)(stageId % 100); } else if (SceneManager.instance.CurTutorial == TutorialType.CHAPTER_HARD) { IsLevelHard = false; openChapterArr = 1; } } SetChapter(openChapterArr, IsLevelHard); if (0 <= openStageArr && !SingleGameState.IsChapterClear) { List <DataStage> stageList = CurChapter.stageList; OnClickStage(stageList[openStageArr - 1]); } else { OnSubTutorial(); } SceneManager.instance.GetState <TownState>().MyHero.ResetMoveTarget(); SceneManager.instance.sw.Stop(); SceneManager.instance.showStopWatchTimer("ChapterPanel, LateInit() finish"); if (SingleGameState.IsChapterClear) { SingleGameState.IsChapterClear = false; float delayTime = 0; List <UITweener> tweenList = UIHelper.FindComponents <UITweener>(ChapterClear); for (int i = 0; i < tweenList.Count; i++) { tweenList[i].ResetToBeginning(); tweenList[i].PlayForward(); if (delayTime < tweenList[i].delay + tweenList[i].duration) { delayTime = tweenList[i].delay + tweenList[i].duration; } } DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId); string title = string.Format("{0} {1}", _LowDataMgr.instance.GetStringStageData(lowData.ChapName), _LowDataMgr.instance.GetStringStageData(lowData.ChapName + 10)); ChapterClear.FindChild("Set_main_title/Txt_Title").GetComponent <UILabel>().text = title; //두줄로 나눠서 표기 string info = _LowDataMgr.instance.GetStringStageData(lowData.ChapName + 20); string[] result = info.Split(new char[] { ' ' }); ChapterClear.FindChild("Txt_Info_1").GetComponent <UILabel>().text = result[0]; ChapterClear.FindChild("Txt_Info_2").GetComponent <UILabel>().text = result[1]; ChapterClear.gameObject.SetActive(true); TempCoroutine.instance.FrameDelay(delayTime, () => { if (ChapterClear != null)//혹시 모를 예외처리 { ChapterClear.gameObject.SetActive(false); } }); } else { ChapterClear.gameObject.SetActive(false); } }
void InitSpawnCtlr() { DungeonTable.StageInfo stage = _LowDataMgr.instance.GetStageInfo(StageId); GameObject spawnCtrlObj = null; if (stage.type == 1) // normal { spawnCtrlObj = GameObject.Find("SpawnController"); if (GameObject.Find("SpawnController_Hard")) { GameObject.Find("SpawnController_Hard").SetActive(false); } } else if (stage.type == 2) { GameObject.Find("SpawnController").SetActive(false); spawnCtrlObj = GameObject.Find("SpawnController_Hard"); } // 난이도 선택 및 NPCSpawn 시작! //SpawnController[] spawnCtlrs = GameObject.FindObjectsOfType<SpawnController>(); SpawnController[] spawnCtlrs = spawnCtrlObj.GetComponentsInChildren <SpawnController> (); if (null == spawnCtlrs || 0 == spawnCtlrs.Length) { spawnCtlr = ResourceMgr.InstAndGetComponent <SpawnController>("MapComponent/SpawnController"); } else { spawnCtlr = spawnCtlrs[0]; } spawnCtlr.Init(G_GameInfo.PlayerController.Leader.gameObject); //<========================================== // 스폰될 NPC들 설정해주기 //<========================================== //Dictionary<uint, StageLowData.NpcPostingInfo> placementDic = LowDataMgr.GetSingleStagePlacementDatas(StageInfo.stageId); spawnGroup = spawnCtlr.GetList <SpawnGroup>(); int totalMonster = 0, propCount = 0; List <string> SpawnEffects = new List <string>(); for (int i = 0; i < spawnGroup.Count; i++) { SpawnGroup group = spawnGroup[i]; totalMonster += group.spawnerList.Count; for (int spawnerNo = 0; spawnerNo < group.spawnerList.Count; spawnerNo++) { // NPCSpawner만 골라서 처리해주도록 한다. //NPCSpawner npcSpawner = group.spawnerList[spawnerNo] as NPCSpawner; if (group.spawnerList[spawnerNo] is Prop) { ++propCount; } else if (group.spawnerList[spawnerNo] is NPCSpawner) { group.spawnerList[spawnerNo].Owner = group; } // NPCSpawner에서 SpawnNo를 얻어와서. //if (!placementDic.ContainsKey((uint)npcSpawner.UnitNum)) //{ // if (GameDefine.TestMode) // Debug.Log("UnitLowData.DataInfo Index Error UnitNum : " + npcSpawner.UnitNum + " , StageId : " + StageInfo.stageId); // // 없는 데이터는 스폰안되도록하기. // npcSpawner.unitId = 0; // continue; //} //// 스테이지 정보 데이터 기반으로 스폰될 유닛 셋팅해주기. //npcSpawner.unitId = (int)placementDic[(uint)npcSpawner.UnitNum].unitId; //npcSpawner.GroupNo = (int)placementDic[(uint)npcSpawner.UnitNum].groupNo; //npcSpawner.SetEventData(placementDic[(uint)npcSpawner.UnitNum]); ////< 출현할때 이펙트 리스트를 저장 //if (placementDic[(uint)npcSpawner.UnitNum].intro == 1 && !SpawnEffects.Contains(placementDic[(uint)npcSpawner.UnitNum].introEffect)) // SpawnEffects.Add(placementDic[(uint)npcSpawner.UnitNum].introEffect); } // 스폰불가능한 Spawner는 지우도록 한다. group.spawnerList.RemoveAll((spawner) => { bool removed = false; if (spawner is NPCSpawner) { removed = (spawner as NPCSpawner).unitId == 0; } if (removed) { DestroyImmediate((spawner as NPCSpawner).gameObject); } return(removed); }); } spawnCtlr.StartController(); //< 트랩 스폰 //TrapSpawnController[] TrapspawnCtlrs = GameObject.FindObjectsOfType<TrapSpawnController>(); //if (TrapspawnCtlrs != null && TrapspawnCtlrs.Length > 0) //{ // TrapSpawnController TrapspawnCtlr = TrapspawnCtlrs[0]; // TrapspawnCtlr.Init(); //} //< 이펙트를 풀에 생성해둔다 for (int i = 0; i < SpawnEffects.Count; i++) { FillSpawnPool(effectPool, SpawnEffects[i], 3); } int dropGold = NetData.instance._RewardData.GetCoin; NormalDropGold = Mathf.CeilToInt(dropGold / (totalMonster)); BossDropGold = dropGold - (NormalDropGold * (totalMonster)); }
/// <summary> 보상아이템 셋팅 </summary> void SettingRewardItem() { if (G_GameInfo.GameMode == GAME_MODE.ARENA) { RewardAssetTf.parent.gameObject.SetActive(false); return; } RewardAssetTf.parent.gameObject.SetActive(true); RewardAssetTf.gameObject.SetActive(false); RewardExp.gameObject.SetActive(false); RewardGold.gameObject.SetActive(false); uint firstRewardId = 0; uint fixedRewardId = 0; if (G_GameInfo.GameMode == GAME_MODE.SINGLE && isSuccess) { DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId); //최초보상이 있을씨에.. if (SingleGameState.IsFirstReward) { GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FirstReward); GameObject go = Instantiate(ItemSlotPrefab) as GameObject; Transform tf = go.transform; tf.parent = RewardGrid.transform; tf.localPosition = Vector3.zero; tf.localScale = Vector3.one; InvenItemSlotObject firstSlotObj = go.GetComponent <InvenItemSlotObject>(); firstSlotObj.SetLowDataItemSlot(firstInfo.ItemId == 0 ? firstInfo.Type : firstInfo.ItemId, firstInfo.ItemCount); FirstRewardSlotLabel.transform.parent = go.transform; FirstRewardSlotLabel.transform.localPosition = new Vector3(0, 42, 0); FirstRewardSlotLabel.transform.localScale = Vector3.one; FirstRewardSlotLabel.SetActive(true); firstRewardId = firstInfo.ItemId == 0 ? firstInfo.Type : firstInfo.ItemId; } // 기본보상표시 0이면안준다 if (lowData.FixedReward != 0) { GatchaReward.FixedRewardInfo basicInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FixedReward); GameObject basicGo = Instantiate(ItemSlotPrefab) as GameObject; Transform basicTf = basicGo.transform; basicTf.parent = RewardGrid.transform; basicTf.localPosition = Vector3.zero; basicTf.localScale = Vector3.one; InvenItemSlotObject basicSlotObj = basicGo.GetComponent <InvenItemSlotObject>(); basicSlotObj.SetLowDataItemSlot(basicInfo.ItemId == 0 ? basicInfo.Type : basicInfo.ItemId, basicInfo.ItemCount); BasicRewardSlotLabel.transform.parent = basicGo.transform; BasicRewardSlotLabel.transform.localPosition = new Vector3(0, 42, 0); BasicRewardSlotLabel.transform.localScale = Vector3.one; BasicRewardSlotLabel.SetActive(true); fixedRewardId = basicInfo.ItemId == 0 ? basicInfo.Type : basicInfo.ItemId; } } List <NetData.DropItemData> dropItemList = Reward.GetList; if (dropItemList != null) { int count = dropItemList.Count; for (int i = 0; i < count; i++) { NetData.DropItemData dropData = dropItemList[i]; //위에 표기됬으므로 표기안해줌 if (dropData.LowDataId == fixedRewardId) { continue; } if (dropData.LowDataId == firstRewardId) { continue; } GameObject go = Instantiate(ItemSlotPrefab) as GameObject; Transform tf = go.transform; tf.parent = RewardGrid.transform; tf.localPosition = Vector3.zero; tf.localScale = Vector3.one; InvenItemSlotObject slotObj = go.GetComponent <InvenItemSlotObject>(); slotObj.SetLowDataItemSlot(dropData.LowDataId, dropData.Amount); } RewardGrid.repositionNow = true; } if (5 < RewardGrid.transform.childCount) { RewardGrid.transform.parent.GetComponent <UIScrollView>().enabled = true; } else { RewardGrid.transform.parent.GetComponent <UIScrollView>().enabled = false; } if (G_GameInfo.GameMode == GAME_MODE.SINGLE)//GAME_MODE.SPECIAL) { return; } else { //획득 재화 설정 bool isGoldDungeon = false, isExpDungeon = false; if (G_GameInfo.GameMode == GAME_MODE.SPECIAL_EXP) { isExpDungeon = true; } else if (G_GameInfo.GameMode == GAME_MODE.SPECIAL_GOLD) { isGoldDungeon = true; } AssetType assetType = AssetType.None; if (G_GameInfo.GameMode == GAME_MODE.TOWER) { assetType = AssetType.Badge; } if (0 <= Reward.GetCoin && !isExpDungeon) { RewardGold.gameObject.SetActive(true); RewardGold.text = Reward.GetCoin == 0 ? "0" : Reward.GetCoin.ToString(); // ToString("#,##"); } if (0 <= Reward.GetExp && !isGoldDungeon) { RewardExp.gameObject.SetActive(true); RewardExp.text = Reward.GetExp == 0 ? "0" : Reward.GetExp.ToString(); // ToString("#,##"); } if (0 <= Reward.GetAsset && assetType != AssetType.None) { RewardAssetTf.gameObject.SetActive(true); RewardAssetTf.GetComponent <UILabel>().text = Reward.GetAsset == 0 ? "0" : Reward.GetAsset.ToString(); // ToString("#,##"); UISprite sp = RewardAssetTf.FindChild("icon").GetComponent <UISprite>(); switch (assetType) { case AssetType.Badge: sp.spriteName = "badge_A"; //Img_flag2 break; } } } }
/// <summary> 비동기 방식의 게임들 결과화면 </summary> void ResultDungeon() { if (G_GameInfo.GameMode == GAME_MODE.SINGLE) { //현재 최초보상받을수있는지 체크? DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId); if (lowData != null) { //if (lowData.type == 2 && isSuccess) // { if (SingleGameState.IsFirstReward) { GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FirstReward); //최초보상받을시기? GameObject go = Instantiate(ItemSlotPrefab) as GameObject; Transform tf = go.transform; tf.parent = FirstRewardPopup.transform.FindChild("Icon").transform; tf.localPosition = Vector3.zero; tf.localScale = Vector3.one; UILabel name = FirstRewardPopup.transform.FindChild("Txt_Iconname").GetComponent <UILabel>(); InvenItemSlotObject slotObj = go.GetComponent <InvenItemSlotObject>(); slotObj.SetLowDataItemSlot(firstInfo.ItemId == 0? firstInfo.Type : firstInfo.ItemId, firstInfo.ItemCount); Item.EquipmentInfo equipInfo = _LowDataMgr.instance.GetLowDataEquipItemInfo(firstInfo.ItemId); if (equipInfo != null) //장비 { name.text = _LowDataMgr.instance.GetStringItem(equipInfo.NameId); } else { uint id = 0; //혹시 재화인가.... if (firstInfo.ItemId == 0) { switch (firstInfo.Type) { case 1: //골드 id = 599000; break; case 2: //원보 id = 599001; break; case 3: //공헌 id = 599004; break; case 4: //명예 id = 599005; break; case 5: //휘장 id = 599002; break; case 6: //사자왕 id = 599006; break; case 7: //성망 id = 599003; break; case 8: //체력 id = 599104; break; case 9: //경험치; id = 599105; break; } name.text = _LowDataMgr.instance.GetStringItem(_LowDataMgr.instance.GetUseItem(firstInfo.ItemId == 0 ? id : firstInfo.ItemId).NameId); } else { name.text = _LowDataMgr.instance.GetStringItem(_LowDataMgr.instance.GetUseItem(firstInfo.ItemId).NameId); } } SetRenderQueue renderQ = UIHelper.FindComponent <SetRenderQueue>(FirstRewardPopup.transform.FindChild("Effect")); if (renderQ != null) { renderQ.ResetRenderQ(3031); } FirstRewardPopup.SetActive(true); TempCoroutine.instance.FrameDelay(0.1f, () => { FirstRewardPopup.transform.GetComponent <TweenScale>().ResetToBeginning(); FirstRewardPopup.transform.GetComponent <TweenScale>().PlayForward(); }); TempCoroutine.instance.FrameDelay(3f, () => { FirstRewardPopup.SetActive(false); }); } } // } if (isSuccess && SceneManager.instance.CurTutorial == TutorialType.STAGE)//튜토리얼 중 스테이지 클리어했다면 { SceneManager.instance.CurTutorial = TutorialType.STAGE; } } Reward = NetData.instance._RewardData; if (Reward == null)//없으면 안돼겠지만. 뻑은 안나게.. { Reward = new NetData.RewardData(); } uint curExp = 0, maxExp = 0, level = 0; if (Reward.GetExp <= 0)//획득 경험치가 있다면 뭔가 데이터가 있다는 것임. { level = NetData.instance.UserLevel; NetData.instance.GetUserInfo().GetCurrentAndMaxExp(ref curExp, ref maxExp); } else { curExp = Reward.SaveExp; maxExp = Reward.SaveMaxExp; level = Reward.SaveLevel; } ExpGauge.value = (float)curExp / (float)maxExp; Labels[(int)labelT.hLv].text = string.Format(_LowDataMgr.instance.GetStringCommon(453), level); SettingRewardItem(); if (G_GameInfo.GameMode == GAME_MODE.SINGLE)//싱글게임에만 스테이지 퀘스트가 존재. { StartCoroutine("MissionResult"); } else if (G_GameInfo.GameMode != GAME_MODE.ARENA) { Result(); } if (isSuccess) { TitleObj[0].SetActive(true); UIHelper.CreateEffectInGame(TitleObj[0].transform.FindChild("bg"), "Fx_UI_exp_result_01"); } else { TitleObj[1].SetActive(true); } }
/// <summary> 조건 체크. </summary> bool CheckContentsLink(Item.ContentsListInfo info, bool isClick) { bool isEnter = false; switch (info.ContentsType) { case 1: //조합 break; case 11: //차관 if (_LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvpEnterLv) <= NetData.instance.UserLevel) { isEnter = true; } break; case 12: //난투장 List <DungeonTable.FreefightTableInfo> freeList = _LowDataMgr.instance.GetLowDataFreeFightList(); for (int i = 0; i < freeList.Count; i++) { if (NetData.instance.UserLevel < freeList[i].MinenterLv || freeList[i].MaxenterLv < NetData.instance.UserLevel) { continue; } isEnter = true; break; } break; case 2: //모험 일반 case 3: //모험 어려움 uint require = 0; NetData.ClearSingleStageData stageData = null; if (!NetData.instance.GetUserInfo().ClearSingleStageDic.TryGetValue(info.ContentsIdx, out stageData)) { DungeonTable.StageInfo stageInfo = _LowDataMgr.instance.GetStageInfo(info.ContentsIdx); if (stageInfo != null && stageInfo.RequireStageId != null && 0 < stageInfo.RequireStageId.list.Count) { List <string> conList = stageInfo.RequireStageId.list; for (int i = 0; i < conList.Count; i++) { uint conIdx = uint.Parse(conList[i]); if (NetData.instance.GetUserInfo().ClearSingleStageDic.TryGetValue(conIdx, out stageData)) //이전 스테이지 클리어해야함. { continue; } require = 1; //진행 불가능 break; } } } if (require <= 0) { isEnter = true; } break; case 5: //보스레이드 DungeonTable.SingleBossRaidInfo bossRaid = _LowDataMgr.instance.GetSingleBossRaidLimitLevel(info.ContentsIdx); if (bossRaid.levelLimit <= NetData.instance.UserLevel) { isEnter = true; } break; case 6: //멀티 보스레이드 DungeonTable.MultyBossRaidInfo multyBossRaid = _LowDataMgr.instance.GetLowDataMultyBossInfo(info.ContentsIdx); if (multyBossRaid.levelLimit <= NetData.instance.UserLevel) { isEnter = true; } break; case 10: //길드 if (0 < NetData.instance.GetUserInfo()._GuildId) { isEnter = true; } break; case 4: //마계의탑 case 7: //콜로세움 case 8: //골드 던전 case 9: //경험치 던전 byte idx = 0; if (info.ContentsType == 4) { idx = (byte)9; } else if (info.ContentsType == 7) { idx = (byte)1; } else if (info.ContentsType == 8) { idx = (byte)3; } else if (info.ContentsType == 9) { idx = (byte)2; } DungeonTable.ContentsOpenInfo content = _LowDataMgr.instance.GetFirstContentsOpenInfo(idx); if (content.ConditionType1 == 2 && content.ConditionValue1 <= NetData.instance.GetUserInfo()._TotalAttack) { isEnter = true; } else if (content.ConditionType1 == 1 && content.ConditionValue1 <= NetData.instance.UserLevel) { isEnter = true; } break; } if (!isEnter) { if (isClick) { SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, _LowDataMgr.instance.GetStringCommon(712)); } return(false); } return(true); }